diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index a6be162cda..2946ef28c1 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -13,7 +13,7 @@ on: - 'v**' env: - GO_VERSION: '1.20' + GO_VERSION: '1.22' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 238f823442..eeeaeb07bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ on: - 'v**' env: - GO_VERSION: '1.20' + GO_VERSION: '1.22' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} @@ -39,12 +39,18 @@ jobs: go-version: ${{ env.GO_VERSION }} cache: true + - name: Install Flow CLI + run: sh -ci "$(curl -fsSL https://raw.githubusercontent.com/onflow/flow-cli/master/install.sh)" + - name: Build run: make -j8 build - name: Test run: make ci + - name: Cadence Testing Framework + run: cd runtime/stdlib/contracts && flow-c1 test --cover --covercode="contracts" crypto_test.cdc + - name: Upload coverage report uses: codecov/codecov-action@v2 with: @@ -88,10 +94,13 @@ jobs: semgrep: name: Semgrep runs-on: ubuntu-latest + container: + image: returntocorp/semgrep + # Skip any PR created by dependabot to avoid permission issues: + if: (github.actor != 'dependabot[bot]') steps: - name: Clone uses: actions/checkout@v3 - - uses: returntocorp/semgrep-action@v1 - with: - config: semgrep.yaml + - name: semgrep ci + run: semgrep ci --config semgrep.yaml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f7be868fdf..d4babec2d7 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,7 +13,7 @@ on: - 'v**' env: - GO_VERSION: '1.20' + GO_VERSION: '1.22' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} diff --git a/.github/workflows/compatibility-check-template.yml b/.github/workflows/compatibility-check-template.yml index fb849eafda..0bb57d5a58 100644 --- a/.github/workflows/compatibility-check-template.yml +++ b/.github/workflows/compatibility-check-template.yml @@ -16,12 +16,12 @@ on: chain: required: true type: string - url: + secrets: + FLOWDIVER_API_KEY: required: true - type: string env: - GO_VERSION: '1.20' + GO_VERSION: '1.22' concurrency: group: ${{ github.workflow }}-${{ inputs.base-branch || github.run_id }}-${{ inputs.chain }} @@ -35,9 +35,6 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 - # Checkout the branch where the compatibility check tool is available. - # Usually this is the master branch. - ref: master - uses: actions/setup-go@v3 with: @@ -64,9 +61,11 @@ jobs: - name: Download contracts if: ${{ steps.restore-cached-contracts.outputs.cache-hit != 'true' }} - working-directory: ./tools/batch-script + env: + FLOWDIVER_API_KEY: ${{ secrets.FLOWDIVER_API_KEY }} + working-directory: ./tools/get-contracts run: | - go run ./cmd/get_contracts/main.go --chain=${{ inputs.chain }} --u=${{ inputs.url }} > ../../tmp/contracts.csv + go run . --chain=${{ inputs.chain }} --apiKey="$FLOWDIVER_API_KEY" > ../../tmp/contracts.csv - name: Cache Contracts id: cache-contracts diff --git a/.github/workflows/compatibility-check.yml b/.github/workflows/compatibility-check.yml index 7c79e5ce10..2be88025c5 100644 --- a/.github/workflows/compatibility-check.yml +++ b/.github/workflows/compatibility-check.yml @@ -23,7 +23,7 @@ on: - 'v**' env: - GO_VERSION: '1.20' + GO_VERSION: '1.22' concurrency: group: ${{ github.workflow }}-${{ inputs.base || github.run_id }} @@ -64,8 +64,9 @@ jobs: repo: ${{ needs.setup.outputs.repo }} base-branch: ${{ needs.setup.outputs.base }} current-branch: ${{ needs.setup.outputs.branch }} - chain: flow-mainnet - url: access.mainnet.nodes.onflow.org:9000 + chain: mainnet + secrets: + FLOWDIVER_API_KEY: ${{ secrets.FLOWDIVER_API_KEY }} testnet: needs: setup @@ -74,5 +75,6 @@ jobs: repo: ${{ needs.setup.outputs.repo }} base-branch: ${{ needs.setup.outputs.base }} current-branch: ${{ needs.setup.outputs.branch }} - chain: flow-testnet - url: access.testnet.nodes.onflow.org:9000 + chain: testnet + secrets: + FLOWDIVER_API_KEY: ${{ secrets.FLOWDIVER_API_KEY }} diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml index ddf30a4a1b..d7fe718e91 100644 --- a/.github/workflows/downstream.yml +++ b/.github/workflows/downstream.yml @@ -13,7 +13,7 @@ on: - 'v**' env: - GO_VERSION: '1.20' + GO_VERSION: '1.22' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} @@ -28,7 +28,6 @@ jobs: uses: actions/checkout@v3 with: repository: 'onflow/flow-go' - ref: ${{ github.base_ref == 'feature/stable-cadence' && 'feature/stable-cadence' || 'master' }} - name: Setup Go uses: actions/setup-go@v3 @@ -36,9 +35,6 @@ jobs: go-version: ${{ env.GO_VERSION }} cache: true - - name: Build relic - run: sh crypto_setup.sh - - name: Update Cadence run: go mod edit -replace github.com/onflow/cadence=github.com/${{ github.event.pull_request.head.repo.full_name || github.repository }}@${{ github.event.pull_request.head.sha || github.sha }} @@ -46,7 +42,7 @@ jobs: run: go mod tidy - name: Build - run: go build -v --tags relic ./... + run: go build -v ./... flow-emulator: name: Emulator @@ -56,7 +52,6 @@ jobs: uses: actions/checkout@v3 with: repository: 'onflow/flow-emulator' - ref: ${{ github.base_ref == 'feature/stable-cadence' && 'feature/stable-cadence' || 'master' }} - name: Setup Go uses: actions/setup-go@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d79b11148c..e7182cc4aa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ on: default: 'master' env: - GO_VERSION: '1.20' + GO_VERSION: '1.22' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} diff --git a/CODEOWNERS b/CODEOWNERS index 89ffb98980..6e7594f711 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,2 +1 @@ -* @turbolent @SupunS @dsainati1 @dreamsmasher -/docs/ @turbolent @SupunS @dsainati1 @joshuahannan @dreamsmasher +* @turbolent @SupunS @dsainati1 diff --git a/Makefile b/Makefile index f822d9b20c..f9234e7304 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # # Cadence - The resource-oriented smart contract programming language # -# Copyright Dapper Labs, Inc. +# Copyright Flow Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -45,15 +45,15 @@ build: build-tools ./runtime/cmd/parse/parse ./runtime/cmd/parse/parse.wasm ./ru go build -o $@ ./runtime/cmd/main .PHONY: build-tools -build-tools: build-analysis build-batch-script +build-tools: build-analysis build-get-contracts .PHONY: build-analysis build-analysis: (cd ./tools/analysis && go build .) -.PHONY: build-batch-script -build-batch-script: - (cd ./tools/batch-script && go build .) +.PHONY: build-get-contracts +build-get-contracts: + (cd ./tools/get-contracts && go build .) .PHONY: ci ci: diff --git a/NOTICE b/NOTICE index 7000ce2753..8694e491da 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ Cadence -Copyright 2019-2023 Dapper Labs, Inc. +Copyright 2019-2024 Flow Foundation -This product includes software developed at Dapper Labs, Inc. (https://www.dapperlabs.com/). +This product includes software developed at the Flow Foundation (https://flow.com/flow-foundation). diff --git a/README.md b/README.md index ed4931878c..085e0b8caf 100644 --- a/README.md +++ b/README.md @@ -43,5 +43,5 @@ Check out the [Cadence Docs](https://docs.onflow.org/cadence/language/). If you would like to contribute to Cadence, have a look at the [contributing guide](https://github.com/onflow/cadence/blob/master/CONTRIBUTING.md). -Development documentation can be found in the [/docs directory](https://github.com/onflow/flow/tree/master/docs). +Development documentation can be found in the [`/docs` directory](https://github.com/onflow/cadence/tree/master/docs). For example, it contains the source for the language reference. diff --git a/docs/FAQ.md b/docs/FAQ.md index b643c8f613..59c80927a9 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -20,6 +20,33 @@ For example, a simple integer literal would be "boxed" in several outer grammar ## What is the algorithmic efficiency of operations on arrays and dictionaries? -Arrays and dictionaries are implemented [as trees](https://github.com/onflow/atree). -This means that lookup operations do not run in constant time. +Arrays and dictionaries are implemented [as trees](https://github.com/onflow/atree). +This means that lookup operations do not run in constant time. In certain cases, a mutation operation may cause a rebalancing of the tree. + +## Analyzing Cadence code + +To analyze Cadence code, you can use the [Go package `github.com/onflow/cadence/analysis`](https://github.com/onflow/cadence/tree/master/tools/analysis). +It is similar to the [Go package `golang.org/x/tools/go/analysis`](https://pkg.go.dev/golang.org/x/tools/go/analysis), which allows analyzing Go code. +The blog post at https://eli.thegreenplace.net/2020/writing-multi-package-analysis-tools-for-go/ can be followed to learn more about how to write an analyzer. +The API of the analysis package for Cadence programs is fairly similar to the package for Go programs, but not identical. + +To run the analyzer pass, the [Cadence linter tool](https://github.com/onflow/cadence-tools/tree/master/lint#cadence-lint) can be used. +For example, it allows running the pass over all contracts of a network. + +There are several options to run the analyzer pass with the linter tool: +- The analysis pass can be written directly in the linter tool. See the existing passes in the linter tool for examples. +- The analysis pass can be written in a separate package in Cadence, and the linter tool can use it. + The go.mod `replace` statement can be used to point to a locally modified Cadence working directory. +- The linter supports [Go plugins](https://pkg.go.dev/plugin) (see e.g. https://eli.thegreenplace.net/2021/plugins-in-go/) https://github.com/onflow/cadence-tools/blob/83eb7d4d19ddf2dd7ad3fdcc6aa6451a6bc126ff/lint/cmd/lint/main.go#L48. + The analyzer pass can be written in a separate module, built as a plugin, and loaded in the linter using the `-plugin` command line option. + +## Analyzing Cadence values / state snapshots + +To analyze Cadence values (`interpreter.Value`), you can use the function [`interpreter.InspectValue`](https://github.com/onflow/cadence/blob/master/runtime/interpreter/inspect.go#L31). + +To find static types in Cadence values (e.g. in type values, containers, capabilities), you can see which values contain static types in the [Cadence 1.0 static type migration code](https://github.com/onflow/cadence/blob/master/migrations/statictypes/statictype_migration.go#L67). + +To load values from a state snapshot you can use the [flow-go `util` commad](https://github.com/onflow/flow-go/tree/master/cmd/util) to convert a state snapshot in trie format to a file which just contains the payloads. + +To get a `runtime.Storage` instance from it, use `util.ReadPayloadFile`, `util.NewPayloadSnapshot`, `state.NewTransactionState`, `environment.NewAccounts`, `util.NewAccountsAtreeLedger`, and finally `runtime.NewStorage`. diff --git a/docs/README.md b/docs/README.md index dc18c2139b..6037e52c7d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Documentation -This directory documention for contributors to/developers of Cadence. +This directory contains documentation for contributors to/developers of Cadence. -If you are looking for documentation for Cadence, it can be found at https://developers.flow.com/cadence. +If you are looking for documentation for using Cadence, it can be found at https://cadence-lang.org/. -The source for the user documentation is at https://github.com/onflow/docs/tree/main/docs/cadence, not in this repository. +The source for the user documentation is at https://github.com/onflow/cadence-lang.org, not in this repository. diff --git a/docs/anti-patterns.mdx b/docs/anti-patterns.mdx index 4afe64abb7..519bd0706c 100644 --- a/docs/anti-patterns.mdx +++ b/docs/anti-patterns.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/anti-patterns.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/anti-patterns.mdx diff --git a/docs/contract-upgrades.mdx b/docs/contract-upgrades.mdx index 5aefec9546..0deb46111c 100644 --- a/docs/contract-upgrades.mdx +++ b/docs/contract-upgrades.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/contract-upgrades.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/contract-upgrades.mdx diff --git a/docs/design-patterns.mdx b/docs/design-patterns.mdx index 00966d9a6a..88f9784608 100644 --- a/docs/design-patterns.mdx +++ b/docs/design-patterns.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/design-patterns.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/design-patterns.mdx diff --git a/docs/development.md b/docs/development.md index fd8ab99c76..77544d51ab 100644 --- a/docs/development.md +++ b/docs/development.md @@ -1,29 +1,5 @@ # Development -## Running the latest version of the Language Server in the Visual Studio Code Extension - -- Ensure that a `replace` statement exists in `languageserver/go.mod`, so that the language server compiles with the local changes to Cadence. - -- Find the Visual Studio Code preference named "Cadence: Flow Command" and change it to: - - ```text - /path/to/cadence/languageserver/run.sh - ``` - -- Restart Visual Studio Code - -This will automatically recompile the language server every time it is started. - -## Debugging the Language Server - -- Follow the instructions above (see "Running the latest version of the Language Server in the Visual Studio Code Extension") - -- Attach to the process of the language server started by Visual Studio Code. - - For example, in Goland, choose Run -> Attach to Process. - - This requires gops to be installed, which can be done using `go get github.com/google/gops`. - ## Tools The [`runtime/cmd` directory](https://github.com/onflow/cadence/tree/master/runtime/cmd) diff --git a/docs/index.mdx b/docs/index.mdx index 8b868fc3e0..00764951e3 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/intro.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/intro.md diff --git a/docs/json-cadence-spec.md b/docs/json-cadence-spec.md index 17c54da112..70c3d18148 100644 --- a/docs/json-cadence-spec.md +++ b/docs/json-cadence-spec.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/json-cadence-spec.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/json-cadence-spec.md diff --git a/docs/language/access-control.md b/docs/language/access-control.md index a667af3bab..ac2155d07e 100644 --- a/docs/language/access-control.md +++ b/docs/language/access-control.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/access-control.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/access-control.md diff --git a/docs/language/accounts.mdx b/docs/language/accounts.mdx index 2be9ac1348..1a7cfee727 100644 --- a/docs/language/accounts.mdx +++ b/docs/language/accounts.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/accounts.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/accounts.mdx diff --git a/docs/language/attachments.md b/docs/language/attachments.md index 00417b75bb..d7d5f48f94 100644 --- a/docs/language/attachments.md +++ b/docs/language/attachments.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/attachments.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/attachments.mdx diff --git a/docs/language/built-in-functions.mdx b/docs/language/built-in-functions.mdx index 4354d6ab9d..2dd1f6a217 100644 --- a/docs/language/built-in-functions.mdx +++ b/docs/language/built-in-functions.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/built-in-functions.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/built-in-functions.mdx diff --git a/docs/language/capability-based-access-control.md b/docs/language/capability-based-access-control.md index 17322a2173..2b77ffd0f1 100644 --- a/docs/language/capability-based-access-control.md +++ b/docs/language/capability-based-access-control.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/capability-based-access-control.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/capabilities.md diff --git a/docs/language/composite-types.mdx b/docs/language/composite-types.mdx index 4103d0ae77..01f7819a63 100644 --- a/docs/language/composite-types.mdx +++ b/docs/language/composite-types.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/composite-types.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/composite-types.mdx diff --git a/docs/language/constants-and-variables.md b/docs/language/constants-and-variables.md index 99e9e6145b..2df34c6491 100644 --- a/docs/language/constants-and-variables.md +++ b/docs/language/constants-and-variables.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/constants-and-variables.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/constants-and-variables.md diff --git a/docs/language/contract-updatability.md b/docs/language/contract-updatability.md index 058771e5c1..b84caef768 100644 --- a/docs/language/contract-updatability.md +++ b/docs/language/contract-updatability.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/contract-updatability.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/contract-updatability.md diff --git a/docs/language/contracts.mdx b/docs/language/contracts.mdx index c7ae42c93c..fba060a792 100644 --- a/docs/language/contracts.mdx +++ b/docs/language/contracts.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/contracts.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/contracts.mdx diff --git a/docs/language/control-flow.md b/docs/language/control-flow.md index ba3a1344d5..007a760fcb 100644 --- a/docs/language/control-flow.md +++ b/docs/language/control-flow.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/control-flow.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/control-flow.md diff --git a/docs/language/core-events.md b/docs/language/core-events.md index 2ebab89bdd..f7e7912633 100644 --- a/docs/language/core-events.md +++ b/docs/language/core-events.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/core-events.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/core-events.md diff --git a/docs/language/crypto.mdx b/docs/language/crypto.mdx index 14332e933f..0bf4d064d5 100644 --- a/docs/language/crypto.mdx +++ b/docs/language/crypto.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/crypto.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/crypto.mdx diff --git a/docs/language/enumerations.md b/docs/language/enumerations.md index 1a3f66bc35..c0c3124d00 100644 --- a/docs/language/enumerations.md +++ b/docs/language/enumerations.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/enumerations.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/enumerations.md diff --git a/docs/language/environment-information.md b/docs/language/environment-information.md index 37c1e3e783..86b056ac5a 100644 --- a/docs/language/environment-information.md +++ b/docs/language/environment-information.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/environment-information.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/environment-information.md diff --git a/docs/language/events.md b/docs/language/events.md index 49ccdf5290..512c9adc26 100644 --- a/docs/language/events.md +++ b/docs/language/events.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/events.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/events.md diff --git a/docs/language/functions.mdx b/docs/language/functions.mdx index f383daa911..9041047a40 100644 --- a/docs/language/functions.mdx +++ b/docs/language/functions.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/functions.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/functions.mdx diff --git a/docs/language/glossary.md b/docs/language/glossary.md index 0a3abbe09b..3c583148d0 100644 --- a/docs/language/glossary.md +++ b/docs/language/glossary.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/glossary.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/glossary.mdx diff --git a/docs/language/imports.mdx b/docs/language/imports.mdx index db0291864a..4bf4f8f57e 100644 --- a/docs/language/imports.mdx +++ b/docs/language/imports.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/imports.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/imports.mdx diff --git a/docs/language/index.md b/docs/language/index.md index d5dcba5a78..8631dd5f14 100644 --- a/docs/language/index.md +++ b/docs/language/index.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/index.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/index.md diff --git a/docs/language/interfaces.mdx b/docs/language/interfaces.mdx index 64837edc77..923ca501b6 100644 --- a/docs/language/interfaces.mdx +++ b/docs/language/interfaces.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/interfaces.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/interfaces.mdx diff --git a/docs/language/operators.md b/docs/language/operators.md index e14185ee0f..e6dd0e07a8 100644 --- a/docs/language/operators.md +++ b/docs/language/operators.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/operators.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/operators.md diff --git a/docs/language/references.mdx b/docs/language/references.mdx index f047576f2f..9c67f270c2 100644 --- a/docs/language/references.mdx +++ b/docs/language/references.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/references.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/references.md diff --git a/docs/language/resources.mdx b/docs/language/resources.mdx index 62bec80e43..3eb6c938d5 100644 --- a/docs/language/resources.mdx +++ b/docs/language/resources.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/resources.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/resources.mdx diff --git a/docs/language/restricted-types.md b/docs/language/restricted-types.md index 66f9b9d290..846813e6e5 100644 --- a/docs/language/restricted-types.md +++ b/docs/language/restricted-types.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/restricted-types.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/restricted-types.md diff --git a/docs/language/run-time-types.md b/docs/language/run-time-types.md index d179fc503f..1fa3247753 100644 --- a/docs/language/run-time-types.md +++ b/docs/language/run-time-types.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/run-time-types.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/run-time-types.md diff --git a/docs/language/scope.md b/docs/language/scope.md index 3ee465b2d2..7274c78635 100644 --- a/docs/language/scope.md +++ b/docs/language/scope.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/scope.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/scope.md diff --git a/docs/language/syntax.md b/docs/language/syntax.md index db0ea25fd4..9a6e59c6a6 100644 --- a/docs/language/syntax.md +++ b/docs/language/syntax.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/syntax.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/syntax.md diff --git a/docs/language/transactions.md b/docs/language/transactions.md index b3df7e2724..5e561b7c83 100644 --- a/docs/language/transactions.md +++ b/docs/language/transactions.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/transactions.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/transactions.md diff --git a/docs/language/type-annotations.md b/docs/language/type-annotations.md index 1b0f667153..231cc648eb 100644 --- a/docs/language/type-annotations.md +++ b/docs/language/type-annotations.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/type-annotations.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/type-annotations.md diff --git a/docs/language/type-hierarchy.md b/docs/language/type-hierarchy.md index 16272c8e67..d0db241a69 100644 --- a/docs/language/type-hierarchy.md +++ b/docs/language/type-hierarchy.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/type-hierarchy.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/type-hierarchy.md diff --git a/docs/language/type-inference.md b/docs/language/type-inference.md index 8357fbc21a..4b43e3b95f 100644 --- a/docs/language/type-inference.md +++ b/docs/language/type-inference.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/type-inference.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/type-inference.md diff --git a/docs/language/type-safety.md b/docs/language/type-safety.md index d710858dc6..8b33f7cdb8 100644 --- a/docs/language/type-safety.md +++ b/docs/language/type-safety.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/type-safety.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/type-safety.md diff --git a/docs/language/values-and-types.mdx b/docs/language/values-and-types.mdx index ec22f134af..5f436128f2 100644 --- a/docs/language/values-and-types.mdx +++ b/docs/language/values-and-types.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/language/values-and-types.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/language/values-and-types.mdx diff --git a/docs/measuring-time.mdx b/docs/measuring-time.mdx index 8304118d4b..9ab9d327be 100644 --- a/docs/measuring-time.mdx +++ b/docs/measuring-time.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/measuring-time.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/measuring-time.mdx diff --git a/docs/releasing.md b/docs/releasing.md index 7edfcde625..38321f7155 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -60,10 +60,10 @@ base branch (`master` in this case). ``` mkdir tmp ``` -- Download contracts for **mainnet**, by running the batch-script tool. +- Download contracts for **mainnet**, by running the `get-contracts` tool. ``` - cd ./tools/batch-script - go run ./cmd/get_contracts/main.go --chain=flow-mainnet --u=access.mainnet.nodes.onflow.org:9000 > ../../tmp/mainnet_contracts.csv + cd ./tools/get-contracts + go run . --chain=mainnet --apiKey=FILL_ME_IN > ../../tmp/mainnet_contracts.csv cd ../.. ``` - Navigate to the `compatibility-check` tool and update it to use the Cadence branch from which the new release @@ -92,8 +92,8 @@ base branch (`master` in this case). go run ./cmd/check_diff/main.go ../../tmp/output-old.txt ../../tmp/output-new.txt ``` - If there is a difference in the errors reported, then there are potential breaking changes. -- Repeat the same steps for **testnet** as well. Use `--chain=flow-testnet --u=access.testnet.nodes.onflow.org:9000` - flags when running the `go run ./cmd/get_contracts/main.go` command. +- Repeat the same steps for **testnet** as well. Use `--chain=testnet` + flags when running the `go run .` command. If it is deemed that there are no breaking changes, proceed to the [Releasing](#releasing-1) steps. diff --git a/docs/security-best-practices.mdx b/docs/security-best-practices.mdx index 1367f0903e..f419f6d8cc 100644 --- a/docs/security-best-practices.mdx +++ b/docs/security-best-practices.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/security-best-practices.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/security-best-practices.mdx diff --git a/docs/solidity-to-cadence.mdx b/docs/solidity-to-cadence.mdx index 84bd8fe8fb..76f15db4e6 100644 --- a/docs/solidity-to-cadence.mdx +++ b/docs/solidity-to-cadence.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/solidity-to-cadence.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/solidity-to-cadence.mdx diff --git a/docs/syntax-highlighting.md b/docs/syntax-highlighting.md index 01f6589594..1df8cf8f1a 100644 --- a/docs/syntax-highlighting.md +++ b/docs/syntax-highlighting.md @@ -1,7 +1,7 @@ # Syntax Highlighting Cadence There are currently several options to highlight Cadence code. -Currently those options are integrated into the projects they are used in, but they could be extracted and made generally useable (please let us know e.g. by creating a feature request issue). +Currently, those options are integrated into the projects they are used in, but they could be extracted and made generally useable (please let us know e.g. by creating a feature request issue). ## HTML output diff --git a/docs/testing-framework.mdx b/docs/testing-framework.mdx index 8c9c35a876..8a948b0703 100644 --- a/docs/testing-framework.mdx +++ b/docs/testing-framework.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/testing-framework.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/testing-framework.mdx diff --git a/docs/tutorial/01-first-steps.mdx b/docs/tutorial/01-first-steps.mdx index 90fd230ec9..2ac21fce6a 100644 --- a/docs/tutorial/01-first-steps.mdx +++ b/docs/tutorial/01-first-steps.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/01-first-steps.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/01-first-steps.mdx diff --git a/docs/tutorial/02-hello-world.mdx b/docs/tutorial/02-hello-world.mdx index 4e15cefef9..9d391edce4 100644 --- a/docs/tutorial/02-hello-world.mdx +++ b/docs/tutorial/02-hello-world.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/02-hello-world.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/02-hello-world.mdx diff --git a/docs/tutorial/03-resources.mdx b/docs/tutorial/03-resources.mdx index 6a38db00d6..c0f0ca92df 100644 --- a/docs/tutorial/03-resources.mdx +++ b/docs/tutorial/03-resources.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/03-resources.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/03-resources.mdx diff --git a/docs/tutorial/04-capabilities.mdx b/docs/tutorial/04-capabilities.mdx index b8ef7597e4..1120291e96 100644 --- a/docs/tutorial/04-capabilities.mdx +++ b/docs/tutorial/04-capabilities.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/04-capabilities.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/04-capabilities.mdx diff --git a/docs/tutorial/05-non-fungible-tokens-1.mdx b/docs/tutorial/05-non-fungible-tokens-1.mdx index 0bb66d1dff..4de88f140f 100644 --- a/docs/tutorial/05-non-fungible-tokens-1.mdx +++ b/docs/tutorial/05-non-fungible-tokens-1.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/05-non-fungible-tokens-1.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/05-non-fungible-tokens-1.mdx diff --git a/docs/tutorial/05-non-fungible-tokens-2.mdx b/docs/tutorial/05-non-fungible-tokens-2.mdx index 448003caab..e16023e4f0 100644 --- a/docs/tutorial/05-non-fungible-tokens-2.mdx +++ b/docs/tutorial/05-non-fungible-tokens-2.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/05-non-fungible-tokens-2.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/05-non-fungible-tokens-2.mdx diff --git a/docs/tutorial/06-fungible-tokens.mdx b/docs/tutorial/06-fungible-tokens.mdx index 3ff7cbad6f..d85e0b0508 100644 --- a/docs/tutorial/06-fungible-tokens.mdx +++ b/docs/tutorial/06-fungible-tokens.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/06-fungible-tokens.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/06-fungible-tokens.mdx diff --git a/docs/tutorial/07-marketplace-setup.mdx b/docs/tutorial/07-marketplace-setup.mdx index 9d3c7a89d9..c30d788633 100644 --- a/docs/tutorial/07-marketplace-setup.mdx +++ b/docs/tutorial/07-marketplace-setup.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/07-marketplace-setup.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/07-marketplace-setup.mdx diff --git a/docs/tutorial/08-marketplace-compose.mdx b/docs/tutorial/08-marketplace-compose.mdx index d2a15e8ca1..9a3f0a42c3 100644 --- a/docs/tutorial/08-marketplace-compose.mdx +++ b/docs/tutorial/08-marketplace-compose.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/08-marketplace-compose.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/08-marketplace-compose.mdx diff --git a/docs/tutorial/09-voting.mdx b/docs/tutorial/09-voting.mdx index 152a5e87bf..7ca8f3497f 100644 --- a/docs/tutorial/09-voting.mdx +++ b/docs/tutorial/09-voting.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/09-voting.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/09-voting.mdx diff --git a/docs/tutorial/10-resources-compose.mdx b/docs/tutorial/10-resources-compose.mdx index 6ffbac6090..93b841b7d1 100644 --- a/docs/tutorial/10-resources-compose.mdx +++ b/docs/tutorial/10-resources-compose.mdx @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/tutorial/10-resources-compose.mdx +https://github.com/onflow/cadence-lang.org/tree/main/docs/tutorial/10-resources-compose.mdx diff --git a/docs/why.md b/docs/why.md index a9a9413942..9261a0e39c 100644 --- a/docs/why.md +++ b/docs/why.md @@ -1,3 +1,3 @@ # This document has been moved to a new location: -https://github.com/onflow/docs/tree/main/docs/cadence/why.md +https://github.com/onflow/cadence-lang.org/tree/main/docs/why.md diff --git a/encoding/ccf/bench_test.go b/encoding/ccf/bench_test.go index 37a81dc72f..3b30cef5e3 100644 --- a/encoding/ccf/bench_test.go +++ b/encoding/ccf/bench_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/encoding/ccf/ccf.go b/encoding/ccf/ccf.go index 2f0f54d177..8fcc83c697 100644 --- a/encoding/ccf/ccf.go +++ b/encoding/ccf/ccf.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/encoding/ccf/ccf_test.go b/encoding/ccf/ccf_test.go index 4c70554cbe..258cc85c81 100644 --- a/encoding/ccf/ccf_test.go +++ b/encoding/ccf/ccf_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,11 +44,13 @@ import ( var deterministicEncMode, _ = ccf.EncOptions{ SortCompositeFields: ccf.SortBytewiseLexical, SortIntersectionTypes: ccf.SortBytewiseLexical, + SortEntitlementTypes: ccf.SortBytewiseLexical, }.EncMode() var deterministicDecMode, _ = ccf.DecOptions{ EnforceSortCompositeFields: ccf.EnforceSortBytewiseLexical, EnforceSortIntersectionTypes: ccf.EnforceSortBytewiseLexical, + EnforceSortEntitlementTypes: ccf.EnforceSortBytewiseLexical, }.DecMode() type encodeTest struct { @@ -95,10 +97,10 @@ func TestEncodeOptional(t *testing.T) { // as tests may run in parallel newStructType := func() *cadence.StructType { - return &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + return cadence.NewStructType( + utils.TestLocation, + "Foo", + []cadence.Field{ { Identifier: "a", Type: cadence.NewOptionalType(cadence.IntType), @@ -112,14 +114,15 @@ func TestEncodeOptional(t *testing.T) { Type: cadence.NewOptionalType(cadence.NewOptionalType(cadence.NewOptionalType(cadence.IntType))), }, }, - } + nil, + ) } newStructTypeWithOptionalAbstractField := func() *cadence.StructType { - return &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + return cadence.NewStructType( + utils.TestLocation, + "Foo", + []cadence.Field{ { Identifier: "a", Type: cadence.NewOptionalType(cadence.AnyStructType), @@ -133,7 +136,8 @@ func TestEncodeOptional(t *testing.T) { Type: cadence.NewOptionalType(cadence.NewOptionalType(cadence.NewOptionalType(cadence.AnyStructType))), }, }, - } + nil, + ) } testAllEncodeAndDecode(t, []encodeTest{ @@ -800,16 +804,17 @@ func TestEncodeOptional(t *testing.T) { name: "struct with non-nil optional abstract fields", val: func() cadence.Value { structTypeWithOptionalAbstractField := newStructTypeWithOptionalAbstractField() - simpleStructType := &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + simpleStructType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "bar", Type: cadence.IntType, }, }, - } + nil, + ) return cadence.NewStruct([]cadence.Value{ cadence.NewOptional(cadence.NewInt(1)), cadence.NewOptional(cadence.NewOptional(cadence.NewInt(2))), @@ -3568,10 +3573,12 @@ func TestEncodeArray(t *testing.T) { resourceInterfaceTypeArray := encodeTest{ name: "Resource Interface Array", val: func() cadence.Value { - resourceInterfaceType := &cadence.ResourceInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Bar", - } + resourceInterfaceType := cadence.NewResourceInterfaceType( + utils.TestLocation, + "Bar", + nil, + nil, + ) fooResourceType := newFooResourceType() foooResourceTypeWithAbstractField := newFoooResourceTypeWithAbstractField() return cadence.NewArray([]cadence.Value{ @@ -3920,20 +3927,23 @@ func TestEncodeArray(t *testing.T) { structInterfaceTypeArray := encodeTest{ name: "Struct Interface Array", val: func() cadence.Value { - structInterfaceType := &cadence.StructInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStructInterface", - } - structType := &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + structInterfaceType := cadence.NewStructInterfaceType( + utils.TestLocation, + "FooStructInterface", + nil, + nil, + ) + structType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, }, }, - } + nil, + ) return cadence.NewArray([]cadence.Value{ cadence.NewStruct([]cadence.Value{ cadence.NewInt(1), @@ -4062,20 +4072,23 @@ func TestEncodeArray(t *testing.T) { contractInterfaceTypeArray := encodeTest{ name: "Contract Interface Array", val: func() cadence.Value { - contractInterfaceType := &cadence.ContractInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooContractInterface", - } - contractType := &cadence.ContractType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooContract", - Fields: []cadence.Field{ + contractInterfaceType := cadence.NewContractInterfaceType( + utils.TestLocation, + "FooContractInterface", + nil, + nil, + ) + contractType := cadence.NewContractType( + utils.TestLocation, + "FooContract", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, }, }, - } + nil, + ) return cadence.NewArray([]cadence.Value{ cadence.NewContract([]cadence.Value{ cadence.NewInt(1), @@ -5218,10 +5231,6 @@ func TestEncodeResource(t *testing.T) { init(bar: @Bar) { self.bar <- bar } - - destroy() { - destroy self.bar - } } fun main(): @Foo { @@ -5402,11 +5411,12 @@ func TestEncodeStruct(t *testing.T) { noFieldStruct := encodeTest{ name: "no field", val: func() cadence.Value { - noFieldStructType := &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{}, - } + noFieldStructType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{}, + nil, + ) return cadence.NewStruct( []cadence.Value{}, ).WithType(noFieldStructType) @@ -5460,10 +5470,10 @@ func TestEncodeStruct(t *testing.T) { simpleStruct := encodeTest{ name: "Simple", val: func() cadence.Value { - simpleStructType := &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + simpleStructType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, @@ -5473,7 +5483,8 @@ func TestEncodeStruct(t *testing.T) { Type: cadence.StringType, }, }, - } + nil, + ) return cadence.NewStruct( []cadence.Value{ cadence.NewInt(1), @@ -5701,6 +5712,108 @@ func TestEncodeStruct(t *testing.T) { ) } +func TestEncodeInclusiveRange(t *testing.T) { + + t.Parallel() + + simpleInclusiveRange := encodeTest{ + name: "simpleInclusiveRange", + val: func() cadence.Value { + return cadence.NewInclusiveRange( + cadence.NewInt256(10), + cadence.NewInt256(20), + cadence.NewInt256(5), + ).WithType(cadence.NewInclusiveRangeType(cadence.Int256Type)) + }(), + expected: []byte{ + // language=json, format=json-cdc + // {"type":"InclusiveRange","value":[{"type":"Int256","value":"10"},{"type":"Int256","value":"20"},{"type":"Int256","value":"5"}]} + // + // language=edn, format=ccf + // 130([145(137(10)), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int256 type ID (10) + 0x0a, + // array data without inlined type definition + // array, 3 items follow + 0x83, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 10 + 0xa, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 20 + 0x14, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 5 + 0x5, + }, + } + + inclusiveRangeWithPrimitive := encodeTest{ + name: "simpleInclusiveRange", + val: func() cadence.Value { + return cadence.NewInclusiveRange( + cadence.NewInt8(10), + cadence.NewInt8(20), + cadence.NewInt8(5), + ).WithType(cadence.NewInclusiveRangeType(cadence.Int8Type)) + }(), + expected: []byte{ + // language=json, format=json-cdc + // {"type":"InclusiveRange","value":[{"type":"Int8","value":"10"},{"type":"Int8","value":"20"},{"type":"Int8","value":"5"}]} + // + // language=edn, format=ccf + // 130([145(137(5)), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int8 type ID (5) + 0x05, + // array data without inlined type definition + // array, 3 items follow + 0x83, + // element 1, 10 + 0xa, + // element 2, 20 + 0x14, + // element 3, 5 + 0x5, + }, + } + + testAllEncodeAndDecode(t, + simpleInclusiveRange, + inclusiveRangeWithPrimitive, + ) +} + func TestEncodeEvent(t *testing.T) { t.Parallel() @@ -5708,10 +5821,10 @@ func TestEncodeEvent(t *testing.T) { simpleEvent := encodeTest{ name: "Simple", val: func() cadence.Value { - simpleEventType := &cadence.EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooEvent", - Fields: []cadence.Field{ + simpleEventType := cadence.NewEventType( + utils.TestLocation, + "FooEvent", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, @@ -5721,7 +5834,8 @@ func TestEncodeEvent(t *testing.T) { Type: cadence.StringType, }, }, - } + nil, + ) return cadence.NewEvent( []cadence.Value{ cadence.NewInt(1), @@ -5811,10 +5925,10 @@ func TestEncodeEvent(t *testing.T) { abstractEvent := encodeTest{ name: "abstract event", val: func() cadence.Value { - abstractEventType := &cadence.EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooEvent", - Fields: []cadence.Field{ + abstractEventType := cadence.NewEventType( + utils.TestLocation, + "FooEvent", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, @@ -5824,17 +5938,19 @@ func TestEncodeEvent(t *testing.T) { Type: cadence.AnyStructType, }, }, - } - simpleStructType := &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + nil, + ) + simpleStructType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "c", Type: cadence.StringType, }, }, - } + nil, + ) return cadence.NewEvent( []cadence.Value{ cadence.NewInt(1), @@ -5971,10 +6087,10 @@ func TestEncodeEvent(t *testing.T) { name: "Resources", val: func() cadence.Value { fooResourceType := newFooResourceType() - resourceEventType := &cadence.EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooEvent", - Fields: []cadence.Field{ + resourceEventType := cadence.NewEventType( + utils.TestLocation, + "FooEvent", + []cadence.Field{ { Identifier: "a", Type: cadence.StringType, @@ -5984,7 +6100,8 @@ func TestEncodeEvent(t *testing.T) { Type: fooResourceType, }, }, - } + nil, + ) return cadence.NewEvent( []cadence.Value{ cadence.String("foo"), @@ -6139,10 +6256,10 @@ func TestEncodeContract(t *testing.T) { simpleContract := encodeTest{ name: "Simple", val: func() cadence.Value { - simpleContractType := &cadence.ContractType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooContract", - Fields: []cadence.Field{ + simpleContractType := cadence.NewContractType( + utils.TestLocation, + "FooContract", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, @@ -6152,7 +6269,8 @@ func TestEncodeContract(t *testing.T) { Type: cadence.StringType, }, }, - } + nil, + ) return cadence.NewContract( []cadence.Value{ cadence.NewInt(1), @@ -6242,20 +6360,21 @@ func TestEncodeContract(t *testing.T) { abstractContract := encodeTest{ name: "abstract contract", val: func() cadence.Value { - simpleStructType := &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + simpleStructType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "c", Type: cadence.StringType, }, }, - } - abstractContractType := &cadence.ContractType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooContract", - Fields: []cadence.Field{ + nil, + ) + abstractContractType := cadence.NewContractType( + utils.TestLocation, + "FooContract", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, @@ -6265,7 +6384,8 @@ func TestEncodeContract(t *testing.T) { Type: cadence.AnyStructType, }, }, - } + nil, + ) return cadence.NewContract( []cadence.Value{ cadence.NewInt(1), @@ -6402,10 +6522,10 @@ func TestEncodeContract(t *testing.T) { name: "Resources", val: func() cadence.Value { fooResourceType := newFooResourceType() - resourceContractType := &cadence.ContractType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooContract", - Fields: []cadence.Field{ + resourceContractType := cadence.NewContractType( + utils.TestLocation, + "FooContract", + []cadence.Field{ { Identifier: "a", Type: cadence.StringType, @@ -6415,7 +6535,8 @@ func TestEncodeContract(t *testing.T) { Type: fooResourceType, }, }, - } + nil, + ) return cadence.NewContract( []cadence.Value{ cadence.String("foo"), @@ -6553,16 +6674,18 @@ func TestEncodeEnum(t *testing.T) { simpleEnum := encodeTest{ name: "Simple", val: func() cadence.Value { - simpleEnumType := &cadence.EnumType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooEnum", - Fields: []cadence.Field{ + simpleEnumType := cadence.NewEnumType( + utils.TestLocation, + "FooEnum", + nil, + []cadence.Field{ { Identifier: "raw", Type: cadence.UInt8Type, }, }, - } + nil, + ) return cadence.NewEnum( []cadence.Value{ cadence.NewUInt8(1), @@ -6632,91 +6755,403 @@ func TestEncodeEnum(t *testing.T) { testAllEncodeAndDecode(t, simpleEnum) } -func TestEncodeValueOfIntersectionType(t *testing.T) { - +func TestEncodeAttachment(t *testing.T) { t.Parallel() - t.Run("nil intersection type", func(t *testing.T) { - hasCountInterfaceType := cadence.NewResourceInterfaceType( - common.NewStringLocation(nil, "test"), - "HasCount", - nil, - nil, - ) - - hasSumInterfaceType := cadence.NewResourceInterfaceType( - common.NewStringLocation(nil, "test"), - "HasSum", - nil, - nil, - ) - - statsType := cadence.NewResourceType( - common.NewStringLocation(nil, "test"), - "Stats", - []cadence.Field{ - cadence.NewField("count", cadence.IntType), - cadence.NewField("sum", cadence.IntType), - }, - nil, - ) + noFieldAttachment := encodeTest{ + name: "no field", + val: func() cadence.Value { + attachmentType := cadence.NewAttachmentType( + utils.TestLocation, + "FooAttachment", + nil, + []cadence.Field{}, + nil, + ) + return cadence.NewAttachment( + []cadence.Value{}, + ).WithType(attachmentType) + }(), + expected: []byte{ + // language=json, format=json-cdc + // {"value":{"id":"S.test.FooAttachment","fields":[]},"type":"Attachment"} + // + // language=edn, format=ccf + // 129([[165([h'', "S.test.FooAttachment", []])], [136(h''), []]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeDefAndValue, + // array, 2 items follow + 0x82, + // element 0: type definitions + // array, 1 items follow + 0x81, + // attachment type: + // id: []byte{} + // cadence-type-id: "S.test.FooAttachment" + // 0 fields + // tag + 0xd8, ccf.CBORTagAttachmentType, + // array, 3 items follow + 0x83, + // id + // bytes, 0 bytes follow + 0x40, + // cadence-type-id + // string, 20 bytes follow + 0x74, + // S.test.FooAttachment + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + // fields + // array, 0 items follow + 0x80, - countSumIntersectionType := cadence.NewIntersectionType( - []cadence.Type{ - hasCountInterfaceType, - hasSumInterfaceType, - }, - ) + // element 1: type and value + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagTypeRef, + // bytes, 0 bytes follow + 0x40, + // array, 0 items follow + 0x80, + }, + } - val := cadence.NewArray([]cadence.Value{ - cadence.NewResource( - []cadence.Value{ - cadence.NewInt(1), - cadence.NewInt(2), + primitiveFieldAttachment := encodeTest{ + name: "simple", + val: func() cadence.Value { + attachmentType := cadence.NewAttachmentType( + utils.TestLocation, + "FooAttachment", + nil, + []cadence.Field{ + { + Identifier: "i", + Type: cadence.UInt8Type, + }, }, - ).WithType(statsType), - }).WithType(cadence.NewVariableSizedArrayType(countSumIntersectionType)) - - expectedStatsType := cadence.NewResourceType( - common.NewStringLocation(nil, "test"), - "Stats", - []cadence.Field{ - cadence.NewField("sum", cadence.IntType), - cadence.NewField("count", cadence.IntType), - }, - nil, - ) - - expectedCountSumIntersectionType := cadence.NewIntersectionType( - []cadence.Type{ - hasSumInterfaceType, - hasCountInterfaceType, - }, - ) - - expectedVal := cadence.NewArray([]cadence.Value{ - cadence.NewResource( + nil, + ) + return cadence.NewAttachment( []cadence.Value{ - cadence.NewInt(2), - cadence.NewInt(1), + cadence.NewUInt8(1), }, - ).WithType(expectedStatsType), - }).WithType(cadence.NewVariableSizedArrayType(expectedCountSumIntersectionType)) - - testEncodeAndDecodeEx( - t, - val, - []byte{ - // language=json, format=json-cdc - // {"value":[{"value":{"id":"S.test.Stats","fields":[{"value":{"value":"1","type":"Int"},"name":"count"},{"value":{"value":"2","type":"Int"},"name":"sum"}]},"type":"Resource"}],"type":"Array"} - // - // language=edn, format=ccf - // 129([[161([h'', "S.test.Stats", [["sum", 137(4)], ["count", 137(4)]]]), 177([h'01', "S.test.HasSum"]), 177([h'02', "S.test.HasCount"])], [139(143([null, [136(h'01'), 136(h'02')]])), [130([136(h''), [2, 1]])]]]) - // - // language=cbor, format=ccf - // tag - 0xd8, ccf.CBORTagTypeDefAndValue, - // array, 2 items follow + ).WithType(attachmentType) + }(), + expected: []byte{ + // language=json, format=json-cdc + // {"value":{"id":"S.test.FooAttachment","fields":[{"value":{"value":"1","type":"UInt8"},"name":"i"}]},"type":"Attachment"} + // + // language=edn, format=ccf + // 129([[165([h'', "S.test.FooAttachment", [["i", 137(12)]]])], [136(h''), [1]]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeDefAndValue, + // array, 2 items follow + 0x82, + // element 0: type definitions + // array, 1 items follow + 0x81, + // attachment type: + // id: []byte{} + // cadence-type-id: "S.test.FooAttachment" + // 1 fields: [["i", type(uint8)]] + // tag + 0xd8, ccf.CBORTagAttachmentType, + // array, 3 items follow + 0x83, + // id + // bytes, 0 bytes follow + 0x40, + // cadence-type-id + // string, 20 bytes follow + 0x74, + // S.test.FooAttachment + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + // fields + // array, 1 items follow + 0x81, + // field 0 + // array, 2 items follow + 0x82, + // text, 1 bytes follow + 0x61, + // raw + 0x69, + // tag + 0xd8, ccf.CBORTagSimpleType, + // UInt8 type ID (12) + 0x0c, + + // element 1: type and value + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagTypeRef, + // bytes, 0 bytes follow + 0x40, + // array, 1 items follow + 0x81, + // 1 + 0x01, + }, + } + + structFieldAttachment := encodeTest{ + name: "struct field", + val: func() cadence.Value { + structType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ + { + Identifier: "bar", + Type: cadence.IntType, + }, + }, + nil, + ) + attachmentType := cadence.NewAttachmentType( + utils.TestLocation, + "FooAttachment", + nil, + []cadence.Field{ + { + Identifier: "a", + Type: cadence.StringType, + }, + { + Identifier: "b", + Type: structType, + }, + }, + nil, + ) + return cadence.NewAttachment( + []cadence.Value{ + cadence.String("foo"), + cadence.NewStruct( + []cadence.Value{ + cadence.NewInt(42), + }, + ).WithType(structType), + }, + ).WithType(attachmentType) + }(), + expected: []byte{ + // language=json, format=json-cdc + // {"value":{"id":"S.test.FooAttachment","fields":[{"value":{"value":"foo","type":"String"},"name":"a"},{"value":{"value":{"id":"S.test.FooStruct","fields":[{"value":{"value":"42","type":"Int"},"name":"bar"}]},"type":"Struct"},"name":"b"}]},"type":"Attachment"} + // + // language=edn, format=ccf + // 129([[160([h'', "S.test.FooStruct", [["bar", 137(4)]]]), 165([h'01', "S.test.FooAttachment", [["a", 137(1)], ["b", 136(h'')]]])], [136(h'01'), ["foo", [42]]]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeDefAndValue, + // array, 2 items follow + 0x82, + // element 0: type definitions + // array, 2 items follow + 0x82, + + // struct type: + // id: []byte{} + // cadence-type-id: "S.test.FooStruct" + // fields: [["bar", int type]] + // tag + 0xd8, ccf.CBORTagStructType, + // array, 3 items follow + 0x83, + // id + // bytes, 0 bytes follow + 0x40, + // cadence-type-id + // string, 16 bytes follow + 0x70, + // S.test.FooStruct + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + // fields + // array, 1 items follow + 0x81, + // field 0 + // array, 2 items follow + 0x82, + // text, 3 bytes follow + 0x63, + // bar + 0x62, 0x61, 0x72, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int type ID (4) + 0x04, + + // attachment type: + // id: []byte{} + // cadence-type-id: "S.test.FooAttachment" + // 2 fields: [["a", type(int)], ["b", 136(h'')]] + // tag + 0xd8, ccf.CBORTagAttachmentType, + // array, 3 items follow + 0x83, + // id + // bytes, 1 bytes follow + 0x41, + // 1 + 0x01, + // cadence-type-id + // string, 20 bytes follow + 0x74, + // S.test.FooAttachment + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + // fields + // array, 2 items follow + 0x82, + // field 0 + // array, 2 items follow + 0x82, + // text, 1 bytes follow + 0x61, + // a + 0x61, + // tag + 0xd8, ccf.CBORTagSimpleType, + // String type ID (1) + 0x01, + // field 1 + // array, 2 items follow + 0x82, + // text, 1 bytes follow + 0x61, + // b + 0x62, + // tag + 0xd8, ccf.CBORTagTypeRef, + // type reference ID (0) + // bytes, 0 bytes follow + 0x40, + + // element 1: type and value + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagTypeRef, + // bytes, 1 bytes follow + 0x41, + // 1 + 0x01, + // array, 2 items follow + 0x82, + // String, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // array, 1 items follow + 0x81, + // tag (big number) + 0xc2, + // bytes, 1 byte follow + 0x41, + // 42 + 0x2a, + }, + } + + testAllEncodeAndDecode( + t, + noFieldAttachment, + primitiveFieldAttachment, + structFieldAttachment, + ) +} + +func TestEncodeValueOfIntersectionType(t *testing.T) { + + t.Parallel() + + t.Run("nil intersection type", func(t *testing.T) { + hasCountInterfaceType := cadence.NewResourceInterfaceType( + common.NewStringLocation(nil, "test"), + "HasCount", + nil, + nil, + ) + + hasSumInterfaceType := cadence.NewResourceInterfaceType( + common.NewStringLocation(nil, "test"), + "HasSum", + nil, + nil, + ) + + statsType := cadence.NewResourceType( + common.NewStringLocation(nil, "test"), + "Stats", + []cadence.Field{ + cadence.NewField("count", cadence.IntType), + cadence.NewField("sum", cadence.IntType), + }, + nil, + ) + + countSumIntersectionType := cadence.NewIntersectionType( + []cadence.Type{ + hasCountInterfaceType, + hasSumInterfaceType, + }, + ) + + val := cadence.NewArray([]cadence.Value{ + cadence.NewResource( + []cadence.Value{ + cadence.NewInt(1), + cadence.NewInt(2), + }, + ).WithType(statsType), + }).WithType(cadence.NewVariableSizedArrayType(countSumIntersectionType)) + + expectedStatsType := cadence.NewResourceType( + common.NewStringLocation(nil, "test"), + "Stats", + []cadence.Field{ + cadence.NewField("sum", cadence.IntType), + cadence.NewField("count", cadence.IntType), + }, + nil, + ) + + expectedCountSumIntersectionType := cadence.NewIntersectionType( + []cadence.Type{ + hasSumInterfaceType, + hasCountInterfaceType, + }, + ) + + expectedVal := cadence.NewArray([]cadence.Value{ + cadence.NewResource( + []cadence.Value{ + cadence.NewInt(2), + cadence.NewInt(1), + }, + ).WithType(expectedStatsType), + }).WithType(cadence.NewVariableSizedArrayType(expectedCountSumIntersectionType)) + + testEncodeAndDecodeEx( + t, + val, + []byte{ + // language=json, format=json-cdc + // {"value":[{"value":{"id":"S.test.Stats","fields":[{"value":{"value":"1","type":"Int"},"name":"count"},{"value":{"value":"2","type":"Int"},"name":"sum"}]},"type":"Resource"}],"type":"Array"} + // + // language=edn, format=ccf + // 129([[161([h'', "S.test.Stats", [["sum", 137(4)], ["count", 137(4)]]]), 177([h'01', "S.test.HasSum"]), 177([h'02', "S.test.HasCount"])], [139(143([null, [136(h'01'), 136(h'02')]])), [130([136(h''), [2, 1]])]]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeDefAndValue, + // array, 2 items follow 0x82, // element 0: type definitions // array, 3 items follow @@ -7070,33 +7505,254 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // as tests may run in parallel newSimpleStructType := func() *cadence.StructType { - return &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + return cadence.NewStructType( + utils.TestLocation, + "Foo", + []cadence.Field{ { Identifier: "a", Type: cadence.StringType, }, }, - } + nil, + ) + } + + // ["a", "b"] with static type []&String + referenceToSimpleType := encodeTest{ + name: "array of reference to string", + val: cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType(cadence.UnauthorizedAccess, cadence.StringType), + )), + expected: []byte{ + // language=json, format=json-cdc + // {"value":[{"value":"a","type":"String"},{"value":"b","type":"String"}],"type":"Array"} + // + // language=edn, format=ccf + // 130([139(142([nil, 137(1)])), ["a", "b"]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type []&String + // tag + 0xd8, ccf.CBORTagVarsizedArrayType, + // tag + 0xd8, ccf.CBORTagReferenceType, + // array, 2 items follow + 0x82, + // nil + 0xf6, + // tag + 0xd8, ccf.CBORTagSimpleType, + // String type ID (1) + 0x01, + // array data without inlined type + // array, 2 items follow + 0x82, + // text, 1 byte follow + 0x61, + // "a" + 0x61, + // text, 1 byte follow + 0x61, + // "b" + 0x62, + }, + } + + // ["a", "b"] with static type []&String + entitlementConjunctionSetReferenceToSimpleType := encodeTest{ + name: "array of reference to string (entitlement conjunction set)", + val: cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"foo", "bar"}, + cadence.Conjunction, + ), + cadence.StringType, + ), + )), + expectedVal: cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"bar", "foo"}, + cadence.Conjunction, + ), + cadence.StringType, + ), + )), + expected: []byte{ + // language=json, format=json-cdc + // {"value":[{"value":"a","type":"String"},{"value":"b","type":"String"}],"type":"Array"} + // + // language=edn, format=ccf + // 130([139(142([146([0, ["bar", "foo"]]), 137(1)])), ["a", "b"]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type []&String + // tag + 0xd8, ccf.CBORTagVarsizedArrayType, + // tag + 0xd8, ccf.CBORTagReferenceType, + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessType, + // array, 2 items follow + 0x82, + // element 0: kind (Conjunction) + 0x00, + // element 1: entitlements + // array, 2 items follow + 0x82, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleType, + // String type ID (1) + 0x01, + // array data without inlined type + // array, 2 items follow + 0x82, + // text, 1 byte follow + 0x61, + // "a" + 0x61, + // text, 1 byte follow + 0x61, + // "b" + 0x62, + }, + } + + // ["a", "b"] with static type []&String + entitlementDisjunctionSetReferenceToSimpleType := encodeTest{ + name: "array of reference to string (entitlement disjuction set)", + val: cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"foo", "bar"}, + cadence.Disjunction, + ), + cadence.StringType, + ), + )), + expectedVal: cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"bar", "foo"}, + cadence.Disjunction, + ), + cadence.StringType, + ), + )), + expected: []byte{ + // language=json, format=json-cdc + // {"value":[{"value":"a","type":"String"},{"value":"b","type":"String"}],"type":"Array"} + // + // language=edn, format=ccf + // 130([139(142([146([1, ["bar", "foo"]]), 137(1)])), ["a", "b"]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type []&String + // tag + 0xd8, ccf.CBORTagVarsizedArrayType, + // tag + 0xd8, ccf.CBORTagReferenceType, + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessType, + // array, 2 items follow + 0x82, + // element 0: kind (Disjunction) + 0x01, + // element 1: entitlements + // array, 2 items follow + 0x82, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleType, + // String type ID (1) + 0x01, + // array data without inlined type + // array, 2 items follow + 0x82, + // text, 1 byte follow + 0x61, + // "a" + 0x61, + // text, 1 byte follow + 0x61, + // "b" + 0x62, + }, } // ["a", "b"] with static type []&String - referenceToSimpleType := encodeTest{ - name: "array of reference to string", + entitlementMapReferenceToSimpleType := encodeTest{ + name: "array of reference to string (entitlement map)", val: cadence.NewArray([]cadence.Value{ cadence.String("a"), cadence.String("b"), }).WithType(cadence.NewVariableSizedArrayType( - cadence.NewReferenceType(cadence.UnauthorizedAccess, cadence.StringType), + cadence.NewReferenceType( + cadence.NewEntitlementMapAuthorization( + nil, + common.TypeID("foo"), + ), + cadence.StringType, + ), )), expected: []byte{ // language=json, format=json-cdc // {"value":[{"value":"a","type":"String"},{"value":"b","type":"String"}],"type":"Array"} // // language=edn, format=ccf - // 130([139(142([false, 137(1)])), ["a", "b"]]) + // 130([139(142([147("foo"), 137(1)])), ["a", "b"]]) // // language=cbor, format=ccf // tag @@ -7110,8 +7766,12 @@ func TestEncodeValueOfReferenceType(t *testing.T) { 0xd8, ccf.CBORTagReferenceType, // array, 2 items follow 0x82, - // nil - 0xf6, + // tag + 0xd8, ccf.CBORTagEntitlementMapAuthorizationAccessType, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, // tag 0xd8, ccf.CBORTagSimpleType, // String type ID (1) @@ -7144,7 +7804,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"value":{"value":"a","type":"String"},"type":"Optional"},{"value":null,"type":"Optional"}],"type":"Array"} // // language=edn, format=ccf - // 130([139(142([false, 138(137(1))])), ["a", null]]) + // 130([139(142([nil, 138(137(1))])), ["a", null]]) // // language=cbor, format=ccf // tag @@ -7212,7 +7872,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"key":{"value":"one","type":"String"},"value":{"value":{"value":"7456","type":"Int128"},"type":"Optional"}}],"type":"Dictionary"} // // language=edn, format=ccf - // 130([141([137(1), 138(142([false, 137(9)]))]), ["one", 7456]]) + // 130([141([137(1), 138(142([nil, 137(9)]))]), ["one", 7456]]) // // language=cbor, format=ccf // tag @@ -7270,7 +7930,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"value":"a","type":"String"},{"value":"1","type":"UInt8"}],"type":"Array"} // // language=edn, format=ccf - // 130([139(142([false, 137(39)])), [130([137(1), "a"]), 130([137(12), 1])]]) + // 130([139(142([nil, 137(39)])), [130([137(1), "a"]), 130([137(12), 1])]]) // // language=cbor, format=ccf // tag @@ -7339,7 +7999,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"value":{"id":"S.test.Foo","fields":[{"value":{"value":"a","type":"String"},"name":"a"}]},"type":"Struct"},{"value":{"id":"S.test.Foo","fields":[{"value":{"value":"b","type":"String"},"name":"a"}]},"type":"Struct"}],"type":"Array"} // // language=edn, format=ccf - // 129([[160([h'', "S.test.Foo", [["a", 137(1)]]])], [139(142([false, 136(h'')])), [["a"], ["b"]]]]) + // 129([[160([h'', "S.test.Foo", [["a", 137(1)]]])], [139(142([nil, 136(h'')])), [["a"], ["b"]]]]) // // language=cbor, format=ccf // tag @@ -7432,7 +8092,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"value":"a","type":"String"},{"value":{"id":"S.test.Foo","fields":[{"value":{"value":"1","type":"Int"},"name":"a"}]},"type":"Struct"}],"type":"Array"} // // language=edn, format=ccf - // 129([[160([h'', "S.test.Foo", [["a", 137(1)]]])], [139(142([false, 137(39)])), [130([137(1), "a"]), 130([136(h''), ["b"]])]]]) + // 129([[160([h'', "S.test.Foo", [["a", 137(1)]]])], [139(142([nil, 137(39)])), [130([137(1), "a"]), 130([136(h''), ["b"]])]]]) // // language=cbor, format=ccf // tag @@ -7537,7 +8197,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"value":{"value":"a","type":"String"},"type":"Optional"},{"value":{"value":{"value":"b","type":"String"},"type":"Optional"},"type":"Optional"},{"value":null,"type":"Optional"}],"type":"Array"} // // language=edn, format=ccf - // 130([139(142([false, 138(137(39))])), [130([137(1), "a"]), 130([138(137(1)), "b"]), null]]) + // 130([139(142([nil, 138(137(39))])), [130([137(1), "a"]), 130([138(137(1)), "b"]), null]]) // // language=cbor, format=ccf // tag @@ -7609,7 +8269,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"value":{"value":"a","type":"String"},"type":"Optional"},{"value":{"value":{"value":"b","type":"String"},"type":"Optional"},"type":"Optional"},{"value":null,"type":"Optional"}],"type":"Array"} // // language=edn, format=ccf - // 130([139(138(142([false, 137(39)]))), [130([137(1), "a"]), 130([138(137(1)), "b"]), null]]) + // 130([139(138(142([nil, 137(39)]))), [130([137(1), "a"]), 130([138(137(1)), "b"]), null]]) // // language=cbor, format=ccf // tag @@ -7682,7 +8342,7 @@ func TestEncodeValueOfReferenceType(t *testing.T) { // {"value":[{"value":{"value":{"value":"a","type":"String"},"type":"Optional"},"type":"Optional"},{"value":{"value":{"value":{"value":"b","type":"String"},"type":"Optional"},"type":"Optional"},"type":"Optional"},{"value":null,"type":"Optional"}],"type":"Array"} // // language=edn, format=ccf - // 130([139(138(142([false, 138(137(39))]))), [130([137(1), "a"]), 130([138(137(1)), "b"]), null]]) + // 130([139(138(142([nil, 138(137(39))]))), [130([137(1), "a"]), 130([138(137(1)), "b"]), null]]) // // language=cbor, format=ccf // tag @@ -7742,6 +8402,9 @@ func TestEncodeValueOfReferenceType(t *testing.T) { testAllEncodeAndDecode(t, referenceToSimpleType, referenceToOptionalSimpleType, + entitlementConjunctionSetReferenceToSimpleType, + entitlementDisjunctionSetReferenceToSimpleType, + entitlementMapReferenceToSimpleType, referenceToStructType, referenceToAnyStructWithSimpleTypes, referenceToAnyStructWithStructType, @@ -7802,6 +8465,7 @@ func TestEncodeSimpleTypes(t *testing.T) { ccf.SimpleTypeAnyStruct: cadence.AnyStructType, ccf.SimpleTypeAnyStructAttachmentType: cadence.AnyStructAttachmentType, ccf.SimpleTypeAnyResourceAttachmentType: cadence.AnyResourceAttachmentType, + ccf.SimpleTypeHashableStruct: cadence.HashableStructType, ccf.SimpleTypeMetaType: cadence.MetaType, ccf.SimpleTypeVoid: cadence.VoidType, ccf.SimpleTypeNever: cadence.NeverType, @@ -7814,6 +8478,7 @@ func TestEncodeSimpleTypes(t *testing.T) { ccf.SimpleTypeSignedNumber: cadence.SignedNumberType, ccf.SimpleTypeInteger: cadence.IntegerType, ccf.SimpleTypeSignedInteger: cadence.SignedIntegerType, + ccf.SimpleTypeFixedSizeUnsignedInteger: cadence.FixedSizeUnsignedIntegerType, ccf.SimpleTypeFixedPoint: cadence.FixedPointType, ccf.SimpleTypeSignedFixedPoint: cadence.SignedFixedPointType, ccf.SimpleTypeInt: cadence.IntType, @@ -8129,19 +8794,56 @@ func TestEncodeType(t *testing.T) { }) - t.Run("with static struct with no field", func(t *testing.T) { + t.Run("with static InclusiveRange", func(t *testing.T) { t.Parallel() testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "S", - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, + StaticType: &cadence.InclusiveRangeType{ + ElementType: cadence.IntType, }, }, + []byte{ + // language=json, format=json-cdc + // {"type":"Type","value":{"staticType":{"kind":"InclusiveRange", "element" : {"kind" : "Int"}}}} + // + // language=edn, format=ccf + // 130([137(41), 194([185(4)])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagInclusiveRangeTypeValue, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + }, + ) + + }) + + t.Run("with static struct with no field", func(t *testing.T) { + t.Parallel() + + testEncodeAndDecode( + t, + cadence.TypeValue{ + StaticType: cadence.NewStructType( + utils.TestLocation, + "S", + []cadence.Field{}, + [][]cadence.Parameter{}, + ), + }, []byte{ // language=json, format=json-cdc // {"value":{"staticType":{"type":"","kind":"Struct","typeID":"S.test.S","fields":[],"initializers":[]}},"type":"Type"} @@ -8184,20 +8886,20 @@ func TestEncodeType(t *testing.T) { t.Parallel() val := cadence.TypeValue{ - StaticType: &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "S", - Fields: []cadence.Field{ + StaticType: cadence.NewStructType( + utils.TestLocation, + "S", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, {Identifier: "bar", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), } expectedCBOR := []byte{ @@ -8307,20 +9009,20 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecodeEx( t, cadence.TypeValue{ - StaticType: &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "S", - Fields: []cadence.Field{ + StaticType: cadence.NewStructType( + utils.TestLocation, + "S", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, {Identifier: "bar", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, []byte{ // language=json, format=json-cdc @@ -8408,20 +9110,20 @@ func TestEncodeType(t *testing.T) { 0x01, }, cadence.TypeValue{ - StaticType: &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "S", - Fields: []cadence.Field{ + StaticType: cadence.NewStructType( + utils.TestLocation, + "S", + []cadence.Field{ {Identifier: "bar", Type: cadence.IntType}, {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, ) }) @@ -8429,30 +9131,30 @@ func TestEncodeType(t *testing.T) { t.Run("with static resource of composite fields and initializers", func(t *testing.T) { t.Parallel() - fooTy := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, - } + fooTy := cadence.NewResourceType( + utils.TestLocation, + "Foo", + []cadence.Field{}, + [][]cadence.Parameter{}, + ) - fooTy2 := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo2", - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, - } + fooTy2 := cadence.NewResourceType( + utils.TestLocation, + "Foo2", + []cadence.Field{}, + [][]cadence.Parameter{}, + ) - barTy := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Bar", - Fields: []cadence.Field{ + barTy := cadence.NewResourceType( + utils.TestLocation, + "Bar", + []cadence.Field{ { Identifier: "foo1", Type: fooTy, }, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { cadence.Parameter{ Type: fooTy2, @@ -8461,7 +9163,7 @@ func TestEncodeType(t *testing.T) { }, }, }, - } + ) testEncodeAndDecode( t, @@ -8569,19 +9271,19 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "R", - Fields: []cadence.Field{ + StaticType: cadence.NewResourceType( + utils.TestLocation, + "R", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, []byte{ // language=json, format=json-cdc @@ -8667,19 +9369,19 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ContractType{ - Location: utils.TestLocation, - QualifiedIdentifier: "C", - Fields: []cadence.Field{ + StaticType: cadence.NewContractType( + utils.TestLocation, + "C", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, []byte{ // language=json, format=json-cdc @@ -8765,19 +9467,19 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.StructInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "S", - Fields: []cadence.Field{ + StaticType: cadence.NewStructInterfaceType( + utils.TestLocation, + "S", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, []byte{ // language=json, format=json-cdc @@ -8863,19 +9565,19 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ResourceInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "R", - Fields: []cadence.Field{ + StaticType: cadence.NewResourceInterfaceType( + utils.TestLocation, + "R", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, []byte{ // language=json, format=json-cdc @@ -8961,19 +9663,19 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ContractInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "C", - Fields: []cadence.Field{ + StaticType: cadence.NewContractInterfaceType( + utils.TestLocation, + "C", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, []byte{ // language=json, format=json-cdc @@ -9059,24 +9761,224 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "E", - Fields: []cadence.Field{ + StaticType: cadence.NewEventType( + utils.TestLocation, + "E", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializer: []cadence.Parameter{ + []cadence.Parameter{ {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, - }, + ), + }, + []byte{ + // language=json, format=json-cdc + // {"type":"Type", "value": {"staticType": {"kind": "Event", "type" : "", "typeID" : "S.test.E", "fields" : [ {"id" : "foo", "type": {"kind" : "Int"} } ], "initializers" : [[{"label" : "foo", "id" : "bar", "type": {"kind" : "Int"}}, {"label" : "qux", "id" : "baz", "type": {"kind" : "String"}}]] } } } + // + // language=edn, format=ccf + // 130([137(41), 210([h'', "S.test.E", null, [["foo", 185(4)]], [[["foo", "bar", 185(4)], ["qux", "baz", 185(1)]]]])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagEventTypeValue, + // array, 5 elements follow + 0x85, + // bytes, 0 bytes follow + 0x40, + // string, 8 bytes follow + 0x68, + // S.test.E + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x45, + // type (nil for event) + 0xf6, + // fields + // array, 1 element follows + 0x81, + // array, 2 elements follow + 0x82, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + // initializers + // array, 1 elements follow + 0x81, + // array, 2 element follows + 0x82, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // string, 3 bytes follow + 0x63, + // bar + 0x62, 0x61, 0x72, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // qux + 0x71, 0x75, 0x78, + // string, 3 bytes follow + 0x63, + // baz + 0x62, 0x61, 0x7a, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type (1) + 0x01, + }, + ) + }) + + t.Run("with static enum", func(t *testing.T) { + t.Parallel() + + testEncodeAndDecode( + t, + cadence.TypeValue{ + StaticType: cadence.NewEnumType( + utils.TestLocation, + "E", + cadence.StringType, + []cadence.Field{ + {Identifier: "foo", Type: cadence.IntType}, + }, + [][]cadence.Parameter{ + { + {Label: "foo", Identifier: "bar", Type: cadence.IntType}, + {Label: "qux", Identifier: "baz", Type: cadence.StringType}, + }, + }, + ), + }, + []byte{ + // language=json, format=json-cdc + // {"value":{"staticType":{"type":{"kind":"String"},"kind":"Enum","typeID":"S.test.E","fields":[{"type":{"kind":"Int"},"id":"foo"}],"initializers":[[{"type":{"kind":"Int"},"label":"foo","id":"bar"}],[{"type":{"kind":"String"},"label":"qux","id":"baz"}]]}},"type":"Type"} + // + // language=edn, format=ccf + // 130([137(41), 212([h'', "S.test.E", 185(1), [["foo", 185(4)]], [[["foo", "bar", 185(4)], ["qux", "baz", 185(1)]]]])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagEnumTypeValue, + // array, 5 elements follow + 0x85, + // bytes, 0 bytes follow + 0x40, + // string, 8 bytes follow + 0x68, + // S.test.E + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x45, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type ID (1) + 0x01, + // fields + // array, 1 element follows + 0x81, + // array, 2 elements follow + 0x82, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + // initializers + // array, 1 elements follow + 0x81, + // array, 2 element follows + 0x82, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // string, 3 bytes follow + 0x63, + // bar + 0x62, 0x61, 0x72, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // qux + 0x71, 0x75, 0x78, + // string, 3 bytes follow + 0x63, + // bax + 0x62, 0x61, 0x7a, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type (1) + 0x01, + }, + ) + }) + + t.Run("with static attachment of simple base type", func(t *testing.T) { + t.Parallel() + + testEncodeAndDecode( + t, + cadence.TypeValue{ + StaticType: cadence.NewAttachmentType( + utils.TestLocation, + "A", + cadence.StringType, + []cadence.Field{ + {Identifier: "foo", Type: cadence.IntType}, + }, + [][]cadence.Parameter{ + { + {Label: "foo", Identifier: "bar", Type: cadence.IntType}, + {Label: "qux", Identifier: "baz", Type: cadence.StringType}, + }, + }, + ), }, []byte{ // language=json, format=json-cdc - // {"type":"Type", "value": {"staticType": {"kind": "Event", "type" : "", "typeID" : "S.test.E", "fields" : [ {"id" : "foo", "type": {"kind" : "Int"} } ], "initializers" : [[{"label" : "foo", "id" : "bar", "type": {"kind" : "Int"}}, {"label" : "qux", "id" : "baz", "type": {"kind" : "String"}}]] } } } + // Not supported yet // // language=edn, format=ccf - // 130([137(41), 210([h'', "S.test.E", null, [["foo", 185(4)]], [[["foo", "bar", 185(4)], ["qux", "baz", 185(1)]]]])]) + // 130([137(41), 213([h'', "S.test.A", 185(1), [["foo", 185(4)]], [[["foo", "bar", 185(4)], ["qux", "baz", 185(1)]]]])]) // // language=cbor, format=ccf // tag @@ -9088,17 +9990,19 @@ func TestEncodeType(t *testing.T) { // Meta type ID (41) 0x18, 0x29, // tag - 0xd8, ccf.CBORTagEventTypeValue, + 0xd8, ccf.CBORTagAttachmentTypeValue, // array, 5 elements follow 0x85, // bytes, 0 bytes follow 0x40, // string, 8 bytes follow 0x68, - // S.test.E - 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x45, - // type (nil for event) - 0xf6, + // S.test.A + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type ID (1) + 0x01, // fields // array, 1 element follows 0x81, @@ -9139,7 +10043,7 @@ func TestEncodeType(t *testing.T) { 0x71, 0x75, 0x78, // string, 3 bytes follow 0x63, - // baz + // bax 0x62, 0x61, 0x7a, // tag 0xd8, ccf.CBORTagSimpleTypeValue, @@ -9149,33 +10053,42 @@ func TestEncodeType(t *testing.T) { ) }) - t.Run("with static enum", func(t *testing.T) { + t.Run("with static attachment of resource base type", func(t *testing.T) { t.Parallel() + baseType := cadence.NewResourceType( + utils.TestLocation, + "FooBase", + []cadence.Field{ + {Identifier: "bar", Type: cadence.StringType}, + }, + [][]cadence.Parameter{}, + ) + testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.EnumType{ - Location: utils.TestLocation, - QualifiedIdentifier: "E", - RawType: cadence.StringType, - Fields: []cadence.Field{ + StaticType: cadence.NewAttachmentType( + utils.TestLocation, + "A", + baseType, + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, }, - }, + ), }, []byte{ // language=json, format=json-cdc - // {"value":{"staticType":{"type":{"kind":"String"},"kind":"Enum","typeID":"S.test.E","fields":[{"type":{"kind":"Int"},"id":"foo"}],"initializers":[[{"type":{"kind":"Int"},"label":"foo","id":"bar"}],[{"type":{"kind":"String"},"label":"qux","id":"baz"}]]}},"type":"Type"} + // Not supported yet // // language=edn, format=ccf - // 130([137(41), 212([h'', "S.test.E", 185(1), [["foo", 185(4)]], [[["foo", "bar", 185(4)], ["qux", "baz", 185(1)]]]])]) + // 130([137(41), 213([h'', "S.test.A", 209([h'01', "S.test.FooBase", null, [["bar", 185(1)]], []]), [["foo", 185(4)]], [[["foo", "bar", 185(4)], ["qux", "baz", 185(1)]]]])]) // // language=cbor, format=ccf // tag @@ -9187,19 +10100,47 @@ func TestEncodeType(t *testing.T) { // Meta type ID (41) 0x18, 0x29, // tag - 0xd8, ccf.CBORTagEnumTypeValue, + 0xd8, ccf.CBORTagAttachmentTypeValue, // array, 5 elements follow 0x85, // bytes, 0 bytes follow 0x40, // string, 8 bytes follow 0x68, - // S.test.E - 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x45, + // S.test.A + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, + // base type + // tag + 0xd8, ccf.CBORTagResourceTypeValue, + // array, 5 elements follow + 0x85, + // bytes, 1 bytes follow + 0x41, + // 1 + 0x01, + // string, 14 bytes follow + 0x6e, + // S.test.FooBase + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, 0x42, 0x61, 0x73, 0x65, + // null + 0xf6, + // fields + // array, 1 element follow + 0x81, + // field 0 ["bar", string] + // array, 2 element follow + 0x82, + // string, 3 bytes follow + 0x63, + // bar + 0x62, 0x61, 0x72, // tag 0xd8, ccf.CBORTagSimpleTypeValue, - // String type ID (1) + // string type 0x01, + // initializers + // array, 0 element follow + 0x80, // fields // array, 1 element follows 0x81, @@ -9266,7 +10207,7 @@ func TestEncodeType(t *testing.T) { // {"type":"Type","value":{"staticType":{"kind":"Reference", "type" : {"kind" : "Int"}, "authorized" : false}}}` // // language=edn, format=ccf - // 130([137(41), 190([false, 185(4)])]) + // 130([137(41), 190([nil, 185(4)])]) // // language=cbor, format=ccf // tag @@ -9292,6 +10233,222 @@ func TestEncodeType(t *testing.T) { }) + t.Run("with static &int (entitlement conjunction set)", func(t *testing.T) { + t.Parallel() + + testEncodeAndDecodeEx( + t, + cadence.TypeValue{ + StaticType: &cadence.ReferenceType{ + Authorization: &cadence.EntitlementSetAuthorization{ + Kind: cadence.Conjunction, + Entitlements: []common.TypeID{"foo", "bar"}, + }, + Type: cadence.IntType, + }, + }, + []byte{ + // language=json, format=json-cdc + // {"value":{"staticType":{"type":{"kind":"Int"},"kind":"Reference","authorization":{"kind":"EntitlementConjunctionSet","entitlements":[{"type":null,"kind":"Entitlement","typeID":"foo","fields":null,"initializers":null},{"type":null,"kind":"Entitlement","typeID":"bar","fields":null,"initializers":null}]}}},"type":"Type"} + // + // language=edn, format=ccf + // 130([137(41), 190([195([0, ["bar", "foo"]]), 185(4)])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagReferenceTypeValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessTypeValue, + // array, 2 elements follow + 0x82, + // element 0: kind (conjunction) + 0x00, + // array, 2 elements follow + 0x82, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type ID (4) + 0x04, + }, + cadence.TypeValue{ + StaticType: &cadence.ReferenceType{ + Authorization: &cadence.EntitlementSetAuthorization{ + Kind: cadence.Conjunction, + Entitlements: []common.TypeID{"bar", "foo"}, + }, + Type: cadence.IntType, + }, + }, + ) + + }) + + t.Run("with static &int (entitlement disjunction set)", func(t *testing.T) { + t.Parallel() + + testEncodeAndDecodeEx( + t, + cadence.TypeValue{ + StaticType: &cadence.ReferenceType{ + Authorization: &cadence.EntitlementSetAuthorization{ + Kind: cadence.Disjunction, + Entitlements: []common.TypeID{"foo", "bar"}, + }, + Type: cadence.IntType, + }, + }, + []byte{ + // language=json, format=json-cdc + // {"value":{"staticType":{"type":{"kind":"Int"},"kind":"Reference","authorization":{"kind":"EntitlementDisjunctionSet","entitlements":[{"type":null,"kind":"Entitlement","typeID":"foo","fields":null,"initializers":null},{"type":null,"kind":"Entitlement","typeID":"bar","fields":null,"initializers":null}]}}},"type":"Type"} + // + // language=edn, format=ccf + // 130([137(41), 190([195([1, ["bar", "foo"]]), 185(4)])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagReferenceTypeValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessTypeValue, + // array, 2 elements follow + 0x82, + // element 0: kind (disjuction) + 0x01, + // array, 2 elements follow + 0x82, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type ID (4) + 0x04, + }, + cadence.TypeValue{ + StaticType: &cadence.ReferenceType{ + Authorization: &cadence.EntitlementSetAuthorization{ + Kind: cadence.Disjunction, + Entitlements: []common.TypeID{"bar", "foo"}, + }, + Type: cadence.IntType, + }, + }, + ) + + }) + + t.Run("with static &int (entitlement map)", func(t *testing.T) { + t.Parallel() + + testEncodeAndDecode( + t, + cadence.TypeValue{ + StaticType: &cadence.ReferenceType{ + Authorization: cadence.EntitlementMapAuthorization{ + TypeID: "foo", + }, + Type: cadence.IntType, + }, + }, + []byte{ + // language=json, format=json-cdc + // {"value":{"staticType":{"type":{"kind":"Int"},"kind":"Reference","authorization":{"kind":"EntitlementMapAuthorization","entitlements":[{"type":null,"kind":"EntitlementMap","typeID":"foo","fields":null,"initializers":null}]}}},"type":"Type"} + // + // language=edn, format=ccf + // 130([137(41), 190([196("foo"), 185(4)])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagReferenceTypeValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementMapAuthorizationAccessTypeValue, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type ID (4) + 0x04, + }, + ) + + }) + + t.Run("with static HashableStruct", func(t *testing.T) { + t.Parallel() + + testEncodeAndDecode( + t, + cadence.TypeValue{ + StaticType: cadence.HashableStructType, + }, + []byte{ + // language=json, format=json-cdc + // {"type":"Type","value":{"staticType":{"kind":"Struct", "type" : {"kind" : "HashableStruct"}}}} + // + // language=edn, format=ccf + // 130([137(41), 185(56)]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // HashableStruct type (97) + 0x18, 0x61, + }, + ) + }) + t.Run("with static function", func(t *testing.T) { t.Parallel() @@ -9306,14 +10463,15 @@ func TestEncodeType(t *testing.T) { {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, ReturnType: cadence.IntType, + Purity: cadence.FunctionPurityView, }, }, []byte{ // language=json, format=json-cdc - // {"value":{"staticType":{"kind":"Function","typeParameters":[{"name":"T","typeBound":{"kind":"AnyStruct"}}],"parameters":[{"type":{"kind":"String"},"label":"qux","id":"baz"}],"return":{"kind":"Int"}}},"type":"Type"} + // {"value":{"staticType":{"kind":"Function","typeParameters":[{"name":"T","typeBound":{"kind":"AnyStruct"}}],"parameters":[{"type":{"kind":"String"},"label":"qux","id":"baz"}],"return":{"kind":"Int"},"purity":"view"}},"type":"Type"} // // language=edn, format=ccf - // 130([137(41), 193([[["T", 185(39)]], [["qux", "baz", 185(1)]], 185(4)])]) + // 130([137(41), 193([[["T", 185(39)]], [["qux", "baz", 185(1)]], 185(4), 1])]) // // language=cbor, format=ccf // tag @@ -9326,8 +10484,8 @@ func TestEncodeType(t *testing.T) { 0x18, 0x29, // tag 0xd8, ccf.CBORTagFunctionTypeValue, - // array, 3 elements follow - 0x83, + // array, 4 elements follow + 0x84, // array, 1 elements follow 0x81, // array, 2 elements follow @@ -9360,6 +10518,8 @@ func TestEncodeType(t *testing.T) { 0xd8, ccf.CBORTagSimpleTypeValue, // Int type ID (4) 0x04, + // Purity 1 + 0x01, }, ) }) @@ -9385,7 +10545,7 @@ func TestEncodeType(t *testing.T) { // {"value":{"staticType":{"kind":"Function","typeParameters":[{"name":"T","typeBound":null}],"parameters":[{"type":{"kind":"String"},"label":"qux","id":"baz"}],"return":{"kind":"Int"}}},"type":"Type"} // // language=edn, format=ccf - // 130([137(41), 193([[["T", null]], [["qux", "baz", 185(1)]], 185(4)])]) + // 130([137(41), 193([[["T", null]], [["qux", "baz", 185(1)]], 185(4), 0])]) // // language=cbor, format=ccf // tag @@ -9398,8 +10558,8 @@ func TestEncodeType(t *testing.T) { 0x18, 0x29, // tag 0xd8, ccf.CBORTagFunctionTypeValue, - // array, 3 elements follow - 0x83, + // array, 4 elements follow + 0x84, // array, 1 elements follow 0x81, // array, 2 elements follow @@ -9430,6 +10590,8 @@ func TestEncodeType(t *testing.T) { 0xd8, ccf.CBORTagSimpleTypeValue, // Int type ID (4) 0x04, + // purity 0 + 0x00, }, ) }) @@ -9885,16 +11047,17 @@ func TestEncodeCapability(t *testing.T) { t.Run("array of unparameterized Capability", func(t *testing.T) { t.Parallel() - simpleStructType := &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + simpleStructType := cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "bar", Type: cadence.IntType, }, }, - } + nil, + ) capability1 := cadence.Capability{ ID: 42, @@ -10551,27 +11714,27 @@ func TestExportRecursiveType(t *testing.T) { t.Parallel() - ty := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "foo", - }, + fields := []cadence.Field{ + { + Identifier: "foo", }, } + ty := cadence.NewResourceType( + utils.TestLocation, + "Foo", + fields, + nil, + ) - ty.Fields[0].Type = &cadence.OptionalType{ + fields[0].Type = &cadence.OptionalType{ Type: ty, } testEncode( t, - cadence.Resource{ - Fields: []cadence.Value{ - cadence.Optional{}, - }, - }.WithType(ty), + cadence.NewResource([]cadence.Value{ + cadence.Optional{}, + }).WithType(ty), []byte{ // language=json, format=json-cdc // {"type":"Resource","value":{"id":"S.test.Foo","fields":[{"name":"foo","value":{"type": "Optional","value":null}}]}} @@ -10644,18 +11807,19 @@ func TestExportTypeValueRecursiveType(t *testing.T) { t.Parallel() - ty := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "foo", - }, + fields := []cadence.Field{ + { + Identifier: "foo", }, - Initializers: [][]cadence.Parameter{}, } + ty := cadence.NewResourceType( + utils.TestLocation, + "Foo", + fields, + [][]cadence.Parameter{}, + ) - ty.Fields[0].Type = &cadence.OptionalType{ + fields[0].Type = &cadence.OptionalType{ Type: ty, } @@ -10797,14 +11961,16 @@ func TestExportTypeValueRecursiveType(t *testing.T) { t.Parallel() // structType is generated by fuzzer. + fields := []cadence.Field{{}} + structType := cadence.NewStructType( common.StringLocation("foo"), "Foo", - []cadence.Field{{}}, + fields, [][]cadence.Parameter{{{}}}, ) - structType.Fields[0] = cadence.Field{ + fields[0] = cadence.Field{ Type: &cadence.OptionalType{Type: structType}, Identifier: "aa", } @@ -10892,24 +12058,24 @@ func TestExportTypeValueRecursiveType(t *testing.T) { t.Parallel() - fooTy := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, - } + fooTy := cadence.NewResourceType( + utils.TestLocation, + "Foo", + []cadence.Field{}, + [][]cadence.Parameter{}, + ) - fooTy2 := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo2", - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, - } + fooTy2 := cadence.NewResourceType( + utils.TestLocation, + "Foo2", + []cadence.Field{}, + [][]cadence.Parameter{}, + ) - barTy := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Bar", - Fields: []cadence.Field{ + barTy := cadence.NewResourceType( + utils.TestLocation, + "Bar", + []cadence.Field{ { Identifier: "foo1", Type: fooTy, @@ -10919,7 +12085,7 @@ func TestExportTypeValueRecursiveType(t *testing.T) { Type: fooTy, }, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ { cadence.Parameter{ Type: &cadence.OptionalType{Type: fooTy}, @@ -10933,7 +12099,7 @@ func TestExportTypeValueRecursiveType(t *testing.T) { }, }, }, - } + ) testEncodeAndDecode( t, @@ -11579,10 +12745,10 @@ func testDecode(t *testing.T, actualCBOR []byte, expectedVal cadence.Value) { // TODO: make resource (illegal nesting) func newResourceStructType() *cadence.StructType { - return &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + return cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "a", Type: cadence.StringType, @@ -11592,27 +12758,29 @@ func newResourceStructType() *cadence.StructType { Type: newFooResourceType(), }, }, - } + nil, + ) } func newFooResourceType() *cadence.ResourceType { - return &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + return cadence.NewResourceType( + utils.TestLocation, + "Foo", + []cadence.Field{ { Identifier: "bar", Type: cadence.IntType, }, }, - } + nil, + ) } func newFoooResourceTypeWithAbstractField() *cadence.ResourceType { - return &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Fooo", - Fields: []cadence.Field{ + return cadence.NewResourceType( + utils.TestLocation, + "Fooo", + []cadence.Field{ { Identifier: "bar", Type: cadence.IntType, @@ -11622,7 +12790,8 @@ func newFoooResourceTypeWithAbstractField() *cadence.ResourceType { Type: cadence.AnyStructType, }, }, - } + nil, + ) } func TestEncodeBuiltinComposites(t *testing.T) { @@ -11637,10 +12806,12 @@ func TestEncodeBuiltinComposites(t *testing.T) { testCases := []testCase{ { name: "Struct", - typ: &cadence.StructType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewStructType( + nil, + "Foo", + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"Struct","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11679,10 +12850,12 @@ func TestEncodeBuiltinComposites(t *testing.T) { }, { name: "StructInterface", - typ: &cadence.StructInterfaceType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewStructInterfaceType( + nil, + "Foo", + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"StructInterface","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11721,10 +12894,12 @@ func TestEncodeBuiltinComposites(t *testing.T) { }, { name: "Resource", - typ: &cadence.ResourceType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewResourceType( + nil, + "Foo", + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"Resource","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11763,10 +12938,12 @@ func TestEncodeBuiltinComposites(t *testing.T) { }, { name: "ResourceInterface", - typ: &cadence.ResourceInterfaceType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewResourceInterfaceType( + nil, + "Foo", + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"ResourceInterface","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11805,10 +12982,12 @@ func TestEncodeBuiltinComposites(t *testing.T) { }, { name: "Contract", - typ: &cadence.ContractType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewContractType( + nil, + "Foo", + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"Contract","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11847,10 +13026,12 @@ func TestEncodeBuiltinComposites(t *testing.T) { }, { name: "ContractInterface", - typ: &cadence.ContractInterfaceType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewContractInterfaceType( + nil, + "Foo", + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"ContractInterface","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11889,10 +13070,13 @@ func TestEncodeBuiltinComposites(t *testing.T) { }, { name: "Enum", - typ: &cadence.EnumType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewEnumType( + nil, + "Foo", + nil, + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"Enum","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11931,10 +13115,12 @@ func TestEncodeBuiltinComposites(t *testing.T) { }, { name: "Event", - typ: &cadence.EventType{ - Location: nil, - QualifiedIdentifier: "Foo", - }, + typ: cadence.NewEventType( + nil, + "Foo", + nil, + nil, + ), encoded: []byte{ // language=json, format=json-cdc // {"type":"Type","value":{"staticType":{"kind":"Event","typeID":"Foo","fields":[],"initializers":[],"type":""}}} @@ -11993,17 +13179,19 @@ func TestExportFunctionValue(t *testing.T) { t.Parallel() - ty := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "foo", - }, + fields := []cadence.Field{ + { + Identifier: "foo", }, } + ty := cadence.NewResourceType( + utils.TestLocation, + "Foo", + fields, + nil, + ) - ty.Fields[0].Type = &cadence.OptionalType{ + fields[0].Type = &cadence.OptionalType{ Type: ty, } @@ -12013,14 +13201,15 @@ func TestExportFunctionValue(t *testing.T) { FunctionType: &cadence.FunctionType{ Parameters: []cadence.Parameter{}, ReturnType: cadence.VoidType, + Purity: cadence.FunctionPurityView, }, }, []byte{ // language=json, format=json-cdc - // {"value":{"functionType":{"kind":"Function","typeParameters":[],"parameters":[],"return":{"kind":"Void"}}},"type":"Function"} + // {"value":{"functionType":{"kind":"Function","typeParameters":[],"parameters":[],"return":{"kind":"Void"},"purity":"view"}},"type":"Function"} // // language=edn, format=ccf - // 130([137(51), [[], [], 185(50)]]) + // 130([137(51), [[], [], 185(50), 1]]) // // language=cbor, format=ccf // tag @@ -12031,8 +13220,8 @@ func TestExportFunctionValue(t *testing.T) { 0xd8, ccf.CBORTagSimpleType, // Function type ID (51) 0x18, 0x33, - // array, 3 elements follow - 0x83, + // array, 4 elements follow + 0x84, // element 0: type parameters 0x80, // element 1: parameters @@ -12043,6 +13232,8 @@ func TestExportFunctionValue(t *testing.T) { 0xd8, ccf.CBORTagSimpleTypeValue, // Void type ID (50) 0x18, 0x32, + // element 3: purity + 0x01, }, ) } @@ -12871,10 +14062,10 @@ func newFlowFeesFeesDeductedEventType() *cadence.EventType { address, _ := common.HexToAddress("f919ee77447b7497") location := common.NewAddressLocation(nil, address, "FlowFees") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowFees.FeesDeducted", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowFees.FeesDeducted", + []cadence.Field{ { Identifier: "amount", Type: cadence.UFix64Type, @@ -12888,7 +14079,8 @@ func newFlowFeesFeesDeductedEventType() *cadence.EventType { Type: cadence.UFix64Type, }, }, - } + nil, + ) } func createFlowFeesFeesDeductedEvent() cadence.Event { @@ -12915,16 +14107,17 @@ func newFlowFeesTokensWithdrawnEventType() *cadence.EventType { address, _ := common.HexToAddress("f919ee77447b7497") location := common.NewAddressLocation(nil, address, "FlowFees") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowFees.TokensWithdrawn", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowFees.TokensWithdrawn", + []cadence.Field{ { Identifier: "amount", Type: cadence.UFix64Type, }, }, - } + nil, + ) } func createFlowFeesTokensWithdrawnEvent() cadence.Event { @@ -12947,10 +14140,10 @@ func newFlowTokenTokensDepositedEventType() *cadence.EventType { address, _ := common.HexToAddress("1654653399040a61") location := common.NewAddressLocation(nil, address, "FlowToken") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowToken.TokensDeposited", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowToken.TokensDeposited", + []cadence.Field{ { Identifier: "amount", Type: cadence.UFix64Type, @@ -12962,7 +14155,8 @@ func newFlowTokenTokensDepositedEventType() *cadence.EventType { }, }, }, - } + nil, + ) } func createFlowTokenTokensDepositedEventNoReceiver() cadence.Event { @@ -13005,16 +14199,17 @@ func newFlowTokenTokensMintedEventType() *cadence.EventType { address, _ := common.HexToAddress("1654653399040a61") location := common.NewAddressLocation(nil, address, "FlowToken") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowToken.TokensMinted", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowToken.TokensMinted", + []cadence.Field{ { Identifier: "amount", Type: cadence.UFix64Type, }, }, - } + nil, + ) } func createFlowTokenTokensMintedEvent() cadence.Event { @@ -13037,10 +14232,10 @@ func newFlowTokenTokensWithdrawnEventType() *cadence.EventType { address, _ := common.HexToAddress("1654653399040a61") location := common.NewAddressLocation(nil, address, "FlowToken") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowToken.TokensWithdrawn", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowToken.TokensWithdrawn", + []cadence.Field{ { Identifier: "amount", Type: cadence.UFix64Type, @@ -13052,7 +14247,8 @@ func newFlowTokenTokensWithdrawnEventType() *cadence.EventType { }, }, }, - } + nil, + ) } func createFlowTokenTokensWithdrawnEvent() cadence.Event { @@ -13079,10 +14275,10 @@ func newFlowIDTableStakingDelegatorRewardsPaidEventType() *cadence.EventType { address, _ := common.HexToAddress("8624b52f9ddcd04a") location := common.NewAddressLocation(nil, address, "FlowIDTableStaking") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowIDTableStaking.DelegatorRewardsPaid", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowIDTableStaking.DelegatorRewardsPaid", + []cadence.Field{ { Identifier: "nodeID", Type: cadence.StringType, @@ -13096,7 +14292,8 @@ func newFlowIDTableStakingDelegatorRewardsPaidEventType() *cadence.EventType { Type: cadence.UFix64Type, }, }, - } + nil, + ) } func createFlowIDTableStakingDelegatorRewardsPaidEvent() cadence.Event { @@ -13123,10 +14320,10 @@ func newFlowIDTableStakingEpochTotalRewardsPaidEventType() *cadence.EventType { address, _ := common.HexToAddress("8624b52f9ddcd04a") location := common.NewAddressLocation(nil, address, "FlowIDTableStaking") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowIDTableStaking.EpochTotalRewardsPaid", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowIDTableStaking.EpochTotalRewardsPaid", + []cadence.Field{ { Identifier: "total", Type: cadence.UFix64Type, @@ -13144,7 +14341,8 @@ func newFlowIDTableStakingEpochTotalRewardsPaidEventType() *cadence.EventType { Type: cadence.UFix64Type, }, }, - } + nil, + ) } func createFlowIDTableStakingEpochTotalRewardsPaidEvent() cadence.Event { @@ -13173,16 +14371,17 @@ func newFlowIDTableStakingNewWeeklyPayoutEventType() *cadence.EventType { address, _ := common.HexToAddress("8624b52f9ddcd04a") location := common.NewAddressLocation(nil, address, "FlowIDTableStaking") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowIDTableStaking.NewWeeklyPayout", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowIDTableStaking.NewWeeklyPayout", + []cadence.Field{ { Identifier: "newPayout", Type: cadence.UFix64Type, }, }, - } + nil, + ) } func createFlowIDTableStakingNewWeeklyPayoutEvent() cadence.Event { @@ -13205,10 +14404,10 @@ func newFlowIDTableStakingRewardsPaidEventType() *cadence.EventType { address, _ := common.HexToAddress("8624b52f9ddcd04a") location := common.NewAddressLocation(nil, address, "FlowIDTableStaking") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowIDTableStaking.RewardsPaid", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowIDTableStaking.RewardsPaid", + []cadence.Field{ { Identifier: "nodeID", Type: cadence.StringType, @@ -13218,7 +14417,8 @@ func newFlowIDTableStakingRewardsPaidEventType() *cadence.EventType { Type: cadence.UFix64Type, }, }, - } + nil, + ) } func createFlowIDTableStakingRewardsPaidEvent() cadence.Event { @@ -13633,18 +14833,231 @@ func TestDecodeInvalidData(t *testing.T) { // null 0xf6, // array data without inlined type definition - // array, 2 items follow - 0x82, - // string, 1 bytes follow - 0x61, - // a - 0x61, - // tag (big num) + // array, 2 items follow + 0x82, + // string, 1 bytes follow + 0x61, + // a + 0x61, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 1 + 0x01, + }, + }, + { + name: "nil element type in InclusiveRange type", + data: []byte{ + // language=edn, format=ccf + // 130([145(nil), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // null + 0xf6, + // array data without inlined type definition + // array, 3 items follow + 0x83, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 10 + 0xa, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 20 + 0x14, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 5 + 0x5, + }, + }, + { + name: "invalid array head in InclusiveRange value", + data: []byte{ + // language=edn, format=ccf + // 130([145(4), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int type ID (4) + 0x04, + // primitive type where array was expected + 0xe0, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 10 + 0xa, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 20 + 0x14, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 5 + 0x5, + }, + }, + { + name: "incorrect member count (2 instead of 3) in InclusiveRange value", + data: []byte{ + // language=edn, format=ccf + // 130([145(4), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int type ID (4) + 0x04, + // array data without inlined type definition + // array, 2 items follow where 3 were expected + 0x82, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 10 + 0xa, + // tag (big num) + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 20 + 0x14, + }, + }, + { + name: "invalid start value in InclusiveRange value", + data: []byte{ + // language=edn, format=ccf + // 130([145(5), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int8 type ID (5) + 0x05, + // array data without inlined type definition + // array, 3 items follow + 0x83, + // tag (big num) but expected an Int8 + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 10 + 0xa, + // 20 + 0x14, + // 5 + 0x05, + }, + }, + { + name: "invalid end value in InclusiveRange value", + data: []byte{ + // language=edn, format=ccf + // 130([145(5), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int8 type ID (5) + 0x05, + // array data without inlined type definition + // array, 3 items follow + 0x83, + // 10 + 0xa, + // tag (big num) but expected an Int8 + 0xc2, + // bytes, 1 bytes follow + 0x41, + // 20 + 0x14, + // 5 + 0x05, + }, + }, + { + name: "invalid step value in InclusiveRange value", + data: []byte{ + // language=edn, format=ccf + // 130([145(5), [10, 20, 5]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type (InclusiveRange) + // tag + 0xd8, ccf.CBORTagInclusiveRangeType, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Int8 type ID (5) + 0x05, + // array data without inlined type definition + // array, 3 items follow + 0x83, + // 10 + 0xa, + // 20 + 0x14, + // tag (big num) but expected an Int8 0xc2, // bytes, 1 bytes follow 0x41, - // 1 - 0x01, + // 5 + 0x05, }, }, { @@ -13820,559 +15233,938 @@ func TestDecodeInvalidData(t *testing.T) { name: "nil element type in dictionary type value", data: []byte{ // language=edn, format=ccf - // 130([137(41), 189([185(4), null])]) + // 130([137(41), 189([185(4), null])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagDictTypeValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + // null + 0xf6, + }, + }, + { + name: "nil element type in InclusiveRange type value", + data: []byte{ + // language=edn, format=ccf + // 130([137(41), 194([null])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagInclusiveRangeTypeValue, + // null + 0xf6, + }, + }, + { + name: "nil field type in struct type value", + data: []byte{ + // language=edn, format=ccf + // 130([137(41), 208([h'', "S.test.S", null, [["foo", null]], [[["foo", "bar", 185(4)]], [["qux", "baz", 185(1)]]]])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagStructTypeValue, + // array, 5 elements follow + 0x85, + // bytes, 0 bytes follow + 0x40, + // string, 8 bytes follow + 0x68, + // S.test.So + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x53, + // type (nil for struct) + 0xf6, + // fields + // array, 1 element follows + 0x81, + // array, 2 elements follow + 0x82, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // null + 0xf6, + // initializers + // array, 2 elements follow + 0x82, + // array, 1 element follows + 0x81, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // string, 3 bytes follow + 0x63, + // bar + 0x62, 0x61, 0x72, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + // array, 1 element follows + 0x81, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // qux + 0x71, 0x75, 0x78, + // string, 3 bytes follow + 0x63, + // bax + 0x62, 0x61, 0x7a, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type (1) + 0x01, + }, + }, + { + name: "nil initializer type in struct type value", + data: []byte{ + // language=edn, format=ccf + // 130([137(41), 208([h'', "S.test.S", null, [["foo", 185(4)]], [[["foo", "bar", null]], [["qux", "baz", 185(1)]]]])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagStructTypeValue, + // array, 5 elements follow + 0x85, + // bytes, 0 bytes follow + 0x40, + // string, 8 bytes follow + 0x68, + // S.test.So + 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x53, + // type (nil for struct) + 0xf6, + // fields + // array, 1 element follows + 0x81, + // array, 2 elements follow + 0x82, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Int type (4) + 0x04, + // initializers + // array, 2 elements follow + 0x82, + // array, 1 element follows + 0x81, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // foo + 0x66, 0x6f, 0x6f, + // string, 3 bytes follow + 0x63, + // bar + 0x62, 0x61, 0x72, + // null + 0xf6, + // array, 1 element follows + 0x81, + // array, 3 elements follow + 0x83, + // string, 3 bytes follow + 0x63, + // qux + 0x71, 0x75, 0x78, + // string, 3 bytes follow + 0x63, + // bax + 0x62, 0x61, 0x7a, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type (1) + 0x01, + }, + }, + { + name: "null type in intersection type value", + // Data is generated by fuzzer. + data: []byte{ + // language=edn, format=ccf + // 130([137(41), 191([208([h'', "S.\ufffd0000000.000000", null, [], []]), [null]])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagIntersectionTypeValue, + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagStructTypeValue, + // array, 5 items follow + 0x85, + // ccf type ID + // bytes, 0 byte follows + 0x40, + // cadence type ID + // text, 19 bytes follow + 0x73, + // "S.�0000000.000000" + 0x53, 0x2e, 0xef, 0xbf, 0xbd, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + // type + // nil + 0xf6, + // fields + // array, 0 item follows + 0x80, + // initializers + // array, 0 item follows + 0x80, + // types + // array, 1 item follows + 0x81, + // nil + 0xf6, + }, + }, + { + name: "extraneous data", + data: []byte{ + // language=edn, format=ccf + // 130([137(0), true]), 0 // // language=cbor, format=ccf // tag 0xd8, ccf.CBORTagTypeAndValue, - // array, 2 elements follow + // array, 2 items follow 0x82, // tag 0xd8, ccf.CBORTagSimpleType, - // Meta type ID (41) - 0x18, 0x29, - // tag - 0xd8, ccf.CBORTagDictTypeValue, - // array, 2 elements follow - 0x82, - // tag - 0xd8, ccf.CBORTagSimpleTypeValue, - // Int type (4) - 0x04, - // null - 0xf6, + // Bool type ID (0) + 0x00, + // true + 0xf5, + // extraneous data + 0x00, + }, + }, + } + + test := func(tc testCase) { + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + decodedVal, err := deterministicDecMode.Decode(nil, tc.data) + require.Nil(t, decodedVal) + require.Error(t, err) + }) + } + for _, tc := range testCases { + test(tc) + } +} + +func TestEncodeValueOfIntersectedInterface(t *testing.T) { + + t.Parallel() + + // Values and types are generated by fuzzer. + /* + // Type def + + struct OuterStruct { + var field: MiddleStruct + } + + struct MiddleStruct { + var field: {Interface} + } + + struct interface Interface {} + + struct InnerStruct: Interface {} // 'InnerStruct' conforms to 'Interface' + + // Value + + OuterStruct { + field: MiddleStruct { + field: InnerStruct{} // <-- here the value is the implementation, for the intersection type. + } + } + */ + + interfaceType := cadence.NewStructInterfaceType( + common.StringLocation("LocationA"), + "Interface", + nil, + nil, + ) + + middleStruct := cadence.NewStructType( + common.StringLocation("LocationB"), + "MiddleStruct", + []cadence.Field{ + { + Type: cadence.NewIntersectionType( + []cadence.Type{interfaceType}), + Identifier: "field", + }, + }, + nil, + ) + + outerStructType := cadence.NewStructType( + common.StringLocation("LocationC"), + "OuterStruct", + []cadence.Field{ + { + Type: middleStruct, + Identifier: "field", + }, + }, + nil, + ) + + innerStructType := cadence.NewStructType( + common.StringLocation("LocationD"), + "InnerStruct", + []cadence.Field{}, + nil, + ) + + value := cadence.NewStruct([]cadence.Value{ + cadence.NewStruct([]cadence.Value{ + cadence.NewStruct([]cadence.Value{}).WithType(innerStructType), + }).WithType(middleStruct), + }).WithType(outerStructType) + + testEncodeAndDecode( + t, + value, + []byte{ + // language=json, format=json-cdc + // {"value":{"id":"S.LocationC.OuterStruct","fields":[{"value":{"value":{"id":"S.LocationB.MiddleStruct","fields":[{"value":{"value":{"id":"S.LocationD.InnerStruct","fields":[]},"type":"Struct"},"name":"field"}]},"type":"Struct"},"name":"field"}]},"type":"Struct"} + // + // language=edn, format=ccf + // 129([[176([h'', "S.LocationA.Interface"]), 160([h'01', "S.LocationC.OuterStruct", [["field", 136(h'03')]]]), 160([h'02', "S.LocationD.InnerStruct", []]), 160([h'03', "S.LocationB.MiddleStruct", [["field", 143([137(39), [136(h'')]])]]])], [136(h'01'), [[130([136(h'02'), []])]]]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeDefAndValue, + // array, 2 items follow + 0x82, + // array, 4 items follow + 0x84, + // tag + 0xd8, ccf.CBORTagStructInterfaceType, + // array, 2 items follow + 0x82, + // CCF type ID + // bytes, 0 byte follows + 0x40, + // cadence type ID + // text, 21 bytes follow + 0x75, + // "S.LocationA.Interface" + 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + // tag + 0xd8, ccf.CBORTagStructType, + // array, 3 items follow + 0x83, + // CCF type ID + // bytes, 1 byte follows + 0x41, + // 1 + 0x01, + // text, 23 bytes follow + 0x77, + // "S.LocationC.OuterStruct" + 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x2e, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + // fields + // array, 1 item follows + 0x81, + // array, 2 item follows + 0x82, + // text, 5 bytes follow + 0x65, + // "field" + 0x66, 0x69, 0x65, 0x6c, 0x64, + // tag + 0xd8, ccf.CBORTagTypeRef, + // bytes, 1 byte follow + 0x41, + // 3 + 0x03, + // tag + 0xd8, ccf.CBORTagStructType, + // array, 3 item follows + 0x83, + // CCF type ID + // bytes, 1 byte follow + 0x41, + // 2 + 0x02, + // Cadence type ID + // text, 23 bytes follow + 0x77, + // "S.LocationD.InnerStruct" + 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + // fields + // array, 0 item follows + 0x80, + // tag + 0xd8, ccf.CBORTagStructType, + // array, 3 item follows + 0x83, + // CCF type ID + // bytes, 1 byte follow + 0x41, + // 3 + 0x03, + // Cadence type ID + // text, 24 bytes follow + 0x78, 0x18, + // "S.LocationB.MiddleStruct" + 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + // fields + // array, 1 item follows + 0x81, + // array, 2 item follows + 0x82, + // text, 5 bytes follow + 0x65, + // "field" + 0x66, 0x69, 0x65, 0x6c, 0x64, + // tag + 0xd8, ccf.CBORTagIntersectionType, + // array, 1 item follows + 0x81, + // tag + 0xd8, ccf.CBORTagTypeRef, + // bytes, 0 byte follows + 0x40, + // array, 2 item follows + 0x82, + // tag + 0xd8, ccf.CBORTagTypeRef, + // bytes, 1 byte follows + 0x41, + // 1 + 0x01, + // array, 1 item follows + 0x81, + // array, 1 item follows + 0x81, + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 item follows + 0x82, + // tag + 0xd8, ccf.CBORTagTypeRef, + // bytes, 1 byte follows + 0x41, + // 2 + 0x02, + // array, 0 item follows + 0x80, + }, + ) +} + +func TestCyclicReferenceValue(t *testing.T) { + + // Test data is from TestRuntimeScriptReturnSpecial in runtime_test.go + t.Run("recursive reference", func(t *testing.T) { + + t.Parallel() + + script := ` + access(all) fun main(): AnyStruct { + let refs: [&AnyStruct] = [] + refs.append(&refs as &AnyStruct) + return refs + } + ` + + actual := exportFromScript(t, script) + + expected := cadence.NewArray([]cadence.Value{ + cadence.NewArray([]cadence.Value{ + nil, + }).WithType(&cadence.VariableSizedArrayType{ + ElementType: &cadence.ReferenceType{ + Authorization: cadence.Unauthorized{}, + Type: cadence.AnyStructType, + }, + }), + }).WithType(&cadence.VariableSizedArrayType{ + ElementType: &cadence.ReferenceType{ + Authorization: cadence.Unauthorized{}, + Type: cadence.AnyStructType, }, - }, - { - name: "nil field type in struct type value", - data: []byte{ + }) + + assert.Equal(t, expected, actual) + + testEncodeAndDecode( + t, + expected, + []byte{ + // language=json, format=json-cdc + // {"value":[{"value":[null],"type":"Array"}],"type":"Array"} + // // language=edn, format=ccf - // 130([137(41), 208([h'', "S.test.S", null, [["foo", null]], [[["foo", "bar", 185(4)]], [["qux", "baz", 185(1)]]]])]) + // 130([139(142([false, 137(39)])), [130([139(142([false, 137(39)])), [null]])]]) // // language=cbor, format=ccf // tag 0xd8, ccf.CBORTagTypeAndValue, - // array, 2 elements follow + // array, 2 items follow 0x82, + // static type // tag - 0xd8, ccf.CBORTagSimpleType, - // Meta type ID (41) - 0x18, 0x29, + 0xd8, ccf.CBORTagVarsizedArrayType, // tag - 0xd8, ccf.CBORTagStructTypeValue, - // array, 5 elements follow - 0x85, - // bytes, 0 bytes follow - 0x40, - // string, 8 bytes follow - 0x68, - // S.test.So - 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x53, - // type (nil for struct) - 0xf6, - // fields - // array, 1 element follows - 0x81, - // array, 2 elements follow + 0xd8, ccf.CBORTagReferenceType, + // array, 2 items follow 0x82, - // string, 3 bytes follow - 0x63, - // foo - 0x66, 0x6f, 0x6f, - // null + // nil 0xf6, - // initializers - // array, 2 elements follow - 0x82, - // array, 1 element follows - 0x81, - // array, 3 elements follow - 0x83, - // string, 3 bytes follow - 0x63, - // foo - 0x66, 0x6f, 0x6f, - // string, 3 bytes follow - 0x63, - // bar - 0x62, 0x61, 0x72, - // tag - 0xd8, ccf.CBORTagSimpleTypeValue, - // Int type (4) - 0x04, - // array, 1 element follows - 0x81, - // array, 3 elements follow - 0x83, - // string, 3 bytes follow - 0x63, - // qux - 0x71, 0x75, 0x78, - // string, 3 bytes follow - 0x63, - // bax - 0x62, 0x61, 0x7a, - // tag - 0xd8, ccf.CBORTagSimpleTypeValue, - // String type (1) - 0x01, - }, - }, - { - name: "nil initializer type in struct type value", - data: []byte{ - // language=edn, format=ccf - // 130([137(41), 208([h'', "S.test.S", null, [["foo", 185(4)]], [[["foo", "bar", null]], [["qux", "baz", 185(1)]]]])]) - // - // language=cbor, format=ccf - // tag - 0xd8, ccf.CBORTagTypeAndValue, - // array, 2 elements follow - 0x82, // tag 0xd8, ccf.CBORTagSimpleType, - // Meta type ID (41) - 0x18, 0x29, - // tag - 0xd8, ccf.CBORTagStructTypeValue, - // array, 5 elements follow - 0x85, - // bytes, 0 bytes follow - 0x40, - // string, 8 bytes follow - 0x68, - // S.test.So - 0x53, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x53, - // type (nil for struct) - 0xf6, - // fields - // array, 1 element follows - 0x81, - // array, 2 elements follow - 0x82, - // string, 3 bytes follow - 0x63, - // foo - 0x66, 0x6f, 0x6f, - // tag - 0xd8, ccf.CBORTagSimpleTypeValue, - // Int type (4) - 0x04, - // initializers - // array, 2 elements follow - 0x82, - // array, 1 element follows - 0x81, - // array, 3 elements follow - 0x83, - // string, 3 bytes follow - 0x63, - // foo - 0x66, 0x6f, 0x6f, - // string, 3 bytes follow - 0x63, - // bar - 0x62, 0x61, 0x72, - // null - 0xf6, - // array, 1 element follows + // AnyStruct type ID (39) + 0x18, 0x27, + + // data + // array, 1 items follow 0x81, - // array, 3 elements follow - 0x83, - // string, 3 bytes follow - 0x63, - // qux - 0x71, 0x75, 0x78, - // string, 3 bytes follow - 0x63, - // bax - 0x62, 0x61, 0x7a, - // tag - 0xd8, ccf.CBORTagSimpleTypeValue, - // String type (1) - 0x01, - }, - }, - { - name: "null type in intersection type value", - // Data is generated by fuzzer. - data: []byte{ - // language=edn, format=ccf - // 130([137(41), 191([208([h'', "S.\ufffd0000000.000000", null, [], []]), [null]])]) - // - // language=cbor, format=ccf // tag 0xd8, ccf.CBORTagTypeAndValue, // array, 2 items follow 0x82, // tag - 0xd8, ccf.CBORTagSimpleType, - // Meta type ID (41) - 0x18, 0x29, + 0xd8, ccf.CBORTagVarsizedArrayType, // tag - 0xd8, ccf.CBORTagIntersectionTypeValue, + 0xd8, ccf.CBORTagReferenceType, // array, 2 items follow 0x82, - // tag - 0xd8, ccf.CBORTagStructTypeValue, - // array, 5 items follow - 0x85, - // ccf type ID - // bytes, 0 byte follows - 0x40, - // cadence type ID - // text, 19 bytes follow - 0x73, - // "S.�0000000.000000" - 0x53, 0x2e, 0xef, 0xbf, 0xbd, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - // type - // nil - 0xf6, - // fields - // array, 0 item follows - 0x80, - // initializers - // array, 0 item follows - 0x80, - // types - // array, 1 item follows - 0x81, // nil 0xf6, - }, - }, - { - name: "extraneous data", - data: []byte{ - // language=edn, format=ccf - // 130([137(0), true]), 0 - // - // language=cbor, format=ccf - // tag - 0xd8, ccf.CBORTagTypeAndValue, - // array, 2 items follow - 0x82, // tag 0xd8, ccf.CBORTagSimpleType, - // Bool type ID (0) - 0x00, - // true - 0xf5, - // extraneous data - 0x00, - }, - }, - } - - test := func(tc testCase) { - t.Run(tc.name, func(t *testing.T) { - t.Parallel() - decodedVal, err := deterministicDecMode.Decode(nil, tc.data) - require.Nil(t, decodedVal) - require.Error(t, err) - }) - } - for _, tc := range testCases { - test(tc) - } + // AnyStruct type ID (39) + 0x18, 0x27, + // array, 1 items follow + 0x81, + // nil + 0xf6, + }, + ) + }) } -func TestEncodeValueOfIntersectedInterface(t *testing.T) { +func TestSortEntitlementSet(t *testing.T) { t.Parallel() - // Values and types are generated by fuzzer. - /* - // Type def + sortEntitlementTypesEncMode, err := ccf.EncOptions{ + SortEntitlementTypes: ccf.SortBytewiseLexical, + }.EncMode() + require.NoError(t, err) - struct OuterStruct { - var field: MiddleStruct + enforceSortedEntitlementTypesDecMode, err := ccf.DecOptions{ + EnforceSortEntitlementTypes: ccf.EnforceSortBytewiseLexical, + }.DecMode() + require.NoError(t, err) + + t.Run("don't sort type", func(t *testing.T) { + + val := cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"foo", "bar"}, + cadence.Conjunction, + ), + cadence.StringType, + ), + )) + + expectedVal := cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"foo", "bar"}, + cadence.Conjunction, + ), + cadence.StringType, + ), + )) + + expectedCBOR := []byte{ + // language=json, format=json-cdc + // {"value":[{"value":"a","type":"String"},{"value":"b","type":"String"}],"type":"Array"} + // + // language=edn, format=ccf + // 130([139(142([146([0, ["foo", "bar"]]), 137(1)])), ["a", "b"]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type []&String + // tag + 0xd8, ccf.CBORTagVarsizedArrayType, + // tag + 0xd8, ccf.CBORTagReferenceType, + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessType, + // array, 2 items follow + 0x82, + // element 0: kind (Conjunction) + 0x00, + // element 1: entitlements + // array, 2 items follow + 0x82, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // tag + 0xd8, ccf.CBORTagSimpleType, + // String type ID (1) + 0x01, + // array data without inlined type + // array, 2 items follow + 0x82, + // text, 1 byte follow + 0x61, + // "a" + 0x61, + // text, 1 byte follow + 0x61, + // "b" + 0x62, } - struct MiddleStruct { - var field: {Interface} + // Encode value without sorting. + actualCBOR, err := ccf.Encode(val) + require.NoError(t, err) + utils.AssertEqualWithDiff(t, expectedCBOR, actualCBOR) + + // Decode value without enforcing sorting. + decodedVal, err := ccf.Decode(nil, actualCBOR) + require.NoError(t, err) + assert.Equal(t, expectedVal, decodedVal) + + // Decode value enforcing sorting of entitlement types should return error. + _, err = enforceSortedEntitlementTypesDecMode.Decode(nil, actualCBOR) + require.Error(t, err) + }) + + t.Run("sort type", func(t *testing.T) { + + val := cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"foo", "bar"}, + cadence.Conjunction, + ), + cadence.StringType, + ), + )) + + expectedVal := cadence.NewArray([]cadence.Value{ + cadence.String("a"), + cadence.String("b"), + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"bar", "foo"}, + cadence.Conjunction, + ), + cadence.StringType, + ), + )) + + expectedCBOR := []byte{ + // language=json, format=json-cdc + // {"value":[{"value":"a","type":"String"},{"value":"b","type":"String"}],"type":"Array"} + // + // language=edn, format=ccf + // 130([139(142([146([0, ["bar", "foo"]]), 137(1)])), ["a", "b"]]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 items follow + 0x82, + // type []&String + // tag + 0xd8, ccf.CBORTagVarsizedArrayType, + // tag + 0xd8, ccf.CBORTagReferenceType, + // array, 2 items follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessType, + // array, 2 items follow + 0x82, + // element 0: kind (Conjunction) + 0x00, + // element 1: entitlements + // array, 2 items follow + 0x82, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // tag + 0xd8, ccf.CBORTagSimpleType, + // String type ID (1) + 0x01, + // array data without inlined type + // array, 2 items follow + 0x82, + // text, 1 byte follow + 0x61, + // "a" + 0x61, + // text, 1 byte follow + 0x61, + // "b" + 0x62, } - struct interface Interface {} + // Encode value with sorted entitlement types. + actualCBOR, err := sortEntitlementTypesEncMode.Encode(val) + require.NoError(t, err) + utils.AssertEqualWithDiff(t, expectedCBOR, actualCBOR) - struct InnerStruct: Interface {} // 'InnerStruct' conforms to 'Interface' + // Decode value enforcing sorting of composite fields. + decodedVal, err := enforceSortedEntitlementTypesDecMode.Decode(nil, actualCBOR) + require.NoError(t, err) + assert.Equal(t, expectedVal, decodedVal) - // Value + // Decode value without enforcing sorting should return no error. + decodedVal, err = ccf.Decode(nil, actualCBOR) + require.NoError(t, err) + assert.Equal(t, expectedVal, decodedVal) + }) - OuterStruct { - field: MiddleStruct { - field: InnerStruct{} // <-- here the value is the implementation, for the intersection type. - } + t.Run("don't sort type value", func(t *testing.T) { + + val := cadence.NewTypeValue(cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"foo", "bar"}, + cadence.Conjunction, + ), + cadence.StringType, + )) + + expectedCBOR := []byte{ + // language=json, format=json-cdc + // {"value":{"staticType":{"type":{"kind":"String"},"kind":"Reference","authorization":{"kind":"EntitlementConjunctionSet","entitlements":[{"type":null,"kind":"Entitlement","typeID":"foo","fields":null,"initializers":null},{"type":null,"kind":"Entitlement","typeID":"bar","fields":null,"initializers":null}]}}},"type":"Type"} + // + // language=edn, format=ccf + // 130([137(41), 190([195([0, ["foo", "bar"]]), 185(1)])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagReferenceTypeValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessTypeValue, + // array, 2 elements follow + 0x82, + // element 0: kind (conjunction) + 0x00, + // array, 2 elements follow + 0x82, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type ID (1) + 0x01, } - */ - interfaceType := cadence.NewStructInterfaceType( - common.StringLocation("LocationA"), - "Interface", - nil, - nil, - ) + // Encode value without sorting. + actualCBOR, err := ccf.Encode(val) + require.NoError(t, err) + utils.AssertEqualWithDiff(t, expectedCBOR, actualCBOR) - middleStruct := cadence.NewStructType( - common.StringLocation("LocationB"), - "MiddleStruct", - []cadence.Field{ - { - Type: cadence.NewIntersectionType( - []cadence.Type{interfaceType}), - Identifier: "field", - }, - }, - nil, - ) + // Decode value without enforcing sorting. + decodedVal, err := ccf.Decode(nil, actualCBOR) + require.NoError(t, err) + assert.Equal(t, val, decodedVal) - outerStructType := cadence.NewStructType( - common.StringLocation("LocationC"), - "OuterStruct", - []cadence.Field{ - { - Type: middleStruct, - Identifier: "field", - }, - }, - nil, - ) + // Decode value enforcing sorting of entitlement types should return error. + _, err = enforceSortedEntitlementTypesDecMode.Decode(nil, actualCBOR) + require.Error(t, err) + }) - innerStructType := cadence.NewStructType( - common.StringLocation("LocationD"), - "InnerStruct", - []cadence.Field{}, - nil, - ) + t.Run("sort type value", func(t *testing.T) { + + val := cadence.NewTypeValue(cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"foo", "bar"}, + cadence.Conjunction, + ), + cadence.StringType, + )) - value := cadence.NewStruct([]cadence.Value{ - cadence.NewStruct([]cadence.Value{ - cadence.NewStruct([]cadence.Value{}).WithType(innerStructType), - }).WithType(middleStruct), - }).WithType(outerStructType) + expectedVal := cadence.NewTypeValue(cadence.NewReferenceType( + cadence.NewEntitlementSetAuthorization( + nil, + []common.TypeID{"bar", "foo"}, + cadence.Conjunction, + ), + cadence.StringType, + )) - testEncodeAndDecode( - t, - value, - []byte{ + expectedCBOR := []byte{ // language=json, format=json-cdc - // {"value":{"id":"S.LocationC.OuterStruct","fields":[{"value":{"value":{"id":"S.LocationB.MiddleStruct","fields":[{"value":{"value":{"id":"S.LocationD.InnerStruct","fields":[]},"type":"Struct"},"name":"field"}]},"type":"Struct"},"name":"field"}]},"type":"Struct"} + // {"value":{"staticType":{"type":{"kind":"String"},"kind":"Reference","authorization":{"kind":"EntitlementConjunctionSet","entitlements":[{"type":null,"kind":"Entitlement","typeID":"foo","fields":null,"initializers":null},{"type":null,"kind":"Entitlement","typeID":"bar","fields":null,"initializers":null}]}}},"type":"Type"} // // language=edn, format=ccf - // 129([[176([h'', "S.LocationA.Interface"]), 160([h'01', "S.LocationC.OuterStruct", [["field", 136(h'03')]]]), 160([h'02', "S.LocationD.InnerStruct", []]), 160([h'03', "S.LocationB.MiddleStruct", [["field", 143([137(39), [136(h'')]])]]])], [136(h'01'), [[130([136(h'02'), []])]]]]) + // 130([137(41), 190([195([0, ["bar", "foo"]]), 185(1)])]) // // language=cbor, format=ccf // tag - 0xd8, ccf.CBORTagTypeDefAndValue, - // array, 2 items follow + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow 0x82, - // array, 4 items follow - 0x84, // tag - 0xd8, ccf.CBORTagStructInterfaceType, - // array, 2 items follow - 0x82, - // CCF type ID - // bytes, 0 byte follows - 0x40, - // cadence type ID - // text, 21 bytes follow - 0x75, - // "S.LocationA.Interface" - 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, // tag - 0xd8, ccf.CBORTagStructType, - // array, 3 items follow - 0x83, - // CCF type ID - // bytes, 1 byte follows - 0x41, - // 1 - 0x01, - // text, 23 bytes follow - 0x77, - // "S.LocationC.OuterStruct" - 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x2e, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - // fields - // array, 1 item follows - 0x81, - // array, 2 item follows + 0xd8, ccf.CBORTagReferenceTypeValue, + // array, 2 elements follow 0x82, - // text, 5 bytes follow - 0x65, - // "field" - 0x66, 0x69, 0x65, 0x6c, 0x64, - // tag - 0xd8, ccf.CBORTagTypeRef, - // bytes, 1 byte follow - 0x41, - // 3 - 0x03, - // tag - 0xd8, ccf.CBORTagStructType, - // array, 3 item follows - 0x83, - // CCF type ID - // bytes, 1 byte follow - 0x41, - // 2 - 0x02, - // Cadence type ID - // text, 23 bytes follow - 0x77, - // "S.LocationD.InnerStruct" - 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - // fields - // array, 0 item follows - 0x80, // tag - 0xd8, ccf.CBORTagStructType, - // array, 3 item follows - 0x83, - // CCF type ID - // bytes, 1 byte follow - 0x41, - // 3 - 0x03, - // Cadence type ID - // text, 24 bytes follow - 0x78, 0x18, - // "S.LocationB.MiddleStruct" - 0x53, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x2e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - // fields - // array, 1 item follows - 0x81, - // array, 2 item follows + 0xd8, ccf.CBORTagEntitlementSetAuthorizationAccessTypeValue, + // array, 2 elements follow 0x82, - // text, 5 bytes follow - 0x65, - // "field" - 0x66, 0x69, 0x65, 0x6c, 0x64, - // tag - 0xd8, ccf.CBORTagIntersectionType, - // array, 1 item follows - 0x81, - // tag - 0xd8, ccf.CBORTagTypeRef, - // bytes, 0 byte follows - 0x40, - // array, 2 item follows + // element 0: kind (conjunction) + 0x00, + // array, 2 elements follow 0x82, + // text, 3 bytes follow + 0x63, + // "bar" + 0x62, 0x61, 0x72, + // text, 3 bytes follow + 0x63, + // "foo" + 0x66, 0x6f, 0x6f, // tag - 0xd8, ccf.CBORTagTypeRef, - // bytes, 1 byte follows - 0x41, - // 1 + 0xd8, ccf.CBORTagSimpleTypeValue, + // String type ID (1) 0x01, - // array, 1 item follows - 0x81, - // array, 1 item follows - 0x81, - // tag - 0xd8, ccf.CBORTagTypeAndValue, - // array, 2 item follows - 0x82, - // tag - 0xd8, ccf.CBORTagTypeRef, - // bytes, 1 byte follows - 0x41, - // 2 - 0x02, - // array, 0 item follows - 0x80, - }, - ) -} - -func TestCyclicReferenceValue(t *testing.T) { - - // Test data is from TestRuntimeScriptReturnSpecial in runtime_test.go - t.Run("recursive reference", func(t *testing.T) { - - t.Parallel() - - script := ` - access(all) fun main(): AnyStruct { - let refs: [&AnyStruct] = [] - refs.append(&refs as &AnyStruct) - return refs - } - ` - - actual := exportFromScript(t, script) - - expected := cadence.NewArray([]cadence.Value{ - cadence.NewArray([]cadence.Value{ - nil, - }).WithType(&cadence.VariableSizedArrayType{ - ElementType: &cadence.ReferenceType{ - Authorization: cadence.Unauthorized{}, - Type: cadence.AnyStructType, - }, - }), - }).WithType(&cadence.VariableSizedArrayType{ - ElementType: &cadence.ReferenceType{ - Authorization: cadence.Unauthorized{}, - Type: cadence.AnyStructType, - }, - }) + } - assert.Equal(t, expected, actual) + // Encode value with sorting. + actualCBOR, err := sortEntitlementTypesEncMode.Encode(val) + require.NoError(t, err) + utils.AssertEqualWithDiff(t, expectedCBOR, actualCBOR) - testEncodeAndDecode( - t, - expected, - []byte{ - // language=json, format=json-cdc - // {"value":[{"value":[null],"type":"Array"}],"type":"Array"} - // - // language=edn, format=ccf - // 130([139(142([false, 137(39)])), [130([139(142([false, 137(39)])), [null]])]]) - // - // language=cbor, format=ccf - // tag - 0xd8, ccf.CBORTagTypeAndValue, - // array, 2 items follow - 0x82, - // static type - // tag - 0xd8, ccf.CBORTagVarsizedArrayType, - // tag - 0xd8, ccf.CBORTagReferenceType, - // array, 2 items follow - 0x82, - // nil - 0xf6, - // tag - 0xd8, ccf.CBORTagSimpleType, - // AnyStruct type ID (39) - 0x18, 0x27, + // Decode value without enforcing sorting. + decodedVal, err := ccf.Decode(nil, actualCBOR) + require.NoError(t, err) + assert.Equal(t, expectedVal, decodedVal) - // data - // array, 1 items follow - 0x81, - // tag - 0xd8, ccf.CBORTagTypeAndValue, - // array, 2 items follow - 0x82, - // tag - 0xd8, ccf.CBORTagVarsizedArrayType, - // tag - 0xd8, ccf.CBORTagReferenceType, - // array, 2 items follow - 0x82, - // nil - 0xf6, - // tag - 0xd8, ccf.CBORTagSimpleType, - // AnyStruct type ID (39) - 0x18, 0x27, - // array, 1 items follow - 0x81, - // nil - 0xf6, - }, - ) + // Decode value enforcing sorting of entitlement types. + decodedVal, err = enforceSortedEntitlementTypesDecMode.Decode(nil, actualCBOR) + require.NoError(t, err) + assert.Equal(t, expectedVal, decodedVal) }) } @@ -15214,6 +17006,12 @@ func TestInvalidEncodingOptions(t *testing.T) { } _, err = opts.EncMode() require.Error(t, err) + + opts = ccf.EncOptions{ + SortEntitlementTypes: 100, + } + _, err = opts.EncMode() + require.Error(t, err) } func TestInvalidDecodingOptions(t *testing.T) { @@ -15228,6 +17026,12 @@ func TestInvalidDecodingOptions(t *testing.T) { } _, err = opts.DecMode() require.Error(t, err) + + opts = ccf.DecOptions{ + EnforceSortEntitlementTypes: 100, + } + _, err = opts.DecMode() + require.Error(t, err) } func TestHasMsgPrefix(t *testing.T) { @@ -15258,3 +17062,49 @@ func TestHasMsgPrefix(t *testing.T) { }) } } + +// TestDecodeFunctionTypeBackwardCompatibility tests decoding of FunctionType +// without Purity encoded. +func TestDecodeFunctionTypeBackwardCompatibility(t *testing.T) { + + val := cadence.TypeValue{ + StaticType: &cadence.FunctionType{ + TypeParameters: []cadence.TypeParameter{}, + Parameters: []cadence.Parameter{}, + ReturnType: cadence.VoidType, + Purity: cadence.FunctionPurityUnspecified, + }, + } + + data := []byte{ + // language=edn, format=ccf + // 130([137(41), 193([[], [], 185(50)])]) + // + // language=cbor, format=ccf + // tag + 0xd8, ccf.CBORTagTypeAndValue, + // array, 2 elements follow + 0x82, + // tag + 0xd8, ccf.CBORTagSimpleType, + // Meta type ID (41) + 0x18, 0x29, + // tag + 0xd8, ccf.CBORTagFunctionTypeValue, + // array, 3 elements follow + 0x83, + // element 0: type parameters + // array, 0 element + 0x80, + // element 1: parameters + // array, 0 element + 0x80, + // element 2: return type + // tag + 0xd8, ccf.CBORTagSimpleTypeValue, + // Void type ID (50) + 0x18, 0x32, + } + + testDecode(t, data, val) +} diff --git a/encoding/ccf/ccf_type_id.go b/encoding/ccf/ccf_type_id.go index 7459624ed8..91f52bc73d 100644 --- a/encoding/ccf/ccf_type_id.go +++ b/encoding/ccf/ccf_type_id.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ package ccf import ( "fmt" + "math" "math/big" "github.com/onflow/cadence" @@ -44,6 +45,13 @@ func (id ccfTypeID) Equal(other ccfTypeID) bool { return id == other } +func (id ccfTypeID) next() ccfTypeID { + if id == math.MaxUint64 { + panic(fmt.Errorf("failed to create next CCF type id: reached max limit for id")) + } + return id + 1 +} + // ccfTypeIDByCadenceType maps a Cadence type ID to a CCF type ID // // IMPORTANT: Don't use cadence.Type as map key because all Cadence composite/interface @@ -62,24 +70,37 @@ func (types ccfTypeIDByCadenceType) id(t cadence.Type) (ccfTypeID, error) { type cadenceTypeByCCFTypeID struct { types map[ccfTypeID]cadence.Type referencedTypes map[ccfTypeID]struct{} + nextCCFTypeID ccfTypeID } func newCadenceTypeByCCFTypeID() *cadenceTypeByCCFTypeID { - return &cadenceTypeByCCFTypeID{ - types: make(map[ccfTypeID]cadence.Type), - referencedTypes: make(map[ccfTypeID]struct{}), - } + // types and referencedTypes are created lazily. + return &cadenceTypeByCCFTypeID{} +} + +func (ids *cadenceTypeByCCFTypeID) isNextCCFTypeID(id ccfTypeID) bool { + return ids.nextCCFTypeID.Equal(id) +} + +func (ids *cadenceTypeByCCFTypeID) addCCFTypeID(id ccfTypeID) { + ids.nextCCFTypeID = id.next() } func (ids *cadenceTypeByCCFTypeID) add(id ccfTypeID, typ cadence.Type) bool { if ids.has(id) { return false } + if ids.types == nil { + ids.types = make(map[ccfTypeID]cadence.Type) + } ids.types[id] = typ return true } func (ids *cadenceTypeByCCFTypeID) reference(id ccfTypeID) { + if ids.referencedTypes == nil { + ids.referencedTypes = make(map[ccfTypeID]struct{}) + } ids.referencedTypes[id] = struct{}{} } @@ -96,10 +117,6 @@ func (ids *cadenceTypeByCCFTypeID) has(id ccfTypeID) bool { return ok } -func (ids *cadenceTypeByCCFTypeID) count() int { - return len(ids.types) -} - func (ids *cadenceTypeByCCFTypeID) hasUnreferenced() bool { return len(ids.types) > len(ids.referencedTypes) } diff --git a/encoding/ccf/ccf_type_id_test.go b/encoding/ccf/ccf_type_id_test.go index 5a94ff4539..eda0d4938c 100644 --- a/encoding/ccf/ccf_type_id_test.go +++ b/encoding/ccf/ccf_type_id_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -116,23 +116,24 @@ func TestCadenceTypeByCCFTypeID(t *testing.T) { } func simpleStructType() *cadence.StructType { - return &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []cadence.Field{ + return cadence.NewStructType( + utils.TestLocation, + "FooStruct", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, }, }, - } + nil, + ) } func simpleStructType2() *cadence.StructType { - return &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct2", - Fields: []cadence.Field{ + return cadence.NewStructType( + utils.TestLocation, + "FooStruct2", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, @@ -142,5 +143,6 @@ func simpleStructType2() *cadence.StructType { Type: cadence.StringType, }, }, - } + nil, + ) } diff --git a/encoding/ccf/consts.go b/encoding/ccf/consts.go index e7a0f5d30d..a3d642b7c0 100644 --- a/encoding/ccf/consts.go +++ b/encoding/ccf/consts.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,11 @@ package ccf +import ( + "github.com/onflow/cadence" + "github.com/onflow/cadence/runtime/common/bimap" +) + // CCF uses CBOR tag numbers 128-255, which are unassigned by [IANA] // (https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml). // @@ -64,9 +69,9 @@ const ( CBORTagReferenceType CBORTagIntersectionType CBORTagCapabilityType - _ - _ - _ + CBORTagInclusiveRangeType + CBORTagEntitlementSetAuthorizationAccessType + CBORTagEntitlementMapAuthorizationAccessType _ _ _ @@ -86,7 +91,7 @@ const ( CBORTagEventType CBORTagContractType CBORTagEnumType - _ + CBORTagAttachmentType _ _ _ @@ -120,9 +125,9 @@ const ( CBORTagIntersectionTypeValue CBORTagCapabilityTypeValue CBORTagFunctionTypeValue - _ - _ - _ + CBORTagInclusiveRangeTypeValue // InclusiveRange is stored as a composite value. + CBORTagEntitlementSetAuthorizationAccessTypeValue + CBORTagEntitlementMapAuthorizationAccessTypeValue _ _ _ @@ -141,7 +146,7 @@ const ( CBORTagEventTypeValue CBORTagContractTypeValue CBORTagEnumTypeValue - _ + CBORTagAttachmentTypeValue _ _ _ @@ -163,3 +168,29 @@ const ( _ _ ) + +type entitlementSetKind uint64 + +const ( + conjunction entitlementSetKind = iota + disjunction +) + +func initEntitlementSetKindBiMap() (m *bimap.BiMap[cadence.EntitlementSetKind, entitlementSetKind]) { + m = bimap.NewBiMap[cadence.EntitlementSetKind, entitlementSetKind]() + + m.Insert(cadence.Conjunction, conjunction) + m.Insert(cadence.Disjunction, disjunction) + + return +} + +var entitlementSetKindBiMap *bimap.BiMap[cadence.EntitlementSetKind, entitlementSetKind] = initEntitlementSetKindBiMap() + +func entitlementSetKindRawValueByCadenceType(typ cadence.EntitlementSetKind) (entitlementSetKind, bool) { + return entitlementSetKindBiMap.Get(typ) +} + +func entitlementSetKindCadenceTypeByRawValue(rawValue entitlementSetKind) (cadence.EntitlementSetKind, bool) { + return entitlementSetKindBiMap.GetInverse(rawValue) +} diff --git a/encoding/ccf/decode.go b/encoding/ccf/decode.go index 3050bc337f..990b21605b 100644 --- a/encoding/ccf/decode.go +++ b/encoding/ccf/decode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import ( "math" "math/big" goRuntime "runtime" + _ "unsafe" "github.com/fxamacker/cbor/v2" @@ -143,6 +144,9 @@ type DecOptions struct { // EnforceSortIntersectionTypes specifies how decoder should enforce sort order of restricted types. EnforceSortIntersectionTypes EnforceSortMode + // EnforceSortEntitlementTypes specifies how decoder should enforce sort order of entitlement types. + EnforceSortEntitlementTypes EnforceSortMode + // CBORDecMode will default to defaultCBORDecMode if nil. The decoding mode contains // immutable decoding options (cbor.DecOptions) and is safe for concurrent use. CBORDecMode cbor.DecMode @@ -151,15 +155,17 @@ type DecOptions struct { // EventsDecMode is CCF decoding mode for events which contains // immutable CCF decoding options. It is safe for concurrent use. var EventsDecMode = &decMode{ - enforceSortCompositeFields: EnforceSortNone, - enforceSortRestrictedTypes: EnforceSortNone, - cborDecMode: defaultCBORDecMode, + enforceSortCompositeFields: EnforceSortNone, + enforceSortRestrictedTypes: EnforceSortNone, + enforceSortEntitlementTypes: EnforceSortNone, + cborDecMode: defaultCBORDecMode, } type decMode struct { - enforceSortCompositeFields EnforceSortMode - enforceSortRestrictedTypes EnforceSortMode - cborDecMode cbor.DecMode + enforceSortCompositeFields EnforceSortMode + enforceSortRestrictedTypes EnforceSortMode + enforceSortEntitlementTypes EnforceSortMode + cborDecMode cbor.DecMode } // DecMode returns CCF decoding mode which contains immutable decoding options. @@ -168,16 +174,23 @@ func (opts DecOptions) DecMode() (DecMode, error) { if !opts.EnforceSortCompositeFields.valid() { return nil, fmt.Errorf("ccf: invalid EnforceSortCompositeFields %d", opts.EnforceSortCompositeFields) } + if !opts.EnforceSortIntersectionTypes.valid() { return nil, fmt.Errorf("ccf: invalid EnforceSortRestrictedTypes %d", opts.EnforceSortIntersectionTypes) } + + if !opts.EnforceSortEntitlementTypes.valid() { + return nil, fmt.Errorf("ccf: invalid EnforceSortEntitlementTypes %d", opts.EnforceSortEntitlementTypes) + } + if opts.CBORDecMode == nil { opts.CBORDecMode = defaultCBORDecMode } return &decMode{ - enforceSortCompositeFields: opts.EnforceSortCompositeFields, - enforceSortRestrictedTypes: opts.EnforceSortIntersectionTypes, - cborDecMode: opts.CBORDecMode, + enforceSortCompositeFields: opts.EnforceSortCompositeFields, + enforceSortRestrictedTypes: opts.EnforceSortIntersectionTypes, + enforceSortEntitlementTypes: opts.EnforceSortEntitlementTypes, + cborDecMode: opts.CBORDecMode, }, nil } @@ -358,6 +371,7 @@ func (d *Decoder) decodeTypeAndValue(types *cadenceTypeByCCFTypeID) (cadence.Val // / path-value // / path-capability-value // / id-capability-value +// / inclusiverange-value // / function-value // / type-value // @@ -545,10 +559,16 @@ func (d *Decoder) decodeValue(t cadence.Type, types *cadenceTypeByCCFTypeID) (ca case *cadence.EnumType: return d.decodeEnum(t, types) + case *cadence.AttachmentType: + return d.decodeAttachment(t, types) + case *cadence.ReferenceType: // When static type is a reference type, encoded value is its deferenced type. return d.decodeValue(t.Type, types) + case *cadence.InclusiveRangeType: + return d.decodeInclusiveRange(t, types) + default: nt, err := d.dec.NextType() if err != nil { @@ -1191,11 +1211,17 @@ func (d *Decoder) decodeComposite(fieldTypes []cadence.Field, types *cadenceType return fieldValues, nil } +//go:linkname getCompositeTypeFields github.com/onflow/cadence.getCompositeTypeFields +func getCompositeTypeFields(cadence.CompositeType) []cadence.Field + +//go:linkname getInterfaceTypeFields github.com/onflow/cadence.getInterfaceTypeFields +func getInterfaceTypeFields(cadence.InterfaceType) []cadence.Field + // decodeStruct decodes encoded composite-value as // language=CDDL // composite-value = [* (field: value)] func (d *Decoder) decodeStruct(typ *cadence.StructType, types *cadenceTypeByCCFTypeID) (cadence.Value, error) { - fieldValues, err := d.decodeComposite(typ.Fields, types) + fieldValues, err := d.decodeComposite(getCompositeTypeFields(typ), types) if err != nil { return nil, err } @@ -1219,7 +1245,7 @@ func (d *Decoder) decodeStruct(typ *cadence.StructType, types *cadenceTypeByCCFT // language=CDDL // composite-value = [* (field: value)] func (d *Decoder) decodeResource(typ *cadence.ResourceType, types *cadenceTypeByCCFTypeID) (cadence.Value, error) { - fieldValues, err := d.decodeComposite(typ.Fields, types) + fieldValues, err := d.decodeComposite(getCompositeTypeFields(typ), types) if err != nil { return nil, err } @@ -1243,7 +1269,7 @@ func (d *Decoder) decodeResource(typ *cadence.ResourceType, types *cadenceTypeBy // language=CDDL // composite-value = [* (field: value)] func (d *Decoder) decodeEvent(typ *cadence.EventType, types *cadenceTypeByCCFTypeID) (cadence.Value, error) { - fieldValues, err := d.decodeComposite(typ.Fields, types) + fieldValues, err := d.decodeComposite(getCompositeTypeFields(typ), types) if err != nil { return nil, err } @@ -1267,7 +1293,7 @@ func (d *Decoder) decodeEvent(typ *cadence.EventType, types *cadenceTypeByCCFTyp // language=CDDL // composite-value = [* (field: value)] func (d *Decoder) decodeContract(typ *cadence.ContractType, types *cadenceTypeByCCFTypeID) (cadence.Value, error) { - fieldValues, err := d.decodeComposite(typ.Fields, types) + fieldValues, err := d.decodeComposite(getCompositeTypeFields(typ), types) if err != nil { return nil, err } @@ -1291,7 +1317,7 @@ func (d *Decoder) decodeContract(typ *cadence.ContractType, types *cadenceTypeBy // language=CDDL // composite-value = [* (field: value)] func (d *Decoder) decodeEnum(typ *cadence.EnumType, types *cadenceTypeByCCFTypeID) (cadence.Value, error) { - fieldValues, err := d.decodeComposite(typ.Fields, types) + fieldValues, err := d.decodeComposite(getCompositeTypeFields(typ), types) if err != nil { return nil, err } @@ -1311,6 +1337,76 @@ func (d *Decoder) decodeEnum(typ *cadence.EnumType, types *cadenceTypeByCCFTypeI return v.WithType(typ), nil } +// decodeAttachment decodes encoded composite-value as +// language=CDDL +// composite-value = [* (field: value)] +func (d *Decoder) decodeAttachment(typ *cadence.AttachmentType, types *cadenceTypeByCCFTypeID) (cadence.Value, error) { + fieldValues, err := d.decodeComposite(getCompositeTypeFields(typ), types) + if err != nil { + return nil, err + } + + v, err := cadence.NewMeteredAttachment( + d.gauge, + len(fieldValues), + func() ([]cadence.Value, error) { + return fieldValues, nil + }, + ) + if err != nil { + return nil, err + } + + // typ is already metered at creation. + return v.WithType(typ), nil +} + +// decodeInclusiveRange decodes encoded inclusiverange-value as +// language=CDDL +// inclusiverange-value = [ +// +// start: value, +// end: value, +// step: value, +// +// ] +func (d *Decoder) decodeInclusiveRange(typ *cadence.InclusiveRangeType, types *cadenceTypeByCCFTypeID) (cadence.Value, error) { + // Decode array head of length 3. + err := decodeCBORArrayWithKnownSize(d.dec, 3) + if err != nil { + return nil, err + } + + elementType := typ.ElementType + + // Decode start. + start, err := d.decodeValue(elementType, types) + if err != nil { + return nil, err + } + + // Decode end. + end, err := d.decodeValue(elementType, types) + if err != nil { + return nil, err + } + + // Decode step. + step, err := d.decodeValue(elementType, types) + if err != nil { + return nil, err + } + + v := cadence.NewMeteredInclusiveRange( + d.gauge, + start, + end, + step, + ) + + return v.WithType(typ), nil +} + // decodePath decodes path-value as // language=CDDL // path-value = [ @@ -1423,11 +1519,13 @@ func (d *Decoder) decodeCapability(typ *cadence.CapabilityType, types *cadenceTy // / varsized-array-type-value // / constsized-array-type-value // / dict-type-value +// / inclusiverange-type-value // / struct-type-value // / resource-type-value // / contract-type-value // / event-type-value // / enum-type-value +// / attachment-type-value // / struct-interface-type-value // / resource-interface-type-value // / contract-interface-type-value @@ -1463,11 +1561,14 @@ func (d *Decoder) decodeTypeValue(visited *cadenceTypeByCCFTypeID) (cadence.Type case CBORTagDictTypeValue: return d.decodeDictType(visited, d.decodeTypeValue) + case CBORTagInclusiveRangeTypeValue: + return d.decodeInclusiveRangeType(visited, d.decodeTypeValue) + case CBORTagCapabilityTypeValue: return d.decodeCapabilityType(visited, d.decodeNullableTypeValue) case CBORTagReferenceTypeValue: - return d.decodeReferenceType(visited, d.decodeTypeValue) + return d.decodeReferenceType(visited, d.decodeTypeValue, false) case CBORTagIntersectionTypeValue: return d.decodeIntersectionType(visited, d.decodeTypeValue) @@ -1490,6 +1591,9 @@ func (d *Decoder) decodeTypeValue(visited *cadenceTypeByCCFTypeID) (cadence.Type case CBORTagEnumTypeValue: return d.decodeEnumTypeValue(visited) + case CBORTagAttachmentTypeValue: + return d.decodeAttachmentTypeValue(visited) + case CBORTagStructInterfaceTypeValue: return d.decodeStructInterfaceTypeValue(visited) @@ -1665,6 +1769,34 @@ func (d *Decoder) decodeEnumTypeValue(visited *cadenceTypeByCCFTypeID) (cadence. return d.decodeCompositeTypeValue(visited, ctr) } +// decodeAttachmentTypeValue decodes attachment-type-value as +// language=CDDL +// attachment-type-value = +// +// ; cbor-tag-attachment-type-value +// #6.213(composite-type-value) +func (d *Decoder) decodeAttachmentTypeValue(visited *cadenceTypeByCCFTypeID) (cadence.Type, error) { + ctr := func( + location common.Location, + qualifiedIdentifier string, + typ cadence.Type, + ) (cadence.Type, error) { + if typ == nil { + return nil, fmt.Errorf("encoded attachment-type-value has nil base type") + } + return cadence.NewMeteredAttachmentType( + d.gauge, + location, + qualifiedIdentifier, + typ, + nil, + nil, + ), nil + } + + return d.decodeCompositeTypeValue(visited, ctr) +} + // decodeStructInterfaceTypeValue decodes struct-inteface-type-value as // language=CDDL // struct-interface-type-value = @@ -1769,6 +1901,12 @@ type compositeTypeValue struct { rawInitializers []byte } +//go:linkname setCompositeTypeFields github.com/onflow/cadence.setCompositeTypeFields +func setCompositeTypeFields(cadence.CompositeType, []cadence.Field) + +//go:linkname setInterfaceTypeFields github.com/onflow/cadence.setInterfaceTypeFields +func setInterfaceTypeFields(cadence.InterfaceType, []cadence.Field) + // decodeCompositeTypeValue decodes composite-type-value. // See _decodeCompositeTypeValue for details. func (d *Decoder) decodeCompositeTypeValue( @@ -1794,16 +1932,6 @@ func (d *Decoder) decodeCompositeTypeValue( return nil, errors.New("unexpected nil composite type value") } - // "Deterministic CCF Encoding Requirements" in CCF specs: - // - // "composite-type-value.id MUST be identical to the zero-based encoding order type-value." - if compTypeValue.ccfID != newCCFTypeIDFromUint64(uint64(visited.count())) { - return nil, fmt.Errorf( - "encoded composite-type-value's CCF type ID %d doesn't match zero-based encoding order composite-type-value", - compTypeValue.ccfID, - ) - } - newType := visited.add(compTypeValue.ccfID, compositeType) if !newType { // "Valid CCF Encoding Requirements" in CCF specs: @@ -1828,11 +1956,11 @@ func (d *Decoder) decodeCompositeTypeValue( switch compositeType := compositeType.(type) { case *cadence.StructType: - compositeType.Fields = fields + setCompositeTypeFields(compositeType, fields) compositeType.Initializers = initializers case *cadence.ResourceType: - compositeType.Fields = fields + setCompositeTypeFields(compositeType, fields) compositeType.Initializers = initializers case *cadence.EventType: @@ -1842,27 +1970,31 @@ func (d *Decoder) decodeCompositeTypeValue( len(initializers), ) } - compositeType.Fields = fields + setCompositeTypeFields(compositeType, fields) compositeType.Initializer = initializers[0] case *cadence.ContractType: - compositeType.Fields = fields + setCompositeTypeFields(compositeType, fields) compositeType.Initializers = initializers case *cadence.EnumType: - compositeType.Fields = fields + setCompositeTypeFields(compositeType, fields) + compositeType.Initializers = initializers + + case *cadence.AttachmentType: + setCompositeTypeFields(compositeType, fields) compositeType.Initializers = initializers case *cadence.StructInterfaceType: - compositeType.Fields = fields + setInterfaceTypeFields(compositeType, fields) compositeType.Initializers = initializers case *cadence.ResourceInterfaceType: - compositeType.Fields = fields + setInterfaceTypeFields(compositeType, fields) compositeType.Initializers = initializers case *cadence.ContractInterfaceType: - compositeType.Fields = fields + setInterfaceTypeFields(compositeType, fields) compositeType.Initializers = initializers } @@ -1907,6 +2039,18 @@ func (d *Decoder) _decodeCompositeTypeValue(visited *cadenceTypeByCCFTypeID) (*c return nil, err } + // "Deterministic CCF Encoding Requirements" in CCF specs: + // + // "composite-type-value.id MUST be identical to the zero-based encoding order type-value." + if !visited.isNextCCFTypeID(ccfID) { + return nil, fmt.Errorf( + "encoded composite-type-value's CCF type ID %d doesn't match zero-based encoding order composite-type-value", + ccfID, + ) + } + + visited.addCCFTypeID(ccfID) + // element 1: cadence-type-id _, location, identifier, err := d.decodeCadenceTypeID() if err != nil { @@ -2155,6 +2299,11 @@ func (d *Decoder) decodeParameterTypeValue(visited *cadenceTypeByCCFTypeID) (cad return cadence.NewParameter(label, identifier, t), nil } +const ( + functionTypeArrayCount = 3 + functionTypeWithPurityArrayCount = 4 +) + // decodeFunctionTypeValue decodes encoded function-value as // language=CDDL // function-value = [ @@ -2173,15 +2322,20 @@ func (d *Decoder) decodeParameterTypeValue(visited *cadenceTypeByCCFTypeID) (cad // ] // ] // return-type: type-value +// purity: int (optional) // // ] func (d *Decoder) decodeFunctionTypeValue(visited *cadenceTypeByCCFTypeID) (cadence.Type, error) { - // Decode array head of length 3 - err := decodeCBORArrayWithKnownSize(d.dec, 3) + // Decode array head for element count + c, err := d.dec.DecodeArrayHead() if err != nil { return nil, err } + if c != functionTypeArrayCount && c != functionTypeWithPurityArrayCount { + return nil, fmt.Errorf("CBOR array of function-value has %d elements (expected 3 or 4 elements)", c) + } + // element 0: type parameters typeParameters, err := d.decodeTypeParameterTypeValues(visited) if err != nil { @@ -2204,9 +2358,21 @@ func (d *Decoder) decodeFunctionTypeValue(visited *cadenceTypeByCCFTypeID) (cade return nil, errors.New("unexpected nil function return type") } - // TODO: purity := cadence.FunctionPurityUnspecified + // optional element 3: purity + if c == functionTypeWithPurityArrayCount { + rawPurity, err := d.dec.DecodeInt64() + if err != nil { + return nil, err + } + + purity, err = cadence.NewFunctionaryPurity(int(rawPurity)) + if err != nil { + return nil, err + } + } + return cadence.NewMeteredFunctionType( d.gauge, purity, diff --git a/encoding/ccf/decode_type.go b/encoding/ccf/decode_type.go index cd190c3086..97ca958718 100644 --- a/encoding/ccf/decode_type.go +++ b/encoding/ccf/decode_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,6 +45,7 @@ type decodeTypeFn func(types *cadenceTypeByCCFTypeID) (cadence.Type, error) // / reference-type // / intersection-type // / capability-type +// / inclusiverange-type // / type-ref // // All exported Cadence types needs to be handled in this function, @@ -71,8 +72,11 @@ func (d *Decoder) decodeInlineType(types *cadenceTypeByCCFTypeID) (cadence.Type, case CBORTagDictType: return d.decodeDictType(types, d.decodeInlineType) + case CBORTagInclusiveRangeType: + return d.decodeInclusiveRangeType(types, d.decodeInlineType) + case CBORTagReferenceType: - return d.decodeReferenceType(types, d.decodeInlineType) + return d.decodeReferenceType(types, d.decodeInlineType, true) case CBORTagIntersectionType: return d.decodeIntersectionType(types, d.decodeInlineType) @@ -273,6 +277,36 @@ func (d *Decoder) decodeDictType( return cadence.NewMeteredDictionaryType(d.gauge, keyType, elementType), nil } +// decodeInclusiveRangeType decodes inclusiverange-type or inclusiverange-type-value as +// language=CDDL +// inclusiverange-type = +// +// ; cbor-tag-inclusiverange-type +// #6.145(inline-type) +// +// inclusiverange-type-value = +// +// ; cbor-tag-inclusiverange-type-value +// #6.194(type-value) +// +// NOTE: decodeTypeFn is responsible for decoding inline-type or type-value. +func (d *Decoder) decodeInclusiveRangeType( + types *cadenceTypeByCCFTypeID, + decodeTypeFn decodeTypeFn, +) (cadence.Type, error) { + // element 0: element type (inline-type or type-value) + elementType, err := decodeTypeFn(types) + if err != nil { + return nil, err + } + + if elementType == nil { + return nil, errors.New("unexpected nil type as InclusiveRange element type") + } + + return cadence.NewMeteredInclusiveRangeType(d.gauge, elementType), nil +} + // decodeCapabilityType decodes capability-type or capability-type-value as // language=CDDL // capability-type = @@ -313,9 +347,212 @@ func (d *Decoder) decodeCapabilityType( return cadence.NewMeteredCapabilityType(d.gauge, borrowType), nil } -func (d *Decoder) decodeAuthorization() (cadence.Authorization, error) { - err := d.dec.DecodeNil() - return cadence.UnauthorizedAccess, err +// decodeAuthorization decodes auth-type or auth-type-value as +// language=CDDL +// authorization-type = +// +// unauthorized-type +// / entitlement-set-authorization-type +// / entitlement-map-authorization-type +// +// unauthorized-type = nil +// +// entitlement-set-authorization-type = +// +// ; cbor-tag-entitlement-set-authorization-type +// #6.146([ +// kind: uint8, +// entitlements: +[string] +// ]) +// +// entitlement-map-authorization-type = +// +// ; cbor-tag-entitlement-map-authorization-type +// #6.147(entitlement: string) +// +// authorization-type-value = +// +// unauthorized-type-value +// / entitlement-set-authorization-type-value +// / entitlement-map-authorization-type-value +// +// unauthorized-type-value = nil +// +// entitlement-set-authorization-type-value = +// +// ; cbor-tag-entitlement-set-authorization-type-value +// #6.195([ +// kind: uint8, +// entitlements: +[string] +// ]) +// +// entitlement-map-authorization-type-value = +// +// ; cbor-tag-entitlement-map-authorization-type-value +// #6.196(entitlement: string) +func (d *Decoder) decodeAuthorization(isType bool) (cadence.Authorization, error) { + nt, err := d.dec.NextType() + if err != nil { + return nil, err + } + + switch nt { + case cbor.NilType: + err = d.dec.DecodeNil() + if err != nil { + return nil, err + } + return cadence.UnauthorizedAccess, nil + + case cbor.TagType: + tagNum, err := d.dec.DecodeTagNumber() + if err != nil { + return nil, err + } + + if isType { + + switch tagNum { + case CBORTagEntitlementSetAuthorizationAccessType: + return d.decodeEntitlementSetAuthorization() + + case CBORTagEntitlementMapAuthorizationAccessType: + return d.decodeEntitlementMapAuthorization() + + default: + return nil, fmt.Errorf("unexpected CBOR tag number %d as Authorization type", tagNum) + } + + } else { + + switch tagNum { + case CBORTagEntitlementSetAuthorizationAccessTypeValue: + return d.decodeEntitlementSetAuthorization() + + case CBORTagEntitlementMapAuthorizationAccessTypeValue: + return d.decodeEntitlementMapAuthorization() + + default: + return nil, fmt.Errorf("unexpected CBOR tag number %d as Authorization type value", tagNum) + } + + } + + default: + return nil, fmt.Errorf("unexpected CBOR type %s as Authorization type", nt.String()) + } +} + +const entitlementSetAuthorizationArraySize = 2 + +// decodeEntitlementSetAuthorization decodes +// - entitlement-set-authorization-type, or +// - entitlement-set-authorization-type-value +// without CBOR tag as +// language=CDDL +// entitlement-set-authorization-type = +// +// ; cbor-tag-entitlement-set-authorization-type +// #6.146([ +// kind: uint8, +// entitlements: +[string] +// ]) +func (d *Decoder) decodeEntitlementSetAuthorization() (cadence.Authorization, error) { + + // Decode array head of known length. + err := decodeCBORArrayWithKnownSize(d.dec, entitlementSetAuthorizationArraySize) + if err != nil { + return nil, err + } + + // element 0: kind + rawKind, err := d.dec.DecodeUint64() + if err != nil { + return nil, err + } + + kind, exist := entitlementSetKindCadenceTypeByRawValue(entitlementSetKind(rawKind)) + if !exist { + return nil, fmt.Errorf("unexpected entitlement set kind %d for Authorization type", rawKind) + } + + // element 1: array of entitlements + entitlementCount, err := d.dec.DecodeArrayHead() + if err != nil { + return nil, err + } + + switch entitlementCount { + case 0: + return nil, fmt.Errorf("unexpected 0 element entitlement set for Authorization type") + + case 1: + typeID, err := d.dec.DecodeString() + if err != nil { + return nil, err + } + auth := cadence.NewEntitlementSetAuthorization( + d.gauge, + []common.TypeID{common.TypeID(typeID)}, + kind, + ) + return auth, nil + + default: + entitlements := make([]common.TypeID, entitlementCount) + entitlementsSet := make(map[string]struct{}, entitlementCount) + var previousEntitlement string + + for i := 0; i < int(entitlementCount); i++ { + typeID, err := d.dec.DecodeString() + if err != nil { + return nil, err + } + + // "Valid CCF Encoding Requirements" in CCF specs: + // + // "Elements MUST be unique in entitlement-set-authorization-type.entitlements." + // "Elements MUST be unique in entitlement-set-authorization-type-value.entitlements." + if _, ok := entitlementsSet[typeID]; ok { + return nil, fmt.Errorf("found duplicate entitlement %s in entitlement set", typeID) + } + + if d.dm.enforceSortEntitlementTypes == EnforceSortBytewiseLexical { + // "Deterministic CCF Encoding Requirements" in CCF specs: + // + // "Elements in entitlement-set-authorization-type.entitlements MUST be sorted" + // "Elements in entitlement-set-authorization-type-value.entitlements MUST be sorted" + if !stringsAreSortedBytewise(previousEntitlement, typeID) { + return nil, fmt.Errorf("entitlements are not sorted in entitlement set (%s, %s)", previousEntitlement, typeID) + } + } + + entitlementsSet[typeID] = struct{}{} + previousEntitlement = typeID + entitlements[i] = common.TypeID(typeID) + } + + auth := cadence.NewEntitlementSetAuthorization(d.gauge, entitlements, kind) + return auth, nil + } +} + +// decodeEntitlementMapAuthorization decodes +// - entitlement-map-authorization-type, or +// - entitlement-map-authorization-type-value +// without CBOR tag as +// language=CDDL +// entitlement-map-authorization-type = +// +// ; cbor-tag-entitlement-map-authorization-type +// #6.147(string) +func (d *Decoder) decodeEntitlementMapAuthorization() (cadence.Authorization, error) { + typeID, err := d.dec.DecodeString() + if err != nil { + return nil, err + } + + return cadence.NewEntitlementMapAuthorization(d.gauge, common.TypeID(typeID)), nil } // decodeReferenceType decodes reference-type or reference-type-value as @@ -324,7 +561,7 @@ func (d *Decoder) decodeAuthorization() (cadence.Authorization, error) { // // ; cbor-tag-reference-type // #6.142([ -// authorized: bool, +// authorized: authorization-type, // type: inline-type, // ]) // @@ -332,7 +569,7 @@ func (d *Decoder) decodeAuthorization() (cadence.Authorization, error) { // // ; cbor-tag-reference-type-value // #6.190([ -// authorized: bool, +// authorized: authorization-type, // type: type-value, // ]) // @@ -340,6 +577,7 @@ func (d *Decoder) decodeAuthorization() (cadence.Authorization, error) { func (d *Decoder) decodeReferenceType( types *cadenceTypeByCCFTypeID, decodeTypeFn decodeTypeFn, + isType bool, ) (cadence.Type, error) { // Decode array head of length 2 err := decodeCBORArrayWithKnownSize(d.dec, 2) @@ -348,7 +586,7 @@ func (d *Decoder) decodeReferenceType( } // element 0: authorization - authorization, err := d.decodeAuthorization() + authorization, err := d.decodeAuthorization(isType) if err != nil { return nil, err } diff --git a/encoding/ccf/decode_typedef.go b/encoding/ccf/decode_typedef.go index 3933957f65..11c4dd583e 100644 --- a/encoding/ccf/decode_typedef.go +++ b/encoding/ccf/decode_typedef.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,6 +45,7 @@ type rawFieldsWithCCFTypeID struct { // / contract-type // / event-type // / enum-type +// / attachment-type // / struct-interface-type // / resource-interface-type // / contract-interface-type @@ -132,7 +133,7 @@ func (d *Decoder) decodeTypeDefs() (*cadenceTypeByCCFTypeID, error) { switch typ := typ.(type) { case cadence.CompositeType: - typ.SetCompositeFields(fields) + setCompositeTypeFields(typ, fields) default: return nil, fmt.Errorf("unsupported type %s (%T) in composite-typedef", typ.ID(), typ) @@ -169,6 +170,11 @@ func (d *Decoder) decodeTypeDefs() (*cadenceTypeByCCFTypeID, error) { // ; cbor-tag-enum-type // #6.164(composite-type) // +// attachment-type = +// +// ; cbor-tag-attachment-type +// #6.165(composite-type) +// // struct-interface-type = // // ; cbor-tag-struct-interface-type @@ -258,6 +264,19 @@ func (d *Decoder) decodeTypeDef( } return d.decodeCompositeType(types, ctr) + case CBORTagAttachmentType: + ctr := func(location common.Location, identifier string) cadence.Type { + return cadence.NewMeteredAttachmentType( + d.gauge, + location, + identifier, + nil, + nil, + nil, + ) + } + return d.decodeCompositeType(types, ctr) + case CBORTagStructInterfaceType: ctr := func(location common.Location, identifier string) cadence.Type { return cadence.NewMeteredStructInterfaceType( diff --git a/encoding/ccf/encode.go b/encoding/ccf/encode.go index f3fa139021..9317773150 100644 --- a/encoding/ccf/encode.go +++ b/encoding/ccf/encode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import ( goRuntime "runtime" "sort" "sync" + _ "unsafe" "github.com/fxamacker/cbor/v2" @@ -96,6 +97,9 @@ type EncOptions struct { // SortIntersectionTypes specifies sort order of Cadence intersection types. SortIntersectionTypes SortMode + + // SortEntitlementTypes specifies sort order of Cadence entitlement types. + SortEntitlementTypes SortMode } // EventsEncMode is CCF encoding mode for events which contains @@ -103,11 +107,13 @@ type EncOptions struct { var EventsEncMode = &encMode{ sortCompositeFields: SortNone, sortIntersectionTypes: SortNone, + sortEntitlementTypes: SortNone, } type encMode struct { sortCompositeFields SortMode sortIntersectionTypes SortMode + sortEntitlementTypes SortMode } // EncMode returns CCF encoding mode, which contains immutable encoding options @@ -119,9 +125,15 @@ func (opts EncOptions) EncMode() (EncMode, error) { if !opts.SortIntersectionTypes.valid() { return nil, fmt.Errorf("ccf: invalid SortIntersectionTypes %d", opts.SortIntersectionTypes) } + + if !opts.SortEntitlementTypes.valid() { + return nil, fmt.Errorf("ccf: invalid SortEntitlementTypes %d", opts.SortEntitlementTypes) + } + return &encMode{ sortCompositeFields: opts.SortCompositeFields, sortIntersectionTypes: opts.SortIntersectionTypes, + sortEntitlementTypes: opts.SortEntitlementTypes, }, nil } @@ -329,6 +341,7 @@ func (e *Encoder) encodeInlineTypeAndValue(value cadence.Value, tids ccfTypeIDBy // / contract-type // / event-type // / enum-type +// / attachment-type // / struct-interface-type // / resource-interface-type // / contract-interface-type @@ -344,7 +357,7 @@ func (e *Encoder) encodeTypeDefs(types []cadence.Type, tids ccfTypeIDByCadenceTy switch typ := typ.(type) { case cadence.CompositeType: - // Encode struct-type, resource-type, contract-type, event-type, or enum-type. + // Encode struct-type, resource-type, contract-type, event-type, enum-type, or attachment-type. err = e.encodeCompositeType(typ, tids) if err != nil { return err @@ -378,6 +391,7 @@ func (e *Encoder) encodeTypeDefs(types []cadence.Type, tids ccfTypeIDByCadenceTy // / path-value // / path-capability-value // / id-capability-value +// / inclusiverange-value // / function-value // / type-value // @@ -563,6 +577,9 @@ func (e *Encoder) encodeValue( case cadence.Dictionary: return e.encodeDictionary(v, tids) + case *cadence.InclusiveRange: + return e.encodeInclusiveRange(v, tids) + case cadence.Struct: return e.encodeStruct(v, tids) @@ -575,6 +592,9 @@ func (e *Encoder) encodeValue( case cadence.Contract: return e.encodeContract(v, tids) + case cadence.Attachment: + return e.encodeAttachment(v, tids) + case cadence.Path: return e.encodePath(v) @@ -620,7 +640,7 @@ func (e *Encoder) encodeValue( // encodeVoid encodes cadence.Void as // language=CDDL // void-value = nil -func (e *Encoder) encodeVoid(v cadence.Void) error { +func (e *Encoder) encodeVoid(_ cadence.Void) error { return e.enc.EncodeNil() } @@ -974,39 +994,101 @@ func encodeAndSortKeyValuePairs( return encodedPairs, nil } +// encodeInclusiveRange encodes cadence.InclusiveRange as +// language=CDDL +// inclusiverange-value = [3*3 (key: value, value: value)] +func (e *Encoder) encodeInclusiveRange(v *cadence.InclusiveRange, tids ccfTypeIDByCadenceType) error { + staticElementType := v.InclusiveRangeType.ElementType + + // Encode array head with array size of 3. + err := e.enc.EncodeArrayHead(3) + if err != nil { + return err + } + + // Encode start key as value. + err = e.encodeValue(v.Start, staticElementType, tids) + if err != nil { + return err + } + + // Encode end as value. + err = e.encodeValue(v.End, staticElementType, tids) + if err != nil { + return err + } + + // Encode step key as value. + return e.encodeValue(v.Step, staticElementType, tids) +} + +//go:linkname getCompositeFieldValues github.com/onflow/cadence.getCompositeFieldValues +func getCompositeFieldValues(cadence.Composite) []cadence.Value + // encodeStruct encodes cadence.Struct as // language=CDDL // composite-value = [* (field: value)] func (e *Encoder) encodeStruct(v cadence.Struct, tids ccfTypeIDByCadenceType) error { - return e.encodeComposite(v.StructType, v.Fields, tids) + return e.encodeComposite( + v.StructType, + getCompositeFieldValues(v), + tids, + ) } // encodeResource encodes cadence.Resource as // language=CDDL // composite-value = [* (field: value)] func (e *Encoder) encodeResource(v cadence.Resource, tids ccfTypeIDByCadenceType) error { - return e.encodeComposite(v.ResourceType, v.Fields, tids) + return e.encodeComposite( + v.ResourceType, + getCompositeFieldValues(v), + tids, + ) } // encodeEvent encodes cadence.Event as // language=CDDL // composite-value = [* (field: value)] func (e *Encoder) encodeEvent(v cadence.Event, tids ccfTypeIDByCadenceType) error { - return e.encodeComposite(v.EventType, v.Fields, tids) + return e.encodeComposite( + v.EventType, + getCompositeFieldValues(v), + tids, + ) } // encodeContract encodes cadence.Contract as // language=CDDL // composite-value = [* (field: value)] func (e *Encoder) encodeContract(v cadence.Contract, tids ccfTypeIDByCadenceType) error { - return e.encodeComposite(v.ContractType, v.Fields, tids) + return e.encodeComposite( + v.ContractType, + getCompositeFieldValues(v), + tids, + ) } // encodeEnum encodes cadence.Enum as // language=CDDL // composite-value = [* (field: value)] func (e *Encoder) encodeEnum(v cadence.Enum, tids ccfTypeIDByCadenceType) error { - return e.encodeComposite(v.EnumType, v.Fields, tids) + return e.encodeComposite( + v.EnumType, + getCompositeFieldValues(v), + tids, + ) +} + +// encodeAttachment encodes cadence.Attachment as +// language=CDDL +// composite-value = [* (field: value)] +func (e *Encoder) encodeAttachment(v cadence.Attachment, tids ccfTypeIDByCadenceType) error { + return e.encodeComposite( + v.AttachmentType, + getCompositeFieldValues(v), + tids, + ) } // encodeComposite encodes composite types as @@ -1017,7 +1099,7 @@ func (e *Encoder) encodeComposite( fields []cadence.Value, tids ccfTypeIDByCadenceType, ) error { - staticFieldTypes := typ.CompositeFields() + staticFieldTypes := getCompositeTypeFields(typ) if len(staticFieldTypes) != len(fields) { panic(cadenceErrors.NewUnexpectedError( @@ -1152,13 +1234,14 @@ func (e *Encoder) encodeCapability(capability cadence.Capability) error { // ] // ] // return-type: type-value +// purity: int // // ] func (e *Encoder) encodeFunction(typ *cadence.FunctionType, visited ccfTypeIDByCadenceType) error { - // Encode array head of length 3. + // Encode array head of length 4. err := e.enc.EncodeRawBytes([]byte{ - // array, 3 items follow - 0x83, + // array, 4 items follow + 0x84, }) if err != nil { return err @@ -1177,7 +1260,13 @@ func (e *Encoder) encodeFunction(typ *cadence.FunctionType, visited ccfTypeIDByC } // element 2: return type as type-value. - return e.encodeTypeValue(typ.ReturnType, visited) + err = e.encodeTypeValue(typ.ReturnType, visited) + if err != nil { + return err + } + + // element 3: purity as int. + return e.enc.EncodeInt(int(typ.Purity)) } // encodeTypeValue encodes cadence.Type as @@ -1194,6 +1283,7 @@ func (e *Encoder) encodeFunction(typ *cadence.FunctionType, visited ccfTypeIDByC // / contract-type-value // / event-type-value // / enum-type-value +// / attachment-type-value // / struct-interface-type-value // / resource-interface-type-value // / contract-interface-type-value @@ -1201,6 +1291,7 @@ func (e *Encoder) encodeFunction(typ *cadence.FunctionType, visited ccfTypeIDByC // / reference-type-value // / intersection-type-value // / capability-type-value +// / inclusiverange-type-value // / type-value-ref // // TypeValue is used differently from inline type or type definition. @@ -1251,6 +1342,12 @@ func (e *Encoder) encodeTypeValue(typ cadence.Type, visited ccfTypeIDByCadenceTy case *cadence.ContractType: return e.encodeContractTypeValue(typ, visited) + case *cadence.AttachmentType: + return e.encodeAttachmentTypeValue(typ, visited) + + case *cadence.InclusiveRangeType: + return e.encodeInclusiveRangeTypeValue(typ, visited) + case *cadence.StructInterfaceType: return e.encodeStructInterfaceTypeValue(typ, visited) @@ -1380,13 +1477,29 @@ func (e *Encoder) encodeDictTypeValue(typ *cadence.DictionaryType, visited ccfTy ) } +// encodeInclusiveRangeTypeValue encodes cadence.InclusiveRangeType as +// language=CDDL +// inclusiverange-type-value = +// +// ; cbor-tag-inclusiverange-type-value +// #6.194(type-value) +func (e *Encoder) encodeInclusiveRangeTypeValue(typ *cadence.InclusiveRangeType, visited ccfTypeIDByCadenceType) error { + rawTagNum := []byte{0xd8, CBORTagInclusiveRangeTypeValue} + return e.encodeInclusiveRangeTypeWithRawTag( + typ, + visited, + e.encodeTypeValue, + rawTagNum, + ) +} + // encodeReferenceTypeValue encodes cadence.ReferenceType as // language=CDDL // reference-type-value = // // ; cbor-tag-reference-type-value // #6.190([ -// authorized: bool, +// authorized: authorization-type, // type: type-value, // ]) func (e *Encoder) encodeReferenceTypeValue(typ *cadence.ReferenceType, visited ccfTypeIDByCadenceType) error { @@ -1396,6 +1509,7 @@ func (e *Encoder) encodeReferenceTypeValue(typ *cadence.ReferenceType, visited c visited, e.encodeTypeValue, rawTagNum, + false, ) } @@ -1450,7 +1564,7 @@ func (e *Encoder) encodeStructTypeValue(typ *cadence.StructType, visited ccfType return e.encodeCompositeTypeValue( typ.ID(), nil, - typ.Fields, + getCompositeTypeFields(typ), typ.Initializers, visited, rawTagNum, @@ -1468,7 +1582,7 @@ func (e *Encoder) encodeResourceTypeValue(typ *cadence.ResourceType, visited ccf return e.encodeCompositeTypeValue( typ.ID(), nil, - typ.Fields, + getCompositeTypeFields(typ), typ.Initializers, visited, rawTagNum, @@ -1486,7 +1600,7 @@ func (e *Encoder) encodeEventTypeValue(typ *cadence.EventType, visited ccfTypeID return e.encodeCompositeTypeValue( typ.ID(), nil, - typ.Fields, + getCompositeTypeFields(typ), [][]cadence.Parameter{typ.Initializer}, visited, rawTagNum, @@ -1504,7 +1618,7 @@ func (e *Encoder) encodeContractTypeValue(typ *cadence.ContractType, visited ccf return e.encodeCompositeTypeValue( typ.ID(), nil, - typ.Fields, + getCompositeTypeFields(typ), typ.Initializers, visited, rawTagNum, @@ -1522,7 +1636,25 @@ func (e *Encoder) encodeEnumTypeValue(typ *cadence.EnumType, visited ccfTypeIDBy return e.encodeCompositeTypeValue( typ.ID(), typ.RawType, - typ.Fields, + getCompositeTypeFields(typ), + typ.Initializers, + visited, + rawTagNum, + ) +} + +// encodeAttachmentTypeValue encodes cadence.AttachmentType as +// language=CDDL +// attachment-type-value = +// +// ; cbor-tag-attachment-type-value +// #6.213(composite-type-value) +func (e *Encoder) encodeAttachmentTypeValue(typ *cadence.AttachmentType, visited ccfTypeIDByCadenceType) error { + rawTagNum := []byte{0xd8, CBORTagAttachmentTypeValue} + return e.encodeCompositeTypeValue( + typ.ID(), + typ.BaseType, + getCompositeTypeFields(typ), typ.Initializers, visited, rawTagNum, @@ -1540,7 +1672,7 @@ func (e *Encoder) encodeStructInterfaceTypeValue(typ *cadence.StructInterfaceTyp return e.encodeCompositeTypeValue( typ.ID(), nil, - typ.Fields, + getInterfaceTypeFields(typ), typ.Initializers, visited, rawTagNum, @@ -1558,7 +1690,7 @@ func (e *Encoder) encodeResourceInterfaceTypeValue(typ *cadence.ResourceInterfac return e.encodeCompositeTypeValue( typ.ID(), nil, - typ.Fields, + getInterfaceTypeFields(typ), typ.Initializers, visited, rawTagNum, @@ -1576,7 +1708,7 @@ func (e *Encoder) encodeContractInterfaceTypeValue(typ *cadence.ContractInterfac return e.encodeCompositeTypeValue( typ.ID(), nil, - typ.Fields, + getInterfaceTypeFields(typ), typ.Initializers, visited, rawTagNum, @@ -1589,7 +1721,7 @@ func (e *Encoder) encodeContractInterfaceTypeValue(typ *cadence.ContractInterfac // // id: id, // cadence-type-id: cadence-type-id, -// ; type is only used by enum type value +// ; type is only used by enum type value (as RawType) and attachment type value (as BaseType) // type: nil / type-value, // fields: [ // * [ @@ -2050,7 +2182,7 @@ func (e *Encoder) getSortedFieldIndex(t cadence.CompositeType) []int { // NOTE: bytewiseFieldIdentifierSorter doesn't sort fields in place. // bytewiseFieldIdentifierSorter.indexes is used as sorted fieldTypes // index. - sorter := newBytewiseFieldSorter(t.CompositeFields()) + sorter := newBytewiseFieldSorter(getCompositeTypeFields(t)) sort.Sort(sorter) diff --git a/encoding/ccf/encode_type.go b/encoding/ccf/encode_type.go index 970784e846..6cec19e9bc 100644 --- a/encoding/ccf/encode_type.go +++ b/encoding/ccf/encode_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package ccf import ( + "fmt" "sort" "github.com/onflow/cadence" @@ -39,6 +40,7 @@ type encodeTypeFn func(typ cadence.Type, tids ccfTypeIDByCadenceType) error // / reference-type // / intersection-type // / capability-type +// / inclusiverange-type // / type-ref // // All exported Cadence types need to be supported by this function, @@ -62,6 +64,9 @@ func (e *Encoder) encodeInlineType(typ cadence.Type, tids ccfTypeIDByCadenceType case *cadence.DictionaryType: return e.encodeDictType(typ, tids) + case *cadence.InclusiveRangeType: + return e.encodeInclusiveRangeType(typ, tids) + case cadence.CompositeType, cadence.InterfaceType: id, err := tids.id(typ) if err != nil { @@ -70,7 +75,7 @@ func (e *Encoder) encodeInlineType(typ cadence.Type, tids ccfTypeIDByCadenceType return e.encodeTypeRef(id) case *cadence.ReferenceType: - return e.encodeReferenceType(typ, tids) + return e.encodeReferenceType(typ, tids, true) case *cadence.IntersectionType: return e.encodeIntersectionType(typ, tids) @@ -296,18 +301,56 @@ func (e *Encoder) encodeDictTypeWithRawTag( return encodeTypeFn(typ.ElementType, tids) } +// encodeInclusiveRangeType encodes cadence.InclusiveRangeType as +// language=CDDL +// inclusiverange-type = +// +// ; cbor-tag-inclusiverange-type +// #6.145(inline-type) +func (e *Encoder) encodeInclusiveRangeType( + typ *cadence.InclusiveRangeType, + tids ccfTypeIDByCadenceType, +) error { + rawTagNum := []byte{0xd8, CBORTagInclusiveRangeType} + return e.encodeInclusiveRangeTypeWithRawTag( + typ, + tids, + e.encodeInlineType, + rawTagNum, + ) +} + +// encodeInclusiveRangeTypeWithRawTag encodes cadence.InclusiveRangeType +// with given tag number and encode type function. +func (e *Encoder) encodeInclusiveRangeTypeWithRawTag( + typ *cadence.InclusiveRangeType, + tids ccfTypeIDByCadenceType, + encodeTypeFn encodeTypeFn, + rawTagNumber []byte, +) error { + // Encode CBOR tag number. + err := e.enc.EncodeRawBytes(rawTagNumber) + if err != nil { + return err + } + + // Encode element type with given encodeTypeFn + return encodeTypeFn(typ.ElementType, tids) +} + // encodeReferenceType encodes cadence.ReferenceType as // language=CDDL // reference-type = // // ; cbor-tag-reference-type // #6.142([ -// authorized: bool, +// authorized: authorization-type, // type: inline-type, // ]) func (e *Encoder) encodeReferenceType( typ *cadence.ReferenceType, tids ccfTypeIDByCadenceType, + isType bool, ) error { rawTagNum := []byte{0xd8, CBORTagReferenceType} return e.encodeReferenceTypeWithRawTag( @@ -315,14 +358,213 @@ func (e *Encoder) encodeReferenceType( tids, e.encodeInlineType, rawTagNum, + isType, ) } +// encodeAuthorization encodes cadence.Authorization as +// language=CDDL +// authorization-type = +// +// unauthorized-type +// / entitlement-set-authorization-type +// / entitlement-map-authorization-type +// +// unauthorized-type = nil +// +// entitlement-set-authorization-type = +// +// ; cbor-tag-entitlement-set-authorization-type +// #6.146([ +// kind: uint8, +// entitlements: +[string] +// ]) +// +// entitlement-map-authorization-type = +// +// ; cbor-tag-entitlement-map-authorization-type +// #6.147(entitlement: string) +// +// authorization-type-value = +// +// unauthorized-type-value +// / entitlement-set-authorization-type-value +// / entitlement-map-authorization-type-value +// +// unauthorized-type-value = nil +// +// entitlement-set-authorization-type-value = +// +// ; cbor-tag-entitlement-set-authorization-type-value +// #6.195([ +// kind: uint8, +// entitlements: +[string] +// ]) +// +// entitlement-map-authorization-type-value = +// +// ; cbor-tag-entitlement-map-authorization-type-value +// #6.196(entitlement: string) func (e *Encoder) encodeAuthorization( auth cadence.Authorization, + isType bool, +) error { + switch auth := auth.(type) { + case cadence.Unauthorized: + return e.enc.EncodeNil() + + case *cadence.EntitlementSetAuthorization: + var rawTagNum []byte + if isType { + rawTagNum = []byte{0xd8, CBORTagEntitlementSetAuthorizationAccessType} + } else { + rawTagNum = []byte{0xd8, CBORTagEntitlementSetAuthorizationAccessTypeValue} + } + return e.encodeEntitlementSetAuthorizationWithRawTag(auth, rawTagNum) + + case cadence.EntitlementMapAuthorization: + var rawTagNum []byte + if isType { + rawTagNum = []byte{0xd8, CBORTagEntitlementMapAuthorizationAccessType} + } else { + rawTagNum = []byte{0xd8, CBORTagEntitlementMapAuthorizationAccessTypeValue} + } + return e.encodeEntitlementMapAuthorizationWithRawTag(auth, rawTagNum) + + default: + panic(cadenceErrors.NewUnexpectedError("cannot encode unsupported Authorization (%T) type", auth)) + } +} + +// encodeEntitlementSetAuthorization encodes cadence.EntitlementSetAuthorization as +// language=CDDL +// entitlement-set-authorization-type = +// +// ; cbor-tag-entitlement-set-authorization-type +// #6.146([ +// kind: uint8, +// entitlements: +[string] +// ]) +// +// or +// +// entitlement-set-authorization-type-value = +// +// ; cbor-tag-entitlement-set-authorization-type-value +// #6.195([ +// kind: uint8, +// entitlements: +[string] +// ]) +func (e *Encoder) encodeEntitlementSetAuthorizationWithRawTag( + auth *cadence.EntitlementSetAuthorization, + rawTagNum []byte, ) error { - // TODO: implement this - return e.enc.EncodeNil() + // Encode CBOR tag number. + err := e.enc.EncodeRawBytes(rawTagNum) + if err != nil { + return err + } + + // Encode array head of length 2. + err = e.enc.EncodeArrayHead(entitlementSetAuthorizationArraySize) + if err != nil { + return err + } + + // element 0: kind + kindRawValue, exist := entitlementSetKindRawValueByCadenceType(auth.Kind) + if !exist { + return fmt.Errorf("unexpected entitlement set kind %v for Authorization type", auth.Kind) + } + + err = e.enc.EncodeUint64(uint64(kindRawValue)) + if err != nil { + return err + } + + entitlements := auth.Entitlements + + // element 1: array of entitlements + err = e.enc.EncodeArrayHead(uint64(len(entitlements))) + if err != nil { + return err + } + + switch e.em.sortEntitlementTypes { + case SortNone: + for _, entitlement := range entitlements { + // Encode entitlement type. + err = e.enc.EncodeString(string(entitlement)) + if err != nil { + return err + } + } + return nil + + case SortBytewiseLexical: + switch len(entitlements) { + case 0: + // Short-circuit if there are no entitlements. + return nil + + case 1: + // Avoid overhead of sorting if there is only one entitlement. + err = e.enc.EncodeString(string(entitlements[0])) + if err != nil { + return err + } + + default: + // "Deterministic CCF Encoding Requirements" in CCF specs: + // + // "Elements in entitlement-set-authorization-type.entitlements MUST be sorted" + // "Elements in entitlement-set-authorization-type-value.entitlements MUST be sorted" + sorter := newBytewiseCadenceTypeIDSorter(entitlements) + + sort.Sort(sorter) + + for _, index := range sorter.indexes { + // Encode entitlement type. + err = e.enc.EncodeString(string(entitlements[index])) + if err != nil { + return err + } + } + + return nil + } + + default: + panic(cadenceErrors.NewUnexpectedError("unsupported sort option for entitlement types: %d", e.em.sortEntitlementTypes)) + } + + return nil +} + +// encodeEntitlementMapAuthorization encodes cadence.EntitlementMapAuthorization as +// language=CDDL +// entitlement-map-authorization-type = +// +// ; cbor-tag-entitlement-map-authorization-type +// #6.147(entitlement: string) +// +// or +// +// entitlement-map-authorization-type-value = +// +// ; cbor-tag-entitlement-map-authorization-type-value +// #6.196(entitlement: string) +func (e *Encoder) encodeEntitlementMapAuthorizationWithRawTag( + auth cadence.EntitlementMapAuthorization, + rawTagNum []byte, +) error { + // Encode CBOR tag number. + err := e.enc.EncodeRawBytes(rawTagNum) + if err != nil { + return err + } + + return e.enc.EncodeString(string(auth.TypeID)) } // encodeReferenceTypeWithRawTag encodes cadence.ReferenceType @@ -332,6 +574,7 @@ func (e *Encoder) encodeReferenceTypeWithRawTag( tids ccfTypeIDByCadenceType, encodeTypeFn encodeTypeFn, rawTagNumber []byte, + isType bool, ) error { // Encode CBOR tag number. err := e.enc.EncodeRawBytes(rawTagNumber) @@ -346,7 +589,7 @@ func (e *Encoder) encodeReferenceTypeWithRawTag( } // element 0: authorization - err = e.encodeAuthorization(typ.Authorization) + err = e.encodeAuthorization(typ.Authorization, isType) if err != nil { return err } diff --git a/encoding/ccf/encode_typedef.go b/encoding/ccf/encode_typedef.go index bd05fe0bad..844f1cc0d0 100644 --- a/encoding/ccf/encode_typedef.go +++ b/encoding/ccf/encode_typedef.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,11 @@ import ( // ; cbor-tag-enum-type // #6.164(composite-type) // +// attachment-type = +// +// ; cbor-tag-attachment-type +// #6.165(composite-type) +// // composite-type = [ // // id: id, @@ -86,6 +91,9 @@ func (e *Encoder) encodeCompositeType(typ cadence.CompositeType, tids ccfTypeIDB case *cadence.EnumType: cborTagNum = CBORTagEnumType + case *cadence.AttachmentType: + cborTagNum = CBORTagAttachmentType + default: panic(cadenceErrors.NewUnexpectedError("unexpected composite type %s (%T)", typ.ID(), typ)) } @@ -128,7 +136,7 @@ func (e *Encoder) encodeCompositeType(typ cadence.CompositeType, tids ccfTypeIDB // ] // ] func (e *Encoder) encodeCompositeTypeFields(typ cadence.CompositeType, tids ccfTypeIDByCadenceType) error { - fieldTypes := typ.CompositeFields() + fieldTypes := getCompositeTypeFields(typ) // Encode array head with number of fields. err := e.enc.EncodeArrayHead(uint64(len(fieldTypes))) diff --git a/encoding/ccf/service_events_test.go b/encoding/ccf/service_events_test.go index b2ba61358a..b6e7c3c74a 100644 --- a/encoding/ccf/service_events_test.go +++ b/encoding/ccf/service_events_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,283 +46,563 @@ func TestEpochSetupEvent(t *testing.T) { evt, ok := decodedValue.(cadence.Event) require.True(t, ok) - require.Equal(t, 9, len(evt.Fields)) + + fields := cadence.FieldsMappedByName(evt) + require.Len(t, fields, 9) evtType, ok := decodedValue.Type().(*cadence.EventType) require.True(t, ok) - require.Equal(t, 9, len(evtType.Fields)) + + typeFields := evtType.FieldsMappedByName() + + require.Len(t, typeFields, 9) // field 0: counter - require.Equal(t, "counter", evtType.Fields[0].Identifier) - require.Equal(t, cadence.UInt64(1), evt.Fields[0]) + require.Equal(t, + cadence.UInt64Type, + typeFields["counter"], + ) + require.Equal(t, + cadence.UInt64(1), + fields["counter"], + ) // field 1: nodeInfo - require.Equal(t, "nodeInfo", evtType.Fields[1].Identifier) - nodeInfos, ok := evt.Fields[1].(cadence.Array) + require.IsType(t, + cadence.NewVariableSizedArrayType(newFlowIDTableStakingNodeInfoStructType()), + typeFields["nodeInfo"], + ) + nodeInfos, ok := fields["nodeInfo"].(cadence.Array) require.True(t, ok) testNodeInfos(t, nodeInfos) // field 2: firstView - require.Equal(t, "firstView", evtType.Fields[2].Identifier) - require.Equal(t, cadence.UInt64(100), evt.Fields[2]) + require.Equal(t, + cadence.UInt64Type, + typeFields["firstView"], + ) + require.Equal(t, + cadence.UInt64(100), + fields["firstView"], + ) // field 3: finalView - require.Equal(t, "finalView", evtType.Fields[3].Identifier) - require.Equal(t, cadence.UInt64(200), evt.Fields[3]) + require.Equal(t, + cadence.UInt64Type, + typeFields["finalView"], + ) + require.Equal(t, + cadence.UInt64(200), + fields["finalView"], + ) // field 4: collectorClusters - require.Equal(t, "collectorClusters", evtType.Fields[4].Identifier) - epochCollectors, ok := evt.Fields[4].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(newFlowClusterQCClusterStructType()), + typeFields["collectorClusters"], + ) + epochCollectors, ok := fields["collectorClusters"].(cadence.Array) require.True(t, ok) testEpochCollectors(t, epochCollectors) // field 5: randomSource - require.Equal(t, "randomSource", evtType.Fields[5].Identifier) - require.Equal(t, cadence.String("01020304"), evt.Fields[5]) + require.Equal(t, + cadence.StringType, + typeFields["randomSource"], + ) + require.Equal(t, + cadence.String("01020304"), + fields["randomSource"], + ) // field 6: DKGPhase1FinalView - require.Equal(t, "DKGPhase1FinalView", evtType.Fields[6].Identifier) - require.Equal(t, cadence.UInt64(150), evt.Fields[6]) + require.Equal(t, + cadence.UInt64Type, + typeFields["DKGPhase1FinalView"], + ) + require.Equal(t, + cadence.UInt64(150), + fields["DKGPhase1FinalView"], + ) // field 7: DKGPhase2FinalView - require.Equal(t, "DKGPhase2FinalView", evtType.Fields[7].Identifier) - require.Equal(t, cadence.UInt64(160), evt.Fields[7]) + require.Equal(t, + cadence.UInt64Type, + typeFields["DKGPhase2FinalView"], + ) + require.Equal(t, + cadence.UInt64(160), + fields["DKGPhase2FinalView"], + ) // field 8: DKGPhase3FinalView - require.Equal(t, "DKGPhase3FinalView", evtType.Fields[8].Identifier) - require.Equal(t, cadence.UInt64(170), evt.Fields[8]) + require.Equal(t, + cadence.UInt64Type, + typeFields["DKGPhase3FinalView"], + ) + require.Equal(t, + cadence.UInt64(170), + fields["DKGPhase3FinalView"], + ) } func testNodeInfos(t *testing.T, nodeInfos cadence.Array) { - require.Equal(t, 7, len(nodeInfos.Values)) + require.Len(t, nodeInfos.Values, 7) // Test nodeInfo 0 node0, ok := nodeInfos.Values[0].(cadence.Struct) require.True(t, ok) - require.Equal(t, 14, len(node0.Fields)) + + node0Fields := cadence.FieldsMappedByName(node0) + require.Len(t, node0Fields, 14) nodeInfoType, ok := node0.Type().(*cadence.StructType) require.True(t, ok) - require.Equal(t, 14, len(nodeInfoType.Fields)) + + node0FieldTypes := nodeInfoType.FieldsMappedByName() + require.Len(t, node0FieldTypes, 14) // field 0: id - require.Equal(t, "id", nodeInfoType.Fields[0].Identifier) - require.Equal(t, cadence.String("0000000000000000000000000000000000000000000000000000000000000001"), node0.Fields[0]) + require.Equal(t, + cadence.StringType, + node0FieldTypes["id"], + ) + require.Equal(t, + cadence.String("0000000000000000000000000000000000000000000000000000000000000001"), + node0Fields["id"], + ) // field 1: role - require.Equal(t, "role", nodeInfoType.Fields[1].Identifier) - require.Equal(t, cadence.UInt8(1), node0.Fields[1]) + require.Equal(t, + cadence.UInt8Type, + node0FieldTypes["role"], + ) + require.Equal(t, + cadence.UInt8(1), + node0Fields["role"], + ) // field 2: networkingAddress - require.Equal(t, "networkingAddress", nodeInfoType.Fields[2].Identifier) - require.Equal(t, cadence.String("1.flow.com"), node0.Fields[2]) + require.Equal(t, + cadence.StringType, + node0FieldTypes["networkingAddress"], + ) + require.Equal(t, + cadence.String("1.flow.com"), + node0Fields["networkingAddress"], + ) // field 3: networkingKey - require.Equal(t, "networkingKey", nodeInfoType.Fields[3].Identifier) - require.Equal(t, cadence.String("378dbf45d85c614feb10d8bd4f78f4b6ef8eec7d987b937e123255444657fb3da031f232a507e323df3a6f6b8f50339c51d188e80c0e7a92420945cc6ca893fc"), node0.Fields[3]) + require.Equal(t, + cadence.StringType, + node0FieldTypes["networkingKey"], + ) + require.Equal(t, + cadence.String("378dbf45d85c614feb10d8bd4f78f4b6ef8eec7d987b937e123255444657fb3da031f232a507e323df3a6f6b8f50339c51d188e80c0e7a92420945cc6ca893fc"), + node0Fields["networkingKey"], + ) // field 4: stakingKey - require.Equal(t, "stakingKey", nodeInfoType.Fields[4].Identifier) - require.Equal(t, cadence.String("af4aade26d76bb2ab15dcc89adcef82a51f6f04b3cb5f4555214b40ec89813c7a5f95776ea4fe449de48166d0bbc59b919b7eabebaac9614cf6f9461fac257765415f4d8ef1376a2365ec9960121888ea5383d88a140c24c29962b0a14e4e4e7"), node0.Fields[4]) + require.Equal(t, + cadence.StringType, + node0FieldTypes["stakingKey"], + ) + require.Equal(t, + cadence.String("af4aade26d76bb2ab15dcc89adcef82a51f6f04b3cb5f4555214b40ec89813c7a5f95776ea4fe449de48166d0bbc59b919b7eabebaac9614cf6f9461fac257765415f4d8ef1376a2365ec9960121888ea5383d88a140c24c29962b0a14e4e4e7"), + node0Fields["stakingKey"], + ) // field 5: tokensStaked - require.Equal(t, "tokensStaked", nodeInfoType.Fields[5].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node0.Fields[5]) + require.Equal(t, + cadence.UFix64Type, + node0FieldTypes["tokensStaked"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node0Fields["tokensStaked"], + ) // field 6: tokensCommitted - require.Equal(t, "tokensCommitted", nodeInfoType.Fields[6].Identifier) - require.Equal(t, ufix64FromString("1350000.00000000"), node0.Fields[6]) + require.Equal(t, + cadence.UFix64Type, + node0FieldTypes["tokensCommitted"], + ) + require.Equal(t, + ufix64FromString("1350000.00000000"), + node0Fields["tokensCommitted"], + ) // field 7: tokensUnstaking - require.Equal(t, "tokensUnstaking", nodeInfoType.Fields[7].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node0.Fields[7]) + require.Equal(t, + cadence.UFix64Type, + node0FieldTypes["tokensUnstaking"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node0Fields["tokensUnstaking"], + ) // field 8: tokensUnstaked - require.Equal(t, "tokensUnstaked", nodeInfoType.Fields[8].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node0.Fields[8]) + require.Equal(t, + cadence.UFix64Type, + node0FieldTypes["tokensUnstaked"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node0Fields["tokensUnstaked"], + ) // field 9: tokensRewarded - require.Equal(t, "tokensRewarded", nodeInfoType.Fields[9].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node0.Fields[9]) + require.Equal(t, + cadence.UFix64Type, + node0FieldTypes["tokensRewarded"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node0Fields["tokensRewarded"], + ) // field 10: delegators - require.Equal(t, "delegators", nodeInfoType.Fields[10].Identifier) - delegators, ok := node0.Fields[10].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(cadence.UInt32Type), + node0FieldTypes["delegators"], + ) + delegators, ok := node0Fields["delegators"].(cadence.Array) + require.True(t, ok) - require.Equal(t, 0, len(delegators.Values)) + require.Len(t, delegators.Values, 0) // field 11: delegatorIDCounter - require.Equal(t, "delegatorIDCounter", nodeInfoType.Fields[11].Identifier) - require.Equal(t, cadence.UInt32(0), node0.Fields[11]) + require.Equal( + t, + cadence.UInt32Type, + node0FieldTypes["delegatorIDCounter"], + ) + require.Equal(t, + cadence.UInt32(0), + node0Fields["delegatorIDCounter"], + ) // field 12: tokensRequestedToUnstake - require.Equal(t, "tokensRequestedToUnstake", nodeInfoType.Fields[12].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node0.Fields[12]) + require.Equal(t, + cadence.UFix64Type, + node0FieldTypes["tokensRequestedToUnstake"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node0Fields["tokensRequestedToUnstake"], + ) // field 13: initialWeight - require.Equal(t, "initialWeight", nodeInfoType.Fields[13].Identifier) - require.Equal(t, cadence.UInt64(100), node0.Fields[13]) + require.Equal(t, + cadence.UInt64Type, + node0FieldTypes["initialWeight"], + ) + require.Equal(t, + cadence.UInt64(100), + node0Fields["initialWeight"], + ) // Test nodeInfo 6 (last nodeInfo struct) node6, ok := nodeInfos.Values[6].(cadence.Struct) require.True(t, ok) - require.Equal(t, 14, len(node6.Fields)) + node6Fields := cadence.FieldsMappedByName(node6) + require.Len(t, node6Fields, 14) nodeInfoType, ok = node6.Type().(*cadence.StructType) require.True(t, ok) - require.Equal(t, 14, len(nodeInfoType.Fields)) + + node6FieldTypes := nodeInfoType.FieldsMappedByName() + require.Len(t, node6FieldTypes, 14) // field 0: id - require.Equal(t, "id", nodeInfoType.Fields[0].Identifier) - require.Equal(t, cadence.String("0000000000000000000000000000000000000000000000000000000000000031"), node6.Fields[0]) + require.Equal(t, + cadence.StringType, + node6FieldTypes["id"], + ) + require.Equal(t, + cadence.String("0000000000000000000000000000000000000000000000000000000000000031"), + node6Fields["id"], + ) // field 1: role - require.Equal(t, "role", nodeInfoType.Fields[1].Identifier) - require.Equal(t, cadence.UInt8(4), node6.Fields[1]) + require.Equal(t, + cadence.UInt8Type, + node6FieldTypes["role"], + ) + require.Equal(t, + cadence.UInt8(4), + node6Fields["role"], + ) // field 2: networkingAddress - require.Equal(t, "networkingAddress", nodeInfoType.Fields[2].Identifier) - require.Equal(t, cadence.String("31.flow.com"), node6.Fields[2]) + require.Equal(t, + cadence.StringType, + node6FieldTypes["networkingAddress"], + ) + require.Equal(t, + cadence.String("31.flow.com"), + node6Fields["networkingAddress"], + ) // field 3: networkingKey - require.Equal(t, "networkingKey", nodeInfoType.Fields[3].Identifier) - require.Equal(t, cadence.String("697241208dcc9142b6f53064adc8ff1c95760c68beb2ba083c1d005d40181fd7a1b113274e0163c053a3addd47cd528ec6a1f190cf465aac87c415feaae011ae"), node6.Fields[3]) + require.Equal(t, + cadence.StringType, + node6FieldTypes["networkingKey"], + ) + require.Equal(t, + cadence.String("697241208dcc9142b6f53064adc8ff1c95760c68beb2ba083c1d005d40181fd7a1b113274e0163c053a3addd47cd528ec6a1f190cf465aac87c415feaae011ae"), + node6Fields["networkingKey"], + ) // field 4: stakingKey - require.Equal(t, "stakingKey", nodeInfoType.Fields[4].Identifier) - require.Equal(t, cadence.String("b1f97d0a06020eca97352e1adde72270ee713c7daf58da7e74bf72235321048b4841bdfc28227964bf18e371e266e32107d238358848bcc5d0977a0db4bda0b4c33d3874ff991e595e0f537c7b87b4ddce92038ebc7b295c9ea20a1492302aa7"), node6.Fields[4]) + require.Equal(t, + cadence.StringType, + node6FieldTypes["stakingKey"], + ) + require.Equal(t, + cadence.String("b1f97d0a06020eca97352e1adde72270ee713c7daf58da7e74bf72235321048b4841bdfc28227964bf18e371e266e32107d238358848bcc5d0977a0db4bda0b4c33d3874ff991e595e0f537c7b87b4ddce92038ebc7b295c9ea20a1492302aa7"), + node6Fields["stakingKey"], + ) // field 5: tokensStaked - require.Equal(t, "tokensStaked", nodeInfoType.Fields[5].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node6.Fields[5]) + require.Equal(t, + cadence.UFix64Type, + node6FieldTypes["tokensStaked"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node6Fields["tokensStaked"], + ) // field 6: tokensCommitted - require.Equal(t, "tokensCommitted", nodeInfoType.Fields[6].Identifier) - require.Equal(t, ufix64FromString("1350000.00000000"), node6.Fields[6]) + require.Equal(t, + cadence.UFix64Type, + node6FieldTypes["tokensCommitted"], + ) + require.Equal(t, + ufix64FromString("1350000.00000000"), + node6Fields["tokensCommitted"], + ) // field 7: tokensUnstaking - require.Equal(t, "tokensUnstaking", nodeInfoType.Fields[7].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node6.Fields[7]) + require.Equal(t, + cadence.UFix64Type, + node6FieldTypes["tokensUnstaking"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node6Fields["tokensUnstaking"], + ) // field 8: tokensUnstaked - require.Equal(t, "tokensUnstaked", nodeInfoType.Fields[8].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node6.Fields[8]) + require.Equal(t, + cadence.UFix64Type, + node6FieldTypes["tokensUnstaked"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node6Fields["tokensUnstaked"], + ) // field 9: tokensRewarded - require.Equal(t, "tokensRewarded", nodeInfoType.Fields[9].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node6.Fields[9]) + require.Equal(t, + cadence.UFix64Type, + node6FieldTypes["tokensRewarded"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node6Fields["tokensRewarded"], + ) // field 10: delegators - require.Equal(t, "delegators", nodeInfoType.Fields[10].Identifier) - delegators, ok = node6.Fields[10].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(cadence.UInt32Type), + node6FieldTypes["delegators"], + ) + delegators, ok = node6Fields["delegators"].(cadence.Array) require.True(t, ok) - require.Equal(t, 0, len(delegators.Values)) + require.Len(t, delegators.Values, 0) // field 11: delegatorIDCounter - require.Equal(t, "delegatorIDCounter", nodeInfoType.Fields[11].Identifier) - require.Equal(t, cadence.UInt32(0), node6.Fields[11]) + require.Equal(t, + cadence.UInt32Type, + node6FieldTypes["delegatorIDCounter"], + ) + require.Equal(t, + cadence.UInt32(0), + node6Fields["delegatorIDCounter"], + ) // field 12: tokensRequestedToUnstake - require.Equal(t, "tokensRequestedToUnstake", nodeInfoType.Fields[12].Identifier) - require.Equal(t, ufix64FromString("0.00000000"), node6.Fields[12]) + require.Equal(t, + cadence.UFix64Type, + node6FieldTypes["tokensRequestedToUnstake"], + ) + require.Equal(t, + ufix64FromString("0.00000000"), + node6Fields["tokensRequestedToUnstake"], + ) // field 13: initialWeight - require.Equal(t, "initialWeight", nodeInfoType.Fields[13].Identifier) - require.Equal(t, cadence.UInt64(100), node6.Fields[13]) + require.Equal(t, + cadence.UInt64Type, + node6FieldTypes["initialWeight"], + ) + require.Equal(t, + cadence.UInt64(100), + node6Fields["initialWeight"], + ) } func testEpochCollectors(t *testing.T, collectors cadence.Array) { - require.Equal(t, 2, len(collectors.Values)) + require.Len(t, collectors.Values, 2) // collector 0 collector0, ok := collectors.Values[0].(cadence.Struct) require.True(t, ok) - collectorType, ok := collector0.Type().(*cadence.StructType) + collector0Type, ok := collector0.Type().(*cadence.StructType) require.True(t, ok) + collector0Fields := cadence.FieldsMappedByName(collector0) + + collector0FieldTypes := collector0Type.FieldsMappedByName() + // field 0: index - require.Equal(t, "index", collectorType.Fields[0].Identifier) - require.Equal(t, cadence.UInt16(0), collector0.Fields[0]) + require.Equal(t, + cadence.UInt16Type, + collector0FieldTypes["index"], + ) + require.Equal(t, + cadence.UInt16(0), + collector0Fields["index"], + ) // field 1: nodeWeights - require.Equal(t, "nodeWeights", collectorType.Fields[1].Identifier) - weights, ok := collector0.Fields[1].(cadence.Dictionary) + require.Equal(t, + cadence.NewDictionaryType(cadence.StringType, cadence.UInt64Type), + collector0FieldTypes["nodeWeights"], + ) + weights, ok := collector0Fields["nodeWeights"].(cadence.Dictionary) require.True(t, ok) - require.Equal(t, 2, len(weights.Pairs)) + require.Len(t, weights.Pairs, 2) + require.Equal(t, cadence.KeyValuePair{ Key: cadence.String("0000000000000000000000000000000000000000000000000000000000000001"), Value: cadence.UInt64(100), }, - weights.Pairs[0]) + weights.Pairs[0], + ) require.Equal(t, cadence.KeyValuePair{ Key: cadence.String("0000000000000000000000000000000000000000000000000000000000000002"), Value: cadence.UInt64(100), - }, weights.Pairs[1]) + }, + weights.Pairs[1], + ) // field 2: totalWeight - require.Equal(t, "totalWeight", collectorType.Fields[2].Identifier) - require.Equal(t, cadence.NewUInt64(100), collector0.Fields[2]) + require.Equal(t, + cadence.UInt64Type, + collector0FieldTypes["totalWeight"], + ) + require.Equal(t, + cadence.NewUInt64(100), + collector0Fields["totalWeight"], + ) // field 3: generatedVotes - require.Equal(t, "generatedVotes", collectorType.Fields[3].Identifier) - generatedVotes, ok := collector0.Fields[3].(cadence.Dictionary) + require.Equal(t, + cadence.NewDictionaryType(cadence.StringType, newFlowClusterQCVoteStructType()), + collector0FieldTypes["generatedVotes"], + ) + generatedVotes, ok := collector0Fields["generatedVotes"].(cadence.Dictionary) require.True(t, ok) - require.Equal(t, 0, len(generatedVotes.Pairs)) + require.Len(t, generatedVotes.Pairs, 0) // field 4: uniqueVoteMessageTotalWeights - require.Equal(t, "uniqueVoteMessageTotalWeights", collectorType.Fields[4].Identifier) - uniqueVoteMessageTotalWeights, ok := collector0.Fields[4].(cadence.Dictionary) + require.Equal(t, + cadence.NewDictionaryType(cadence.StringType, cadence.UInt64Type), + collector0FieldTypes["uniqueVoteMessageTotalWeights"], + ) + uniqueVoteMessageTotalWeights, ok := collector0Fields["uniqueVoteMessageTotalWeights"].(cadence.Dictionary) require.True(t, ok) - require.Equal(t, 0, len(uniqueVoteMessageTotalWeights.Pairs)) + require.Len(t, uniqueVoteMessageTotalWeights.Pairs, 0) // collector 1 collector1, ok := collectors.Values[1].(cadence.Struct) require.True(t, ok) - collectorType, ok = collector1.Type().(*cadence.StructType) + collector1Type, ok := collector1.Type().(*cadence.StructType) require.True(t, ok) + collector1Fields := collector1.FieldsMappedByName() + collector1FieldTypes := collector1Type.FieldsMappedByName() + // field 0: index - require.Equal(t, "index", collectorType.Fields[0].Identifier) - require.Equal(t, cadence.UInt16(1), collector1.Fields[0]) + require.Equal(t, + cadence.UInt16Type, + collector1FieldTypes["index"], + ) + require.Equal(t, + cadence.UInt16(1), + collector1Fields["index"], + ) // field 1: nodeWeights - require.Equal(t, "nodeWeights", collectorType.Fields[1].Identifier) - weights, ok = collector1.Fields[1].(cadence.Dictionary) + require.Equal(t, + cadence.NewDictionaryType(cadence.StringType, cadence.UInt64Type), + collector1FieldTypes["nodeWeights"], + ) + weights, ok = collector1Fields["nodeWeights"].(cadence.Dictionary) require.True(t, ok) - require.Equal(t, 2, len(weights.Pairs)) + require.Len(t, weights.Pairs, 2) require.Equal(t, cadence.KeyValuePair{ Key: cadence.String("0000000000000000000000000000000000000000000000000000000000000003"), Value: cadence.UInt64(100), }, - weights.Pairs[0]) + weights.Pairs[0], + ) require.Equal(t, cadence.KeyValuePair{ Key: cadence.String("0000000000000000000000000000000000000000000000000000000000000004"), Value: cadence.UInt64(100), - }, weights.Pairs[1]) + }, + weights.Pairs[1], + ) // field 2: totalWeight - require.Equal(t, "totalWeight", collectorType.Fields[2].Identifier) - require.Equal(t, cadence.NewUInt64(0), collector1.Fields[2]) + require.Equal(t, + cadence.UInt64Type, + collector1FieldTypes["totalWeight"], + ) + require.Equal(t, + cadence.NewUInt64(0), + collector1Fields["totalWeight"], + ) // field 3: generatedVotes - require.Equal(t, "generatedVotes", collectorType.Fields[3].Identifier) - generatedVotes, ok = collector1.Fields[3].(cadence.Dictionary) + require.Equal(t, + cadence.NewDictionaryType(cadence.StringType, newFlowClusterQCVoteStructType()), + collector1FieldTypes["generatedVotes"], + ) + generatedVotes, ok = collector1Fields["generatedVotes"].(cadence.Dictionary) require.True(t, ok) - require.Equal(t, 0, len(generatedVotes.Pairs)) + require.Len(t, generatedVotes.Pairs, 0) // field 4: uniqueVoteMessageTotalWeights - require.Equal(t, "uniqueVoteMessageTotalWeights", collectorType.Fields[4].Identifier) - uniqueVoteMessageTotalWeights, ok = collector1.Fields[4].(cadence.Dictionary) + require.Equal(t, + cadence.NewDictionaryType(cadence.StringType, cadence.UInt64Type), + collector1FieldTypes["uniqueVoteMessageTotalWeights"], + ) + uniqueVoteMessageTotalWeights, ok = collector1Fields["uniqueVoteMessageTotalWeights"].(cadence.Dictionary) require.True(t, ok) - require.Equal(t, 0, len(uniqueVoteMessageTotalWeights.Pairs)) + require.Len(t, uniqueVoteMessageTotalWeights.Pairs, 0) } func TestEpochCommitEvent(t *testing.T) { @@ -343,33 +623,54 @@ func TestEpochCommitEvent(t *testing.T) { evt, ok := decodedValue.(cadence.Event) require.True(t, ok) - require.Equal(t, 3, len(evt.Fields)) + + fields := cadence.FieldsMappedByName(evt) + require.Len(t, fields, 3) evtType, ok := decodedValue.Type().(*cadence.EventType) require.True(t, ok) - require.Equal(t, 3, len(evtType.Fields)) + + fieldTypes := evtType.FieldsMappedByName() + require.Len(t, fieldTypes, 3) // field 0: counter - require.Equal(t, "counter", evtType.Fields[0].Identifier) - require.Equal(t, cadence.UInt64(1), evt.Fields[0]) + require.Equal(t, + cadence.UInt64Type, + fieldTypes["counter"], + ) + require.Equal(t, + cadence.UInt64(1), + fields["counter"], + ) // field 1: clusterQCs - require.Equal(t, "clusterQCs", evtType.Fields[1].Identifier) - clusterQCs, ok := evt.Fields[1].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(newFlowClusterQCClusterQCStructType()), + fieldTypes["clusterQCs"], + ) + clusterQCs, ok := fields["clusterQCs"].(cadence.Array) require.True(t, ok) testClusterQCs(t, clusterQCs) // field 2: dkgPubKeys - require.Equal(t, "dkgPubKeys", evtType.Fields[2].Identifier) - dkgPubKeys, ok := evt.Fields[2].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(cadence.StringType), + fieldTypes["dkgPubKeys"], + ) + dkgPubKeys, ok := fields["dkgPubKeys"].(cadence.Array) require.True(t, ok) - require.Equal(t, 2, len(dkgPubKeys.Values)) - require.Equal(t, cadence.String("8c588266db5f5cda629e83f8aa04ae9413593fac19e4865d06d291c9d14fbdd9bdb86a7a12f9ef8590c79cb635e3163315d193087e9336092987150d0cd2b14ac6365f7dc93eec573752108b8c12368abb65f0652d9f644e5aed611c37926950"), dkgPubKeys.Values[0]) - require.Equal(t, cadence.String("87a339e4e5c74f089da20a33f515d8c8f4464ab53ede5a74aa2432cd1ae66d522da0c122249ee176cd747ddc83ca81090498389384201614caf51eac392c1c0a916dfdcfbbdf7363f9552b6468434add3d3f6dc91a92bbe3ee368b59b7828488"), dkgPubKeys.Values[1]) + + require.Equal(t, + []cadence.Value{ + cadence.String("8c588266db5f5cda629e83f8aa04ae9413593fac19e4865d06d291c9d14fbdd9bdb86a7a12f9ef8590c79cb635e3163315d193087e9336092987150d0cd2b14ac6365f7dc93eec573752108b8c12368abb65f0652d9f644e5aed611c37926950"), + cadence.String("87a339e4e5c74f089da20a33f515d8c8f4464ab53ede5a74aa2432cd1ae66d522da0c122249ee176cd747ddc83ca81090498389384201614caf51eac392c1c0a916dfdcfbbdf7363f9552b6468434add3d3f6dc91a92bbe3ee368b59b7828488"), + }, + dkgPubKeys.Values, + ) } func testClusterQCs(t *testing.T, clusterQCs cadence.Array) { - require.Equal(t, 2, len(clusterQCs.Values)) + require.Len(t, clusterQCs.Values, 2) // Test clusterQC0 @@ -379,61 +680,119 @@ func testClusterQCs(t *testing.T, clusterQCs cadence.Array) { clusterQCType, ok := clusterQC0.Type().(*cadence.StructType) require.True(t, ok) + clusterQC0Fields := clusterQC0.FieldsMappedByName() + clusterQC0FieldTypes := clusterQCType.FieldsMappedByName() + // field 0: index - require.Equal(t, "index", clusterQCType.Fields[0].Identifier) - require.Equal(t, cadence.UInt16(0), clusterQC0.Fields[0]) + require.Equal(t, + cadence.UInt16Type, + clusterQC0FieldTypes["index"], + ) + require.Equal(t, + cadence.UInt16(0), + clusterQC0Fields["index"], + ) // field 1: voteSignatures - require.Equal(t, "voteSignatures", clusterQCType.Fields[1].Identifier) - sigs, ok := clusterQC0.Fields[1].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(cadence.StringType), + clusterQC0FieldTypes["voteSignatures"], + ) + sigs, ok := clusterQC0Fields["voteSignatures"].(cadence.Array) require.True(t, ok) - require.Equal(t, 2, len(sigs.Values)) - require.Equal(t, cadence.String("a39cd1e1bf7e2fb0609b7388ce5215a6a4c01eef2aee86e1a007faa28a6b2a3dc876e11bb97cdb26c3846231d2d01e4d"), sigs.Values[0]) - require.Equal(t, cadence.String("91673ad9c717d396c9a0953617733c128049ac1a639653d4002ab245b121df1939430e313bcbfd06948f6a281f6bf853"), sigs.Values[1]) + require.Equal(t, + []cadence.Value{ + cadence.String("a39cd1e1bf7e2fb0609b7388ce5215a6a4c01eef2aee86e1a007faa28a6b2a3dc876e11bb97cdb26c3846231d2d01e4d"), + cadence.String("91673ad9c717d396c9a0953617733c128049ac1a639653d4002ab245b121df1939430e313bcbfd06948f6a281f6bf853"), + }, + sigs.Values, + ) // field 2: voteMessage - require.Equal(t, "voteMessage", clusterQCType.Fields[2].Identifier) - require.Equal(t, cadence.String("irrelevant_for_these_purposes"), clusterQC0.Fields[2]) + require.Equal(t, + cadence.StringType, + clusterQC0FieldTypes["voteMessage"], + ) + require.Equal(t, + cadence.String("irrelevant_for_these_purposes"), + clusterQC0Fields["voteMessage"], + ) // field 3: voterIDs - require.Equal(t, "voterIDs", clusterQCType.Fields[3].Identifier) - ids, ok := clusterQC0.Fields[3].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(cadence.StringType), + clusterQC0FieldTypes["voterIDs"], + ) + ids, ok := clusterQC0Fields["voterIDs"].(cadence.Array) require.True(t, ok) - require.Equal(t, 2, len(ids.Values)) - require.Equal(t, cadence.String("0000000000000000000000000000000000000000000000000000000000000001"), ids.Values[0]) - require.Equal(t, cadence.String("0000000000000000000000000000000000000000000000000000000000000002"), ids.Values[1]) + require.Equal(t, + []cadence.Value{ + cadence.String("0000000000000000000000000000000000000000000000000000000000000001"), + cadence.String("0000000000000000000000000000000000000000000000000000000000000002"), + }, + ids.Values, + ) // Test clusterQC1 clusterQC1, ok := clusterQCs.Values[1].(cadence.Struct) require.True(t, ok) - clusterQCType, ok = clusterQC1.Type().(*cadence.StructType) + clusterQC1Type, ok := clusterQC1.Type().(*cadence.StructType) require.True(t, ok) + clusterQC1Fields := clusterQC1.FieldsMappedByName() + clusterQC1FieldTypes := clusterQC1Type.FieldsMappedByName() + // field 0: index - require.Equal(t, "index", clusterQCType.Fields[0].Identifier) - require.Equal(t, cadence.UInt16(1), clusterQC1.Fields[0]) + require.Equal(t, + cadence.UInt16Type, + clusterQC1FieldTypes["index"], + ) + require.Equal(t, + cadence.UInt16(1), + clusterQC1Fields["index"], + ) // field 1: voteSignatures - require.Equal(t, "voteSignatures", clusterQCType.Fields[1].Identifier) - sigs, ok = clusterQC1.Fields[1].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(cadence.StringType), + clusterQC1FieldTypes["voteSignatures"], + ) + sigs, ok = clusterQC1Fields["voteSignatures"].(cadence.Array) require.True(t, ok) - require.Equal(t, 2, len(sigs.Values)) - require.Equal(t, cadence.String("b2bff159971852ed63e72c37991e62c94822e52d4fdcd7bf29aaf9fb178b1c5b4ce20dd9594e029f3574cb29533b857a"), sigs.Values[0]) - require.Equal(t, cadence.String("9931562f0248c9195758da3de4fb92f24fa734cbc20c0cb80280163560e0e0348f843ac89ecbd3732e335940c1e8dccb"), sigs.Values[1]) + require.Equal(t, + []cadence.Value{ + cadence.String("b2bff159971852ed63e72c37991e62c94822e52d4fdcd7bf29aaf9fb178b1c5b4ce20dd9594e029f3574cb29533b857a"), + cadence.String("9931562f0248c9195758da3de4fb92f24fa734cbc20c0cb80280163560e0e0348f843ac89ecbd3732e335940c1e8dccb"), + }, + sigs.Values, + ) // field 2: voteMessage - require.Equal(t, "voteMessage", clusterQCType.Fields[2].Identifier) - require.Equal(t, cadence.String("irrelevant_for_these_purposes"), clusterQC1.Fields[2]) + require.Equal(t, + cadence.StringType, + clusterQC1FieldTypes["voteMessage"], + ) + require.Equal(t, + cadence.String("irrelevant_for_these_purposes"), + clusterQC1Fields["voteMessage"], + ) // field 3: voterIDs - require.Equal(t, "voterIDs", clusterQCType.Fields[3].Identifier) - ids, ok = clusterQC1.Fields[3].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(cadence.StringType), + clusterQC1FieldTypes["voterIDs"], + ) + ids, ok = clusterQC1Fields["voterIDs"].(cadence.Array) require.True(t, ok) - require.Equal(t, 2, len(ids.Values)) - require.Equal(t, cadence.String("0000000000000000000000000000000000000000000000000000000000000003"), ids.Values[0]) - require.Equal(t, cadence.String("0000000000000000000000000000000000000000000000000000000000000004"), ids.Values[1]) + require.Equal(t, + []cadence.Value{ + cadence.String("0000000000000000000000000000000000000000000000000000000000000003"), + cadence.String("0000000000000000000000000000000000000000000000000000000000000004"), + }, + ids.Values, + ) } func TestVersionBeaconEvent(t *testing.T) { @@ -454,67 +813,121 @@ func TestVersionBeaconEvent(t *testing.T) { evt, ok := decodedValue.(cadence.Event) require.True(t, ok) - require.Equal(t, 2, len(evt.Fields)) + + fields := cadence.FieldsMappedByName(evt) + require.Len(t, fields, 2) evtType, ok := decodedValue.Type().(*cadence.EventType) require.True(t, ok) - require.Equal(t, 2, len(evtType.Fields)) + + fieldTypes := evtType.FieldsMappedByName() + require.Len(t, fieldTypes, 2) // field 0: versionBoundaries - require.Equal(t, "versionBoundaries", evtType.Fields[0].Identifier) - versionBoundaries, ok := evt.Fields[0].(cadence.Array) + require.Equal(t, + cadence.NewVariableSizedArrayType(newNodeVersionBeaconVersionBoundaryStructType()), + fieldTypes["versionBoundaries"], + ) + versionBoundaries, ok := fields["versionBoundaries"].(cadence.Array) require.True(t, ok) testVersionBoundaries(t, versionBoundaries) // field 1: sequence - require.Equal(t, "sequence", evtType.Fields[1].Identifier) - require.Equal(t, cadence.UInt64(5), evt.Fields[1]) + require.Equal(t, + cadence.UInt64Type, + fieldTypes["sequence"], + ) + require.Equal(t, + cadence.UInt64(5), + fields["sequence"], + ) } func testVersionBoundaries(t *testing.T, versionBoundaries cadence.Array) { - require.Equal(t, 1, len(versionBoundaries.Values)) + require.Len(t, versionBoundaries.Values, 1) boundary, ok := versionBoundaries.Values[0].(cadence.Struct) require.True(t, ok) - require.Equal(t, 2, len(boundary.Fields)) + + fields := cadence.FieldsMappedByName(boundary) + require.Len(t, fields, 2) boundaryType, ok := boundary.Type().(*cadence.StructType) require.True(t, ok) - require.Equal(t, 2, len(boundaryType.Fields)) + + fieldTypes := boundaryType.FieldsMappedByName() + require.Len(t, fieldTypes, 2) // field 0: blockHeight - require.Equal(t, "blockHeight", boundaryType.Fields[0].Identifier) - require.Equal(t, cadence.UInt64(44), boundary.Fields[0]) + require.Equal(t, + cadence.UInt64Type, + fieldTypes["blockHeight"], + ) + require.Equal(t, + cadence.UInt64(44), + fields["blockHeight"], + ) // field 1: version - require.Equal(t, "version", boundaryType.Fields[1].Identifier) - version, ok := boundary.Fields[1].(cadence.Struct) + require.Equal(t, + newNodeVersionBeaconSemverStructType(), + fieldTypes["version"], + ) + version, ok := fields["version"].(cadence.Struct) require.True(t, ok) testSemver(t, version) } func testSemver(t *testing.T, version cadence.Struct) { - require.Equal(t, 4, len(version.Fields)) + versionFields := cadence.FieldsMappedByName(version) + + require.Len(t, versionFields, 4) semverType, ok := version.Type().(*cadence.StructType) require.True(t, ok) - require.Equal(t, 4, len(semverType.Fields)) + + fieldTypes := semverType.FieldsMappedByName() + require.Len(t, fieldTypes, 4) // field 0: preRelease - require.Equal(t, "preRelease", semverType.Fields[0].Identifier) - require.Equal(t, cadence.NewOptional(cadence.String("")), version.Fields[0]) + require.Equal(t, + cadence.NewOptionalType(cadence.StringType), + fieldTypes["preRelease"], + ) + require.Equal(t, + cadence.NewOptional(cadence.String("")), + versionFields["preRelease"], + ) // field 1: major - require.Equal(t, "major", semverType.Fields[1].Identifier) - require.Equal(t, cadence.UInt8(2), version.Fields[1]) + require.Equal(t, + cadence.UInt8Type, + fieldTypes["major"], + ) + require.Equal(t, + cadence.UInt8(2), + versionFields["major"], + ) // field 2: minor - require.Equal(t, "minor", semverType.Fields[2].Identifier) - require.Equal(t, cadence.UInt8(13), version.Fields[2]) + require.Equal(t, + cadence.UInt8Type, + fieldTypes["minor"], + ) + require.Equal(t, + cadence.UInt8(13), + versionFields["minor"], + ) // field 3: patch - require.Equal(t, "patch", semverType.Fields[3].Identifier) - require.Equal(t, cadence.UInt8(7), version.Fields[3]) + require.Equal(t, + cadence.UInt8Type, + fieldTypes["patch"], + ) + require.Equal(t, + cadence.UInt8(7), + versionFields["patch"], + ) } func createEpochSetupEvent() cadence.Event { @@ -1042,10 +1455,10 @@ func newFlowClusterQCVoteStructType() cadence.Type { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "FlowClusterQC") - return &cadence.StructType{ - Location: location, - QualifiedIdentifier: "FlowClusterQC.Vote", - Fields: []cadence.Field{ + return cadence.NewStructType( + location, + "FlowClusterQC.Vote", + []cadence.Field{ { Identifier: "nodeID", Type: cadence.StringType, @@ -1067,7 +1480,8 @@ func newFlowClusterQCVoteStructType() cadence.Type { Type: cadence.UInt64Type, }, }, - } + nil, + ) } func newFlowClusterQCClusterStructType() *cadence.StructType { @@ -1077,10 +1491,10 @@ func newFlowClusterQCClusterStructType() *cadence.StructType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "FlowClusterQC") - return &cadence.StructType{ - Location: location, - QualifiedIdentifier: "FlowClusterQC.Cluster", - Fields: []cadence.Field{ + return cadence.NewStructType( + location, + "FlowClusterQC.Cluster", + []cadence.Field{ { Identifier: "index", Type: cadence.UInt16Type, @@ -1102,7 +1516,8 @@ func newFlowClusterQCClusterStructType() *cadence.StructType { Type: cadence.NewDictionaryType(cadence.StringType, cadence.UInt64Type), }, }, - } + nil, + ) } func newFlowIDTableStakingNodeInfoStructType() *cadence.StructType { @@ -1112,10 +1527,10 @@ func newFlowIDTableStakingNodeInfoStructType() *cadence.StructType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "FlowIDTableStaking") - return &cadence.StructType{ - Location: location, - QualifiedIdentifier: "FlowIDTableStaking.NodeInfo", - Fields: []cadence.Field{ + return cadence.NewStructType( + location, + "FlowIDTableStaking.NodeInfo", + []cadence.Field{ { Identifier: "id", Type: cadence.StringType, @@ -1173,7 +1588,8 @@ func newFlowIDTableStakingNodeInfoStructType() *cadence.StructType { Type: cadence.UInt64Type, }, }, - } + nil, + ) } func newFlowEpochEpochSetupEventType() *cadence.EventType { @@ -1183,10 +1599,10 @@ func newFlowEpochEpochSetupEventType() *cadence.EventType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "FlowEpoch") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowEpoch.EpochSetup", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowEpoch.EpochSetup", + []cadence.Field{ { Identifier: "counter", Type: cadence.UInt64Type, @@ -1224,7 +1640,8 @@ func newFlowEpochEpochSetupEventType() *cadence.EventType { Type: cadence.UInt64Type, }, }, - } + nil, + ) } func newFlowEpochEpochCommittedEventType() *cadence.EventType { @@ -1234,10 +1651,10 @@ func newFlowEpochEpochCommittedEventType() *cadence.EventType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "FlowEpoch") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "FlowEpoch.EpochCommitted", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "FlowEpoch.EpochCommitted", + []cadence.Field{ { Identifier: "counter", Type: cadence.UInt64Type, @@ -1251,7 +1668,8 @@ func newFlowEpochEpochCommittedEventType() *cadence.EventType { Type: cadence.NewVariableSizedArrayType(cadence.StringType), }, }, - } + nil, + ) } func newFlowClusterQCClusterQCStructType() *cadence.StructType { @@ -1261,10 +1679,10 @@ func newFlowClusterQCClusterQCStructType() *cadence.StructType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "FlowClusterQC") - return &cadence.StructType{ - Location: location, - QualifiedIdentifier: "FlowClusterQC.ClusterQC", - Fields: []cadence.Field{ + return cadence.NewStructType( + location, + "FlowClusterQC.ClusterQC", + []cadence.Field{ { Identifier: "index", Type: cadence.UInt16Type, @@ -1282,7 +1700,8 @@ func newFlowClusterQCClusterQCStructType() *cadence.StructType { Type: cadence.NewVariableSizedArrayType(cadence.StringType), }, }, - } + nil, + ) } func newNodeVersionBeaconVersionBeaconEventType() *cadence.EventType { @@ -1292,10 +1711,10 @@ func newNodeVersionBeaconVersionBeaconEventType() *cadence.EventType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "NodeVersionBeacon") - return &cadence.EventType{ - Location: location, - QualifiedIdentifier: "NodeVersionBeacon.VersionBeacon", - Fields: []cadence.Field{ + return cadence.NewEventType( + location, + "NodeVersionBeacon.VersionBeacon", + []cadence.Field{ { Identifier: "versionBoundaries", Type: cadence.NewVariableSizedArrayType(newNodeVersionBeaconVersionBoundaryStructType()), @@ -1305,7 +1724,8 @@ func newNodeVersionBeaconVersionBeaconEventType() *cadence.EventType { Type: cadence.UInt64Type, }, }, - } + nil, + ) } func newNodeVersionBeaconVersionBoundaryStructType() *cadence.StructType { @@ -1315,10 +1735,10 @@ func newNodeVersionBeaconVersionBoundaryStructType() *cadence.StructType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "NodeVersionBeacon") - return &cadence.StructType{ - Location: location, - QualifiedIdentifier: "NodeVersionBeacon.VersionBoundary", - Fields: []cadence.Field{ + return cadence.NewStructType( + location, + "NodeVersionBeacon.VersionBoundary", + []cadence.Field{ { Identifier: "blockHeight", Type: cadence.UInt64Type, @@ -1328,7 +1748,8 @@ func newNodeVersionBeaconVersionBoundaryStructType() *cadence.StructType { Type: newNodeVersionBeaconSemverStructType(), }, }, - } + nil, + ) } func newNodeVersionBeaconSemverStructType() *cadence.StructType { @@ -1338,10 +1759,10 @@ func newNodeVersionBeaconSemverStructType() *cadence.StructType { address, _ := common.HexToAddress("01cf0e2f2f715450") location := common.NewAddressLocation(nil, address, "NodeVersionBeacon") - return &cadence.StructType{ - Location: location, - QualifiedIdentifier: "NodeVersionBeacon.Semver", - Fields: []cadence.Field{ + return cadence.NewStructType( + location, + "NodeVersionBeacon.Semver", + []cadence.Field{ { Identifier: "preRelease", Type: cadence.NewOptionalType(cadence.StringType), @@ -1359,7 +1780,8 @@ func newNodeVersionBeaconSemverStructType() *cadence.StructType { Type: cadence.UInt8Type, }, }, - } + nil, + ) } func ufix64FromString(s string) cadence.UFix64 { diff --git a/encoding/ccf/simpletype.go b/encoding/ccf/simpletype.go index 88e8b7b589..ec80866428 100644 --- a/encoding/ccf/simpletype.go +++ b/encoding/ccf/simpletype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -137,6 +137,8 @@ const ( // Cadence simple type IDs SimpleTypeIssueAccountCapabilityController SimpleTypeCapabilitiesMapping SimpleTypeAccountMapping + SimpleTypeHashableStruct + SimpleTypeFixedSizeUnsignedInteger // !!! *WARNING* !!! // ADD NEW TYPES *BEFORE* THIS WARNING. @@ -161,11 +163,13 @@ func initSimpleTypeIDBiMap() (m *bimap.BiMap[cadence.PrimitiveType, SimpleType]) m.Insert(cadence.BoolType, SimpleTypeBool) m.Insert(cadence.StringType, SimpleTypeString) m.Insert(cadence.CharacterType, SimpleTypeCharacter) + m.Insert(cadence.HashableStructType, SimpleTypeHashableStruct) m.Insert(cadence.NumberType, SimpleTypeNumber) m.Insert(cadence.SignedNumberType, SimpleTypeSignedNumber) m.Insert(cadence.IntegerType, SimpleTypeInteger) m.Insert(cadence.SignedIntegerType, SimpleTypeSignedInteger) + m.Insert(cadence.FixedSizeUnsignedIntegerType, SimpleTypeFixedSizeUnsignedInteger) m.Insert(cadence.FixedPointType, SimpleTypeFixedPoint) m.Insert(cadence.SignedFixedPointType, SimpleTypeSignedFixedPoint) diff --git a/encoding/ccf/simpletype_string.go b/encoding/ccf/simpletype_string.go index ff922985c9..a3155d138a 100644 --- a/encoding/ccf/simpletype_string.go +++ b/encoding/ccf/simpletype_string.go @@ -98,18 +98,20 @@ func _() { _ = x[SimpleTypeIssueAccountCapabilityController-94] _ = x[SimpleTypeCapabilitiesMapping-95] _ = x[SimpleTypeAccountMapping-96] - _ = x[SimpleType_Count-97] + _ = x[SimpleTypeHashableStruct-97] + _ = x[SimpleTypeFixedSizeUnsignedInteger-98] + _ = x[SimpleType_Count-99] } const ( _SimpleType_name_0 = "SimpleTypeBoolSimpleTypeStringSimpleTypeCharacterSimpleTypeAddressSimpleTypeIntSimpleTypeInt8SimpleTypeInt16SimpleTypeInt32SimpleTypeInt64SimpleTypeInt128SimpleTypeInt256SimpleTypeUIntSimpleTypeUInt8SimpleTypeUInt16SimpleTypeUInt32SimpleTypeUInt64SimpleTypeUInt128SimpleTypeUInt256SimpleTypeWord8SimpleTypeWord16SimpleTypeWord32SimpleTypeWord64SimpleTypeFix64SimpleTypeUFix64SimpleTypePathSimpleTypeCapabilityPathSimpleTypeStoragePathSimpleTypePublicPathSimpleTypePrivatePath" _SimpleType_name_1 = "SimpleTypeDeployedContract" - _SimpleType_name_2 = "SimpleTypeBlockSimpleTypeAnySimpleTypeAnyStructSimpleTypeAnyResourceSimpleTypeMetaTypeSimpleTypeNeverSimpleTypeNumberSimpleTypeSignedNumberSimpleTypeIntegerSimpleTypeSignedIntegerSimpleTypeFixedPointSimpleTypeSignedFixedPointSimpleTypeBytesSimpleTypeVoidSimpleTypeFunctionSimpleTypeWord128SimpleTypeWord256SimpleTypeAnyStructAttachmentTypeSimpleTypeAnyResourceAttachmentTypeSimpleTypeStorageCapabilityControllerSimpleTypeAccountCapabilityControllerSimpleTypeAccountSimpleTypeAccount_ContractsSimpleTypeAccount_KeysSimpleTypeAccount_InboxSimpleTypeAccount_StorageCapabilitiesSimpleTypeAccount_AccountCapabilitiesSimpleTypeAccount_CapabilitiesSimpleTypeAccount_StorageSimpleTypeMutateSimpleTypeInsertSimpleTypeRemoveSimpleTypeIdentitySimpleTypeStorageSimpleTypeSaveValueSimpleTypeLoadValueSimpleTypeCopyValueSimpleTypeBorrowValueSimpleTypeContractsSimpleTypeAddContractSimpleTypeUpdateContractSimpleTypeRemoveContractSimpleTypeKeysSimpleTypeAddKeySimpleTypeRevokeKeySimpleTypeInboxSimpleTypePublishInboxCapabilitySimpleTypeUnpublishInboxCapabilitySimpleTypeClaimInboxCapabilitySimpleTypeCapabilitiesSimpleTypeStorageCapabilitiesSimpleTypeAccountCapabilitiesSimpleTypePublishCapabilitySimpleTypeUnpublishCapabilitySimpleTypeGetStorageCapabilityControllerSimpleTypeIssueStorageCapabilityControllerSimpleTypeGetAccountCapabilityControllerSimpleTypeIssueAccountCapabilityControllerSimpleTypeCapabilitiesMappingSimpleTypeAccountMappingSimpleType_Count" + _SimpleType_name_2 = "SimpleTypeBlockSimpleTypeAnySimpleTypeAnyStructSimpleTypeAnyResourceSimpleTypeMetaTypeSimpleTypeNeverSimpleTypeNumberSimpleTypeSignedNumberSimpleTypeIntegerSimpleTypeSignedIntegerSimpleTypeFixedPointSimpleTypeSignedFixedPointSimpleTypeBytesSimpleTypeVoidSimpleTypeFunctionSimpleTypeWord128SimpleTypeWord256SimpleTypeAnyStructAttachmentTypeSimpleTypeAnyResourceAttachmentTypeSimpleTypeStorageCapabilityControllerSimpleTypeAccountCapabilityControllerSimpleTypeAccountSimpleTypeAccount_ContractsSimpleTypeAccount_KeysSimpleTypeAccount_InboxSimpleTypeAccount_StorageCapabilitiesSimpleTypeAccount_AccountCapabilitiesSimpleTypeAccount_CapabilitiesSimpleTypeAccount_StorageSimpleTypeMutateSimpleTypeInsertSimpleTypeRemoveSimpleTypeIdentitySimpleTypeStorageSimpleTypeSaveValueSimpleTypeLoadValueSimpleTypeCopyValueSimpleTypeBorrowValueSimpleTypeContractsSimpleTypeAddContractSimpleTypeUpdateContractSimpleTypeRemoveContractSimpleTypeKeysSimpleTypeAddKeySimpleTypeRevokeKeySimpleTypeInboxSimpleTypePublishInboxCapabilitySimpleTypeUnpublishInboxCapabilitySimpleTypeClaimInboxCapabilitySimpleTypeCapabilitiesSimpleTypeStorageCapabilitiesSimpleTypeAccountCapabilitiesSimpleTypePublishCapabilitySimpleTypeUnpublishCapabilitySimpleTypeGetStorageCapabilityControllerSimpleTypeIssueStorageCapabilityControllerSimpleTypeGetAccountCapabilityControllerSimpleTypeIssueAccountCapabilityControllerSimpleTypeCapabilitiesMappingSimpleTypeAccountMappingSimpleTypeHashableStructSimpleTypeFixedSizeUnsignedIntegerSimpleType_Count" ) var ( _SimpleType_index_0 = [...]uint16{0, 14, 30, 49, 66, 79, 93, 108, 123, 138, 154, 170, 184, 199, 215, 231, 247, 264, 281, 296, 312, 328, 344, 359, 375, 389, 413, 434, 454, 475} - _SimpleType_index_2 = [...]uint16{0, 15, 28, 47, 68, 86, 101, 117, 139, 156, 179, 199, 225, 240, 254, 272, 289, 306, 339, 374, 411, 448, 465, 492, 514, 537, 574, 611, 641, 666, 682, 698, 714, 732, 749, 768, 787, 806, 827, 846, 867, 891, 915, 929, 945, 964, 979, 1011, 1045, 1075, 1097, 1126, 1155, 1182, 1211, 1251, 1293, 1333, 1375, 1404, 1428, 1444} + _SimpleType_index_2 = [...]uint16{0, 15, 28, 47, 68, 86, 101, 117, 139, 156, 179, 199, 225, 240, 254, 272, 289, 306, 339, 374, 411, 448, 465, 492, 514, 537, 574, 611, 641, 666, 682, 698, 714, 732, 749, 768, 787, 806, 827, 846, 867, 891, 915, 929, 945, 964, 979, 1011, 1045, 1075, 1097, 1126, 1155, 1182, 1211, 1251, 1293, 1333, 1375, 1404, 1428, 1452, 1486, 1502} ) func (i SimpleType) String() string { @@ -118,7 +120,7 @@ func (i SimpleType) String() string { return _SimpleType_name_0[_SimpleType_index_0[i]:_SimpleType_index_0[i+1]] case i == 35: return _SimpleType_name_1 - case 37 <= i && i <= 97: + case 37 <= i && i <= 99: i -= 37 return _SimpleType_name_2[_SimpleType_index_2[i]:_SimpleType_index_2[i+1]] default: diff --git a/encoding/ccf/simpletype_test.go b/encoding/ccf/simpletype_test.go index ed05bd2404..ea4e2d0b0d 100644 --- a/encoding/ccf/simpletype_test.go +++ b/encoding/ccf/simpletype_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,19 +52,12 @@ func TestTypeConversion(t *testing.T) { } for ty := interpreter.PrimitiveStaticType(1); ty < interpreter.PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } semaType := ty.SemaType() - // Some primitive static types are deprecated, - // and only exist for migration purposes, - // so do not have an equivalent sema type - if semaType == nil { - continue - } - if _, ok := semaType.(*sema.CapabilityType); ok { continue } diff --git a/encoding/ccf/sort.go b/encoding/ccf/sort.go index d0165ac7c9..78e22dc2f3 100644 --- a/encoding/ccf/sort.go +++ b/encoding/ccf/sort.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import ( "bytes" "github.com/onflow/cadence" + "github.com/onflow/cadence/runtime/common" ) // bytewiseFieldSorter @@ -155,6 +156,46 @@ func (t bytewiseCadenceTypeSorter) Less(i, j int) bool { return iID <= jID } +// bytewiseCadenceTypeIDSorter + +// bytewiseCadenceTypeIDSorter is used to sort Cadence TypeID. +type bytewiseCadenceTypeIDSorter struct { + // NOTE: DON'T sort type ids in place because it isn't a copy. + // Instead, sort indexes by Cadence type id. + types []common.TypeID + // indexes represents sorted indexes of fields + indexes []int +} + +func newBytewiseCadenceTypeIDSorter(types []common.TypeID) bytewiseCadenceTypeIDSorter { + indexes := make([]int, len(types)) + for i := 0; i < len(indexes); i++ { + indexes[i] = i + } + return bytewiseCadenceTypeIDSorter{types: types, indexes: indexes} +} + +func (t bytewiseCadenceTypeIDSorter) Len() int { + return len(t.indexes) +} + +func (t bytewiseCadenceTypeIDSorter) Swap(i, j int) { + t.indexes[i], t.indexes[j] = t.indexes[j], t.indexes[i] +} + +func (t bytewiseCadenceTypeIDSorter) Less(i, j int) bool { + i = t.indexes[i] + j = t.indexes[j] + + iID := t.types[i] + jID := t.types[j] + + if len(iID) != len(jID) { + return len(iID) < len(jID) + } + return iID <= jID +} + // Utility sort functions func stringsAreSortedBytewise(s1, s2 string) bool { diff --git a/encoding/ccf/traverse_value.go b/encoding/ccf/traverse_value.go index bd05246bfd..78c8ca74ef 100644 --- a/encoding/ccf/traverse_value.go +++ b/encoding/ccf/traverse_value.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -97,25 +97,29 @@ func (ct *compositeTypes) traverseValue(v cadence.Value) { } case cadence.Struct: - for _, field := range v.Fields { + for _, field := range getCompositeFieldValues(v) { ct.traverseValue(field) } case cadence.Resource: - for _, field := range v.Fields { + for _, field := range getCompositeFieldValues(v) { ct.traverseValue(field) } case cadence.Event: - for _, field := range v.Fields { + for _, field := range getCompositeFieldValues(v) { ct.traverseValue(field) } case cadence.Contract: - for _, field := range v.Fields { + for _, field := range getCompositeFieldValues(v) { ct.traverseValue(field) } + case cadence.Attachment: + for _, field := range getCompositeFieldValues(v) { + ct.traverseValue(field) + } } } @@ -152,14 +156,14 @@ func (ct *compositeTypes) traverseType(typ cadence.Type) (checkRuntimeType bool) } return check - case cadence.CompositeType: // struct, resource, event, contract, enum + case cadence.CompositeType: // struct, resource, event, contract, enum, attachment newType := ct.add(typ) if !newType { return ct.abstractTypes[typ.ID()] } check := false - fields := typ.CompositeFields() + fields := getCompositeTypeFields(typ) for _, field := range fields { checkField := ct.traverseType(field.Type) check = check || checkField @@ -181,7 +185,8 @@ func (ct *compositeTypes) traverseType(typ cadence.Type) (checkRuntimeType bool) return true case cadence.BytesType, - *cadence.FunctionType: + *cadence.FunctionType, + *cadence.InclusiveRangeType: // TODO: Maybe there are more types that we can skip checking runtime type for composite type. return false @@ -225,6 +230,7 @@ func (ct *compositeTypes) traverseType(typ cadence.Type) (checkRuntimeType bool) cadence.SignedNumberType, cadence.IntegerType, cadence.SignedIntegerType, + cadence.FixedSizeUnsignedIntegerType, cadence.FixedPointType, cadence.SignedFixedPointType: diff --git a/encoding/json/decode.go b/encoding/json/decode.go index 9f4fbfece6..1b7c44f60e 100644 --- a/encoding/json/decode.go +++ b/encoding/json/decode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import ( "io" "math/big" "strconv" + _ "unsafe" "github.com/onflow/cadence" "github.com/onflow/cadence/runtime/common" @@ -40,6 +41,8 @@ type Decoder struct { // allowUnstructuredStaticTypes controls if the decoding // of a static type as a type ID (cadence.TypeID) is allowed allowUnstructuredStaticTypes bool + // backwardsCompatible controls if the decoder can decode old versions of the JSON encoding + backwardsCompatible bool } type Option func(*Decoder) @@ -53,6 +56,15 @@ func WithAllowUnstructuredStaticTypes(allow bool) Option { } } +// WithBackwardsCompatibility returns a new Decoder Option +// which enables backwards compatibility mode, where the decoding +// of old versions of the JSON encoding is allowed +func WithBackwardsCompatibility() Option { + return func(decoder *Decoder) { + decoder.backwardsCompatible = true + } +} + // Decode returns a Cadence value decoded from its JSON-encoded representation. // // This function returns an error if the bytes represent JSON that is malformed @@ -107,7 +119,7 @@ func (d *Decoder) Decode() (value cadence.Value, err error) { } }() - value = d.decodeJSON(jsonMap) + value = d.DecodeJSON(jsonMap) return value, nil } @@ -128,9 +140,11 @@ const ( addressKey = "address" pathKey = "path" authorizationKey = "authorization" + authorizedKey = "authorized" // Deprecated. The authorized flag got replaced by the authorization field. entitlementsKey = "entitlements" sizeKey = "size" typeIDKey = "typeID" + restrictionsKey = "restrictions" // Deprecated. Restricted types are removed in v1.0.0 intersectionTypesKey = "types" labelKey = "label" parametersKey = "parameters" @@ -139,9 +153,13 @@ const ( typeBoundKey = "typeBound" purityKey = "purity" functionTypeKey = "functionType" + elementKey = "element" + startKey = "start" + endKey = "end" + stepKey = "step" ) -func (d *Decoder) decodeJSON(v any) cadence.Value { +func (d *Decoder) DecodeJSON(v any) cadence.Value { obj := toObject(v) typeStr := obj.GetString(typeKey) @@ -225,6 +243,8 @@ func (d *Decoder) decodeJSON(v any) cadence.Value { return d.decodeEvent(valueJSON) case contractTypeStr: return d.decodeContract(valueJSON) + case inclusiveRangeTypeStr: + return d.decodeInclusiveRange(valueJSON) case pathTypeStr: return d.decodePath(valueJSON) case typeTypeStr: @@ -254,7 +274,7 @@ func (d *Decoder) decodeOptional(valueJSON any) cadence.Optional { return cadence.NewMeteredOptional(d.gauge, nil) } - return cadence.NewMeteredOptional(d.gauge, d.decodeJSON(valueJSON)) + return cadence.NewMeteredOptional(d.gauge, d.DecodeJSON(valueJSON)) } func (d *Decoder) decodeBool(valueJSON any) cadence.Bool { @@ -640,7 +660,7 @@ func (d *Decoder) decodeArray(valueJSON any) cadence.Array { func() ([]cadence.Value, error) { values := make([]cadence.Value, len(v)) for i, val := range v { - values[i] = d.decodeJSON(val) + values[i] = d.DecodeJSON(val) } return values, nil }, @@ -869,6 +889,26 @@ func (d *Decoder) decodeEnum(valueJSON any) cadence.Enum { )) } +func (d *Decoder) decodeInclusiveRange(valueJSON any) *cadence.InclusiveRange { + obj := toObject(valueJSON) + + start := obj.GetValue(d, startKey) + end := obj.GetValue(d, endKey) + step := obj.GetValue(d, stepKey) + + value := cadence.NewMeteredInclusiveRange( + d.gauge, + start, + end, + step, + ) + + return value.WithType(cadence.NewMeteredInclusiveRangeType( + d.gauge, + start.Type(), + )) +} + func (d *Decoder) decodePath(valueJSON any) cadence.Path { obj := toObject(valueJSON) @@ -1037,6 +1077,12 @@ func (d *Decoder) decodeAuthorization(authorizationJSON any) cadence.Authorizati panic(errors.NewDefaultUserError("invalid kind in authorization: %s", kind)) } +//go:linkname setCompositeTypeFields github.com/onflow/cadence.setCompositeTypeFields +func setCompositeTypeFields(cadence.CompositeType, []cadence.Field) + +//go:linkname setInterfaceTypeFields github.com/onflow/cadence.setInterfaceTypeFields +func setInterfaceTypeFields(cadence.InterfaceType, []cadence.Field) + func (d *Decoder) decodeNominalType( obj jsonObject, kind, typeID string, @@ -1146,9 +1192,9 @@ func (d *Decoder) decodeNominalType( switch { case compositeType != nil: - compositeType.SetCompositeFields(fields) + setCompositeTypeFields(compositeType, fields) case interfaceType != nil: - interfaceType.SetInterfaceFields(fields) + setInterfaceTypeFields(interfaceType, fields) } return result @@ -1178,7 +1224,7 @@ var simpleTypes = func() map[string]cadence.Type { typeMap["Bytes"] = cadence.TheBytesType for ty := interpreter.PrimitiveStaticType(1); ty < interpreter.PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } @@ -1189,13 +1235,6 @@ var simpleTypes = func() map[string]cadence.Type { semaType := ty.SemaType() - // Some primitive static types are deprecated, - // and only exist for migration purposes, - // so do not have an equivalent sema type - if semaType == nil { - continue - } - typeMap[string(semaType.ID())] = cadenceType } @@ -1247,6 +1286,19 @@ func (d *Decoder) decodeType(valueJSON any, results typeDecodingResults) cadence d.gauge, d.decodeType(obj.Get(typeKey), results), ) + case "Restriction": + // Backwards-compatibility for format ", func(t *testing.T) { + + testEncodeAndDecode( + t, + cadence.TypeValue{ + StaticType: &cadence.InclusiveRangeType{ + ElementType: cadence.IntType, + }, + }, + // language=json + ` + { + "type": "Type", + "value": { + "staticType": { + "kind": "InclusiveRange", + "element": { + "kind": "Int" + } + } + } + } + `, + ) + + }) + t.Run("with static struct", func(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "S", - Fields: []cadence.Field{ + StaticType: cadence.NewStructType( + utils.TestLocation, + "S", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ {{Label: "foo", Identifier: "bar", Type: cadence.IntType}}, {{Label: "qux", Identifier: "baz", Type: cadence.StringType}}, }, - }, + ), }, // language=json ` @@ -1898,17 +1963,17 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "R", - Fields: []cadence.Field{ + StaticType: cadence.NewResourceType( + utils.TestLocation, + "R", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ {{Label: "foo", Identifier: "bar", Type: cadence.IntType}}, {{Label: "qux", Identifier: "baz", Type: cadence.StringType}}, }, - }, + ), }, // language=json ` @@ -1959,17 +2024,17 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ContractType{ - Location: utils.TestLocation, - QualifiedIdentifier: "C", - Fields: []cadence.Field{ + StaticType: cadence.NewContractType( + utils.TestLocation, + "C", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ {{Label: "foo", Identifier: "bar", Type: cadence.IntType}}, {{Label: "qux", Identifier: "baz", Type: cadence.StringType}}, }, - }, + ), }, // language=json ` @@ -2020,17 +2085,17 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.StructInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "S", - Fields: []cadence.Field{ + StaticType: cadence.NewStructInterfaceType( + utils.TestLocation, + "S", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ {{Label: "foo", Identifier: "bar", Type: cadence.IntType}}, {{Label: "qux", Identifier: "baz", Type: cadence.StringType}}, }, - }, + ), }, // language=json ` @@ -2081,17 +2146,17 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ResourceInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "R", - Fields: []cadence.Field{ + StaticType: cadence.NewResourceInterfaceType( + utils.TestLocation, + "R", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ {{Label: "foo", Identifier: "bar", Type: cadence.IntType}}, {{Label: "qux", Identifier: "baz", Type: cadence.StringType}}, }, - }, + ), }, // language=json ` @@ -2142,17 +2207,17 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.ContractInterfaceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "C", - Fields: []cadence.Field{ + StaticType: cadence.NewContractInterfaceType( + utils.TestLocation, + "C", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ {{Label: "foo", Identifier: "bar", Type: cadence.IntType}}, {{Label: "qux", Identifier: "baz", Type: cadence.StringType}}, }, - }, + ), }, // language=json ` @@ -2203,17 +2268,17 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "E", - Fields: []cadence.Field{ + StaticType: cadence.NewEventType( + utils.TestLocation, + "E", + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializer: []cadence.Parameter{ + []cadence.Parameter{ {Label: "foo", Identifier: "bar", Type: cadence.IntType}, {Label: "qux", Identifier: "baz", Type: cadence.StringType}, }, - }, + ), }, // language=json ` @@ -2262,18 +2327,18 @@ func TestEncodeType(t *testing.T) { testEncodeAndDecode( t, cadence.TypeValue{ - StaticType: &cadence.EnumType{ - Location: utils.TestLocation, - QualifiedIdentifier: "E", - RawType: cadence.StringType, - Fields: []cadence.Field{ + StaticType: cadence.NewEnumType( + utils.TestLocation, + "E", + cadence.StringType, + []cadence.Field{ {Identifier: "foo", Type: cadence.IntType}, }, - Initializers: [][]cadence.Parameter{ + [][]cadence.Parameter{ {{Label: "foo", Identifier: "bar", Type: cadence.IntType}}, {{Label: "qux", Identifier: "baz", Type: cadence.StringType}}, }, - }, + ), }, // language=json ` @@ -2399,7 +2464,7 @@ func TestEncodeType(t *testing.T) { t, cadence.TypeValue{ StaticType: &cadence.ReferenceType{ - Authorization: cadence.EntitlementSetAuthorization{ + Authorization: &cadence.EntitlementSetAuthorization{ Kind: cadence.Conjunction, Entitlements: []common.TypeID{"X", "Y"}, }, @@ -2448,7 +2513,7 @@ func TestEncodeType(t *testing.T) { t, cadence.TypeValue{ StaticType: &cadence.ReferenceType{ - Authorization: cadence.EntitlementSetAuthorization{ + Authorization: &cadence.EntitlementSetAuthorization{ Kind: cadence.Disjunction, Entitlements: []common.TypeID{"X", "Y"}, }, @@ -2739,6 +2804,99 @@ func TestEncodeCapability(t *testing.T) { ) } +func TestDecodeCapability(t *testing.T) { + + t.Run("with backwards compatibility", func(t *testing.T) { + t.Parallel() + + testDecode( + t, + // language=json + ` + { + "type": "Capability", + "value": { + "borrowType": { + "kind": "Int" + }, + "address": "0x0000000102030405", + "id": "6" + } + } + `, + cadence.NewCapability( + 6, + cadence.BytesToAddress([]byte{1, 2, 3, 4, 5}), + cadence.IntType, + ), + WithBackwardsCompatibility(), + ) + }) + + t.Run("with backwards compatibility on a deprecated Path Capabliity", func(t *testing.T) { + t.Parallel() + + testDecode( + t, + // language=json + ` + { + "type": "Capability", + "value": { + "path": { + "type": "Path", + "value": { + "domain": "public", + "identifier": "foo" + } + }, + "borrowType": { + "kind": "Int" + }, + "address": "0x0000000102030405" + } + } + `, + cadence.NewDeprecatedPathCapability( //nolint:staticcheck + cadence.BytesToAddress([]byte{1, 2, 3, 4, 5}), + cadence.Path{ + Domain: common.PathDomainPublic, + Identifier: "foo", + }, + cadence.IntType, + ), + WithBackwardsCompatibility(), + ) + }) + + t.Run("deprecated Path Capability without backwards compatibility", func(t *testing.T) { + t.Parallel() + + _, err := Decode(nil, []byte( + ` + { + "type": "Capability", + "value": { + "path": { + "type": "Path", + "value": { + "domain": "public", + "identifier": "foo" + } + }, + "borrowType": { + "kind": "Int" + }, + "address": "0x0000000102030405" + } + } + `, + )) + require.Error(t, err) + + }) +} + func TestDecodeFixedPoints(t *testing.T) { t.Parallel() @@ -2965,31 +3123,165 @@ func TestDecodeFixedPoints(t *testing.T) { }) } -func TestExportRecursiveType(t *testing.T) { +func TestDecodeDeprecatedTypes(t *testing.T) { t.Parallel() - ty := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "foo", + t.Run("with static reference type", func(t *testing.T) { + + t.Parallel() + + testDecode( + t, + // language=json + ` + { + "type": "Type", + "value": { + "staticType": { + "kind": "Reference", + "type": { + "kind": "Int" + }, + "authorized": true + } + } + } + `, + cadence.TypeValue{ + StaticType: &cadence.DeprecatedReferenceType{ + Authorized: true, + Type: cadence.IntType, + }, + }, + WithBackwardsCompatibility(), + ) + }) + + t.Run("with static reference type without backwards compatibility", func(t *testing.T) { + + t.Parallel() + + // Decode with error if reference is not supported + _, err := Decode(nil, []byte(` + { + "type": "Type", + "value": { + "staticType": { + "kind": "Reference", + "type": { + "kind": "Int" + }, + "authorized": true + } + } + } + `)) + require.Error(t, err) + }) + + t.Run("with static restricted type", func(t *testing.T) { + + t.Parallel() + + testDecode( + t, + // language=json + ` + { + "type": "Type", + "value": { + "staticType": { + "kind": "Restriction", + "typeID": "Int{String}", + "type": { + "kind": "Int" + }, + "restrictions": [ + { + "kind": "String" + } + ] + } + } + } + `, + cadence.TypeValue{ + StaticType: &cadence.DeprecatedRestrictedType{ + Restrictions: []cadence.Type{ + cadence.StringType, + }, + Type: cadence.IntType, + }, }, + WithBackwardsCompatibility(), + ) + }) + + t.Run("with static restricted type without backwards compatibility", func(t *testing.T) { + + t.Parallel() + + testDecode( + t, + // language=json + ` + { + "type": "Type", + "value": { + "staticType": { + "kind": "Restriction", + "typeID": "Int{String}", + "type": { + "kind": "Int" + }, + "restrictions": [ + { + "kind": "String" + } + ] + } + } + } + `, + cadence.TypeValue{ + StaticType: &cadence.DeprecatedRestrictedType{ + Restrictions: []cadence.Type{ + cadence.StringType, + }, + Type: cadence.IntType, + }, + }, + WithBackwardsCompatibility(), + ) + }) +} + +func TestExportRecursiveType(t *testing.T) { + + t.Parallel() + + fields := []cadence.Field{ + { + Identifier: "foo", }, } + ty := cadence.NewResourceType( + utils.TestLocation, + "Foo", + fields, + nil, + ) - ty.Fields[0].Type = &cadence.OptionalType{ + fields[0].Type = &cadence.OptionalType{ Type: ty, } testEncode( t, - cadence.Resource{ - Fields: []cadence.Value{ - cadence.Optional{}, - }, - }.WithType(ty), + cadence.NewResource([]cadence.Value{ + cadence.Optional{}, + }).WithType(ty), // language=json ` { @@ -3020,18 +3312,19 @@ func TestExportTypeValueRecursiveType(t *testing.T) { t.Parallel() - ty := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "foo", - }, + fields := []cadence.Field{ + { + Identifier: "foo", }, - Initializers: [][]cadence.Parameter{}, } + ty := cadence.NewResourceType( + utils.TestLocation, + "Foo", + fields, + [][]cadence.Parameter{}, + ) - ty.Fields[0].Type = &cadence.OptionalType{ + fields[0].Type = &cadence.OptionalType{ Type: ty, } @@ -3071,17 +3364,17 @@ func TestExportTypeValueRecursiveType(t *testing.T) { t.Parallel() - fooTy := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, - } + fooTy := cadence.NewResourceType( + utils.TestLocation, + "Foo", + []cadence.Field{}, + [][]cadence.Parameter{}, + ) - barTy := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Bar", - Fields: []cadence.Field{ + barTy := cadence.NewResourceType( + utils.TestLocation, + "Bar", + []cadence.Field{ { Identifier: "foo1", Type: fooTy, @@ -3091,8 +3384,8 @@ func TestExportTypeValueRecursiveType(t *testing.T) { Type: fooTy, }, }, - Initializers: [][]cadence.Parameter{}, - } + [][]cadence.Parameter{}, + ) testEncodeAndDecode( t, @@ -3294,16 +3587,17 @@ func testDecode(t *testing.T, actualJSON string, expectedVal cadence.Value, opti } func newFooResourceType() *cadence.ResourceType { - return &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + return cadence.NewResourceType( + utils.TestLocation, + "Foo", + []cadence.Field{ { Identifier: "bar", Type: cadence.IntType, }, }, - } + nil, + ) } func TestNonUTF8StringEncoding(t *testing.T) { @@ -3592,7 +3886,7 @@ func TestSimpleTypes(t *testing.T) { t.Run(semaType.QualifiedString(), func(t *testing.T) { t.Parallel() - prepared := prepareType(cadenceType, typePreparationResults{}) + prepared := PrepareType(cadenceType, TypePreparationResults{}) require.IsType(t, jsonSimpleType{}, prepared) encoded, err := Encode(cadence.NewTypeValue(cadenceType)) @@ -3608,19 +3902,12 @@ func TestSimpleTypes(t *testing.T) { } for ty := interpreter.PrimitiveStaticType(1); ty < interpreter.PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } semaType := ty.SemaType() - // Some primitive static types are deprecated, - // and only exist for migration purposes, - // so do not have an equivalent sema type - if semaType == nil { - continue - } - cadenceType := cadence.PrimitiveType(ty) if !canEncodeAsSimpleType(cadenceType) { continue diff --git a/encoding/json/json.go b/encoding/json/json.go index e53688cd3c..dcd735be1e 100644 --- a/encoding/json/json.go +++ b/encoding/json/json.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/fixedpoint/check.go b/fixedpoint/check.go index 7de388b61e..eda083d3d4 100644 --- a/fixedpoint/check.go +++ b/fixedpoint/check.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/fixedpoint/convert.go b/fixedpoint/convert.go index aa6f73e9ac..2364d465cc 100644 --- a/fixedpoint/convert.go +++ b/fixedpoint/convert.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/fixedpoint/fixedpoint.go b/fixedpoint/fixedpoint.go index b226f1f402..6b7f4f6f40 100644 --- a/fixedpoint/fixedpoint.go +++ b/fixedpoint/fixedpoint.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/fixedpoint/parse.go b/fixedpoint/parse.go index 4fd399ad4c..ffa9964e69 100644 --- a/fixedpoint/parse.go +++ b/fixedpoint/parse.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/fixedpoint/parse_test.go b/fixedpoint/parse_test.go index db963b183b..b860ce2975 100644 --- a/fixedpoint/parse_test.go +++ b/fixedpoint/parse_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/fuzz.go b/fuzz.go index 20a8bc9ffb..f8506c96ea 100644 --- a/fuzz.go +++ b/fuzz.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/go.mod b/go.mod index 1894bc65d3..9fb0e574fe 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/onflow/cadence -go 1.20 +go 1.22 require ( github.com/bits-and-blooms/bitset v1.5.0 @@ -8,11 +8,12 @@ require ( github.com/c-bata/go-prompt v0.2.6 github.com/dave/dst v0.27.2 github.com/fxamacker/cbor/v2 v2.4.1-0.20230228173756-c0c9f774e40c + github.com/itchyny/gojq v0.12.14 github.com/k0kubun/pp/v3 v3.2.0 github.com/kr/pretty v0.3.1 github.com/leanovate/gopter v0.2.9 github.com/logrusorgru/aurora/v4 v4.0.0 - github.com/onflow/atree v0.6.1-0.20230711151834-86040b30171f + github.com/onflow/atree v0.7.0-rc.2 github.com/rivo/uniseg v0.4.4 github.com/schollz/progressbar/v3 v3.13.1 github.com/stretchr/testify v1.8.4 @@ -22,38 +23,41 @@ require ( go.opentelemetry.io/otel v1.8.0 go.uber.org/goleak v1.1.10 golang.org/x/crypto v0.1.0 - golang.org/x/mod v0.6.0 + golang.org/x/mod v0.14.0 golang.org/x/text v0.4.0 - golang.org/x/tools v0.2.0 + golang.org/x/tools v0.16.0 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 ) require ( - github.com/SaveTheRbtz/mph v0.1.2 + github.com/SaveTheRbtz/mph v0.1.1-0.20240117162131-4166ec7869bc github.com/k0kubun/pp v3.0.1+incompatible - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 + github.com/kodova/html-to-markdown v1.0.1 + github.com/onflow/crypto v0.25.0 + golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc ) -require github.com/zeebo/xxh3 v1.0.2 // indirect - require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/fxamacker/circlehash v0.3.0 // indirect + github.com/itchyny/timefmt-go v0.1.5 // indirect github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 // indirect github.com/klauspost/cpuid/v2 v2.2.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect - github.com/mattn/go-runewidth v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mattn/go-tty v0.0.3 // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/pkg/term v1.2.0-beta.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.9.0 // indirect github.com/x448/float16 v0.8.4 // indirect + github.com/zeebo/assert v1.3.0 // indirect github.com/zeebo/blake3 v0.2.3 // indirect golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect - golang.org/x/sys v0.6.0 // indirect + golang.org/x/sys v0.15.0 // indirect golang.org/x/term v0.6.0 // indirect + gonum.org/v1/gonum v0.6.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index e4ebeaee32..7b83f8a0fd 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,8 @@ -github.com/SaveTheRbtz/mph v0.1.2 h1:5l3W496Up+7BNOVJQnJhzcGBh+wWfxWdmPUAkx3WmaM= -github.com/SaveTheRbtz/mph v0.1.2/go.mod h1:V4+WtKQPe2+dEA5os1WnGsEB0NR9qgqqgIiSt73+sT4= +github.com/PuerkitoBio/goquery v1.5.0/go.mod h1:qD2PgZ9lccMbQlc7eEOjaeRlFQON7xY8kdmcsrnKqMg= +github.com/SaveTheRbtz/mph v0.1.1-0.20240117162131-4166ec7869bc h1:DCHzPQOcU/7gwDTWbFQZc5qHMPS1g0xTO56k8NXsv9M= +github.com/SaveTheRbtz/mph v0.1.1-0.20240117162131-4166ec7869bc/go.mod h1:LJM5a3zcIJ/8TmZwlUczvROEJT8ntOdhdG9jjcR1B0I= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= github.com/bits-and-blooms/bitset v1.5.0 h1:NpE8frKRLGHIcEzkR+gZhiioW1+WbYV6fKwD6ZIpQT8= github.com/bits-and-blooms/bitset v1.5.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bytecodealliance/wasmtime-go/v12 v12.0.0 h1:Wga02UaZXYF3p0LIeL5xFp09/RI7UhjfT2uB0mLrwlw= @@ -10,14 +13,23 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/dave/dst v0.27.2 h1:4Y5VFTkhGLC1oddtNwuxxe36pnyLxMFXT51FOzH8Ekc= github.com/dave/dst v0.27.2/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEyc= github.com/dave/jennifer v1.5.0 h1:HmgPN93bVDpkQyYbqhCHj5QlgvUkvEOzMyEvKLgCRrg= +github.com/dave/jennifer v1.5.0/go.mod h1:4MnyiFIlZS3l5tSDn8VnzE6ffAhYBMB2SZntBsZGUok= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fxamacker/cbor/v2 v2.4.1-0.20230228173756-c0c9f774e40c h1:5tm/Wbs9d9r+qZaUFXk59CWDD0+77PBqDREffYkyi5c= github.com/fxamacker/cbor/v2 v2.4.1-0.20230228173756-c0c9f774e40c/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= github.com/fxamacker/circlehash v0.3.0 h1:XKdvTtIJV9t7DDUtsf0RIpC1OcxZtPbmgIH7ekx28WA= github.com/fxamacker/circlehash v0.3.0/go.mod h1:3aq3OfVvsWtkWMb6A1owjOQFA+TLsD5FgJflnaQwtMM= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/itchyny/gojq v0.12.14 h1:6k8vVtsrhQSYgSGg827AD+PVVaB1NLXEdX+dda2oZCc= +github.com/itchyny/gojq v0.12.14/go.mod h1:y1G7oO7XkcR1LPZO59KyoCRy08T3j9vDYRV0GgYSS+s= +github.com/itchyny/timefmt-go v0.1.5 h1:G0INE2la8S6ru/ZI5JecgyzbbJNs5lG1RcBqa7Jm6GE= +github.com/itchyny/timefmt-go v0.1.5/go.mod h1:nEP7L+2YmAbT2kZ2HfSs1d8Xtw9LY8D2stDBckWakZ8= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213/go.mod h1:vNUNkEQ1e29fT/6vq2aBdFsgNPmy8qMdSay1npru+Sw= @@ -28,6 +40,8 @@ github.com/k0kubun/pp/v3 v3.2.0/go.mod h1:ODtJQbQcIRfAD3N+theGCV1m/CBxweERz2dapd github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/klauspost/cpuid/v2 v2.2.0 h1:4ZexSFt8agMNzNisrsilL6RClWDC5YJnLHNIfTy4iuc= github.com/klauspost/cpuid/v2 v2.2.0/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/kodova/html-to-markdown v1.0.1 h1:MJxQAnqxtss3DaPnm72DRV65HZiMQZF3DUAfEaTg+14= +github.com/kodova/html-to-markdown v1.0.1/go.mod h1:NhDrT7QdSrdpezFg/0EQx9zeobCHR5oAguzrKrC6mVU= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -47,19 +61,24 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/onflow/atree v0.6.1-0.20230711151834-86040b30171f h1:Z8/PgTqOgOg02MTRpTBYO2k16FE6z4wEOtaC2WBR9Xo= -github.com/onflow/atree v0.6.1-0.20230711151834-86040b30171f/go.mod h1:xvP61FoOs95K7IYdIYRnNcYQGf4nbF/uuJ0tHf4DRuM= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/onflow/atree v0.7.0-rc.2 h1:mZmVrl/zPlfI44EjV3FdR2QwIqT8nz1sCONUBFcML/U= +github.com/onflow/atree v0.7.0-rc.2/go.mod h1:xvP61FoOs95K7IYdIYRnNcYQGf4nbF/uuJ0tHf4DRuM= +github.com/onflow/crypto v0.25.0 h1:BeWbLsh3ZD13Ej+Uky6kg1PL1ZIVBDVX+2MVBNwqddg= +github.com/onflow/crypto v0.25.0/go.mod h1:C8FbaX0x8y+FxWjbkHy0Q4EASCDR9bSPWZqlpCLYyVI= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= @@ -73,8 +92,10 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/schollz/progressbar/v3 v3.13.1 h1:o8rySDYiQ59Mwzy2FELeHY5ZARXZTVJC7iHD6PEFUiE= github.com/schollz/progressbar/v3 v3.13.1/go.mod h1:xvrbki8kfT1fzWzBT/UZd9L6GA+jdL7HAgq2RFnO6fQ= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= @@ -89,12 +110,11 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/blake3 v0.2.3 h1:TFoLXsjeXqRNFxSbk35Dk4YtszE/MQQGK10BH4ptoTg= github.com/zeebo/blake3 v0.2.3/go.mod h1:mjJjZpnsyIVtVgTOSpJ9vmRE4wgDeyt2HU3qXvvKCaQ= github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo= github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4= -github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opentelemetry.io/otel v1.8.0 h1:zcvBFizPbpa1q7FehvFiHbQwGzmPILebO0tyqIR5Djg= go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM= go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= @@ -103,19 +123,28 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc h1:ao2WRsKSzW6KuUY9IWPwWahcHCgR0s52IfwutMfEbdM= +golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -127,26 +156,39 @@ golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.1 h1:/LSrTrgZtpbXyAR6+0e152SROCkJJSh7goYWVmdPFGc= +gonum.org/v1/gonum v0.6.1/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= +lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/helpers.go b/helpers.go deleted file mode 100644 index f7cda19545..0000000000 --- a/helpers.go +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Cadence - The resource-oriented smart contract programming language - * - * Copyright Dapper Labs, Inc. - * - * 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. - */ - -package cadence - -import "fmt" - -// Unmetered because this function is only used by the client. -func NewValue(value any) (Value, error) { - switch v := value.(type) { - case string: - return NewString(v) - case int: - return NewInt(v), nil - case int8: - return NewInt8(v), nil - case int16: - return NewInt16(v), nil - case int32: - return NewInt32(v), nil - case int64: - return NewInt64(v), nil - case uint8: - return NewUInt8(v), nil - case uint16: - return NewUInt16(v), nil - case uint32: - return NewUInt32(v), nil - case uint64: - return NewUInt64(v), nil - case []any: - values := make([]Value, len(v)) - - for i, v := range v { - t, err := NewValue(v) - if err != nil { - return nil, err - } - - values[i] = t - } - - return NewArray(values), nil - case nil: - return NewOptional(nil), nil - } - - return nil, fmt.Errorf("value type %T cannot be converted to ABI value type", value) -} - -// MustConvertValue converts a Go value to an ABI value or panics if the value -// cannot be converted. -func MustConvertValue(value any) Value { - ret, err := NewValue(value) - if err != nil { - panic(err) - } - - return ret -} - -func CastToString(value Value) (string, error) { - casted, ok := value.(String) - if !ok { - return "", fmt.Errorf("%T is not a values.String", value) - } - - goValue := casted.ToGoValue() - - str, ok := goValue.(string) - if !ok { - return "", fmt.Errorf("%T is not a string", goValue) - } - return str, nil -} - -func CastToUInt8(value Value) (uint8, error) { - casted, ok := value.(UInt8) - if !ok { - return 0, fmt.Errorf("%T is not a values.UInt8", value) - } - - goValue := casted.ToGoValue() - - u, ok := goValue.(uint8) - if !ok { - return 0, fmt.Errorf("%T is not a uint8", value) - } - return u, nil -} - -func CastToUInt16(value Value) (uint16, error) { - casted, ok := value.(UInt16) - if !ok { - return 0, fmt.Errorf("%T is not a values.UInt16", value) - } - - goValue := casted.ToGoValue() - - u, ok := goValue.(uint16) - if !ok { - return 0, fmt.Errorf("%T is not a uint16", value) - } - return u, nil -} - -func CastToArray(value Value) ([]any, error) { - casted, ok := value.(Array) - if !ok { - return nil, fmt.Errorf("%T is not a values.Array", value) - } - - goValue := casted.ToGoValue() - - u, ok := goValue.([]any) - if !ok { - return nil, fmt.Errorf("%T is not a []any]", value) - } - return u, nil -} - -func CastToInt(value Value) (int, error) { - casted, ok := value.(Int) - if !ok { - return 0, fmt.Errorf("%T is not a values.Int", value) - } - - goValue := casted.ToGoValue() - - u, ok := goValue.(int) - if !ok { - return 0, fmt.Errorf("%T %v is not a int", value, value) - } - return u, nil -} diff --git a/meetings/2023-10-24.md b/meetings/2023-10-24.md new file mode 100644 index 0000000000..b8822d054e --- /dev/null +++ b/meetings/2023-10-24.md @@ -0,0 +1,277 @@ + +## Oct 24th, 2023 + +### FLIPs + +#### 134: Relax interface conformance restrictions + +* FLIP: [https://github.com/onflow/flips/pull/134](https://github.com/onflow/flips/pull/134) + +* Overview: + + * Follow up on interface conformance improvements ([https://github.com/onflow/flips/pull/83](https://github.com/onflow/flips/pull/83)). + + * Proposes to allow empty function declaration defined in one interface to coexist with a default function implementation defined in another interface. + + * Currently the same is allowed if the empty declaration has a pre/post condition. + + * When interface default functions were introduced, interface inheritance did not exist yet + + * Current behavior was intentional, tried to avoid interface author breaking implementations by adding function implementation (default function) + +* Status: + + * FLIP is waiting for a final decision + + * Reference implementation is complete: [https://github.com/onflow/cadence/pull/2725](https://github.com/onflow/cadence/pull/2725) + +* Next steps: + + * Would like to get more feedback + + * Provide means / explanation to try out + +* Notes: + + * Accepted + +#### 210: Improvement to entitlement mapping syntax + +* FLIP: [https://github.com/onflow/flips/pull/210](https://github.com/onflow/flips/pull/210) + +* Overview: + + * Got some feedback that visually entitlements and entitlement mappings appear too similar when used in an `access` modifier. This can be confusing to developers because the former cannot be accessed on an unentitled reference, while the latter can be (and produces an unentitled output) + + * Proposed needing a `mapping` keyword in access modifiers: e.g. `access(mapping M)` + +* Status: + + * FLIP proposed, has general approval + +* Next Steps: + + * Accept FLIP, merge implementation? + +* Notes: + + * Approved + +#### 196: Restrict Capabilities Publish + +* FLIP: [https://github.com/onflow/flips/pull/197](https://github.com/onflow/flips/pull/197) + +* Overview: + + * Current Cap Cons API allows publishing capabilities of another account + + * Was not possible with linking API + + * Could lead to confusion for developers (e.g. query balance, but balance is from another account) + +* Status: + + * Ready for vote + +* Next Steps: + +* Notes: + + * Approved + +#### 212: Reject references to references + +* FLIP: [https://github.com/onflow/flips/pull/212](https://github.com/onflow/flips/pull/212) + +* Overview: + + * It is currently possible to create references to references, e.g. &&T + + * Such references are not useful + + * In Cadence 1.0, additional work is requires to keep them working + + * Proposal is to forbid them + +* Status: + + * Ready for vote + +* Next Steps: + +* Notes: + + * Approved + +#### 131: Remove custom destructors + +* FLIP: [https://github.com/onflow/flips/pull/131](https://github.com/onflow/flips/pull/131) + +* Overview: + + * Proposal to address inability for users to destroy resources they own + + * One of the discussed options (others: try/catch, etc.) + + * Originated from attachments feature (attachment might prevent destruction of whole resource) + + * Remove destroy + + * Allows users to always destroy resources + +* Status: + + * Updated FLIP with default events + + * Discovered that introduction of attachments would require additional code in e.g. Vault.deposit to prevent exploit + + * FLIP ready for another round of discussion + +* Open problems: + + * Philosophical question (sending to "burner account") + + * Existing code / applications + + * "Migration" path for use-cases like FT total supply + + * Tombstoning implementation + +* Next steps: + + * Need to discuss implementation approach more + + * Implementation is not blocking Stable Cadence release, but can vote on change itself, removal of custom destructors + + * Do not need a solution for "large resource deletion" problem + + * Breakout session next week, after giving time to read through updated proposal + +* Feedback: + + * Non-mutable contraction mainnet using custom destructor + + * Overhead creating workaround + + * Will USDC implement a workaround ? + +* Notes: + + * Approved + +#### 95: Entitlements migration + +* FLIP: [https://github.com/onflow/flips/pull/95](https://github.com/onflow/flips/pull/95) + +* Overview: + +* Status: + +* Next Steps: + +#### 179: Staged Contract Updates + +* FLIP: [https://github.com/onflow/flips/pull/179](https://github.com/onflow/flips/pull/179) + +* Overview: + + * Contract mechanism to define contract update deployments and execute updates in stages at/beyond a block height. Execution can also be delegated to a third party via Capabilities + +* Status: + + * Proposed & approved by Jerome & Josh + + * Was hoping for community approval on the FLIP before moving to approval, but only feedback provided so far + +* Next Steps: + + * Approve unless recent feedback is opposed + + * Merge tryUpdate() to finalize v0 implementation & build out tests + + * Design automated update solution so delegated updates can be executed immediately post-spork + + * Begin to address callouts around: + + * Creating update configuration + + * Emulating configured updates + + * Monitoring update status + +### Other + +#### Discuss changes to attachments + +* Overview + + * Problem: + + * Attachments are able to declare what entitlements they need, to perform operations on base + + * A *third-party* might prepare a value with an attachment. With the transfer of the value, also the attachment and thus the permissions on the base, are transferred + + * The receiver might not realize + + * Reference to base stays "alive" beyond TX/script + + * Running example: + + * Currency converter on vault, can deposit and withdraw + + * Proposal: + + * Remove support for requirement of entitlements + + * Only allow public access to begin with + + * Later: Add support for entitled access, + + * e.g. through + + * Entitlement mapping + + * `access(M) attachment A for S {}` + + * Privilege escalation through mapping? + E.g. Deposit → Withdraw + + * ```cadence + mapping M { + X -> Y + } + + access(Y) fun foo() { + // can use X on base + } + ``` + + * Maybe hardcode to Identity mapping? + + * `access(X) fun foo() { … }` + + * no mapping + + * Requirements on per-function level (instead of whole attachment) + + * Do not want to require splitting attachments into parts + + * Alternative: Sanitization + + * Doesn’t scale, too easy to forget, footgun ("malicious USB stick") + +* Status: + + * Decide if this / what should be proposed in a FLIP + +* Next steps: + + * Propose FLIP for + + * Requirement removal + + * Propose unentitled access to start with + + * Can add entitled access later (see above) + + * Examples for proposals which allow entitlements diff --git a/meetings/2023-11-15.md b/meetings/2023-11-15.md new file mode 100644 index 0000000000..ea6c8018e5 --- /dev/null +++ b/meetings/2023-11-15.md @@ -0,0 +1,120 @@ + +# Nov 15th, 2023 + +## FLIPs + +### 179: Staged Contract Updates + +* FLIP: [https://github.com/onflow/flips/pull/179](https://github.com/onflow/flips/pull/179) + +* Overview: + + * Contract mechanism to define contract update deployments and execute updates in stages at/beyond a block height. Execution can also be delegated to a third party via Capabilities + +* Status: + + * Approved + +### 217: New behavior for attachments with entitlements + +* FLIP: [https://github.com/onflow/flips/pull/213](https://github.com/onflow/flips/pull/213) + +* Overview: + + * Current attachment feature, requiring entitlements, allows third-parties to "sneak in" permissions into the base value + + * Proposal removes entitlement requirements, entitlements are derived from reference on base + + * Simple compromise + + * Tradeoff between power and safety. Only use-case that is no longer possible is read-escalation + +* Status: + + * "Audit" from security researcher + + * No open problems, proposal is complete and looking for feedback + +* Next Steps: + + * Accept unless there is no further feedback until end of next week + +## Other + +### Cadence 1.0 feedback + +* Austin reached out to community, asked for awareness + + * Very little awareness + + * Surprise of breaking changes + + * Breaking changes are not that big of a deal + + * But fact of breaking is scary + +* Going to talk to top 20 projects, with Andrea and Albert + + * Awareness + + * Get feedback + + * Support + +* Have not "advertised" it much so far + +* With rollout plan and environments, tools, etc. "ready", more announcements + +* Cadence 1.0 hackathon? (both projects and bug hunting / bug bash) + + * Example: OpenSea Sea Port bug bash + +* Cadence 1.0 office hours + +* Incentivize update? + +* Blackout periods? Awareness through disruption + + * TN + + * How to even do that on MN? Downtime would be brutal + + * Maybe depend on update staged? + +* How to amplify message? + + * In tooling like CLI, Emulator, etc. + + * In tools/projects like Flowdiver + + * On Website + +* Should not hide / make it very clear that this release is breaking + + * But also explain why the breaking changes are made (security, features, locked down contracts, etc.) + +### Cadence 1.0 migration plan + +* Had breakout session + +* Use Sandboxnet, clean network + + * Run pre-1.0 for a while, allow community to seed the environment with contracts and data + + * Then switch over + +* Is a clean Sandboxnet with 1.0 adding much value over Emulator? + + * Not really? For most developers Emulator is enough + + * Some developers don’t bother with the Emulator, go directly to TN + + * Some projects are relying on other projects (e.g FIND on FLOAT) + + * Difficult to have all dependencies deployed themselves in e.g. Emulator or even SN + + * Bringing up clean SN is not much effort + + * Bringing up SN from TN state is a lot of effort + + * "Seeding-period SN" solution good tradeoff diff --git a/migrations/account_storage.go b/migrations/account_storage.go new file mode 100644 index 0000000000..b4abb282a6 --- /dev/null +++ b/migrations/account_storage.go @@ -0,0 +1,169 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" +) + +type AccountStorage struct { + storage *runtime.Storage + address common.Address +} + +// NewAccountStorage constructs an `AccountStorage` for a given account. +func NewAccountStorage(storage *runtime.Storage, address common.Address) AccountStorage { + return AccountStorage{ + storage: storage, + address: address, + } +} + +type StorageMapKeyMigrator interface { + Migrate( + inter *interpreter.Interpreter, + storageKey interpreter.StorageKey, + storageMap *interpreter.StorageMap, + storageMapKey interpreter.StorageMapKey, + ) + Domains() map[string]struct{} +} + +type ValueConverter func( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + value interpreter.Value, +) interpreter.Value + +type ValueConverterPathMigrator struct { + domains map[string]struct{} + ConvertValue ValueConverter +} + +var _ StorageMapKeyMigrator = ValueConverterPathMigrator{} + +func NewValueConverterPathMigrator( + domains map[string]struct{}, + convertValue ValueConverter, +) StorageMapKeyMigrator { + return ValueConverterPathMigrator{ + domains: domains, + ConvertValue: convertValue, + } +} + +func (m ValueConverterPathMigrator) Migrate( + inter *interpreter.Interpreter, + storageKey interpreter.StorageKey, + storageMap *interpreter.StorageMap, + storageMapKey interpreter.StorageMapKey, +) { + value := storageMap.ReadValue(nil, storageMapKey) + + newValue := m.ConvertValue(storageKey, storageMapKey, value) + if newValue != nil { + // If the converter returns a new value, + // then replace the existing value with the new one. + storageMap.SetValue( + inter, + storageMapKey, + newValue, + ) + } +} + +func (m ValueConverterPathMigrator) Domains() map[string]struct{} { + return m.domains +} + +func (i *AccountStorage) MigrateStringKeys( + inter *interpreter.Interpreter, + key string, + migrator StorageMapKeyMigrator, +) { + i.MigrateStorageMap( + inter, + key, + migrator, + func(key atree.Value) interpreter.StorageMapKey { + return interpreter.StringStorageMapKey(key.(interpreter.StringAtreeValue)) + }, + ) +} + +func (i *AccountStorage) MigrateUint64Keys( + inter *interpreter.Interpreter, + key string, + migrator StorageMapKeyMigrator, +) { + i.MigrateStorageMap( + inter, + key, + migrator, + func(key atree.Value) interpreter.StorageMapKey { + return interpreter.Uint64StorageMapKey(key.(interpreter.Uint64AtreeValue)) + }, + ) +} + +func (i *AccountStorage) MigrateStorageMap( + inter *interpreter.Interpreter, + domain string, + migrator StorageMapKeyMigrator, + atreeKeyToStorageMapKey func(atree.Value) interpreter.StorageMapKey, +) { + address := i.address + + if domains := migrator.Domains(); domains != nil { + if _, ok := domains[domain]; !ok { + return + } + } + + storageMap := i.storage.GetStorageMap(address, domain, false) + if storageMap == nil || storageMap.Count() == 0 { + return + } + + storageKey := interpreter.NewStorageKey(nil, address, domain) + + iterator := storageMap.Iterator(inter) + + // Read the keys first, so the iteration won't be affected + // by the modification of the storage values. + var keys []interpreter.StorageMapKey + for key, _ := iterator.Next(); key != nil; key, _ = iterator.Next() { + identifier := atreeKeyToStorageMapKey(key) + keys = append(keys, identifier) + } + + for _, storageMapKey := range keys { + + migrator.Migrate( + inter, + storageKey, + storageMap, + storageMapKey, + ) + } +} diff --git a/migrations/broken_dictionary.go b/migrations/broken_dictionary.go new file mode 100644 index 0000000000..c1153435f9 --- /dev/null +++ b/migrations/broken_dictionary.go @@ -0,0 +1,47 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime/interpreter" +) + +// ShouldFixBrokenCompositeKeyedDictionary returns true if the given value is a dictionary with a composite key type. +// +// It is useful for use with atree's PersistentSlabStorage.FixLoadedBrokenReferences. +// +// NOTE: The intended use case is to enable migration programs in onflow/flow-go to fix broken references. +// As of April 2024, only 10 registers in testnet (not mainnet) were found to have broken references, +// and they seem to have resulted from a bug that was fixed 2 years ago by https://github.com/onflow/cadence/pull/1565. +func ShouldFixBrokenCompositeKeyedDictionary(atreeValue atree.Value) bool { + orderedMap, ok := atreeValue.(*atree.OrderedMap) + if !ok { + return false + } + + dictionaryStaticType, ok := orderedMap.Type().(*interpreter.DictionaryStaticType) + if !ok { + return false + } + + _, ok = dictionaryStaticType.KeyType.(*interpreter.CompositeStaticType) + return ok +} diff --git a/migrations/cache.go b/migrations/cache.go new file mode 100644 index 0000000000..e36d610edc --- /dev/null +++ b/migrations/cache.go @@ -0,0 +1,79 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Dapper Labs, Inc. + * + * 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. + */ + +package migrations + +import ( + "sync" + + "github.com/onflow/cadence/runtime/interpreter" +) + +type CachedStaticType struct { + StaticType interpreter.StaticType + Error error +} + +type StaticTypeKey string + +func NewStaticTypeKey(staticType interpreter.StaticType) (StaticTypeKey, error) { + raw, err := interpreter.StaticTypeToBytes(staticType) + if err != nil { + return "", err + } + return StaticTypeKey(raw), nil +} + +type StaticTypeCache interface { + Get(key StaticTypeKey) (CachedStaticType, bool) + Set( + key StaticTypeKey, + staticType interpreter.StaticType, + err error, + ) +} + +type DefaultStaticTypeCache struct { + entries sync.Map +} + +func NewDefaultStaticTypeCache() *DefaultStaticTypeCache { + return &DefaultStaticTypeCache{} +} + +func (c *DefaultStaticTypeCache) Get(key StaticTypeKey) (CachedStaticType, bool) { + v, ok := c.entries.Load(key) + if !ok { + return CachedStaticType{}, false + } + return v.(CachedStaticType), true +} + +func (c *DefaultStaticTypeCache) Set( + key StaticTypeKey, + staticType interpreter.StaticType, + err error, +) { + c.entries.Store( + key, + CachedStaticType{ + StaticType: staticType, + Error: err, + }, + ) +} diff --git a/migrations/capcons/capabilitymigration.go b/migrations/capcons/capabilitymigration.go new file mode 100644 index 0000000000..79fa88fd9f --- /dev/null +++ b/migrations/capcons/capabilitymigration.go @@ -0,0 +1,184 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package capcons + +import ( + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type CapabilityMigrationReporter interface { + MigratedPathCapability( + accountAddress common.Address, + addressPath interpreter.AddressPath, + borrowType *interpreter.ReferenceStaticType, + ) + MissingCapabilityID( + accountAddress common.Address, + addressPath interpreter.AddressPath, + ) +} + +// CapabilityValueMigration migrates all path capabilities to ID capabilities, +// using the path to ID capability controller mapping generated by LinkValueMigration. +type CapabilityValueMigration struct { + CapabilityMapping *CapabilityMapping + Reporter CapabilityMigrationReporter +} + +var _ migrations.ValueMigration = &CapabilityValueMigration{} + +func (*CapabilityValueMigration) Name() string { + return "CapabilityValueMigration" +} + +func (*CapabilityValueMigration) Domains() map[string]struct{} { + return nil +} + +var fullyEntitledAccountReferenceStaticType = interpreter.ConvertSemaReferenceTypeToStaticReferenceType( + nil, + sema.FullyEntitledAccountReferenceType, +) + +// Migrate migrates a path capability to an ID capability in the given value. +// If a value is returned, the value must be updated with the replacement in the parent. +// If nil is returned, the value was not updated and no operation has to be performed. +func (m *CapabilityValueMigration) Migrate( + storageKey interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ migrations.ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + reporter := m.Reporter + + switch value := value.(type) { + case *interpreter.PathCapabilityValue: //nolint:staticcheck + + // Migrate the path capability to an ID capability + + oldCapability := value + + capabilityAddressPath := oldCapability.AddressPath() + capabilityID, controllerBorrowType, ok := m.CapabilityMapping.Get(capabilityAddressPath) + if !ok { + if reporter != nil { + reporter.MissingCapabilityID( + storageKey.Address, + capabilityAddressPath, + ) + } + break + } + + oldBorrowType := oldCapability.BorrowType + + // Convert untyped path capability value to typed ID capability value + // by using capability controller's borrow type + if oldBorrowType == nil { + oldBorrowType = interpreter.ConvertSemaToStaticType(nil, controllerBorrowType) + } + + newBorrowType, ok := oldBorrowType.(*interpreter.ReferenceStaticType) + if !ok { + panic(errors.NewUnexpectedError("unexpected non-reference borrow type: %T", oldBorrowType)) + } + + // Convert the old AuthAccount type to the new fully-entitled Account type + if newBorrowType.ReferencedType == interpreter.PrimitiveStaticTypeAuthAccount { //nolint:staticcheck + newBorrowType = fullyEntitledAccountReferenceStaticType + } + + newCapability := interpreter.NewUnmeteredCapabilityValue( + capabilityID, + oldCapability.Address, + newBorrowType, + ) + + if reporter != nil { + reporter.MigratedPathCapability( + storageKey.Address, + capabilityAddressPath, + newBorrowType, + ) + } + + return newCapability, nil + } + + return nil, nil +} + +func (m *CapabilityValueMigration) CanSkip(valueType interpreter.StaticType) bool { + return CanSkipCapabilityValueMigration(valueType) +} + +func CanSkipCapabilityValueMigration(valueType interpreter.StaticType) bool { + switch valueType := valueType.(type) { + case *interpreter.DictionaryStaticType: + return CanSkipCapabilityValueMigration(valueType.KeyType) && + CanSkipCapabilityValueMigration(valueType.ValueType) + + case interpreter.ArrayStaticType: + return CanSkipCapabilityValueMigration(valueType.ElementType()) + + case *interpreter.OptionalStaticType: + return CanSkipCapabilityValueMigration(valueType.Type) + + case *interpreter.CapabilityStaticType: + return false + + case interpreter.PrimitiveStaticType: + + switch valueType { + case interpreter.PrimitiveStaticTypeCapability: + return false + + case interpreter.PrimitiveStaticTypeBool, + interpreter.PrimitiveStaticTypeVoid, + interpreter.PrimitiveStaticTypeAddress, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeBlock, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeCharacter: + + return true + } + + if !valueType.IsDeprecated() { //nolint:staticcheck + semaType := valueType.SemaType() + + if sema.IsSubType(semaType, sema.NumberType) || + sema.IsSubType(semaType, sema.PathType) { + + return true + } + } + } + + return false +} diff --git a/migrations/capcons/error.go b/migrations/capcons/error.go new file mode 100644 index 0000000000..e4790c87f2 --- /dev/null +++ b/migrations/capcons/error.go @@ -0,0 +1,55 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package capcons + +import ( + "fmt" + "strings" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" +) + +// CyclicLinkError +type CyclicLinkError struct { + Paths []interpreter.PathValue + Address common.Address +} + +var _ errors.UserError = CyclicLinkError{} + +func (CyclicLinkError) IsUserError() {} + +func (e CyclicLinkError) Error() string { + var builder strings.Builder + for i, path := range e.Paths { + if i > 0 { + builder.WriteString(" -> ") + } + builder.WriteString(path.String()) + } + paths := builder.String() + + return fmt.Sprintf( + "cyclic link in account %s: %s", + e.Address.ShortHexWithPrefix(), + paths, + ) +} diff --git a/migrations/capcons/linkmigration.go b/migrations/capcons/linkmigration.go new file mode 100644 index 0000000000..7f78c75b3d --- /dev/null +++ b/migrations/capcons/linkmigration.go @@ -0,0 +1,380 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package capcons + +import ( + goerrors "errors" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" +) + +type LinkMigrationReporter interface { + MigratedLink( + accountAddressPath interpreter.AddressPath, + capabilityID interpreter.UInt64Value, + ) + CyclicLink(err CyclicLinkError) + MissingTarget(accountAddressPath interpreter.AddressPath) +} + +// LinkValueMigration migrates all links to capability controllers. +type LinkValueMigration struct { + CapabilityMapping *CapabilityMapping + AccountIDGenerator stdlib.AccountIDGenerator + Reporter LinkMigrationReporter +} + +var _ migrations.ValueMigration = &LinkValueMigration{} + +func (*LinkValueMigration) Name() string { + return "LinkValueMigration" +} + +func (m *LinkValueMigration) CanSkip(valueType interpreter.StaticType) bool { + // Link values have a capability static type + return CanSkipCapabilityValueMigration(valueType) +} + +var linkValueMigrationDomains = map[string]struct{}{ + common.PathDomainPublic.Identifier(): {}, + common.PathDomainPrivate.Identifier(): {}, +} + +func (m *LinkValueMigration) Domains() map[string]struct{} { + return linkValueMigrationDomains +} + +func (m *LinkValueMigration) Migrate( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + value interpreter.Value, + inter *interpreter.Interpreter, + _ migrations.ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + pathValue, ok := storageKeyToPathValue(storageKey, storageMapKey) + if !ok { + return nil, nil + } + + pathDomain := pathValue.Domain + switch pathDomain { + case common.PathDomainPublic, common.PathDomainPrivate: + // migrate public and private domain + default: + // ignore other domains (e.g. storage) + return nil, nil + } + + accountAddress := storageKey.Address + + addressPath := interpreter.AddressPath{ + Address: accountAddress, + Path: pathValue, + } + + reporter := m.Reporter + accountIDGenerator := m.AccountIDGenerator + + locationRange := interpreter.EmptyLocationRange + + var borrowStaticType *interpreter.ReferenceStaticType + + switch readValue := value.(type) { + case *interpreter.IDCapabilityValue: + // Already migrated + return nil, nil + + case interpreter.PathLinkValue: //nolint:staticcheck + var ok bool + borrowType := readValue.Type + borrowStaticType, ok = borrowType.(*interpreter.ReferenceStaticType) + if !ok { + panic(errors.NewUnexpectedError("unexpected non-reference borrow type: %T", borrowType)) + } + + case interpreter.AccountLinkValue: //nolint:staticcheck + borrowStaticType = interpreter.NewReferenceStaticType( + nil, + interpreter.FullyEntitledAccountAccess, + interpreter.PrimitiveStaticTypeAccount, + ) + + default: + panic(errors.NewUnexpectedError("unexpected value type: %T", value)) + } + + convertedBorrowStaticType := inter.MustConvertStaticToSemaType(borrowStaticType) + borrowType, ok := convertedBorrowStaticType.(*sema.ReferenceType) + if !ok { + panic(errors.NewUnexpectedError("unexpected non-reference borrow type: %T", borrowType)) + } + + // Get target + + target, _, err := m.getPathCapabilityFinalTarget( + inter, + accountAddress, + pathValue, + // Use top-most type to follow link all the way to final target + &sema.ReferenceType{ + Authorization: sema.UnauthorizedAccess, + Type: sema.AnyType, + }, + ) + if err != nil { + var cyclicLinkErr CyclicLinkError + if goerrors.As(err, &cyclicLinkErr) { + if reporter != nil { + reporter.CyclicLink(cyclicLinkErr) + } + + // TODO: really leave as-is? or still convert? + return nil, nil + } + + return nil, err + } + + // Issue appropriate capability controller + + var capabilityID interpreter.UInt64Value + + switch target := target.(type) { + case nil: + if reporter != nil { + reporter.MissingTarget(addressPath) + } + + // TODO: really leave as-is? or still convert? + return nil, nil + + case pathCapabilityTarget: + + targetPath := interpreter.PathValue(target) + + capabilityID, _ = stdlib.IssueStorageCapabilityController( + inter, + locationRange, + accountIDGenerator, + accountAddress, + borrowType, + targetPath, + ) + + case accountCapabilityTarget: + capabilityID, _ = stdlib.IssueAccountCapabilityController( + inter, + locationRange, + accountIDGenerator, + accountAddress, + borrowType, + ) + + default: + panic(errors.NewUnexpectedError("unexpected target type: %T", target)) + } + + // Record new capability ID in source path mapping. + // The mapping is used later for migrating path capabilities to ID capabilities, + // see CapabilityMigration. + m.CapabilityMapping.Record(addressPath, capabilityID, borrowType) + + if reporter != nil { + reporter.MigratedLink(addressPath, capabilityID) + } + + addressValue := interpreter.AddressValue(addressPath.Address) + + return interpreter.NewCapabilityValue( + inter, + capabilityID, + addressValue, + borrowStaticType, + ), nil +} + +func storageKeyToPathValue( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, +) ( + interpreter.PathValue, + bool, +) { + domain := common.PathDomainFromIdentifier(storageKey.Key) + if domain == common.PathDomainUnknown { + return interpreter.PathValue{}, false + } + stringStorageMapKey, ok := storageMapKey.(interpreter.StringStorageMapKey) + if !ok { + return interpreter.PathValue{}, false + } + identifier := string(stringStorageMapKey) + return interpreter.NewUnmeteredPathValue(domain, identifier), true +} + +var authAccountReferenceStaticType = interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAuthAccount, //nolint:staticcheck +) + +func (m *LinkValueMigration) getPathCapabilityFinalTarget( + inter *interpreter.Interpreter, + accountAddress common.Address, + pathValue interpreter.PathValue, + wantedBorrowType *sema.ReferenceType, +) ( + target capabilityTarget, + authorization interpreter.Authorization, + err error, +) { + + locationRange := interpreter.EmptyLocationRange + + seenPaths := map[interpreter.PathValue]struct{}{} + paths := []interpreter.PathValue{pathValue} + + for { + // Detect cyclic links + + if _, ok := seenPaths[pathValue]; ok { + return nil, + interpreter.UnauthorizedAccess, + CyclicLinkError{ + Address: accountAddress, + Paths: paths, + } + } else { + seenPaths[pathValue] = struct{}{} + } + + domain := pathValue.Domain.Identifier() + identifier := pathValue.Identifier + + storageMapKey := interpreter.StringStorageMapKey(identifier) + + switch pathValue.Domain { + case common.PathDomainStorage: + + return pathCapabilityTarget(pathValue), + interpreter.ConvertSemaAccessToStaticAuthorization( + inter, + wantedBorrowType.Authorization, + ), + nil + + case common.PathDomainPublic, + common.PathDomainPrivate: + + value := inter.ReadStored(accountAddress, domain, storageMapKey) + if value == nil { + return nil, interpreter.UnauthorizedAccess, nil + } + + switch value := value.(type) { + case interpreter.PathLinkValue: //nolint:staticcheck + allowedType := inter.MustConvertStaticToSemaType(value.Type) + + if !sema.IsSubType(allowedType, wantedBorrowType) { + return nil, interpreter.UnauthorizedAccess, nil + } + + targetPath := value.TargetPath + paths = append(paths, targetPath) + pathValue = targetPath + + case interpreter.AccountLinkValue: //nolint:staticcheck + if !inter.IsSubTypeOfSemaType( + authAccountReferenceStaticType, + wantedBorrowType, + ) { + return nil, interpreter.UnauthorizedAccess, nil + } + + return accountCapabilityTarget(accountAddress), + interpreter.UnauthorizedAccess, + nil + + case *interpreter.IDCapabilityValue: + + // Follow ID capability values which are published in the public or private domain. + // This is needed for two reasons: + // 1. Support for migrating path capabilities to ID capabilities was already enabled on Testnet + // 2. During the migration of a whole link chain, + // the order of the migration of the individual links is undefined, + // so it's possible that a capability value is encountered when determining the final target, + // when a part of the full link chain was already previously migrated. + + convertedBorrowType := inter.MustConvertStaticToSemaType(value.BorrowType) + capabilityBorrowType, ok := convertedBorrowType.(*sema.ReferenceType) + if !ok { + panic(errors.NewUnexpectedError( + "unexpected non-reference borrow type: %T", + convertedBorrowType, + )) + } + + // Do not borrow final target (i.e. do not require target to exist), + // just get target address/path + reference := stdlib.GetCheckedCapabilityControllerReference( + inter, + value.Address, + value.ID, + wantedBorrowType, + capabilityBorrowType, + locationRange, + ) + if reference == nil { + return nil, interpreter.UnauthorizedAccess, nil + } + + switch reference := reference.(type) { + case *interpreter.StorageReferenceValue: + accountAddress = reference.TargetStorageAddress + targetPath := reference.TargetPath + paths = append(paths, targetPath) + pathValue = targetPath + + case *interpreter.EphemeralReferenceValue: + accountValue := reference.Value.(*interpreter.SimpleCompositeValue) + address := accountValue.Fields[sema.AccountTypeAddressFieldName].(interpreter.AddressValue) + + return accountCapabilityTarget(address), + interpreter.UnauthorizedAccess, + nil + + default: + return nil, interpreter.UnauthorizedAccess, nil + } + + default: + panic(errors.NewUnexpectedError("unexpected value type: %T", value)) + } + } + } +} diff --git a/migrations/capcons/mapping.go b/migrations/capcons/mapping.go new file mode 100644 index 0000000000..571f024acc --- /dev/null +++ b/migrations/capcons/mapping.go @@ -0,0 +1,67 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package capcons + +import ( + "sync" + + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type CapabilityEntry struct { + CapabilityID interpreter.UInt64Value + BorrowType *sema.ReferenceType +} + +type CapabilityEntryMap map[interpreter.PathValue]CapabilityEntry + +type CapabilityMapping struct { + // capabilityEntries maps common.Address to CapabilityEntryMap + capabilityEntries sync.Map +} + +func (m *CapabilityMapping) Record( + addressPath interpreter.AddressPath, + capabilityID interpreter.UInt64Value, + borrowType *sema.ReferenceType, +) { + var capabilityEntryMap CapabilityEntryMap + rawCapabilityEntryMap, ok := m.capabilityEntries.Load(addressPath.Address) + if ok { + capabilityEntryMap = rawCapabilityEntryMap.(CapabilityEntryMap) + } else { + capabilityEntryMap = CapabilityEntryMap{} + m.capabilityEntries.Store(addressPath.Address, capabilityEntryMap) + } + capabilityEntryMap[addressPath.Path] = CapabilityEntry{ + CapabilityID: capabilityID, + BorrowType: borrowType, + } +} + +func (m *CapabilityMapping) Get(addressPath interpreter.AddressPath) (interpreter.UInt64Value, sema.Type, bool) { + rawCapabilityEntryMap, ok := m.capabilityEntries.Load(addressPath.Address) + if !ok { + return 0, nil, false + } + capabilityEntryMap := rawCapabilityEntryMap.(CapabilityEntryMap) + capabilityEntry, ok := capabilityEntryMap[addressPath.Path] + return capabilityEntry.CapabilityID, capabilityEntry.BorrowType, ok +} diff --git a/migrations/capcons/migration_test.go b/migrations/capcons/migration_test.go new file mode 100644 index 0000000000..df674b7674 --- /dev/null +++ b/migrations/capcons/migration_test.go @@ -0,0 +1,2438 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package capcons + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence" + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +type testAccountIDGenerator struct { + ids map[common.Address]uint64 +} + +func (g *testAccountIDGenerator) GenerateAccountID(address common.Address) (uint64, error) { + if g.ids == nil { + g.ids = make(map[common.Address]uint64) + } + g.ids[address]++ + return g.ids[address], nil +} + +type testCapConsLinkMigration struct { + accountAddressPath interpreter.AddressPath + capabilityID interpreter.UInt64Value +} + +type testCapConsPathCapabilityMigration struct { + accountAddress common.Address + addressPath interpreter.AddressPath + borrowType *interpreter.ReferenceStaticType +} + +type testCapConsMissingCapabilityID struct { + accountAddress common.Address + addressPath interpreter.AddressPath +} + +type testMigration struct { + storageKey interpreter.StorageKey + storageMapKey interpreter.StorageMapKey + migration string +} + +type testMigrationReporter struct { + migrations []testMigration + errors []error + linkMigrations []testCapConsLinkMigration + pathCapabilityMigrations []testCapConsPathCapabilityMigration + missingCapabilityIDs []testCapConsMissingCapabilityID + cyclicLinkErrors []CyclicLinkError + missingTargets []interpreter.AddressPath +} + +var _ migrations.Reporter = &testMigrationReporter{} +var _ LinkMigrationReporter = &testMigrationReporter{} +var _ CapabilityMigrationReporter = &testMigrationReporter{} + +func (t *testMigrationReporter) Migrated( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + migration string, +) { + t.migrations = append( + t.migrations, + testMigration{ + storageKey: storageKey, + storageMapKey: storageMapKey, + migration: migration, + }, + ) +} + +func (t *testMigrationReporter) Error(err error) { + t.errors = append(t.errors, err) +} +func (t *testMigrationReporter) MigratedLink( + accountAddressPath interpreter.AddressPath, + capabilityID interpreter.UInt64Value, +) { + t.linkMigrations = append( + t.linkMigrations, + testCapConsLinkMigration{ + accountAddressPath: accountAddressPath, + capabilityID: capabilityID, + }, + ) +} + +func (t *testMigrationReporter) MigratedPathCapability( + accountAddress common.Address, + addressPath interpreter.AddressPath, + borrowType *interpreter.ReferenceStaticType, +) { + t.pathCapabilityMigrations = append( + t.pathCapabilityMigrations, + testCapConsPathCapabilityMigration{ + accountAddress: accountAddress, + addressPath: addressPath, + borrowType: borrowType, + }, + ) +} + +func (t *testMigrationReporter) MissingCapabilityID( + accountAddress common.Address, + addressPath interpreter.AddressPath, +) { + t.missingCapabilityIDs = append( + t.missingCapabilityIDs, + testCapConsMissingCapabilityID{ + accountAddress: accountAddress, + addressPath: addressPath, + }, + ) +} + +func (t *testMigrationReporter) CyclicLink(cyclicLinkError CyclicLinkError) { + t.cyclicLinkErrors = append( + t.cyclicLinkErrors, + cyclicLinkError, + ) +} + +func (t *testMigrationReporter) MissingTarget( + accountAddressPath interpreter.AddressPath, +) { + t.missingTargets = append( + t.missingTargets, + accountAddressPath, + ) +} + +func (t *testMigrationReporter) DictionaryKeyConflict(addressPath interpreter.AddressPath) { + // For testing purposes, record the conflict as an error + t.errors = append(t.errors, fmt.Errorf("dictionary key conflict: %s", addressPath)) +} + +const testPathIdentifier = "test" + +var testAddress = common.MustBytesToAddress([]byte{0x1}) + +var testRCompositeStaticType = interpreter.NewCompositeStaticTypeComputeTypeID( + nil, + common.NewAddressLocation(nil, testAddress, "Test"), + "Test.R", +) + +var testRReferenceStaticType = interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + testRCompositeStaticType, +) + +var testSCompositeStaticType = interpreter.NewCompositeStaticTypeComputeTypeID( + nil, + common.NewAddressLocation(nil, testAddress, "Test"), + "Test.S", +) + +var testSReferenceStaticType = interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + testSCompositeStaticType, +) + +type testLink struct { + sourcePath interpreter.PathValue + targetPath interpreter.PathValue + borrowType *interpreter.ReferenceStaticType +} + +func storeTestAccountLinks(accountLinks []interpreter.PathValue, storage *runtime.Storage, inter *interpreter.Interpreter) { + for _, sourcePath := range accountLinks { + storage.GetStorageMap(testAddress, sourcePath.Domain.Identifier(), true). + SetValue( + inter, + interpreter.StringStorageMapKey(sourcePath.Identifier), + interpreter.AccountLinkValue{}, //nolint:staticcheck + ) + } +} + +func storeTestPathLinks(t *testing.T, pathLinks []testLink, storage *runtime.Storage, inter *interpreter.Interpreter) { + for _, testLink := range pathLinks { + sourcePath := testLink.sourcePath + targetPath := testLink.targetPath + + require.NotNil(t, testLink.borrowType) + + storage.GetStorageMap(testAddress, sourcePath.Domain.Identifier(), true). + SetValue( + inter, + interpreter.StringStorageMapKey(sourcePath.Identifier), + interpreter.PathLinkValue{ //nolint:staticcheck + Type: testLink.borrowType, + TargetPath: interpreter.PathValue{ + Domain: targetPath.Domain, + Identifier: targetPath.Identifier, + }, + }, + ) + } +} + +func testPathCapabilityValueMigration( + t *testing.T, + capabilityValue *interpreter.PathCapabilityValue, //nolint:staticcheck + pathLinks []testLink, + accountLinks []interpreter.PathValue, + expectedMigrations []testMigration, + expectedErrors []error, + expectedPathMigrations []testCapConsPathCapabilityMigration, + expectedMissingCapabilityIDs []testCapConsMissingCapabilityID, + setupFunction, checkFunction string, + borrowShouldFail bool, +) { + require.True(t, + len(expectedMigrations) == 0 || + len(expectedMissingCapabilityIDs) == 0, + ) + + rt := NewTestInterpreterRuntime() + + // language=cadence + contract := ` + access(all) + contract Test { + + access(all) + resource R {} + + access(all) + struct S {} + + access(all) + struct CapabilityWrapper { + + access(all) + let capability: Capability + + init(_ capability: Capability) { + self.capability = capability + } + } + + access(all) + struct CapabilityOptionalWrapper { + + access(all) + let capability: Capability? + + init(_ capability: Capability?) { + self.capability = capability + } + } + + access(all) + struct CapabilityArrayWrapper { + + access(all) + let capabilities: [Capability] + + init(_ capabilities: [Capability]) { + self.capabilities = capabilities + } + } + + access(all) + struct CapabilityDictionaryWrapper { + + access(all) + let capabilities: {Int: Capability} + + init(_ capabilities: {Int: Capability}) { + self.capabilities = capabilities + } + } + + access(all) + fun saveExisting( + capability: Capability, + wrapper: fun(Capability): AnyStruct + ) { + self.account.storage.save( + wrapper(capability), + to: /storage/wrappedCapability + ) + } + + access(all) + fun checkMigratedCapabilityValueWithPathLink(getter: fun(AnyStruct): Capability, borrowShouldFail: Bool) { + self.account.storage.save(<-create R(), to: /storage/test) + let capValue = self.account.storage.copy(from: /storage/wrappedCapability)! + let cap = getter(capValue) + assert(cap.id != 0) + let ref = cap.borrow<&R>() + if borrowShouldFail { + assert(ref == nil) + } else { + assert(ref != nil) + } + } + + access(all) + fun checkMigratedCapabilityValueWithAccountLink(getter: fun(AnyStruct): Capability, borrowShouldFail: Bool) { + let capValue = self.account.storage.copy(from: /storage/wrappedCapability)! + let cap = getter(capValue) + assert(cap.id != 0) + let ref = cap.check<&Account>() + if borrowShouldFail { + assert(ref == nil) + } else { + assert(ref != nil) + } + } + } + ` + + accountCodes := map[runtime.Location][]byte{} + var events []cadence.Event + var loggedMessages []string + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location runtime.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{testAddress}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() + + // Deploy contract + + deployTransaction := utils.DeploymentTransaction("Test", []byte(contract)) + err := rt.ExecuteTransaction( + runtime.Script{ + Source: deployTransaction, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Setup + + setupTransactionLocation := nextTransactionLocation() + + environment := runtime.NewBaseInterpreterEnvironment(runtime.Config{}) + + // Inject the path capability value. + // + // We don't have a way to create a path capability value in a Cadence program anymore, + // so we have to inject it manually. + + environment.DeclareValue( + stdlib.StandardLibraryValue{ + Name: "cap", + Type: &sema.CapabilityType{}, + Kind: common.DeclarationKindConstant, + Value: capabilityValue, + }, + setupTransactionLocation, + ) + + // Create and store path and account links + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + storeTestPathLinks(t, pathLinks, storage, inter) + + storeTestAccountLinks(accountLinks, storage, inter) + + err = storage.Commit(inter, false) + require.NoError(t, err) + + // Save capability values into account + + setupTx := fmt.Sprintf( + // language=cadence + ` + import Test from 0x1 + + transaction { + prepare(signer: &Account) { + Test.saveExisting( + capability: cap, + wrapper: %s + ) + } + } + `, + setupFunction, + ) + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: []byte(setupTx), + }, + runtime.Context{ + Interface: runtimeInterface, + Environment: environment, + Location: setupTransactionLocation, + }, + ) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := &testMigrationReporter{} + + capabilityMapping := &CapabilityMapping{} + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + &LinkValueMigration{ + CapabilityMapping: capabilityMapping, + AccountIDGenerator: &testAccountIDGenerator{}, + Reporter: reporter, + }, + ), + ) + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + &CapabilityValueMigration{ + CapabilityMapping: capabilityMapping, + Reporter: reporter, + }, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + assert.Equal(t, + expectedMigrations, + reporter.migrations, + ) + assert.Equal(t, + expectedPathMigrations, + reporter.pathCapabilityMigrations, + ) + require.Equal(t, + expectedMissingCapabilityIDs, + reporter.missingCapabilityIDs, + ) + require.Equal(t, + expectedErrors, + reporter.errors, + ) + + err = storage.CheckHealth() + require.NoError(t, err) + + if len(expectedMissingCapabilityIDs) == 0 { + + checkFunctionName := "checkMigratedCapabilityValueWithPathLink" + if len(accountLinks) > 0 { + checkFunctionName = "checkMigratedCapabilityValueWithAccountLink" + } + + // Check + + checkScript := fmt.Sprintf( + // language=cadence + ` + import Test from 0x1 + + access(all) + fun main() { + Test.%s(getter: %s, borrowShouldFail: %v) + } + `, + checkFunctionName, + checkFunction, + borrowShouldFail, + ) + _, err = rt.ExecuteScript( + runtime.Script{ + Source: []byte(checkScript), + }, + runtime.Context{ + Interface: runtimeInterface, + Environment: environment, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) + } +} + +func TestPathCapabilityValueMigration(t *testing.T) { + + t.Parallel() + + type linkTestCase struct { + name string + capabilityValue *interpreter.PathCapabilityValue //nolint:staticcheck + pathLinks []testLink + accountLinks []interpreter.PathValue + expectedMigrations []testMigration + expectedErrors []error + expectedPathMigrations []testCapConsPathCapabilityMigration + expectedMissingCapabilityIDs []testCapConsMissingCapabilityID + borrowShouldFail bool + } + + expectedWrappedCapabilityValueMigration := testMigration{ + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey("wrappedCapability"), + migration: "CapabilityValueMigration", + } + + linkTestCases := []linkTestCase{ + { + name: "Path links, working chain (public -> private -> storage)", + // Equivalent to: getCapability<&Test.R>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + // Equivalent to: + // link<&Test.R>(/private/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + expectedWrappedCapabilityValueMigration, + }, + expectedPathMigrations: []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + borrowType: testRReferenceStaticType, + }, + }, + }, + { + name: "Path links, working chain (public -> storage)", + // Equivalent to: getCapability<&Test.R>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + expectedWrappedCapabilityValueMigration, + }, + expectedPathMigrations: []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + borrowType: testRReferenceStaticType, + }, + }, + }, + { + name: "Path links, working chain (private -> storage)", + // Equivalent to: getCapability<&Test.R>(/private/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/private/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + expectedWrappedCapabilityValueMigration, + }, + expectedPathMigrations: []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPrivate, + testPathIdentifier, + ), + }, + borrowType: testRReferenceStaticType, + }, + }, + }, + // Test that the migration also follows capability controller, + // which were already previously migrated from links. + // Following the (capability value) should not borrow it, + // i.e. require the storage target to exist, + // but rather just get the storage target + { + name: "Path links, working chain (private -> private -> storage)", + // Equivalent to: getCapability<&Test.R>(/private/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/private/test, target: /private/test2) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: "test2", + }, + borrowType: testRReferenceStaticType, + }, + // Equivalent to: + // link<&Test.R>(/private/test2, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: "test2", + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey("test2"), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + expectedWrappedCapabilityValueMigration, + }, + expectedPathMigrations: []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPrivate, + testPathIdentifier, + ), + }, + borrowType: testRReferenceStaticType, + }, + }, + }, + // NOTE: this migrates a broken capability to a broken capability + { + name: "Path links, valid chain (public -> storage), different borrow type", + // Equivalent to: getCapability<&Test.R>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.S>(/public/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + // + borrowType: testSReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + expectedWrappedCapabilityValueMigration, + }, + expectedPathMigrations: []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + borrowType: testRReferenceStaticType, + }, + }, + borrowShouldFail: true, + }, + { + name: "Path links, cyclic chain (public -> private -> public)", + // Equivalent to: getCapability<&Test.R>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + // Equivalent to: + // link<&Test.R>(/private/test, target: /public/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedPathMigrations: nil, + expectedMissingCapabilityIDs: []testCapConsMissingCapabilityID{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + }, + }, + }, + { + name: "Path links, missing source (public -> private)", + // Equivalent to: getCapability<&Test.R>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: nil, + expectedPathMigrations: nil, + expectedMissingCapabilityIDs: []testCapConsMissingCapabilityID{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + }, + }, + }, + { + name: "Path links, missing target (public -> private)", + // Equivalent to: getCapability<&Test.R>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: testRReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedPathMigrations: nil, + expectedMissingCapabilityIDs: []testCapConsMissingCapabilityID{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + }, + }, + }, + { + name: "Account link, working chain (public)", + // Equivalent to: getCapability<&AuthAccount>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: authAccountReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + accountLinks: []interpreter.PathValue{ + // Equivalent to: + // linkAccount(/public/test) + { + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + expectedWrappedCapabilityValueMigration, + }, + expectedPathMigrations: []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + borrowType: fullyEntitledAccountReferenceStaticType, + }, + }, + }, + { + name: "Account link, working chain (private)", + // Equivalent to: getCapability<&AuthAccount>(/public/test) + capabilityValue: &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: authAccountReferenceStaticType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + }, + accountLinks: []interpreter.PathValue{ + // Equivalent to: + // linkAccount(/private/test) + { + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + expectedWrappedCapabilityValueMigration, + }, + expectedPathMigrations: []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPrivate, + testPathIdentifier, + ), + }, + borrowType: fullyEntitledAccountReferenceStaticType, + }, + }, + }, + } + + type valueTestCase struct { + name string + setupFunction string + checkFunction string + } + + valueTestCases := []valueTestCase{ + { + name: "directly", + // language=cadence + setupFunction: ` + fun (cap: Capability): AnyStruct { + return cap + } + `, + // language=cadence + checkFunction: ` + fun (value: AnyStruct): Capability { + return value as! Capability + } + `, + }, + { + name: "composite", + // language=cadence + setupFunction: ` + fun (cap: Capability): AnyStruct { + return Test.CapabilityWrapper(cap) + } + `, + // language=cadence + checkFunction: ` + fun (value: AnyStruct): Capability { + let wrapper = value as! Test.CapabilityWrapper + return wrapper.capability + } + `, + }, + { + name: "optional", + // language=cadence + setupFunction: ` + fun (cap: Capability): AnyStruct { + return Test.CapabilityOptionalWrapper(cap) + } + `, + // language=cadence + checkFunction: ` + fun (value: AnyStruct): Capability { + let wrapper = value as! Test.CapabilityOptionalWrapper + return wrapper.capability! + } + `, + }, + { + name: "array", + // language=cadence + setupFunction: ` + fun (cap: Capability): AnyStruct { + return Test.CapabilityArrayWrapper([cap]) + } + `, + // language=cadence + checkFunction: ` + fun (value: AnyStruct): Capability { + let wrapper = value as! Test.CapabilityArrayWrapper + return wrapper.capabilities[0] + } + `, + }, + { + name: "dictionary", + + // language=cadence + setupFunction: ` + fun (cap: Capability): AnyStruct { + return Test.CapabilityDictionaryWrapper({2: cap}) + } + `, + // language=cadence + checkFunction: ` + fun (value: AnyStruct): Capability { + let wrapper = value as! Test.CapabilityDictionaryWrapper + return wrapper.capabilities[2]! + } + `, + }, + } + + test := func(linkTestCase linkTestCase, valueTestCase valueTestCase) { + testName := fmt.Sprintf( + "%s, %s", + linkTestCase.name, + valueTestCase.name, + ) + + t.Run(testName, func(t *testing.T) { + t.Parallel() + + testPathCapabilityValueMigration( + t, + linkTestCase.capabilityValue, + linkTestCase.pathLinks, + linkTestCase.accountLinks, + linkTestCase.expectedMigrations, + linkTestCase.expectedErrors, + linkTestCase.expectedPathMigrations, + linkTestCase.expectedMissingCapabilityIDs, + valueTestCase.setupFunction, + valueTestCase.checkFunction, + linkTestCase.borrowShouldFail, + ) + }) + } + + for _, linkTestCase := range linkTestCases { + for _, valueTestCase := range valueTestCases { + test(linkTestCase, valueTestCase) + } + } +} + +func testLinkMigration( + t *testing.T, + pathLinks []testLink, + accountLinks []interpreter.PathValue, + expectedMigrations []testMigration, + expectedErrors []error, + expectedLinkMigrations []testCapConsLinkMigration, + expectedCyclicLinkErrors []CyclicLinkError, + expectedMissingTargets []interpreter.AddressPath, +) { + require.True(t, + len(expectedLinkMigrations) == 0 || + (len(expectedCyclicLinkErrors) == 0 && len(expectedMissingTargets) == 0), + ) + + // language=cadence + contract := ` + access(all) + contract Test { + + access(all) + resource R {} + + access(all) + struct S {} + } + ` + + rt := NewTestInterpreterRuntime() + + accountCodes := map[runtime.Location][]byte{} + var events []cadence.Event + var loggedMessages []string + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location runtime.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{testAddress}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract + + deployTransaction := utils.DeploymentTransaction("Test", []byte(contract)) + err := rt.ExecuteTransaction( + runtime.Script{ + Source: deployTransaction, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Create and store path and account links + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + storeTestPathLinks(t, pathLinks, storage, inter) + + storeTestAccountLinks(accountLinks, storage, inter) + + err = storage.Commit(inter, false) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := &testMigrationReporter{} + + capabilityMapping := &CapabilityMapping{} + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + &LinkValueMigration{ + CapabilityMapping: capabilityMapping, + AccountIDGenerator: &testAccountIDGenerator{}, + Reporter: reporter, + }, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + assert.Equal(t, + expectedMigrations, + reporter.migrations, + ) + assert.Equal(t, + expectedLinkMigrations, + reporter.linkMigrations, + ) + assert.Equal(t, + expectedCyclicLinkErrors, + reporter.cyclicLinkErrors, + ) + assert.Equal(t, + expectedMissingTargets, + reporter.missingTargets, + ) + require.Equal(t, + expectedErrors, + reporter.errors, + ) + + err = storage.CheckHealth() + require.NoError(t, err) +} + +func TestLinkMigration(t *testing.T) { + + t.Parallel() + + type linkTestCase struct { + name string + pathLinks []testLink + accountLinks []interpreter.PathValue + expectedMigrations []testMigration + expectedErrors []error + expectedLinkMigrations []testCapConsLinkMigration + expectedCyclicLinkErrors []CyclicLinkError + expectedMissingTargets []interpreter.AddressPath + } + + linkTestCases := []linkTestCase{ + { + name: "Path links, working chain (public -> private -> storage)", + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + // Equivalent to: + // link<&Test.R>(/private/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + }, + expectedLinkMigrations: []testCapConsLinkMigration{ + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 1, + }, + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 2, + }, + }, + }, + { + name: "Path links, working chain (public -> storage)", + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + }, + expectedLinkMigrations: []testCapConsLinkMigration{ + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 1, + }, + }, + }, + { + name: "Path links, working chain (private -> storage)", + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/private/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + }, + expectedLinkMigrations: []testCapConsLinkMigration{ + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 1, + }, + }, + }, + // Test that the migration also follows capability controller, + // which were already previously migrated from links. + // Following the (capability value) should not borrow it, + // i.e. require the storage target to exist, + // but rather just get the storage target + { + name: "Path links, working chain (private -> private -> storage)", + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/private/test, target: /private/test2) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: "test2", + }, + borrowType: testRReferenceStaticType, + }, + // Equivalent to: + // link<&Test.R>(/private/test2, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: "test2", + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey("test2"), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + }, + expectedLinkMigrations: []testCapConsLinkMigration{ + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: "test2", + }, + }, + capabilityID: 1, + }, + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 2, + }, + }, + }, + { + name: "Path links, cyclic chain (public -> private -> public)", + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + // Equivalent to: + // link<&Test.R>(/private/test, target: /public/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedCyclicLinkErrors: []CyclicLinkError{ + { + Address: testAddress, + Paths: []interpreter.PathValue{ + { + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + { + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + { + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + }, + { + Address: testAddress, + Paths: []interpreter.PathValue{ + { + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + { + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + { + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + }, + }, + }, + }, + { + name: "Path links, missing target (public -> private)", + pathLinks: []testLink{ + // Equivalent to: + // link<&Test.R>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: testRReferenceStaticType, + }, + }, + expectedMissingTargets: []interpreter.AddressPath{ + { + Address: testAddress, + Path: interpreter.PathValue{ + Identifier: testPathIdentifier, + Domain: common.PathDomainPublic, + }, + }, + }, + }, + { + name: "Account link, working chain (public)", + accountLinks: []interpreter.PathValue{ + // Equivalent to: + // linkAccount(/public/test) + { + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + }, + expectedLinkMigrations: []testCapConsLinkMigration{ + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 1, + }, + }, + }, + { + name: "Account link, working chain (private)", + accountLinks: []interpreter.PathValue{ + // Equivalent to: + // linkAccount(/private/test) + { + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + }, + expectedLinkMigrations: []testCapConsLinkMigration{ + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 1, + }, + }, + }, + { + name: "Account link, working chain (public -> private)", + pathLinks: []testLink{ + // Equivalent to: + // link<&AuthAccount>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: authAccountReferenceStaticType, + }, + }, + accountLinks: []interpreter.PathValue{ + // Equivalent to: + // linkAccount(/private/test) + { + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + expectedMigrations: []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + }, + expectedLinkMigrations: []testCapConsLinkMigration{ + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 1, + }, + { + accountAddressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + }, + capabilityID: 2, + }, + }, + }, + } + + test := func(linkTestCase linkTestCase) { + + t.Run(linkTestCase.name, func(t *testing.T) { + t.Parallel() + + testLinkMigration( + t, + linkTestCase.pathLinks, + linkTestCase.accountLinks, + linkTestCase.expectedMigrations, + linkTestCase.expectedErrors, + linkTestCase.expectedLinkMigrations, + linkTestCase.expectedCyclicLinkErrors, + linkTestCase.expectedMissingTargets, + ) + }) + } + + for _, linkTestCase := range linkTestCases { + test(linkTestCase) + } +} + +func TestPublishedPathCapabilityValueMigration(t *testing.T) { + + t.Parallel() + + // Equivalent to: &Int + borrowType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeInt, + ) + + // Equivalent to: getCapability<&Int>(/public/test) + capabilityValue := &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: borrowType, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + } + + pathLinks := []testLink{ + // Equivalent to: + // link<&Int>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: borrowType, + }, + // Equivalent to: + // link<&Int>(/private/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: borrowType, + }, + } + + expectedMigrations := []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: stdlib.InboxStorageDomain, + }, + storageMapKey: interpreter.StringStorageMapKey("foo"), + migration: "CapabilityValueMigration", + }, + } + + expectedPathMigrations := []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + borrowType: borrowType, + }, + } + + rt := NewTestInterpreterRuntime() + + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{testAddress}, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() + + // Setup + + setupTransactionLocation := nextTransactionLocation() + + environment := runtime.NewScriptInterpreterEnvironment(runtime.Config{}) + + // Inject the path capability value. + // + // We don't have a way to create a path capability value in a Cadence program anymore, + // so we have to inject it manually. + + environment.DeclareValue( + stdlib.StandardLibraryValue{ + Name: "cap", + Type: &sema.CapabilityType{}, + Kind: common.DeclarationKindConstant, + Value: capabilityValue, + }, + setupTransactionLocation, + ) + + // Create and store path links + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + storeTestPathLinks(t, pathLinks, storage, inter) + + err = storage.Commit(inter, false) + require.NoError(t, err) + + // Save capability values into account + + // language=cadence + setupTx := ` + transaction { + prepare(signer: auth(PublishInboxCapability) &Account) { + signer.inbox.publish(cap, name: "foo", recipient: 0x2) + } + } + ` + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: []byte(setupTx), + }, + runtime.Context{ + Interface: runtimeInterface, + Environment: environment, + Location: setupTransactionLocation, + }, + ) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := &testMigrationReporter{} + + capabilityMapping := &CapabilityMapping{} + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + &LinkValueMigration{ + CapabilityMapping: capabilityMapping, + AccountIDGenerator: &testAccountIDGenerator{}, + Reporter: reporter, + }, + ), + ) + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + &CapabilityValueMigration{ + CapabilityMapping: capabilityMapping, + Reporter: reporter, + }, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + assert.Equal(t, + expectedMigrations, + reporter.migrations, + ) + assert.Equal(t, + expectedPathMigrations, + reporter.pathCapabilityMigrations, + ) + require.Nil(t, reporter.missingCapabilityIDs) + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + // language=cadence + checkScript := ` + access(all) + fun main() { + getAuthAccount(0x2) + .inbox.claim<&Int>("foo", provider: 0x1)! + } + ` + + _, err = rt.ExecuteScript( + runtime.Script{ + Source: []byte(checkScript), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) + +} + +func TestUntypedPathCapabilityValueMigration(t *testing.T) { + + t.Parallel() + + // Equivalent to: &Int + linkBorrowType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeInt, + ) + + // Equivalent to: getCapability(/public/test) + capabilityValue := &interpreter.PathCapabilityValue{ //nolint:staticcheck + // NOTE: no borrow type + BorrowType: nil, + Path: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + Address: interpreter.AddressValue(testAddress), + } + + pathLinks := []testLink{ + // Equivalent to: + // link<&Int>(/public/test, target: /private/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPublic, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + borrowType: linkBorrowType, + }, + // Equivalent to: + // link<&Int>(/private/test, target: /storage/test) + { + sourcePath: interpreter.PathValue{ + Domain: common.PathDomainPrivate, + Identifier: testPathIdentifier, + }, + targetPath: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: testPathIdentifier, + }, + borrowType: linkBorrowType, + }, + } + + expectedMigrations := []testMigration{ + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPrivate.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainPublic.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + migration: "LinkValueMigration", + }, + { + storageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + storageMapKey: interpreter.StringStorageMapKey("cap"), + migration: "CapabilityValueMigration", + }, + } + + expectedPathMigrations := []testCapConsPathCapabilityMigration{ + { + accountAddress: testAddress, + addressPath: interpreter.AddressPath{ + Address: testAddress, + Path: interpreter.NewUnmeteredPathValue( + common.PathDomainPublic, + testPathIdentifier, + ), + }, + // NOTE: link / cap con's borrow type is used + borrowType: linkBorrowType, + }, + } + + rt := NewTestInterpreterRuntime() + + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{testAddress}, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() + + // Setup + + setupTransactionLocation := nextTransactionLocation() + + environment := runtime.NewScriptInterpreterEnvironment(runtime.Config{}) + + // Inject the path capability value. + // + // We don't have a way to create a path capability value in a Cadence program anymore, + // so we have to inject it manually. + + environment.DeclareValue( + stdlib.StandardLibraryValue{ + Name: "cap", + Type: &sema.CapabilityType{}, + Kind: common.DeclarationKindConstant, + Value: capabilityValue, + }, + setupTransactionLocation, + ) + + // Create and store path links + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + storeTestPathLinks(t, pathLinks, storage, inter) + + err = storage.Commit(inter, false) + require.NoError(t, err) + + // Save capability values into account + + // language=cadence + setupTx := ` + transaction { + prepare(signer: auth(SaveValue) &Account) { + signer.storage.save(42, to: /storage/test) + signer.storage.save(cap, to: /storage/cap) + } + } + ` + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: []byte(setupTx), + }, + runtime.Context{ + Interface: runtimeInterface, + Environment: environment, + Location: setupTransactionLocation, + }, + ) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := &testMigrationReporter{} + + capabilityMapping := &CapabilityMapping{} + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + &LinkValueMigration{ + CapabilityMapping: capabilityMapping, + AccountIDGenerator: &testAccountIDGenerator{}, + Reporter: reporter, + }, + ), + ) + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + &CapabilityValueMigration{ + CapabilityMapping: capabilityMapping, + Reporter: reporter, + }, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + assert.Equal(t, + expectedMigrations, + reporter.migrations, + ) + assert.Equal(t, + expectedPathMigrations, + reporter.pathCapabilityMigrations, + ) + require.Nil(t, reporter.missingCapabilityIDs) + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + // Check + + // language=cadence + checkScript := ` + access(all) + fun main() { + let cap = getAuthAccount(0x1) + .storage.copy(from: /storage/cap)! + assert(*cap.borrow<&Int>()! == 42) + } + ` + + _, err = rt.ExecuteScript( + runtime.Script{ + Source: []byte(checkScript), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) + +} + +func TestCanSkipCapabilityValueMigration(t *testing.T) { + + t.Parallel() + + testCases := map[interpreter.StaticType]bool{ + + // Primitive types, like Bool and Address + + interpreter.PrimitiveStaticTypeBool: true, + interpreter.PrimitiveStaticTypeAddress: true, + + // Number and Path types, like UInt8 and StoragePath + + interpreter.PrimitiveStaticTypeUInt8: true, + interpreter.PrimitiveStaticTypeStoragePath: true, + + // Capability types + + interpreter.PrimitiveStaticTypeCapability: false, + &interpreter.CapabilityStaticType{ + BorrowType: interpreter.PrimitiveStaticTypeString, + }: false, + &interpreter.CapabilityStaticType{ + BorrowType: interpreter.PrimitiveStaticTypeCharacter, + }: false, + + // Existential types, like AnyStruct and AnyResource + + interpreter.PrimitiveStaticTypeAnyStruct: false, + interpreter.PrimitiveStaticTypeAnyResource: false, + } + + test := func(ty interpreter.StaticType, expected bool) { + + t.Run(ty.String(), func(t *testing.T) { + + t.Parallel() + + t.Run("base", func(t *testing.T) { + + t.Parallel() + + actual := CanSkipCapabilityValueMigration(ty) + assert.Equal(t, expected, actual) + + }) + + t.Run("optional", func(t *testing.T) { + + t.Parallel() + + optionalType := interpreter.NewOptionalStaticType(nil, ty) + + actual := CanSkipCapabilityValueMigration(optionalType) + assert.Equal(t, expected, actual) + }) + + t.Run("variable-sized", func(t *testing.T) { + + t.Parallel() + + arrayType := interpreter.NewVariableSizedStaticType(nil, ty) + + actual := CanSkipCapabilityValueMigration(arrayType) + assert.Equal(t, expected, actual) + }) + + t.Run("constant-sized", func(t *testing.T) { + + t.Parallel() + + arrayType := interpreter.NewConstantSizedStaticType(nil, ty, 2) + + actual := CanSkipCapabilityValueMigration(arrayType) + assert.Equal(t, expected, actual) + }) + + t.Run("dictionary key", func(t *testing.T) { + + t.Parallel() + + dictionaryType := interpreter.NewDictionaryStaticType( + nil, + ty, + interpreter.PrimitiveStaticTypeInt, + ) + + actual := CanSkipCapabilityValueMigration(dictionaryType) + assert.Equal(t, expected, actual) + + }) + + t.Run("dictionary value", func(t *testing.T) { + + t.Parallel() + + dictionaryType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt, + ty, + ) + + actual := CanSkipCapabilityValueMigration(dictionaryType) + assert.Equal(t, expected, actual) + }) + }) + } + + for ty, expected := range testCases { + test(ty, expected) + } +} diff --git a/migrations/capcons/target.go b/migrations/capcons/target.go new file mode 100644 index 0000000000..58350f7900 --- /dev/null +++ b/migrations/capcons/target.go @@ -0,0 +1,40 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package capcons + +import ( + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" +) + +type capabilityTarget interface { + isCapabilityTarget() +} + +type pathCapabilityTarget interpreter.PathValue + +func (pathCapabilityTarget) isCapabilityTarget() {} + +var _ capabilityTarget = pathCapabilityTarget{} + +type accountCapabilityTarget common.Address + +var _ capabilityTarget = accountCapabilityTarget{} + +func (accountCapabilityTarget) isCapabilityTarget() {} diff --git a/migrations/entitlements/migration.go b/migrations/entitlements/migration.go new file mode 100644 index 0000000000..94f6b19eeb --- /dev/null +++ b/migrations/entitlements/migration.go @@ -0,0 +1,408 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package entitlements + +import ( + "fmt" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/migrations/statictypes" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type EntitlementsMigration struct { + Interpreter *interpreter.Interpreter + migratedTypeCache migrations.StaticTypeCache +} + +var _ migrations.ValueMigration = EntitlementsMigration{} + +func NewEntitlementsMigration(inter *interpreter.Interpreter) EntitlementsMigration { + return NewEntitlementsMigrationWithCache(inter, nil) +} + +func NewEntitlementsMigrationWithCache( + inter *interpreter.Interpreter, + migratedTypeCache migrations.StaticTypeCache, +) EntitlementsMigration { + return EntitlementsMigration{ + Interpreter: inter, + migratedTypeCache: migratedTypeCache, + } +} + +func (EntitlementsMigration) Name() string { + return "EntitlementsMigration" +} + +func (EntitlementsMigration) Domains() map[string]struct{} { + return nil +} + +// ConvertToEntitledType converts the given type to an entitled type according to the following rules: +// - ConvertToEntitledType(&T) --> auth(Entitlements(T)) &T +// - ConvertToEntitledType(Capability) --> Capability +// - ConvertToEntitledType(T?) --> ConvertToEntitledType(T)? +// - ConvertToEntitledType([T]) --> [ConvertToEntitledType(T)] +// - ConvertToEntitledType([T; N]) --> [ConvertToEntitledType(T); N] +// - ConvertToEntitledType({K: V}) --> {ConvertToEntitledType(K): ConvertToEntitledType(V)} +// - ConvertToEntitledType(T) --> T +// +// where `Entitlements(I)` is defined as the result of `T.SupportedEntitlements()` +// +// TODO: functions? +func (m EntitlementsMigration) ConvertToEntitledType( + staticType interpreter.StaticType, +) ( + resultType interpreter.StaticType, + err error, +) { + if staticType == nil { + return nil, nil + } + + if staticType.IsDeprecated() { + return nil, fmt.Errorf("cannot migrate deprecated type: %s", staticType) + } + + inter := m.Interpreter + migratedTypeCache := m.migratedTypeCache + + if migratedTypeCache != nil { + // Only cache if cache key generation succeeds. + // Some static types, like function types, are not encodable. + if key, keyErr := migrations.NewStaticTypeKey(staticType); keyErr == nil { + if migratedType, exists := migratedTypeCache.Get(key); exists { + return migratedType.StaticType, migratedType.Error + } + + defer func() { + migratedTypeCache.Set(key, resultType, err) + }() + } + } + + switch t := staticType.(type) { + case *interpreter.ReferenceStaticType: + + referencedType := t.ReferencedType + + convertedReferencedType, err := m.ConvertToEntitledType(referencedType) + if err != nil { + return nil, err + } + + var returnNew bool + + if convertedReferencedType != nil { + referencedType = convertedReferencedType + returnNew = true + } + + // Determine the authorization (entitlements) from the referenced type, + // based on the supported entitlements of the referenced type + + auth := t.Authorization + + // If the referenced type is an empty intersection type, + // do not add an authorization + + intersectionType, isIntersection := referencedType.(*interpreter.IntersectionStaticType) + isEmptyIntersection := isIntersection && len(intersectionType.Types) == 0 + + if !isEmptyIntersection { + referencedSemaType := inter.MustConvertStaticToSemaType(referencedType) + + if entitlementSupportingType, ok := referencedSemaType.(sema.EntitlementSupportingType); ok { + + switch entitlementSupportingType { + + // Do NOT add authorization for sema types + // that were converted from deprecated primitive static types + case sema.AccountType, + sema.Account_ContractsType, + sema.Account_KeysType, + sema.Account_InboxType, + sema.Account_StorageCapabilitiesType, + sema.Account_AccountCapabilitiesType, + sema.Account_CapabilitiesType, + sema.AccountKeyType: + + // NO-OP + break + + default: + supportedEntitlements := entitlementSupportingType.SupportedEntitlements() + newAccess := supportedEntitlements.Access() + auth = interpreter.ConvertSemaAccessToStaticAuthorization(inter, newAccess) + returnNew = true + } + } + } + + if isIntersection { + // Rewrite the intersection type to remove the potential legacy restricted type + referencedType = statictypes.RewriteLegacyIntersectionType(intersectionType) + returnNew = true + } + + if returnNew { + return interpreter.NewReferenceStaticType(nil, auth, referencedType), nil + } + + case *interpreter.CapabilityStaticType: + convertedBorrowType, err := m.ConvertToEntitledType(t.BorrowType) + if err != nil { + return nil, err + } + + if convertedBorrowType != nil { + return interpreter.NewCapabilityStaticType(nil, convertedBorrowType), nil + } + + case *interpreter.VariableSizedStaticType: + elementType := t.Type + + convertedElementType, err := m.ConvertToEntitledType(elementType) + if err != nil { + return nil, err + } + + if convertedElementType != nil { + return interpreter.NewVariableSizedStaticType(nil, convertedElementType), nil + } + + case *interpreter.ConstantSizedStaticType: + elementType := t.Type + + convertedElementType, err := m.ConvertToEntitledType(elementType) + if err != nil { + return nil, err + } + + if convertedElementType != nil { + return interpreter.NewConstantSizedStaticType(nil, convertedElementType, t.Size), nil + } + + case *interpreter.DictionaryStaticType: + keyType := t.KeyType + + convertedKeyType, err := m.ConvertToEntitledType(keyType) + if err != nil { + return nil, err + } + + valueType := t.ValueType + + convertedValueType, err := m.ConvertToEntitledType(valueType) + if err != nil { + return nil, err + } + + if convertedKeyType != nil { + if convertedValueType != nil { + return interpreter.NewDictionaryStaticType( + nil, + convertedKeyType, + convertedValueType, + ), nil + } else { + return interpreter.NewDictionaryStaticType( + nil, + convertedKeyType, + valueType, + ), nil + } + } else if convertedValueType != nil { + return interpreter.NewDictionaryStaticType( + nil, + keyType, + convertedValueType, + ), nil + } + + case *interpreter.OptionalStaticType: + innerType := t.Type + + convertedInnerType, err := m.ConvertToEntitledType(innerType) + if err != nil { + return nil, err + } + + if convertedInnerType != nil { + return interpreter.NewOptionalStaticType(nil, convertedInnerType), nil + } + } + + return nil, nil +} + +// ConvertValueToEntitlements converts the input value into a version compatible with the new entitlements feature, +// with the same members/operations accessible on any references as would have been accessible in the past. +func (m EntitlementsMigration) ConvertValueToEntitlements(v interpreter.Value) (interpreter.Value, error) { + inter := m.Interpreter + + switch v := v.(type) { + + case *interpreter.ArrayValue: + elementType := v.Type + + entitledElementType, err := m.ConvertToEntitledType(elementType) + if err != nil { + return nil, err + } + + if entitledElementType == nil { + return nil, nil + } + + v.SetType( + entitledElementType.(interpreter.ArrayStaticType), + ) + + case *interpreter.DictionaryValue: + elementType := v.Type + + entitledElementType, err := m.ConvertToEntitledType(elementType) + if err != nil { + return nil, err + } + + if entitledElementType == nil { + return nil, nil + } + + v.SetType( + entitledElementType.(*interpreter.DictionaryStaticType), + ) + + case *interpreter.IDCapabilityValue: + borrowType := v.BorrowType + + entitledBorrowType, err := m.ConvertToEntitledType(borrowType) + if err != nil { + return nil, err + } + + if entitledBorrowType != nil { + return interpreter.NewCapabilityValue( + inter, + v.ID, + v.Address, + entitledBorrowType, + ), nil + } + + case *interpreter.PathCapabilityValue: //nolint:staticcheck + borrowType := v.BorrowType + + entitledBorrowType, err := m.ConvertToEntitledType(borrowType) + if err != nil { + return nil, err + } + + if entitledBorrowType != nil { + return &interpreter.PathCapabilityValue{ //nolint:staticcheck + Path: v.Path, + Address: v.Address, + BorrowType: entitledBorrowType, + }, nil + } + + case interpreter.TypeValue: + ty := v.Type + + entitledType, err := m.ConvertToEntitledType(ty) + if err != nil { + return nil, err + } + + if entitledType != nil { + return interpreter.NewTypeValue(inter, entitledType), nil + } + + case *interpreter.AccountCapabilityControllerValue: + borrowType := v.BorrowType + + entitledBorrowType, err := m.ConvertToEntitledType(borrowType) + if err != nil { + return nil, err + } + + if entitledBorrowType != nil { + return interpreter.NewAccountCapabilityControllerValue( + inter, + entitledBorrowType.(*interpreter.ReferenceStaticType), + v.CapabilityID, + ), nil + } + + case *interpreter.StorageCapabilityControllerValue: + borrowType := v.BorrowType + + entitledBorrowType, err := m.ConvertToEntitledType(borrowType) + if err != nil { + return nil, err + } + + if entitledBorrowType != nil { + return interpreter.NewStorageCapabilityControllerValue( + inter, + entitledBorrowType.(*interpreter.ReferenceStaticType), + v.CapabilityID, + v.TargetPath, + ), nil + } + + case interpreter.PathLinkValue: //nolint:staticcheck + borrowType := v.Type + + entitledBorrowType, err := m.ConvertToEntitledType(borrowType) + if err != nil { + return nil, err + } + + if entitledBorrowType != nil { + return interpreter.PathLinkValue{ //nolint:staticcheck + TargetPath: v.TargetPath, + Type: entitledBorrowType, + }, nil + } + } + + return nil, nil +} + +func (m EntitlementsMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ migrations.ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + return m.ConvertValueToEntitlements(value) +} + +func (m EntitlementsMigration) CanSkip(valueType interpreter.StaticType) bool { + return statictypes.CanSkipStaticTypeMigration(valueType) +} diff --git a/migrations/entitlements/migration_test.go b/migrations/entitlements/migration_test.go new file mode 100644 index 0000000000..103d3e9314 --- /dev/null +++ b/migrations/entitlements/migration_test.go @@ -0,0 +1,3745 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package entitlements + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/atree" + + "github.com/onflow/cadence" + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/migrations/statictypes" + "github.com/onflow/cadence/migrations/type_keys" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" + checkerUtils "github.com/onflow/cadence/runtime/tests/checker" + "github.com/onflow/cadence/runtime/tests/runtime_utils" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" + . "github.com/onflow/cadence/runtime/tests/utils" +) + +// TODO: improve +func TestConvertToEntitledType(t *testing.T) { + + t.Parallel() + + inter := NewTestInterpreter(t) + migration := NewEntitlementsMigration(inter) + + elaboration := sema.NewElaboration(nil) + + inter.Program = &interpreter.Program{ + Elaboration: elaboration, + } + + testLocation := inter.Location + + // E, F, G + + entitlementE := sema.NewEntitlementType(nil, testLocation, "E") + elaboration.SetEntitlementType( + entitlementE.ID(), + entitlementE, + ) + + entitlementF := sema.NewEntitlementType(nil, testLocation, "F") + elaboration.SetEntitlementType( + entitlementF.ID(), + entitlementF, + ) + + entitlementG := sema.NewEntitlementType(nil, testLocation, "G") + elaboration.SetEntitlementType( + entitlementG.ID(), + entitlementG, + ) + + // auth(E) + + eAccess := sema.NewEntitlementSetAccess( + []*sema.EntitlementType{entitlementE}, + sema.Conjunction, + ) + + // auth(F) + + fAccess := sema.NewEntitlementSetAccess( + []*sema.EntitlementType{entitlementF}, + sema.Conjunction, + ) + + // auth(E | F) + + eOrFAccess := sema.NewEntitlementSetAccess( + []*sema.EntitlementType{entitlementE, entitlementF}, + sema.Disjunction, + ) + + // auth(E, F) + + eAndFAccess := sema.NewEntitlementSetAccess( + []*sema.EntitlementType{entitlementE, entitlementF}, + sema.Conjunction, + ) + + // auth(E, G) + + eAndGAccess := sema.NewEntitlementSetAccess( + []*sema.EntitlementType{entitlementE, entitlementG}, + sema.Conjunction, + ) + + // auth(E, F, G) + + eFAndGAccess := sema.NewEntitlementSetAccess( + []*sema.EntitlementType{entitlementE, entitlementF, entitlementG}, + sema.Conjunction, + ) + + // M (map) + + mapM := sema.NewEntitlementMapType(nil, testLocation, "M") + mapM.Relations = []sema.EntitlementRelation{ + { + Input: entitlementE, + Output: entitlementF, + }, + { + Input: entitlementF, + Output: entitlementG, + }, + } + mapAccess := sema.NewEntitlementMapAccess(mapM) + elaboration.SetEntitlementMapType( + mapM.ID(), + mapM, + ) + + // S (compositeStructWithOnlyE) + + compositeStructWithOnlyE := &sema.CompositeType{ + Location: testLocation, + Identifier: "S", + Kind: common.CompositeKindStructure, + Members: &sema.StringMemberOrderedMap{}, + } + compositeStructWithOnlyE.Members.Set( + "foo", + sema.NewFieldMember( + nil, + compositeStructWithOnlyE, + eAccess, + ast.VariableKindConstant, + "foo", + sema.IntType, + "", + ), + ) + elaboration.SetCompositeType( + compositeStructWithOnlyE.ID(), + compositeStructWithOnlyE, + ) + + // R (compositeResourceWithOnlyF) + + compositeResourceWithOnlyF := &sema.CompositeType{ + Location: testLocation, + Identifier: "R", + Kind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + } + compositeResourceWithOnlyF.Members.Set( + "bar", + sema.NewFieldMember( + nil, + compositeResourceWithOnlyF, + fAccess, + ast.VariableKindConstant, + "bar", + sema.IntType, + "", + ), + ) + compositeResourceWithOnlyF.Members.Set( + "baz", + sema.NewFieldMember( + nil, + compositeResourceWithOnlyF, + fAccess, + ast.VariableKindConstant, + "baz", + compositeStructWithOnlyE, + "", + ), + ) + elaboration.SetCompositeType( + compositeResourceWithOnlyF.ID(), + compositeResourceWithOnlyF, + ) + + // R2 (compositeResourceWithEOrF) + + compositeResourceWithEOrF := &sema.CompositeType{ + Location: testLocation, + Identifier: "R2", + Kind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + } + compositeResourceWithEOrF.Members.Set( + "qux", + sema.NewFieldMember( + nil, + compositeResourceWithEOrF, + eOrFAccess, + ast.VariableKindConstant, + "qux", + sema.IntType, + "", + ), + ) + elaboration.SetCompositeType( + compositeResourceWithEOrF.ID(), + compositeResourceWithEOrF, + ) + + // S2 (compositeTwoFields) + + compositeTwoFields := &sema.CompositeType{ + Location: testLocation, + Identifier: "S2", + Kind: common.CompositeKindStructure, + Members: &sema.StringMemberOrderedMap{}, + } + compositeTwoFields.Members.Set( + "foo", + sema.NewFieldMember( + nil, + compositeTwoFields, + eAccess, + ast.VariableKindConstant, + "foo", + sema.IntType, + "", + ), + ) + compositeTwoFields.Members.Set( + "bar", + sema.NewFieldMember( + nil, + compositeTwoFields, + fAccess, + ast.VariableKindConstant, + "bar", + sema.IntType, + "", + ), + ) + elaboration.SetCompositeType( + compositeTwoFields.ID(), + compositeTwoFields, + ) + + // I (interfaceTypeWithEAndG) + + interfaceTypeWithEAndG := &sema.InterfaceType{ + Location: testLocation, + Identifier: "I", + CompositeKind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + } + interfaceTypeWithEAndG.Members.Set( + "foo", + sema.NewFunctionMember( + nil, + interfaceTypeWithEAndG, + eAndGAccess, + "foo", + &sema.FunctionType{}, + "", + ), + ) + elaboration.SetInterfaceType( + interfaceTypeWithEAndG.ID(), + interfaceTypeWithEAndG, + ) + + // J (interfaceTypeInheriting) + + interfaceTypeInheriting := &sema.InterfaceType{ + Location: testLocation, + Identifier: "J", + CompositeKind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + ExplicitInterfaceConformances: []*sema.InterfaceType{interfaceTypeWithEAndG}, + } + elaboration.SetInterfaceType( + interfaceTypeInheriting.ID(), + interfaceTypeInheriting, + ) + + // RI (compositeTypeInheriting) + + compositeTypeInheriting := &sema.CompositeType{ + Location: testLocation, + Identifier: "RI", + Kind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + ExplicitInterfaceConformances: []*sema.InterfaceType{interfaceTypeInheriting}, + } + elaboration.SetCompositeType( + compositeTypeInheriting.ID(), + compositeTypeInheriting, + ) + + // RI2 (compositeTypeWithMap) + + compositeTypeWithMap := &sema.CompositeType{ + Location: testLocation, + Identifier: "RI2", + Kind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + } + compositeTypeWithMap.Members.Set( + "foo", + sema.NewFunctionMember( + nil, + compositeTypeWithMap, + mapAccess, + "foo", + &sema.FunctionType{}, + "", + ), + ) + elaboration.SetCompositeType( + compositeTypeWithMap.ID(), + compositeTypeWithMap, + ) + + // RI3 (interfaceTypeWithMap) + + interfaceTypeWithMap := &sema.InterfaceType{ + Location: testLocation, + Identifier: "RI3", + CompositeKind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + } + interfaceTypeWithMap.Members.Set( + "foo", + sema.NewFunctionMember( + nil, + interfaceTypeWithMap, + mapAccess, + "foo", + &sema.FunctionType{}, + "", + ), + ) + elaboration.SetInterfaceType( + interfaceTypeWithMap.ID(), + interfaceTypeWithMap, + ) + + // RI4 (compositeTypeWithCapField) + + compositeTypeWithCapField := &sema.CompositeType{ + Location: testLocation, + Identifier: "RI4", + Kind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + } + compositeTypeWithCapField.Members.Set( + "foo", + sema.NewFieldMember( + nil, + compositeTypeWithCapField, + sema.UnauthorizedAccess, + ast.VariableKindConstant, + "foo", + sema.NewCapabilityType(nil, + sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeInheriting), + ), + "", + ), + ) + elaboration.SetCompositeType( + compositeTypeWithCapField.ID(), + compositeTypeWithCapField, + ) + + // RI5 (interfaceTypeWithCapField) + + interfaceTypeWithCapField := &sema.InterfaceType{ + Location: testLocation, + Identifier: "RI5", + CompositeKind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + } + interfaceTypeWithCapField.Members.Set( + "foo", + sema.NewFieldMember( + nil, + interfaceTypeWithCapField, + sema.UnauthorizedAccess, + ast.VariableKindConstant, + "foo", + sema.NewCapabilityType(nil, + sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeInheriting), + ), + "", + ), + ) + elaboration.SetInterfaceType( + interfaceTypeWithCapField.ID(), + interfaceTypeWithCapField, + ) + + // J2 (interfaceTypeInheritingCapField) + + interfaceTypeInheritingCapField := &sema.InterfaceType{ + Location: testLocation, + Identifier: "J2", + CompositeKind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + ExplicitInterfaceConformances: []*sema.InterfaceType{interfaceTypeWithCapField}, + } + elaboration.SetInterfaceType( + interfaceTypeInheritingCapField.ID(), + interfaceTypeInheritingCapField, + ) + + // RI6 (compositeTypeInheritingCapField) + + compositeTypeInheritingCapField := &sema.CompositeType{ + Location: testLocation, + Identifier: "RI6", + Kind: common.CompositeKindResource, + Members: &sema.StringMemberOrderedMap{}, + ExplicitInterfaceConformances: []*sema.InterfaceType{ + interfaceTypeInheritingCapField, + }, + } + elaboration.SetCompositeType( + compositeTypeInheritingCapField.ID(), + compositeTypeInheritingCapField, + ) + + tests := []struct { + Input sema.Type + Output sema.Type + Name string + }{ + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, sema.IntType), + Output: nil, + Name: "int", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, &sema.FunctionType{ReturnTypeAnnotation: sema.NewTypeAnnotation(sema.IntType)}), + Output: nil, + Name: "function", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeStructWithOnlyE), + Output: sema.NewReferenceType(nil, eAccess, compositeStructWithOnlyE), + Name: "composite E", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeResourceWithOnlyF), + Output: sema.NewReferenceType(nil, fAccess, compositeResourceWithOnlyF), + Name: "composite F", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeResourceWithEOrF), + Output: sema.NewReferenceType(nil, eOrFAccess, compositeResourceWithEOrF), + Name: "composite E or F", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTwoFields), + Output: sema.NewReferenceType(nil, eAndFAccess, compositeTwoFields), + Name: "composite E and F", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeWithEAndG), + Output: sema.NewReferenceType(nil, eAndGAccess, interfaceTypeWithEAndG), + Name: "interface E and G", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeInheriting), + Output: sema.NewReferenceType(nil, eAndGAccess, interfaceTypeInheriting), + Name: "interface inheritance", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTypeInheriting), + Output: sema.NewReferenceType(nil, eAndGAccess, compositeTypeInheriting), + Name: "composite inheritance", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTypeWithMap), + Output: sema.NewReferenceType(nil, eAndFAccess, compositeTypeWithMap), + Name: "composite map", + }, + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeWithMap), + Output: sema.NewReferenceType(nil, eAndFAccess, interfaceTypeWithMap), + Name: "interface map", + }, + { + Input: sema.NewReferenceType( + nil, + sema.UnauthorizedAccess, + sema.NewCapabilityType( + nil, + sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTypeWithMap), + ), + ), + Output: sema.NewReferenceType( + nil, + sema.UnauthorizedAccess, + sema.NewCapabilityType( + nil, + sema.NewReferenceType(nil, eAndFAccess, compositeTypeWithMap), + ), + ), + Name: "reference to capability", + }, + { + Input: sema.NewReferenceType( + nil, + sema.UnauthorizedAccess, + sema.NewIntersectionType( + nil, + nil, + []*sema.InterfaceType{ + interfaceTypeInheriting, + interfaceTypeWithMap, + }, + ), + ), + Output: sema.NewReferenceType( + nil, + eFAndGAccess, + sema.NewIntersectionType( + nil, + nil, + []*sema.InterfaceType{ + interfaceTypeInheriting, + interfaceTypeWithMap, + }), + ), + Name: "intersection", + }, + { + Input: sema.NewReferenceType( + nil, + sema.UnauthorizedAccess, + sema.NewOptionalType( + nil, + sema.NewIntersectionType( + nil, + nil, + []*sema.InterfaceType{ + interfaceTypeInheriting, + interfaceTypeWithMap, + }, + ), + ), + ), + Output: sema.NewReferenceType( + nil, + eFAndGAccess, + sema.NewOptionalType( + nil, + sema.NewIntersectionType( + nil, + nil, + []*sema.InterfaceType{ + interfaceTypeInheriting, + interfaceTypeWithMap, + }), + ), + ), + Name: "reference to optional", + }, + // no change + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTypeWithCapField), + Output: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTypeWithCapField), + Name: "composite with capability field", + }, + // no change + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeWithCapField), + Output: sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeWithCapField), + Name: "interface with capability field", + }, + // no change + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTypeInheritingCapField), + Output: sema.NewReferenceType(nil, sema.UnauthorizedAccess, compositeTypeInheritingCapField), + Name: "composite inheriting capability field", + }, + // no change + { + Input: sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeInheritingCapField), + Output: sema.NewReferenceType(nil, sema.UnauthorizedAccess, interfaceTypeInheritingCapField), + Name: "interface inheriting capability field", + }, + } + + // create capability versions of all the existing tests + for _, test := range tests { + var capabilityTest struct { + Input sema.Type + Output sema.Type + Name string + } + capabilityTest.Input = sema.NewCapabilityType(nil, test.Input) + if test.Output != nil { + capabilityTest.Output = sema.NewCapabilityType(nil, test.Output) + } + capabilityTest.Name = "capability " + test.Name + + tests = append(tests, capabilityTest) + } + + // create optional versions of all the existing tests + for _, test := range tests { + var optionalTest struct { + Input sema.Type + Output sema.Type + Name string + } + optionalTest.Input = sema.NewOptionalType(nil, test.Input) + if test.Output != nil { + optionalTest.Output = sema.NewOptionalType(nil, test.Output) + } + optionalTest.Name = "optional " + test.Name + + tests = append(tests, optionalTest) + } + + for _, test := range tests { + t.Run(test.Name, func(t *testing.T) { + + inputStaticType := interpreter.ConvertSemaToStaticType(nil, test.Input) + convertedType, _ := migration.ConvertToEntitledType(inputStaticType) + + expectedType := interpreter.ConvertSemaToStaticType(nil, test.Output) + + compareTypesRecursively(t, convertedType, expectedType) + }) + } + +} + +func compareTypesRecursively(t *testing.T, expected, actual interpreter.StaticType) { + require.IsType(t, expected, actual) + + switch expected := expected.(type) { + case *interpreter.ReferenceStaticType: + actual := actual.(*interpreter.ReferenceStaticType) + require.IsType(t, expected.Authorization, actual.Authorization) + require.True(t, expected.Authorization.Equal(actual.Authorization)) + compareTypesRecursively(t, expected.ReferencedType, actual.ReferencedType) + case *interpreter.OptionalStaticType: + actual := actual.(*interpreter.OptionalStaticType) + compareTypesRecursively(t, expected.Type, actual.Type) + case *interpreter.CapabilityStaticType: + actual := actual.(*interpreter.CapabilityStaticType) + compareTypesRecursively(t, expected.BorrowType, actual.BorrowType) + } +} + +type testEntitlementsMigration struct { + inter *interpreter.Interpreter +} + +var _ migrations.ValueMigration = testEntitlementsMigration{} + +func (testEntitlementsMigration) Name() string { + return "Test Entitlements Migration" +} + +func (m testEntitlementsMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ migrations.ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + migration := NewEntitlementsMigration(m.inter) + return migration.ConvertValueToEntitlements(value) +} + +func (m testEntitlementsMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testEntitlementsMigration) Domains() map[string]struct{} { + return nil +} + +func convertEntireTestValue( + t *testing.T, + inter *interpreter.Interpreter, + storage *runtime.Storage, + address common.Address, + v interpreter.Value, +) interpreter.Value { + + reporter := newTestReporter() + + migration, err := migrations.NewStorageMigration(inter, storage, "test", address) + require.NoError(t, err) + + migratedValue := migration.MigrateNestedValue( + interpreter.StorageKey{ + Key: common.PathDomainStorage.Identifier(), + Address: address, + }, + interpreter.StringStorageMapKey("test"), + v, + []migrations.ValueMigration{ + testEntitlementsMigration{inter: inter}, + }, + reporter, + true, + migrations.ValueMigrationPositionOther, + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + if migratedValue == nil { + return v + } else { + return migratedValue + } +} + +func newIntersectionStaticTypeWithLegacyType( + legacyType interpreter.StaticType, + interfaceTypes []*interpreter.InterfaceStaticType, +) *interpreter.IntersectionStaticType { + intersectionType := interpreter.NewIntersectionStaticType(nil, interfaceTypes) + intersectionType.LegacyType = legacyType + return intersectionType +} + +func TestConvertToEntitledValue(t *testing.T) { + t.Parallel() + + var uuid uint64 + + ledger := runtime_utils.NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + testAddress := common.MustBytesToAddress([]byte{0x1}) + + code := ` + access(all) entitlement E + access(all) entitlement F + access(all) entitlement G + + access(all) entitlement mapping M { + E -> F + F -> G + } + + access(all) struct S { + access(E) let eField: Int + access(F) let fField: String + init() { + self.eField = 0 + self.fField = "" + } + } + + access(all) resource interface I { + access(E) let eField: Int + } + + access(all) resource interface J { + access(G) let gField: Int + } + + access(all) resource R: I, J { + access(E) let eField: Int + access(G) let gField: Int + access(E, G) let egField: Int + + init() { + self.egField = 0 + self.eField = 1 + self.gField = 2 + } + } + ` + checker, err := checkerUtils.ParseAndCheckWithOptions(t, + code, + checkerUtils.ParseAndCheckOptions{}, + ) + require.NoError(t, err) + + location := checker.Location + + inter, err := interpreter.NewInterpreter( + interpreter.ProgramFromChecker(checker), + location, + &interpreter.Config{ + Storage: storage, + UUIDHandler: func() (uint64, error) { + uuid++ + return uuid, nil + }, + }, + ) + + require.NoError(t, err) + + err = inter.Interpret() + require.NoError(t, err) + + // E, F, G + + eTypeID := location.TypeID(nil, "E") + fTypeID := location.TypeID(nil, "F") + gTypeID := location.TypeID(nil, "G") + + // S + + const sQualifiedIdentifier = "S" + sTypeID := location.TypeID(nil, sQualifiedIdentifier) + sStaticType := &interpreter.CompositeStaticType{ + Location: location, + QualifiedIdentifier: sQualifiedIdentifier, + TypeID: sTypeID, + } + + // R + + const rQualifiedIdentifier = "R" + rTypeID := location.TypeID(nil, rQualifiedIdentifier) + rStaticType := &interpreter.CompositeStaticType{ + Location: location, + QualifiedIdentifier: rQualifiedIdentifier, + TypeID: rTypeID, + } + + // I + + iTypeID := location.TypeID(nil, "I") + iStaticType := &interpreter.InterfaceStaticType{ + Location: location, + QualifiedIdentifier: "I", + TypeID: iTypeID, + } + + // J + + jTypeID := location.TypeID(nil, "J") + jStaticType := &interpreter.InterfaceStaticType{ + Location: location, + QualifiedIdentifier: "J", + TypeID: jTypeID, + } + + type testCase struct { + Input interpreter.StaticType + Output interpreter.StaticType + Name string + } + + tests := []testCase{ + { + Name: "R --> R", + Input: rStaticType, + Output: rStaticType, + }, + { + Name: "S --> S", + Input: sStaticType, + Output: sStaticType, + }, + { + Name: "&S --> auth(E, F) &S", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + sStaticType, + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{ + eTypeID, + fTypeID, + } + }, + 2, + sema.Conjunction, + ), + sStaticType, + ), + }, + { + Name: "&R --> auth(E, G) &R", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + rStaticType, + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{ + eTypeID, + gTypeID, + } + }, + 2, + sema.Conjunction, + ), + rStaticType, + ), + }, + { + Name: "&{I} --> auth(E) &{I}", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + interpreter.NewIntersectionStaticType( + inter, + []*interpreter.InterfaceStaticType{ + iStaticType, + }, + ), + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{ + eTypeID, + } + }, + 1, + sema.Conjunction, + ), + interpreter.NewIntersectionStaticType( + inter, + []*interpreter.InterfaceStaticType{ + iStaticType, + }, + ), + ), + }, + { + Name: "&{I, J} --> auth(E, G) &{I, J}", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + interpreter.NewIntersectionStaticType( + inter, + []*interpreter.InterfaceStaticType{ + iStaticType, + jStaticType, + }, + ), + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{ + eTypeID, + gTypeID, + } + }, + 2, + sema.Conjunction, + ), + interpreter.NewIntersectionStaticType( + inter, + []*interpreter.InterfaceStaticType{ + iStaticType, + jStaticType, + }, + ), + ), + }, + { + Name: "&AnyStruct{I} --> auth(E) &{I}", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + newIntersectionStaticTypeWithLegacyType( + interpreter.PrimitiveStaticTypeAnyStruct, + []*interpreter.InterfaceStaticType{ + iStaticType, + }, + ), + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{ + eTypeID, + } + }, + 1, + sema.Conjunction, + ), + interpreter.NewIntersectionStaticType( + inter, + []*interpreter.InterfaceStaticType{ + iStaticType, + }, + ), + ), + }, + { + Name: "&AnyStruct{} --> &AnyStruct", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + newIntersectionStaticTypeWithLegacyType( + interpreter.PrimitiveStaticTypeAnyStruct, + nil, + ), + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + }, + { + Name: "&R{I} --> auth(E) &R", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + newIntersectionStaticTypeWithLegacyType( + rStaticType, + []*interpreter.InterfaceStaticType{ + iStaticType, + }, + ), + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{ + eTypeID, + } + }, + 1, + sema.Conjunction, + ), + rStaticType, + ), + }, + { + // NOTE: NOT auth(E, G) &R! + Name: "&R{} --> &R", + Input: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + newIntersectionStaticTypeWithLegacyType(rStaticType, nil), + ), + Output: interpreter.NewReferenceStaticType( + inter, + interpreter.UnauthorizedAccess, + rStaticType, + ), + }, + } + + var referencePeekingEqual func(interpreter.EquatableValue, interpreter.Value) bool + + // equality that peeks inside references to use structural equality for their values + referencePeekingEqual = func(input interpreter.EquatableValue, output interpreter.Value) bool { + switch v := input.(type) { + + // TODO: support more types (e.g. dictionaries) + + case *interpreter.SomeValue: + otherSome, ok := output.(*interpreter.SomeValue) + if !ok { + return false + } + + switch innerValue := v.InnerValue(inter, interpreter.EmptyLocationRange).(type) { + case interpreter.EquatableValue: + return referencePeekingEqual( + innerValue, + otherSome.InnerValue(inter, interpreter.EmptyLocationRange), + ) + default: + return innerValue == otherSome.InnerValue(inter, interpreter.EmptyLocationRange) + } + + case *interpreter.ArrayValue: + otherArray, ok := output.(*interpreter.ArrayValue) + if !ok { + return false + } + + if v.Count() != otherArray.Count() { + return false + } + + for i := 0; i < v.Count(); i++ { + innerValue := v.Get(inter, interpreter.EmptyLocationRange, i) + otherInnerValue := otherArray.Get(inter, interpreter.EmptyLocationRange, i) + + switch innerValue := innerValue.(type) { + case interpreter.EquatableValue: + if !referencePeekingEqual( + innerValue, + otherInnerValue, + ) { + return false + } + default: + if innerValue != otherInnerValue { + return false + } + } + } + return true + + case interpreter.TypeValue: + // TypeValue considers missing type "unknown"/"invalid", + // and "unknown"/"invalid" type values unequal. + // However, we want to consider those equal here for testing/asserting purposes + other, ok := output.(interpreter.TypeValue) + if !ok { + return false + } + + if other.Type == nil { + return v.Type == nil + } else { + return other.Type.Equal(v.Type) + } + } + + return input.Equal(inter, interpreter.EmptyLocationRange, output) + } + + type valueGenerator struct { + name string + wrap func(interpreter.StaticType) interpreter.Value + } + + valueGenerators := []valueGenerator{ + { + name: "runtime type value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return interpreter.NewTypeValue(nil, staticType) + }, + }, + { + name: "variable-sized array value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType(nil, staticType), + common.ZeroAddress, + ) + }, + }, + { + name: "constant-sized array value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewConstantSizedStaticType(nil, staticType, 1), + common.ZeroAddress, + ) + }, + }, + { + name: "dictionary value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType(nil, interpreter.PrimitiveStaticTypeInt, staticType), + ) + }, + }, + { + name: "ID capability value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return interpreter.NewCapabilityValue( + nil, + 1, + interpreter.AddressValue{}, + staticType, + ) + }, + }, + { + name: "path capability value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: staticType, + Address: interpreter.AddressValue{}, + Path: interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "test"), + } + }, + }, + { + name: "published capability value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return interpreter.NewPublishedValue( + nil, + interpreter.AddressValue{}, + interpreter.NewCapabilityValue( + nil, + 1, + interpreter.AddressValue{}, + staticType, + ), + ) + }, + }, + { + name: "path-link value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + return interpreter.PathLinkValue{ //nolint:staticcheck + Type: staticType, + TargetPath: interpreter.NewUnmeteredPathValue( + common.PathDomainStorage, + "test", + ), + } + }, + }, + { + name: "storage capability controller value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + referenceStaticType, ok := staticType.(*interpreter.ReferenceStaticType) + if !ok { + return nil + } + return &interpreter.StorageCapabilityControllerValue{ + BorrowType: referenceStaticType, + } + }, + }, + { + name: "account capability controller value", + wrap: func(staticType interpreter.StaticType) interpreter.Value { + referenceStaticType, ok := staticType.(*interpreter.ReferenceStaticType) + if !ok { + return nil + } + return &interpreter.AccountCapabilityControllerValue{ + BorrowType: referenceStaticType, + } + }, + }, + } + + type typeGenerator struct { + name string + wrap func(staticType interpreter.StaticType) interpreter.StaticType + } + + typeGenerators := []typeGenerator{ + { + name: "as-is", + wrap: func(staticType interpreter.StaticType) interpreter.StaticType { + return staticType + }, + }, + { + name: "variable-sized array type", + wrap: func(staticType interpreter.StaticType) interpreter.StaticType { + return interpreter.NewVariableSizedStaticType(nil, staticType) + }, + }, + { + name: "constant-sized array type", + wrap: func(staticType interpreter.StaticType) interpreter.StaticType { + return interpreter.NewConstantSizedStaticType(nil, staticType, 1) + }, + }, + { + name: "dictionary type", + wrap: func(staticType interpreter.StaticType) interpreter.StaticType { + return interpreter.NewDictionaryStaticType(nil, interpreter.PrimitiveStaticTypeInt, staticType) + }, + }, + { + name: "optional type", + wrap: func(staticType interpreter.StaticType) interpreter.StaticType { + return interpreter.NewOptionalStaticType(nil, staticType) + }, + }, + { + name: "capability type", + wrap: func(staticType interpreter.StaticType) interpreter.StaticType { + return interpreter.NewCapabilityStaticType(nil, staticType) + }, + }, + } + + test := func( + t *testing.T, + testCase testCase, + valueGenerator valueGenerator, + typeGenerator typeGenerator, + ) { + input := valueGenerator.wrap(typeGenerator.wrap(testCase.Input)) + if input == nil { + return + } + + expectedValue := valueGenerator.wrap(typeGenerator.wrap(testCase.Output)) + + convertedValue := convertEntireTestValue(t, inter, storage, testAddress, input) + + err := storage.CheckHealth() + require.NoError(t, err) + + switch convertedValue := convertedValue.(type) { + case interpreter.EquatableValue: + require.True(t, + referencePeekingEqual(convertedValue, expectedValue), + "expected: %s\nactual: %s", + expectedValue, + convertedValue, + ) + default: + require.Equal(t, convertedValue, expectedValue) + } + } + + for _, testCase := range tests { + t.Run(testCase.Name, func(t *testing.T) { + + for _, valueGenerator := range valueGenerators { + t.Run(valueGenerator.name, func(t *testing.T) { + + for _, typeGenerator := range typeGenerators { + t.Run(typeGenerator.name, func(t *testing.T) { + + test(t, testCase, valueGenerator, typeGenerator) + }) + } + }) + } + }) + } +} + +func TestMigrateSimpleContract(t *testing.T) { + t.Parallel() + + var uuid uint64 + + account := common.Address{0x42} + ledger := NewTestLedger(nil, nil) + + type testCase struct { + storedValue interpreter.Value + expectedValue interpreter.Value + } + + storage := runtime.NewStorage(ledger, nil) + + checker, err := checkerUtils.ParseAndCheckWithOptions(t, + ` + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + access(all) resource T { + access(all) let cap: Capability? + init() { + self.cap = nil + } + } + access(all) fun makeR(): @R { + return <- create R() + } + access(all) fun makeT(): @T { + return <- create T() + } + `, + checkerUtils.ParseAndCheckOptions{}, + ) + + require.NoError(t, err) + + inter, err := interpreter.NewInterpreter( + interpreter.ProgramFromChecker(checker), + checker.Location, + &interpreter.Config{ + Storage: storage, + UUIDHandler: func() (uint64, error) { + uuid++ + return uuid, nil + }, + }, + ) + require.NoError(t, err) + + storageIdentifier := common.PathDomainStorage.Identifier() + + err = inter.Interpret() + require.NoError(t, err) + + rValue, err := inter.Invoke("makeR") + require.NoError(t, err) + + tValue, err := inter.Invoke("makeT") + require.NoError(t, err) + + unentitledRRef := interpreter.NewEphemeralReferenceValue( + inter, + interpreter.UnauthorizedAccess, + rValue, + inter.MustSemaTypeOfValue(rValue), + interpreter.EmptyLocationRange, + ) + unentitledRRefStaticType := unentitledRRef.StaticType(inter) + + unentitledRCap := interpreter.NewCapabilityValue( + inter, + 1, + interpreter.NewAddressValue(inter, account), + unentitledRRefStaticType, + ) + + entitledRRef := interpreter.NewEphemeralReferenceValue( + inter, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"S.test.E"} + }, + 1, + sema.Conjunction, + ), + rValue, + inter.MustSemaTypeOfValue(rValue), + interpreter.EmptyLocationRange, + ) + entitledRRefStaticType := entitledRRef.StaticType(inter) + entitledRCap := interpreter.NewCapabilityValue( + inter, + 1, + interpreter.NewAddressValue(inter, account), + entitledRRefStaticType, + ) + + tValue.(*interpreter.CompositeValue). + SetMember(inter, interpreter.EmptyLocationRange, "cap", unentitledRCap.Clone(inter)) + + expectedTValue := tValue.Clone(inter) + expectedTValue.(*interpreter.CompositeValue). + SetMember(inter, interpreter.EmptyLocationRange, "cap", entitledRCap.Clone(inter)) + + testCases := map[string]testCase{ + "rCap": { + storedValue: unentitledRCap.Clone(inter), + expectedValue: interpreter.NewCapabilityValue( + inter, + 1, + interpreter.NewAddressValue(inter, account), + entitledRRefStaticType, + ), + }, + "rValue": { + storedValue: rValue.Clone(inter), + expectedValue: rValue.Clone(inter), + }, + "tValue": { + storedValue: tValue.Clone(inter), + expectedValue: expectedTValue.Clone(inter), + }, + } + + for name, testCase := range testCases { + transferredValue := testCase.storedValue.Transfer( + inter, + interpreter.EmptyLocationRange, + atree.Address(account), + false, + nil, + nil, + ) + + inter.WriteStored( + account, + storageIdentifier, + interpreter.StringStorageMapKey(name), + transferredValue, + ) + } + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", account) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap(account, storageIdentifier, false) + require.NotNil(t, storageMap) + require.Greater(t, storageMap.Count(), uint64(0)) + + iterator := storageMap.Iterator(inter) + + for key, value := iterator.Next(); key != nil; key, value = iterator.Next() { + identifier := string(key.(interpreter.StringAtreeValue)) + + t.Run(identifier, func(t *testing.T) { + testCase, ok := testCases[identifier] + require.True(t, ok) + + expectedStoredValue := testCase.expectedValue + + AssertValuesEqual(t, inter, expectedStoredValue, value) + }) + } +} + +func TestNilTypeValue(t *testing.T) { + t.Parallel() + + migration := NewEntitlementsMigration(nil) + result, err := migration.ConvertValueToEntitlements( + interpreter.NewTypeValue(nil, nil), + ) + require.NoError(t, err) + require.Nil(t, result) +} + +func TestNilPathCapabilityValue(t *testing.T) { + t.Parallel() + + migration := NewEntitlementsMigration(NewTestInterpreter(t)) + result, err := migration.ConvertValueToEntitlements( + &interpreter.PathCapabilityValue{ //nolint:staticcheck + Address: interpreter.NewAddressValue(nil, common.MustBytesToAddress([]byte{0x1})), + Path: interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "test"), + BorrowType: nil, + }, + ) + require.NoError(t, err) + require.Nil(t, result) +} + +func TestMigratePublishedValue(t *testing.T) { + t.Parallel() + + testAddress := common.Address{0, 0, 0, 0, 0, 0, 0, 1} + + rt := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{testAddress}, nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetCode: func(location common.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + } + + // Prepare + + oldContract := []byte(` + access(all) contract C { + access(all) resource R { + access(all) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + contract := []byte(` + access(all) contract C { + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + saveValues := []byte(` + import C from 0x1 + + transaction { + prepare(signer: auth(Inbox, Storage, Capabilities) &Account) { + let cap = signer.capabilities.storage.issue<&C.R>(/storage/r) + signer.storage.save(cap, to: /storage/cap) + signer.inbox.publish(cap, name: "r_cap", recipient: 0x2) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract to 0x1 + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: DeploymentTransaction("C", oldContract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Execute transaction on 0x1 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: saveValues, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Update contract on 0x1 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: UpdateTransaction("C", contract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Important: invalidate the loaded program, as it was updated + runtimeInterface.InvalidateUpdatedPrograms() + + // Migrate + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(1), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("cap"), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: stdlib.InboxStorageDomain, + }, + StorageMapKey: interpreter.StringStorageMapKey("r_cap"), + }: {}, + }, + reporter.migrated, + ) + + inboxStorageIdentifier := stdlib.InboxStorageDomain + inboxStorageMap := storage.GetStorageMap( + testAddress, + inboxStorageIdentifier, + false, + ) + require.NotNil(t, inboxStorageMap) + require.Equal(t, inboxStorageMap.Count(), uint64(1)) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + false, + ) + require.NotNil(t, storageMap) + require.Equal(t, inboxStorageMap.Count(), uint64(1)) + + cap1 := storageMap.ReadValue(nil, interpreter.StringStorageMapKey("cap")) + capValue := cap1.(*interpreter.IDCapabilityValue) + require.IsType(t, &interpreter.ReferenceStaticType{}, capValue.BorrowType) + ref := capValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) + + publishedValue := inboxStorageMap.ReadValue(nil, interpreter.StringStorageMapKey("r_cap")) + + require.IsType(t, &interpreter.PublishedValue{}, publishedValue) + publishedValueValue := publishedValue.(*interpreter.PublishedValue).Value + + require.IsType(t, &interpreter.IDCapabilityValue{}, publishedValueValue) + capabilityValue := publishedValueValue.(*interpreter.IDCapabilityValue) + + require.IsType(t, &interpreter.ReferenceStaticType{}, capabilityValue.BorrowType) + ref = capabilityValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) +} + +func TestMigratePublishedValueAcrossTwoAccounts(t *testing.T) { + t.Parallel() + + testAddress1 := common.Address{0, 0, 0, 0, 0, 0, 0, 1} + testAddress2 := common.Address{0, 0, 0, 0, 0, 0, 0, 2} + + rt := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + var signingAddress common.Address + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{signingAddress}, nil + }, + OnGetCode: func(location common.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + } + + // Prepare + + oldContract := []byte(` + access(all) contract C { + access(all) resource R { + access(all) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + contract := []byte(` + access(all) contract C { + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + saveValues := []byte(` + import C from 0x1 + + transaction { + prepare(signer: auth(Inbox, Storage, Capabilities) &Account) { + let cap = signer.capabilities.storage.issue<&C.R>(/storage/r) + signer.storage.save(cap, to: /storage/cap) + signer.inbox.publish(cap, name: "r_cap", recipient: 0x2) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract to 0x1 + + signingAddress = testAddress1 + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: DeploymentTransaction("C", oldContract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Execute transaction on 0x2 + + signingAddress = testAddress2 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: saveValues, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Update contract on 0x1 + + signingAddress = testAddress1 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: UpdateTransaction("C", contract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + // Important: invalidate the loaded program, as it was updated + runtimeInterface.InvalidateUpdatedPrograms() + + inboxStorageIdentifier := stdlib.InboxStorageDomain + inboxStorageMap := storage.GetStorageMap( + testAddress2, + inboxStorageIdentifier, + false, + ) + require.NotNil(t, inboxStorageMap) + require.Equal(t, inboxStorageMap.Count(), uint64(1)) + + storageIdentifier := common.PathDomainStorage.Identifier() + storageMap := storage.GetStorageMap( + testAddress2, + storageIdentifier, + false, + ) + require.NotNil(t, storageMap) + require.Equal(t, inboxStorageMap.Count(), uint64(1)) + + // Migrate + + reporter := newTestReporter() + + for _, address := range []common.Address{ + testAddress1, + testAddress2, + } { + + migration, err := migrations.NewStorageMigration(inter, storage, "test", address) + require.NoError(t, err) + + migrator := migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ) + migration.Migrate(migrator) + + err = migration.Commit() + require.NoError(t, err) + } + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(1), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("cap"), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: stdlib.InboxStorageDomain, + }, + StorageMapKey: interpreter.StringStorageMapKey("r_cap"), + }: {}, + }, + reporter.migrated, + ) + + cap1 := storageMap.ReadValue(nil, interpreter.StringStorageMapKey("cap")) + capValue := cap1.(*interpreter.IDCapabilityValue) + require.IsType(t, &interpreter.ReferenceStaticType{}, capValue.BorrowType) + ref := capValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) + + publishedValue := inboxStorageMap.ReadValue(nil, interpreter.StringStorageMapKey("r_cap")) + + require.IsType(t, &interpreter.PublishedValue{}, publishedValue) + publishedValueValue := publishedValue.(*interpreter.PublishedValue).Value + + require.IsType(t, &interpreter.IDCapabilityValue{}, publishedValueValue) + capabilityValue := publishedValueValue.(*interpreter.IDCapabilityValue) + + require.IsType(t, &interpreter.ReferenceStaticType{}, capabilityValue.BorrowType) + ref = capabilityValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) +} + +func TestMigrateAcrossContracts(t *testing.T) { + t.Parallel() + + testAddress1 := common.Address{0, 0, 0, 0, 0, 0, 0, 1} + testAddress2 := common.Address{0, 0, 0, 0, 0, 0, 0, 2} + + rt := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + var signingAddress common.Address + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{signingAddress}, nil + }, + OnGetCode: func(location common.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + } + + // Prepare + + oldContract := []byte(` + access(all) contract C { + access(all) resource R { + access(all) fun foo() {} + } + access(all) resource T { + access(all) let cap: Capability<&R> + init(_ cap: Capability<&R>) { + self.cap = cap + } + } + access(all) fun makeR(): @R { + return <- create R() + } + access(all) fun makeT(_ cap: Capability<&R>): @T { + return <- create T(cap) + } + } + `) + + updatedContract := []byte(` + access(all) contract C { + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + access(all) resource T { + access(all) let cap: Capability + init(_ cap: Capability) { + self.cap = cap + } + } + access(all) fun makeR(): @R { + return <- create R() + } + access(all) fun makeT(_ cap: Capability): @T { + return <- create T(cap) + } + } + `) + + saveValues := []byte(` + import C from 0x1 + + transaction { + prepare(signer: auth(Storage, Capabilities) &Account) { + let r <- C.makeR() + signer.storage.save(<-r, to: /storage/foo) + let cap = signer.capabilities.storage.issue<&C.R>(/storage/foo) + let t <- C.makeT(cap) + signer.storage.save(<-t, to: /storage/bar) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract to 0x1 + + signingAddress = testAddress1 + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: DeploymentTransaction("C", oldContract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Execute transaction on 0x2 + + signingAddress = testAddress2 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: saveValues, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Update contract on 0x1 + + signingAddress = testAddress1 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: UpdateTransaction("C", updatedContract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + // Important: invalidate the loaded program, as it was updated + runtimeInterface.InvalidateUpdatedPrograms() + + storageIdentifier := common.PathDomainStorage.Identifier() + storageMap := storage.GetStorageMap(testAddress2, storageIdentifier, false) + require.NotNil(t, storageMap) + require.Greater(t, storageMap.Count(), uint64(0)) + + // Migrate + + reporter := newTestReporter() + + for _, address := range []common.Address{ + testAddress1, + testAddress2, + } { + migration, err := migrations.NewStorageMigration(inter, storage, "test", address) + require.NoError(t, err) + + migrator := migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ) + migration.Migrate(migrator) + + err = migration.Commit() + require.NoError(t, err) + } + + // Assert + + assert.Len(t, reporter.errors, 0) + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(1), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("bar"), + }: {}, + }, + reporter.migrated, + ) + + value := storageMap.ReadValue(nil, interpreter.StringStorageMapKey("bar")) + + require.IsType(t, &interpreter.CompositeValue{}, value) + tValue := value.(*interpreter.CompositeValue) + require.Equal(t, "C.T", tValue.QualifiedIdentifier) + + field := tValue.GetMember(inter, interpreter.EmptyLocationRange, "cap") + + require.IsType(t, &interpreter.IDCapabilityValue{}, field) + cap := field.(*interpreter.IDCapabilityValue) + require.IsType(t, &interpreter.ReferenceStaticType{}, cap.BorrowType) + ref := cap.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) +} + +func TestMigrateArrayOfValues(t *testing.T) { + t.Parallel() + + testAddress1 := common.Address{0, 0, 0, 0, 0, 0, 0, 1} + testAddress2 := common.Address{0, 0, 0, 0, 0, 0, 0, 2} + + rt := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + var signingAddress common.Address + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{signingAddress}, nil + }, + OnGetCode: func(location common.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + } + + // Prepare + + oldContract := []byte(` + access(all) contract C { + access(all) resource R { + access(all) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + contract := []byte(` + access(all) contract C { + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + saveValues := []byte(` + import C from 0x1 + + transaction { + prepare(signer: auth(Storage, Capabilities) &Account) { + let r1 <- C.makeR() + let r2 <- C.makeR() + signer.storage.save(<-r1, to: /storage/foo) + signer.storage.save(<-r2, to: /storage/bar) + let cap1 = signer.capabilities.storage.issue<&C.R>(/storage/foo) + let cap2 = signer.capabilities.storage.issue<&C.R>(/storage/bar) + let arr = [cap1, cap2] + signer.storage.save(arr, to: /storage/caps) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract to 0x1 + + signingAddress = testAddress1 + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: DeploymentTransaction("C", oldContract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Execute transaction on 0x2 + + signingAddress = testAddress2 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: saveValues, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // update contract on 0x1 + + signingAddress = testAddress1 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: UpdateTransaction("C", contract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + // Important: invalidate the loaded program, as it was updated + runtimeInterface.InvalidateUpdatedPrograms() + + storageIdentifier := common.PathDomainStorage.Identifier() + storageMap := storage.GetStorageMap(testAddress2, storageIdentifier, false) + require.NotNil(t, storageMap) + require.Greater(t, storageMap.Count(), uint64(0)) + + // Migrate + + reporter := newTestReporter() + + for _, address := range []common.Address{ + testAddress1, + testAddress2, + } { + migration, err := migrations.NewStorageMigration(inter, storage, "test", address) + require.NoError(t, err) + + migrator := migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ) + migration.Migrate(migrator) + + err = migration.Commit() + require.NoError(t, err) + } + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(1), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(2), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("caps"), + }: {}, + }, + reporter.migrated, + ) + + arrayValue := storageMap.ReadValue(nil, interpreter.StringStorageMapKey("caps")) + require.IsType(t, &interpreter.ArrayValue{}, arrayValue) + arrValue := arrayValue.(*interpreter.ArrayValue) + require.Equal(t, 2, arrValue.Count()) + + elementType := arrValue.Type.ElementType() + require.IsType(t, &interpreter.CapabilityStaticType{}, elementType) + capElementType := elementType.(*interpreter.CapabilityStaticType) + require.IsType(t, &interpreter.ReferenceStaticType{}, capElementType.BorrowType) + ref := capElementType.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) + + cap1 := arrValue.Get(inter, interpreter.EmptyLocationRange, 0) + require.IsType(t, &interpreter.IDCapabilityValue{}, cap1) + capValue := cap1.(*interpreter.IDCapabilityValue) + require.IsType(t, &interpreter.ReferenceStaticType{}, capValue.BorrowType) + ref = capValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) + + cap2 := arrValue.Get(inter, interpreter.EmptyLocationRange, 1) + require.IsType(t, &interpreter.IDCapabilityValue{}, cap2) + capValue = cap1.(*interpreter.IDCapabilityValue) + require.IsType(t, &interpreter.ReferenceStaticType{}, capValue.BorrowType) + ref = capValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { + return []common.TypeID{"A.0000000000000001.C.E"} + }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) +} + +func TestMigrateDictOfValues(t *testing.T) { + t.Parallel() + + testAddress1 := common.Address{0, 0, 0, 0, 0, 0, 0, 1} + testAddress2 := common.Address{0, 0, 0, 0, 0, 0, 0, 2} + + rt := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + var signingAddress common.Address + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{signingAddress}, nil + }, + OnGetCode: func(location common.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + } + + // Prepare + + oldContract := []byte(` + access(all) contract C { + access(all) resource R { + access(all) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + contract := []byte(` + access(all) contract C { + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + saveValues := []byte(` + import C from 0x1 + + transaction { + prepare(signer: auth(Storage, Capabilities) &Account) { + let r1 <- C.makeR() + let r2 <- C.makeR() + signer.storage.save(<-r1, to: /storage/foo) + signer.storage.save(<-r2, to: /storage/bar) + let cap1 = signer.capabilities.storage.issue<&C.R>(/storage/foo) + let cap2 = signer.capabilities.storage.issue<&C.R>(/storage/bar) + let arr = {"a": cap1, "b": cap2} + signer.storage.save(arr, to: /storage/caps) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract to 0x1 + + signingAddress = testAddress1 + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: DeploymentTransaction("C", oldContract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Execute transaction on 0x2 + + signingAddress = testAddress2 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: saveValues, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // update contract on 0x1 + + signingAddress = testAddress1 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: UpdateTransaction("C", contract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + // Important: invalidate the loaded program, as it was updated + runtimeInterface.InvalidateUpdatedPrograms() + + storageIdentifier := common.PathDomainStorage.Identifier() + storageMap := storage.GetStorageMap(testAddress2, storageIdentifier, false) + require.NotNil(t, storageMap) + require.Greater(t, storageMap.Count(), uint64(0)) + + // Migrate + + reporter := newTestReporter() + + for _, address := range []common.Address{ + testAddress1, + testAddress2, + } { + migration, err := migrations.NewStorageMigration(inter, storage, "test", address) + require.NoError(t, err) + + migrator := migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ) + + migration.Migrate(migrator) + + err = migration.Commit() + require.NoError(t, err) + } + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(1), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(2), + }: {}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress2, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("caps"), + }: {}, + }, + reporter.migrated, + ) + + dictValue := storageMap.ReadValue(nil, interpreter.StringStorageMapKey("caps")) + require.IsType(t, &interpreter.DictionaryValue{}, dictValue) + dictionaryValue := dictValue.(*interpreter.DictionaryValue) + + valueType := dictionaryValue.Type.ValueType + require.IsType(t, &interpreter.CapabilityStaticType{}, valueType) + capElementType := valueType.(*interpreter.CapabilityStaticType) + require.IsType(t, &interpreter.ReferenceStaticType{}, capElementType.BorrowType) + ref := capElementType.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { return []common.TypeID{"A.0000000000000001.C.E"} }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) + + cap1, present := dictionaryValue.Get( + inter, + interpreter.EmptyLocationRange, + interpreter.NewUnmeteredStringValue("a"), + ) + require.True(t, present) + require.IsType(t, &interpreter.IDCapabilityValue{}, cap1) + capValue := cap1.(*interpreter.IDCapabilityValue) + require.IsType(t, &interpreter.ReferenceStaticType{}, capValue.BorrowType) + ref = capValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { return []common.TypeID{"A.0000000000000001.C.E"} }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) + + cap2, present := dictionaryValue.Get( + inter, + interpreter.EmptyLocationRange, + interpreter.NewUnmeteredStringValue("b"), + ) + require.True(t, present) + require.IsType(t, &interpreter.IDCapabilityValue{}, cap2) + capValue = cap1.(*interpreter.IDCapabilityValue) + require.IsType(t, &interpreter.ReferenceStaticType{}, capValue.BorrowType) + ref = capValue.BorrowType.(*interpreter.ReferenceStaticType) + require.Equal(t, + interpreter.NewEntitlementSetAuthorization( + inter, + func() []common.TypeID { return []common.TypeID{"A.0000000000000001.C.E"} }, + 1, + sema.Conjunction, + ), + ref.Authorization, + ) +} + +func TestConvertDeprecatedStaticTypes(t *testing.T) { + + t.Parallel() + + test := func(ty interpreter.PrimitiveStaticType) { + + t.Run(ty.String(), func(t *testing.T) { + t.Parallel() + + inter := NewTestInterpreter(t) + migration := NewEntitlementsMigration(inter) + value := interpreter.NewUnmeteredCapabilityValue( + 1, + interpreter.AddressValue(common.ZeroAddress), + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + ty, + ), + ) + + result, err := migration.ConvertValueToEntitlements(value) + require.Error(t, err) + assert.ErrorContains(t, err, "cannot migrate deprecated type") + require.Nil(t, result) + }) + } + + for ty := interpreter.PrimitiveStaticType(1); ty < interpreter.PrimitiveStaticType_Count; ty++ { + if !ty.IsDefined() || !ty.IsDeprecated() { //nolint:staticcheck + continue + } + + test(ty) + } +} + +func TestConvertMigratedAccountTypes(t *testing.T) { + + t.Parallel() + + test := func(ty interpreter.PrimitiveStaticType) { + + t.Run(ty.String(), func(t *testing.T) { + t.Parallel() + + inter := NewTestInterpreter(t) + migration := NewEntitlementsMigration(inter) + value := interpreter.NewUnmeteredCapabilityValue( + 1, + interpreter.AddressValue(common.ZeroAddress), + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + ty, + ), + ) + + newValue, err := statictypes.NewStaticTypeMigration(). + Migrate( + interpreter.StorageKey{}, + nil, + value, + inter, + migrations.ValueMigrationPositionOther, + ) + require.NoError(t, err) + require.NotNil(t, newValue) + + result, err := migration.ConvertValueToEntitlements(newValue) + require.NoError(t, err) + require.Nilf(t, result, "expected no migration, but got %s", result) + }) + } + + for ty := interpreter.PrimitiveStaticType(1); ty < interpreter.PrimitiveStaticType_Count; ty++ { + if !ty.IsDefined() || !ty.IsDeprecated() { //nolint:staticcheck + continue + } + + test(ty) + } +} + +func TestMigrateCapConsAcrossTwoAccounts(t *testing.T) { + t.Parallel() + + testAddress1 := common.Address{0, 0, 0, 0, 0, 0, 0, 1} + testAddress2 := common.Address{0, 0, 0, 0, 0, 0, 0, 2} + + rt := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + var signingAddress common.Address + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{signingAddress}, nil + }, + OnGetCode: func(location common.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + } + + // Prepare + + oldContract := []byte(` + access(all) contract C { + access(all) resource R { + access(all) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + contract := []byte(` + access(all) contract C { + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + access(all) fun makeR(): @R { + return <- create R() + } + } + `) + + saveValues := []byte(` + import C from 0x1 + + transaction { + prepare(signer: auth(Inbox, Storage, Capabilities) &Account) { + signer.capabilities.storage.issue<&C.R>(/storage/r) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract to 0x1 + + signingAddress = testAddress1 + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: DeploymentTransaction("C", oldContract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Execute transaction on 0x2 + + signingAddress = testAddress2 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: saveValues, + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Update contract on 0x1 + + signingAddress = testAddress1 + + err = rt.ExecuteTransaction( + runtime.Script{ + Source: UpdateTransaction("C", contract), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + // Important: invalidate the loaded program, as it was updated + runtimeInterface.InvalidateUpdatedPrograms() + + // Migrate + + reporter := newTestReporter() + + for _, address := range []common.Address{ + testAddress1, + testAddress2, + } { + migration, err := migrations.NewStorageMigration(inter, storage, "test", address) + require.NoError(t, err) + + migrator := migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ) + + migration.Migrate(migrator) + + err = migration.Commit() + require.NoError(t, err) + } + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + assert.Len(t, reporter.migrated, 1) + + // TODO: assert +} + +var _ migrations.Reporter = &testReporter{} + +type testReporter struct { + migrated map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{} + errors []error +} + +func newTestReporter() *testReporter { + return &testReporter{ + migrated: map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{}, + } +} + +func (t *testReporter) Migrated( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + _ string, +) { + t.migrated[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + }] = struct{}{} +} + +func (t *testReporter) Error(err error) { + t.errors = append(t.errors, err) +} + +func (t *testReporter) DictionaryKeyConflict(addressPath interpreter.AddressPath) { + // For testing purposes, record the conflict as an error + t.errors = append(t.errors, fmt.Errorf("dictionary key conflict: %s", addressPath)) +} + +func TestRehash(t *testing.T) { + + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + newTestValue := func() interpreter.Value { + return interpreter.NewUnmeteredStringValue("test") + } + + const fooBarQualifiedIdentifier = "Foo.Bar" + testAddress := common.Address{0x42} + fooAddressLocation := common.NewAddressLocation(nil, testAddress, "Foo") + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: disabled, because encoded and decoded values are expected to not match + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + newCompositeType := func() *interpreter.CompositeStaticType { + return interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ) + } + + entitlementSetAuthorization := sema.NewEntitlementSetAccess( + []*sema.EntitlementType{ + sema.NewEntitlementType( + nil, + fooAddressLocation, + "E", + ), + }, + sema.Conjunction, + ) + + // Prepare + (func() { + + storage, inter := newStorageAndInterpreter(t) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeString, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + newCompositeType(), + ) + refType.HasLegacyIsAuthorized = true + refType.LegacyIsAuthorized = true + + legacyRefType := &migrations.LegacyReferenceType{ + ReferenceStaticType: refType, + } + + optType := interpreter.NewOptionalStaticType( + nil, + legacyRefType, + ) + + legacyOptType := &migrations.LegacyOptionalType{ + OptionalStaticType: optType, + } + + typeValue := interpreter.NewUnmeteredTypeValue(legacyOptType) + + dictValue.Insert( + inter, + locationRange, + typeValue, + newTestValue(), + ) + + // Note: ID is in the old format + assert.Equal(t, + common.TypeID("auth&A.4200000000000000.Foo.Bar?"), + legacyOptType.ID(), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + + err = storage.CheckHealth() + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + inter.SharedState.Config.CompositeTypeHandler = func( + location common.Location, + typeID interpreter.TypeID, + ) *sema.CompositeType { + + compositeType := &sema.CompositeType{ + Location: fooAddressLocation, + Identifier: fooBarQualifiedIdentifier, + Kind: common.CompositeKindStructure, + } + + compositeType.Members = sema.MembersAsMap([]*sema.Member{ + sema.NewUnmeteredFunctionMember( + compositeType, + entitlementSetAuthorization, + "sayHello", + &sema.FunctionType{}, + "", + ), + }) + + return compositeType + } + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + err = storage.CheckHealth() + require.NoError(t, err) + + assert.Empty(t, reporter.errors) + + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + err := storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + false, + ) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.ConvertSemaAccessToStaticAuthorization(nil, entitlementSetAuthorization), + newCompositeType(), + ) + + optType := interpreter.NewOptionalStaticType( + nil, + refType, + ) + + typeValue := interpreter.NewUnmeteredTypeValue(optType) + + // Note: ID is in the new format + assert.Equal(t, + common.TypeID("(auth(A.4200000000000000.E)&A.4200000000000000.Foo.Bar)?"), + optType.ID(), + ) + + assert.Equal(t, 1, dictValue.Count()) + + value, ok := dictValue.Get(inter, locationRange, typeValue) + require.True(t, ok) + + require.IsType(t, &interpreter.StringValue{}, value) + require.Equal(t, + newTestValue(), + value.(*interpreter.StringValue), + ) + })() +} + +func TestIntersectionTypeWithIntersectionLegacyType(t *testing.T) { + + t.Parallel() + + testAddress := common.Address{0x42} + + const interface1QualifiedIdentifier = "SI1" + interfaceType1 := interpreter.NewInterfaceStaticType( + nil, + utils.TestLocation, + interface1QualifiedIdentifier, + utils.TestLocation.TypeID(nil, interface1QualifiedIdentifier), + ) + + const interface2QualifiedIdentifier = "SI2" + interfaceType2 := interpreter.NewInterfaceStaticType( + nil, + utils.TestLocation, + interface2QualifiedIdentifier, + utils.TestLocation.TypeID(nil, interface2QualifiedIdentifier), + ) + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: disabled, because encoded and decoded values are expected to not match + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + // Prepare + (func() { + + storage, inter := newStorageAndInterpreter(t) + + expectedIntersection := interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interfaceType1, + }, + ) + // NOTE: setting the legacy type to an intersection type + expectedIntersection.LegacyType = interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interfaceType2, + }, + ) + + storedValue := interpreter.NewTypeValue( + nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + expectedIntersection, + ), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + storedValue, + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + + err = storage.CheckHealth() + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + inter.SharedState.Config.InterfaceTypeHandler = func( + location common.Location, + typeID interpreter.TypeID, + ) *sema.InterfaceType { + + _, qualifiedIdentifier, err := common.DecodeTypeID(nil, string(typeID)) + require.NoError(t, err) + + return &sema.InterfaceType{ + Location: TestLocation, + Identifier: qualifiedIdentifier, + CompositeKind: common.CompositeKindStructure, + Members: &sema.StringMemberOrderedMap{}, + } + } + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + err = storage.CheckHealth() + require.NoError(t, err) + + assert.Empty(t, reporter.errors) + + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + err := storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + false, + ) + + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, interpreter.TypeValue{}, storedValue) + + typeValue := storedValue.(interpreter.TypeValue) + + expectedType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + // NOTE: this is the legacy type + interfaceType2, + }, + ), + ) + + require.Equal(t, expectedType, typeValue.Type) + })() +} + +func TestUseAfterMigrationFailure(t *testing.T) { + + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + newTestValue := func() interpreter.Value { + return interpreter.NewUnmeteredStringValue("test") + } + + const fooBarQualifiedIdentifier = "Foo.Bar" + testAddress := common.Address{0x42} + fooAddressLocation := common.NewAddressLocation(nil, testAddress, "Foo") + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: disabled, because encoded and decoded values are expected to not match + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + newCompositeType := func() *interpreter.CompositeStaticType { + return interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ) + } + + // Prepare + (func() { + + storage, inter := newStorageAndInterpreter(t) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeString, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + newCompositeType(), + ) + refType.HasLegacyIsAuthorized = true + refType.LegacyIsAuthorized = true + + legacyRefType := &migrations.LegacyReferenceType{ + ReferenceStaticType: refType, + } + + optType := interpreter.NewOptionalStaticType( + nil, + legacyRefType, + ) + + legacyOptType := &migrations.LegacyOptionalType{ + OptionalStaticType: optType, + } + + typeValue := interpreter.NewUnmeteredTypeValue(legacyOptType) + + dictValue.Insert( + inter, + locationRange, + typeValue, + newTestValue(), + ) + + // Note: ID is in the old format + assert.Equal(t, + common.TypeID("auth&A.4200000000000000.Foo.Bar?"), + legacyOptType.ID(), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + + err = storage.CheckHealth() + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + const importErrorMessage = "cannot import" + + inter.SharedState.Config.ImportLocationHandler = + func(inter *interpreter.Interpreter, location common.Location) interpreter.Import { + panic(importErrorMessage) + } + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewEntitlementsMigration(inter), + type_keys.NewTypeKeyMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + err = storage.CheckHealth() + require.NoError(t, err) + + require.Len(t, reporter.errors, 1) + + assert.ErrorContains(t, reporter.errors[0], importErrorMessage) + + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("dict"), + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + err := storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + false, + ) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + newCompositeType(), + ) + refType.HasLegacyIsAuthorized = true + refType.LegacyIsAuthorized = true + + optType := interpreter.NewOptionalStaticType( + nil, + refType, + ) + + typeValue := interpreter.NewUnmeteredTypeValue(optType) + + // Note: ID is in the new format + assert.Equal(t, + common.TypeID("(&A.4200000000000000.Foo.Bar)?"), + optType.ID(), + ) + + assert.Equal(t, 1, dictValue.Count()) + + // Key did not get migrated, but got still re-stored in new format, + // so it can be loaded and used after the migration failure + _, ok := dictValue.Get(inter, locationRange, typeValue) + require.True(t, ok) + })() +} diff --git a/migrations/legacy_character_value.go b/migrations/legacy_character_value.go new file mode 100644 index 0000000000..342f59814e --- /dev/null +++ b/migrations/legacy_character_value.go @@ -0,0 +1,83 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime/interpreter" +) + +// LegacyCharacterValue simulates the old character-value +// which uses the un-normalized string for hashing. +type LegacyCharacterValue struct { + interpreter.CharacterValue +} + +var _ interpreter.Value = &LegacyCharacterValue{} + +// Override HashInput to use the un-normalized string for hashing, +// so the removal of the existing key is using this hash input function, +// instead of the one from CharacterValue. +// +// However, after hashing the equality function should still use the equality function from CharacterValue. + +func (v *LegacyCharacterValue) HashInput(_ *interpreter.Interpreter, _ interpreter.LocationRange, scratch []byte) []byte { + // Use the un-normalized `v.UnnormalizedStr` for generating the hash. + length := 1 + len(v.UnnormalizedStr) + var buffer []byte + if length <= len(scratch) { + buffer = scratch[:length] + } else { + buffer = make([]byte, length) + } + + buffer[0] = byte(interpreter.HashInputTypeCharacter) + copy(buffer[1:], v.UnnormalizedStr) + return buffer +} + +func (v *LegacyCharacterValue) Equal( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + other interpreter.Value, +) bool { + if otherLegacy, ok := other.(*LegacyCharacterValue); ok { + other = otherLegacy.CharacterValue + } + return v.CharacterValue.Equal(inter, locationRange, other) +} + +func (v *LegacyCharacterValue) Transfer( + interpreter *interpreter.Interpreter, + _ interpreter.LocationRange, + _ atree.Address, + remove bool, + storable atree.Storable, + _ map[atree.StorageID]struct{}, +) interpreter.Value { + if remove { + interpreter.RemoveReferencedSlab(storable) + } + return v +} + +func (v *LegacyCharacterValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { + return v, nil +} diff --git a/migrations/legacy_intersection_type.go b/migrations/legacy_intersection_type.go new file mode 100644 index 0000000000..40bc63f08e --- /dev/null +++ b/migrations/legacy_intersection_type.go @@ -0,0 +1,68 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "strings" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" +) + +// LegacyIntersectionType simulates the old, incorrect restricted-type type-ID generation, +// which did not sort the type IDs of the interface types. +type LegacyIntersectionType struct { + *interpreter.IntersectionStaticType +} + +var _ interpreter.StaticType = &LegacyIntersectionType{} + +func (t *LegacyIntersectionType) ID() common.TypeID { + interfaceTypeIDs := make([]string, 0, len(t.Types)) + for _, interfaceType := range t.Types { + interfaceTypeIDs = append( + interfaceTypeIDs, + string(interfaceType.ID()), + ) + } + + var result strings.Builder + + if t.LegacyType != nil { + result.WriteString(string(t.LegacyType.ID())) + } + + result.WriteByte('{') + // NOTE: no sorting + for i, interfaceTypeID := range interfaceTypeIDs { + if i > 0 { + result.WriteByte(',') + } + result.WriteString(interfaceTypeID) + } + result.WriteByte('}') + return common.TypeID(result.String()) +} + +func (t *LegacyIntersectionType) Equal(other interpreter.StaticType) bool { + if otherLegacy, ok := other.(*LegacyIntersectionType); ok { + other = otherLegacy.IntersectionStaticType + } + return t.IntersectionStaticType.Equal(other) +} diff --git a/migrations/legacy_optional_type.go b/migrations/legacy_optional_type.go new file mode 100644 index 0000000000..3f1eab1873 --- /dev/null +++ b/migrations/legacy_optional_type.go @@ -0,0 +1,44 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "fmt" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" +) + +// LegacyOptionalType simulates the old optional type with the old typeID generation. +type LegacyOptionalType struct { + *interpreter.OptionalStaticType +} + +var _ interpreter.StaticType = &LegacyOptionalType{} + +func (t *LegacyOptionalType) ID() common.TypeID { + return common.TypeID(fmt.Sprintf("%s?", t.Type.ID())) +} + +func (t *LegacyOptionalType) Equal(other interpreter.StaticType) bool { + if otherLegacy, ok := other.(*LegacyOptionalType); ok { + other = otherLegacy.OptionalStaticType + } + return t.OptionalStaticType.Equal(other) +} diff --git a/migrations/legacy_primitivestatic_type.go b/migrations/legacy_primitivestatic_type.go new file mode 100644 index 0000000000..295a996185 --- /dev/null +++ b/migrations/legacy_primitivestatic_type.go @@ -0,0 +1,73 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" +) + +// LegacyPrimitiveStaticType simulates the old primitive-static-type +// which uses the old type-ids for hashing. +type LegacyPrimitiveStaticType struct { + interpreter.PrimitiveStaticType +} + +var _ interpreter.StaticType = LegacyPrimitiveStaticType{} + +func (t LegacyPrimitiveStaticType) ID() common.TypeID { + primitiveStaticType := t.PrimitiveStaticType + + switch primitiveStaticType { + case interpreter.PrimitiveStaticTypeAuthAccount: //nolint:staticcheck + return "AuthAccount" + case interpreter.PrimitiveStaticTypePublicAccount: //nolint:staticcheck + return "PublicAccount" + case interpreter.PrimitiveStaticTypeAuthAccountCapabilities: //nolint:staticcheck + return "AuthAccount.Capabilities" + case interpreter.PrimitiveStaticTypePublicAccountCapabilities: //nolint:staticcheck + return "PublicAccount.Capabilities" + case interpreter.PrimitiveStaticTypeAuthAccountAccountCapabilities: //nolint:staticcheck + return "AuthAccount.AccountCapabilities" + case interpreter.PrimitiveStaticTypeAuthAccountStorageCapabilities: //nolint:staticcheck + return "AuthAccount.StorageCapabilities" + case interpreter.PrimitiveStaticTypeAuthAccountContracts: //nolint:staticcheck + return "AuthAccount.Contracts" + case interpreter.PrimitiveStaticTypePublicAccountContracts: //nolint:staticcheck + return "PublicAccount.Contracts" + case interpreter.PrimitiveStaticTypeAuthAccountKeys: //nolint:staticcheck + return "AuthAccount.Keys" + case interpreter.PrimitiveStaticTypePublicAccountKeys: //nolint:staticcheck + return "PublicAccount.Keys" + case interpreter.PrimitiveStaticTypeAuthAccountInbox: //nolint:staticcheck + return "AuthAccount.Inbox" + case interpreter.PrimitiveStaticTypeAccountKey: //nolint:staticcheck + return "AccountKey" + default: + panic(errors.NewUnexpectedError("unexpected non-legacy primitive static type: %s", primitiveStaticType)) + } +} + +func (t LegacyPrimitiveStaticType) Equal(other interpreter.StaticType) bool { + if otherLegacy, ok := other.(LegacyPrimitiveStaticType); ok { + other = otherLegacy.PrimitiveStaticType + } + return t.PrimitiveStaticType.Equal(other) +} diff --git a/migrations/legacy_reference_type.go b/migrations/legacy_reference_type.go new file mode 100644 index 0000000000..3a150006c3 --- /dev/null +++ b/migrations/legacy_reference_type.go @@ -0,0 +1,103 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "strings" + + "github.com/fxamacker/cbor/v2" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" +) + +// LegacyReferenceType simulates the old reference type with the old typeID generation. +type LegacyReferenceType struct { + *interpreter.ReferenceStaticType +} + +var _ interpreter.StaticType = &LegacyReferenceType{} + +func (t *LegacyReferenceType) ID() common.TypeID { + if !t.HasLegacyIsAuthorized { + // Encode as a regular reference type + return t.ReferenceStaticType.ID() + } + + borrowedType := t.ReferencedType + return common.TypeID( + formatReferenceType( + t.LegacyIsAuthorized, + string(borrowedType.ID()), + ), + ) +} + +func formatReferenceType( + authorized bool, + typeString string, +) string { + var builder strings.Builder + if authorized { + builder.WriteString("auth") + } + builder.WriteByte('&') + builder.WriteString(typeString) + return builder.String() +} + +func (t *LegacyReferenceType) Encode(e *cbor.StreamEncoder) error { + if !t.HasLegacyIsAuthorized { + // Encode as a regular reference type + return t.ReferenceStaticType.Encode(e) + } + + // Has legacy isAuthorized flag, + // encode as a legacy reference type + + // Encode tag number and array head + err := e.EncodeRawBytes([]byte{ + // tag number + 0xd8, interpreter.CBORTagReferenceStaticType, + // array, 2 items follow + 0x82, + }) + if err != nil { + return err + } + + // Encode the `LegacyIsAuthorized` flag instead of the `Authorization`. + // This is how it was done in pre-1.0. + // Decode already supports decoding this flag, for backward compatibility. + // Encode authorized at array index encodedReferenceStaticTypeAuthorizedFieldKey + err = e.EncodeBool(t.LegacyIsAuthorized) + if err != nil { + return err + } + + // Encode type at array index encodedReferenceStaticTypeTypeFieldKey + return t.ReferencedType.Encode(e) +} + +func (t *LegacyReferenceType) Equal(other interpreter.StaticType) bool { + if otherLegacy, ok := other.(*LegacyReferenceType); ok { + other = otherLegacy.ReferenceStaticType + } + return t.ReferenceStaticType.Equal(other) +} diff --git a/migrations/legacy_string_value.go b/migrations/legacy_string_value.go new file mode 100644 index 0000000000..a9ed750714 --- /dev/null +++ b/migrations/legacy_string_value.go @@ -0,0 +1,83 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime/interpreter" +) + +// LegacyStringValue simulates the old string-value +// which uses the un-normalized string for hashing. +type LegacyStringValue struct { + *interpreter.StringValue +} + +var _ interpreter.Value = &LegacyStringValue{} + +// Override HashInput to use the un-normalized string for hashing, +// so the removal of the existing key is using this hash input function, +// instead of the one from StringValue. +// +// However, after hashing the equality function should still use the equality function from StringValue. + +func (v *LegacyStringValue) HashInput(_ *interpreter.Interpreter, _ interpreter.LocationRange, scratch []byte) []byte { + // Use the un-normalized `v.UnnormalizedStr` for generating the hash. + length := 1 + len(v.UnnormalizedStr) + var buffer []byte + if length <= len(scratch) { + buffer = scratch[:length] + } else { + buffer = make([]byte, length) + } + + buffer[0] = byte(interpreter.HashInputTypeString) + copy(buffer[1:], v.UnnormalizedStr) + return buffer +} + +func (v *LegacyStringValue) Equal( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + other interpreter.Value, +) bool { + if otherLegacy, ok := other.(*LegacyStringValue); ok { + other = otherLegacy.StringValue + } + return v.StringValue.Equal(inter, locationRange, other) +} + +func (v *LegacyStringValue) Transfer( + interpreter *interpreter.Interpreter, + _ interpreter.LocationRange, + _ atree.Address, + remove bool, + storable atree.Storable, + _ map[atree.StorageID]struct{}, +) interpreter.Value { + if remove { + interpreter.RemoveReferencedSlab(storable) + } + return v +} + +func (v *LegacyStringValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { + return v, nil +} diff --git a/migrations/legacy_test.go b/migrations/legacy_test.go new file mode 100644 index 0000000000..54756aaf0c --- /dev/null +++ b/migrations/legacy_test.go @@ -0,0 +1,469 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "bytes" + "testing" + + "github.com/fxamacker/cbor/v2" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestLegacyEquality(t *testing.T) { + + t.Parallel() + + t.Run("Character value", func(t *testing.T) { + t.Parallel() + + require.True(t, + (&LegacyCharacterValue{ + CharacterValue: interpreter.NewUnmeteredCharacterValue("foo"), + }).Equal(nil, emptyLocationRange, &LegacyCharacterValue{ + CharacterValue: interpreter.NewUnmeteredCharacterValue("foo"), + }), + ) + }) + + t.Run("String value", func(t *testing.T) { + t.Parallel() + + require.True(t, + (&LegacyStringValue{ + StringValue: interpreter.NewUnmeteredStringValue("foo"), + }).Equal(nil, emptyLocationRange, &LegacyStringValue{ + StringValue: interpreter.NewUnmeteredStringValue("foo"), + }), + ) + }) + + t.Run("Intersection type", func(t *testing.T) { + t.Parallel() + + fooType := interpreter.NewInterfaceStaticTypeComputeTypeID( + nil, + utils.TestLocation, + "Test.Foo", + ) + + require.True(t, + (&LegacyIntersectionType{ + IntersectionStaticType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooType, + }, + ), + }).Equal(&LegacyIntersectionType{ + IntersectionStaticType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooType, + }, + ), + }), + ) + }) + + t.Run("Primitive type", func(t *testing.T) { + t.Parallel() + + require.True(t, + (LegacyPrimitiveStaticType{ + PrimitiveStaticType: interpreter.PrimitiveStaticTypeInt, + }).Equal(LegacyPrimitiveStaticType{ + PrimitiveStaticType: interpreter.PrimitiveStaticTypeInt, + }), + ) + }) + + t.Run("Reference type", func(t *testing.T) { + t.Parallel() + + require.True(t, + (&LegacyReferenceType{ + ReferenceStaticType: &interpreter.ReferenceStaticType{ + Authorization: interpreter.UnauthorizedAccess, + ReferencedType: interpreter.PrimitiveStaticTypeInt, + }, + }).Equal(&LegacyReferenceType{ + ReferenceStaticType: &interpreter.ReferenceStaticType{ + Authorization: interpreter.UnauthorizedAccess, + ReferencedType: interpreter.PrimitiveStaticTypeInt, + }, + }), + ) + }) + + t.Run("Optional type", func(t *testing.T) { + t.Parallel() + + require.True(t, + (&LegacyOptionalType{ + OptionalStaticType: &interpreter.OptionalStaticType{ + Type: interpreter.PrimitiveStaticTypeInt, + }, + }).Equal(&LegacyOptionalType{ + OptionalStaticType: &interpreter.OptionalStaticType{ + Type: interpreter.PrimitiveStaticTypeInt, + }, + }), + ) + }) +} + +func TestLegacyOptionalType(t *testing.T) { + t.Parallel() + + test := func( + t *testing.T, + optionalType *interpreter.OptionalStaticType, + expectedTypeID common.TypeID, + expectedEncoding []byte, + ) { + + legacyRefType := &LegacyOptionalType{ + OptionalStaticType: optionalType, + } + + assert.Equal(t, + expectedTypeID, + legacyRefType.ID(), + ) + + var buf bytes.Buffer + + encoder := cbor.NewStreamEncoder(&buf) + err := legacyRefType.Encode(encoder) + require.NoError(t, err) + + err = encoder.Flush() + require.NoError(t, err) + + assert.Equal(t, expectedEncoding, buf.Bytes()) + } + + t.Run("reference to optional", func(t *testing.T) { + + t.Parallel() + + optionalType := interpreter.NewOptionalStaticType( + nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + ) + + test(t, + optionalType, + "&AnyStruct?", + []byte{ + // tag + 0xd8, interpreter.CBORTagOptionalStaticType, + // tag + 0xd8, interpreter.CBORTagReferenceStaticType, + // array, 2 items follow + 0x82, + // Unauthorized + 0xd8, interpreter.CBORTagUnauthorizedStaticAuthorization, + // nil + 0xf6, + // tag + 0xd8, interpreter.CBORTagPrimitiveStaticType, + // AnyStruct, + byte(interpreter.PrimitiveStaticTypeAnyStruct), + }, + ) + }) +} + +func TestLegacyReferenceType(t *testing.T) { + + t.Parallel() + + test := func( + t *testing.T, + refType *interpreter.ReferenceStaticType, + expectedTypeID common.TypeID, + expectedEncoding []byte, + ) { + + legacyRefType := &LegacyReferenceType{ + ReferenceStaticType: refType, + } + + assert.Equal(t, + expectedTypeID, + legacyRefType.ID(), + ) + + var buf bytes.Buffer + + encoder := cbor.NewStreamEncoder(&buf) + err := legacyRefType.Encode(encoder) + require.NoError(t, err) + + err = encoder.Flush() + require.NoError(t, err) + + assert.Equal(t, expectedEncoding, buf.Bytes()) + } + + t.Run("has legacy authorized, unauthorized", func(t *testing.T) { + + t.Parallel() + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAnyStruct, + ) + refType.HasLegacyIsAuthorized = true + refType.LegacyIsAuthorized = false + + test(t, + refType, + "&AnyStruct", + []byte{ + // tag + 0xd8, interpreter.CBORTagReferenceStaticType, + // array, 2 items follow + 0x82, + // authorized = false + 0xf4, + // tag + 0xd8, interpreter.CBORTagPrimitiveStaticType, + // AnyStruct, + byte(interpreter.PrimitiveStaticTypeAnyStruct), + }, + ) + }) + + t.Run("has legacy authorized, authorized", func(t *testing.T) { + + t.Parallel() + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAnyStruct, + ) + refType.HasLegacyIsAuthorized = true + refType.LegacyIsAuthorized = true + + test(t, + refType, + "auth&AnyStruct", + []byte{ + // tag + 0xd8, interpreter.CBORTagReferenceStaticType, + // array, 2 items follow + 0x82, + // authorized = true + 0xf5, + // tag + 0xd8, interpreter.CBORTagPrimitiveStaticType, + // AnyStruct, + byte(interpreter.PrimitiveStaticTypeAnyStruct), + }, + ) + }) + + t.Run("new authorization, unauthorized", func(t *testing.T) { + t.Parallel() + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAnyStruct, + ) + + test(t, + refType, + "&AnyStruct", + []byte{ + // tag + 0xd8, interpreter.CBORTagReferenceStaticType, + // array, 2 items follow + 0x82, + // tag + 0xd8, interpreter.CBORTagUnauthorizedStaticAuthorization, + // nil + 0xf6, + // tag + 0xd8, interpreter.CBORTagPrimitiveStaticType, + // AnyStruct, + byte(interpreter.PrimitiveStaticTypeAnyStruct), + }, + ) + + }) + + t.Run("new authorization, authorized", func(t *testing.T) { + t.Parallel() + + refType := interpreter.NewReferenceStaticType( + nil, + interpreter.NewEntitlementSetAuthorization( + nil, + func() []common.TypeID { + return []common.TypeID{"Foo"} + }, + 1, + sema.Conjunction, + ), + interpreter.PrimitiveStaticTypeAnyStruct, + ) + + test(t, + refType, + "auth(Foo)&AnyStruct", + []byte{ + // tag + 0xd8, interpreter.CBORTagReferenceStaticType, + // array, 2 items follow + 0x82, + // tag + 0xd8, interpreter.CBORTagEntitlementSetStaticAuthorization, + // array, 2 items follow + 0x82, + 0x0, + // array, 1 items follow + 0x81, + // UTF-8 string, 3 bytes follow + 0x63, + // F, o, o + 0x46, 0x6f, 0x6f, + // tag + 0xd8, interpreter.CBORTagPrimitiveStaticType, + // AnyStruct, + byte(interpreter.PrimitiveStaticTypeAnyStruct), + }, + ) + }) +} + +func TestLegacyIntersectionType(t *testing.T) { + t.Parallel() + + test := func( + t *testing.T, + intersectionType *interpreter.IntersectionStaticType, + expectedTypeID common.TypeID, + expectedEncoding []byte, + ) { + + legacyIntersectionType := &LegacyIntersectionType{ + IntersectionStaticType: intersectionType, + } + + assert.Equal(t, + expectedTypeID, + legacyIntersectionType.ID(), + ) + + var buf bytes.Buffer + + encoder := cbor.NewStreamEncoder(&buf) + err := legacyIntersectionType.Encode(encoder) + require.NoError(t, err) + + err = encoder.Flush() + require.NoError(t, err) + + assert.Equal(t, expectedEncoding, buf.Bytes()) + } + + t.Run("unsorted", func(t *testing.T) { + + t.Parallel() + + fooType := interpreter.NewInterfaceStaticTypeComputeTypeID( + nil, + utils.TestLocation, + "Test.Foo", + ) + + barType := interpreter.NewInterfaceStaticTypeComputeTypeID( + nil, + utils.TestLocation, + "Test.Bar", + ) + + intersectionType := interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooType, + barType, + }, + ) + + test(t, + intersectionType, + "{S.test.Test.Foo,S.test.Test.Bar}", + []byte{ + // tag + 0xd8, interpreter.CBORTagIntersectionStaticType, + // array, length 2 + 0x82, + // nil + 0xf6, + // array, length 2 + 0x82, + // tag + 0xd8, interpreter.CBORTagInterfaceStaticType, + // array, 2 items follow + 0x82, + // tag + 0xd8, interpreter.CBORTagStringLocation, + // UTF-8 string, length 4 + 0x64, + // t, e, s, t + 0x74, 0x65, 0x73, 0x74, + // UTF-8 string, length 8 + 0x68, + // T, e, s, t, ., F, o, o + 0x54, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x6f, + // tag + 0xd8, interpreter.CBORTagInterfaceStaticType, + // array, 2 items follow + 0x82, + // tag + 0xd8, interpreter.CBORTagStringLocation, + // UTF-8 string, length 4 + 0x64, + // t, e, s, t + 0x74, 0x65, 0x73, 0x74, + // UTF-8 string, length 8 + 0x68, + // T, e, s, t, ., B, a, r + 0x54, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x61, 0x72, + }, + ) + }) +} diff --git a/migrations/migration.go b/migrations/migration.go new file mode 100644 index 0000000000..ab1b88426b --- /dev/null +++ b/migrations/migration.go @@ -0,0 +1,964 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "fmt" + "runtime/debug" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/parser/lexer" + "github.com/onflow/cadence/runtime/stdlib" +) + +type ValueMigration interface { + Name() string + Migrate( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + value interpreter.Value, + interpreter *interpreter.Interpreter, + position ValueMigrationPosition, + ) (newValue interpreter.Value, err error) + CanSkip(valueType interpreter.StaticType) bool + Domains() map[string]struct{} +} + +type ValueMigrationPosition uint8 + +const ( + ValueMigrationPositionOther ValueMigrationPosition = iota + ValueMigrationPositionDictionaryKey +) + +type DomainMigration interface { + Name() string + Migrate( + addressPath interpreter.AddressPath, + ) +} + +type StorageMigration struct { + storage *runtime.Storage + interpreter *interpreter.Interpreter + name string + address common.Address + dictionaryKeyConflicts int + stacktraceEnabled bool +} + +func NewStorageMigration( + interpreter *interpreter.Interpreter, + storage *runtime.Storage, + name string, + address common.Address, +) ( + *StorageMigration, + error, +) { + if !lexer.IsValidIdentifier(name) { + return nil, fmt.Errorf("invalid migration name: %s", name) + } + + return &StorageMigration{ + storage: storage, + interpreter: interpreter, + name: name, + address: address, + dictionaryKeyConflicts: 0, + }, nil +} + +func (m *StorageMigration) WithErrorStacktrace(stacktraceEnabled bool) *StorageMigration { + m.stacktraceEnabled = stacktraceEnabled + return m +} + +func (m *StorageMigration) Commit() error { + return m.storage.NondeterministicCommit(m.interpreter, false) +} + +func (m *StorageMigration) Migrate(migrator StorageMapKeyMigrator) { + accountStorage := NewAccountStorage(m.storage, m.address) + + for _, domain := range common.AllPathDomains { + accountStorage.MigrateStringKeys( + m.interpreter, + domain.Identifier(), + migrator, + ) + } + + accountStorage.MigrateStringKeys( + m.interpreter, + stdlib.InboxStorageDomain, + migrator, + ) + + accountStorage.MigrateStringKeys( + m.interpreter, + runtime.StorageDomainContract, + migrator, + ) + + accountStorage.MigrateUint64Keys( + m.interpreter, + stdlib.CapabilityControllerStorageDomain, + migrator, + ) + + accountStorage.MigrateStringKeys( + m.interpreter, + stdlib.PathCapabilityStorageDomain, + migrator, + ) + + accountStorage.MigrateUint64Keys( + m.interpreter, + stdlib.AccountCapabilityStorageDomain, + migrator, + ) +} + +func (m *StorageMigration) NewValueMigrationsPathMigrator( + reporter Reporter, + valueMigrations ...ValueMigration, +) StorageMapKeyMigrator { + + // Gather all domains that have to be migrated + // from all value migrations + + var allDomains map[string]struct{} + + if len(valueMigrations) == 1 { + // Optimization: Avoid allocating a new map + allDomains = valueMigrations[0].Domains() + } else { + for _, valueMigration := range valueMigrations { + migrationDomains := valueMigration.Domains() + if migrationDomains == nil { + continue + } + if allDomains == nil { + allDomains = make(map[string]struct{}) + } + // Safe to iterate, as the order does not matter + for domain := range migrationDomains { //nolint:maprange + allDomains[domain] = struct{}{} + } + } + } + + return NewValueConverterPathMigrator( + allDomains, + func( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + value interpreter.Value, + ) interpreter.Value { + return m.MigrateNestedValue( + storageKey, + storageMapKey, + value, + valueMigrations, + reporter, + true, + ValueMigrationPositionOther, + ) + }, + ) +} + +var emptyLocationRange = interpreter.EmptyLocationRange + +func (m *StorageMigration) MigrateNestedValue( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + value interpreter.Value, + valueMigrations []ValueMigration, + reporter Reporter, + allowMutation bool, + position ValueMigrationPosition, +) (migratedValue interpreter.Value) { + + defer func() { + // Here it catches the panics that may occur at the framework level, + // even before going to each individual migration. e.g: iterating the dictionary for elements. + // + // There is a similar recovery at the `StorageMigration.migrate()` method, + // which handles panics from each individual migrations (e.g: capcon migration, static type migration, etc.). + + if r := recover(); r != nil { + err, ok := r.(error) + if !ok { + err = fmt.Errorf("%v", r) + } + + var stack []byte + if m.stacktraceEnabled { + stack = debug.Stack() + } + + err = StorageMigrationError{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + Migration: m.name, + Err: err, + Stack: stack, + } + + if reporter != nil { + reporter.Error(err) + } + } + }() + + inter := m.interpreter + + // skip the migration of the value, + // if all value migrations agree + + canSkip := true + staticType := value.StaticType(inter) + for _, migration := range valueMigrations { + if !migration.CanSkip(staticType) { + canSkip = false + break + } + } + + if canSkip { + return + } + + // Visit the children first, and migrate them. + // i.e: depth-first traversal + switch typedValue := value.(type) { + case *interpreter.SomeValue: + innerValue := typedValue.InnerValue(inter, emptyLocationRange) + newInnerValue := m.MigrateNestedValue( + storageKey, + storageMapKey, + innerValue, + valueMigrations, + reporter, + allowMutation, + ValueMigrationPositionOther, + ) + if newInnerValue != nil { + migratedValue = interpreter.NewSomeValueNonCopying(inter, newInnerValue) + + // chain the migrations + value = migratedValue + } + + case *interpreter.ArrayValue: + array := typedValue + + // Migrate array elements + count := array.Count() + for index := 0; index < count; index++ { + + element := array.Get(inter, emptyLocationRange, index) + + newElement := m.MigrateNestedValue( + storageKey, + storageMapKey, + element, + valueMigrations, + reporter, + allowMutation, + ValueMigrationPositionOther, + ) + + if newElement == nil { + continue + } + + // We should only check if we're allowed to mutate if we actually are going to mutate, + // i.e. if newValue != nil. It might be the case that none of the values need to be migrated, + // in which case we should not panic with an error that we're not allowed to mutate + + if !allowMutation { + panic(errors.NewUnexpectedError( + "mutation not allowed: attempting to migrate array element at index %d: %s", + index, + element, + )) + } + + existingStorable := array.RemoveWithoutTransfer( + inter, + emptyLocationRange, + index, + ) + + interpreter.StoredValue(inter, existingStorable, m.storage). + DeepRemove(inter) + inter.RemoveReferencedSlab(existingStorable) + + array.InsertWithoutTransfer( + inter, + emptyLocationRange, + index, + newElement, + ) + } + + case *interpreter.CompositeValue: + composite := typedValue + + // Read the field names first, so the iteration wouldn't be affected + // by the modification of the nested values. + var fieldNames []string + composite.ForEachFieldName(func(fieldName string) (resume bool) { + fieldNames = append(fieldNames, fieldName) + return true + }) + + for _, fieldName := range fieldNames { + existingValue := composite.GetField( + inter, + emptyLocationRange, + fieldName, + ) + + newValue := m.MigrateNestedValue( + storageKey, + storageMapKey, + existingValue, + valueMigrations, + reporter, + allowMutation, + ValueMigrationPositionOther, + ) + + if newValue == nil { + continue + } + + // We should only check if we're allowed to mutate if we actually are going to mutate, + // i.e. if newValue != nil. It might be the case that none of the values need to be migrated, + // in which case we should not panic with an error that we're not allowed to mutate + + if !allowMutation { + panic(errors.NewUnexpectedError( + "mutation not allowed: attempting to migrate composite value field %s: %s", + fieldName, + existingValue, + )) + } + + composite.SetMemberWithoutTransfer( + inter, + emptyLocationRange, + fieldName, + newValue, + ) + } + + case *interpreter.DictionaryValue: + dictionary := typedValue + + // Dictionaries are migrated in two passes: + // First, the keys are migrated, then the values. + // + // This is necessary because in the atree register inlining version, + // only the read-only iterator is able to read old keys, + // as they potentially have different hash values. + // The mutating iterator is only able to read new keys, + // as it recalculates the stored values' hashes. + + m.migrateDictionaryKeys( + storageKey, + storageMapKey, + dictionary, + valueMigrations, + reporter, + allowMutation, + ) + + m.migrateDictionaryValues( + storageKey, + storageMapKey, + dictionary, + valueMigrations, + reporter, + allowMutation, + ) + + case *interpreter.PublishedValue: + publishedValue := typedValue + newInnerValue := m.MigrateNestedValue( + storageKey, + storageMapKey, + publishedValue.Value, + valueMigrations, + reporter, + allowMutation, + ValueMigrationPositionOther, + ) + if newInnerValue != nil { + newInnerCapability := newInnerValue.(interpreter.CapabilityValue) + migratedValue = interpreter.NewPublishedValue( + inter, + publishedValue.Recipient, + newInnerCapability, + ) + + // chain the migrations + value = migratedValue + } + } + + // Once the children are migrated, then migrate the current/wrapper value. + // Result of each migration is passed as the input to the next migration. + // i.e: A single value is migrated by all the migrations, before moving onto the next value. + + for _, migration := range valueMigrations { + convertedValue, err := m.migrate( + migration, + storageKey, + storageMapKey, + value, + position, + ) + + if err != nil { + if reporter != nil { + if _, ok := err.(StorageMigrationError); !ok { + err = StorageMigrationError{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + Migration: migration.Name(), + Err: err, + } + } + + reporter.Error(err) + } + continue + } + + if convertedValue != nil { + + // Sanity check: ensure that the owner of the new value + // is the same as the owner of the old value + if ownedValue, ok := value.(interpreter.OwnedValue); ok { + if ownedConvertedValue, ok := convertedValue.(interpreter.OwnedValue); ok { + convertedOwner := ownedConvertedValue.GetOwner() + originalOwner := ownedValue.GetOwner() + if convertedOwner != originalOwner { + panic(errors.NewUnexpectedError( + "migrated value has different owner: expected %s, got %s", + originalOwner, + convertedOwner, + )) + } + } + } + + // Chain the migrations. + value = convertedValue + + migratedValue = convertedValue + + if reporter != nil { + reporter.Migrated( + storageKey, + storageMapKey, + migration.Name(), + ) + } + } + } + return + +} + +func (m *StorageMigration) migrateDictionaryKeys( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + dictionary *interpreter.DictionaryValue, + valueMigrations []ValueMigration, + reporter Reporter, + allowMutation bool, +) { + inter := m.interpreter + + var existingKeys []interpreter.Value + + dictionary.IterateKeys( + inter, + func(key interpreter.Value) (resume bool) { + + existingKeys = append(existingKeys, key) + + // Continue iteration + return true + }, + ) + + for _, existingKey := range existingKeys { + + newKey := m.MigrateNestedValue( + storageKey, + storageMapKey, + existingKey, + valueMigrations, + reporter, + // NOTE: Mutation of keys is not allowed. + false, + ValueMigrationPositionDictionaryKey, + ) + + if newKey == nil { + continue + } + + // We should only check if we're allowed to mutate if we actually are going to mutate, + // i.e. if newKey != nil. It might be the case that none of the keys need to be migrated, + // in which case we should not panic with an error that we're not allowed to mutate + + if !allowMutation { + panic(errors.NewUnexpectedError( + "mutation not allowed: attempting to migrate dictionary key: %s", + existingKey, + )) + } + + // We only reach here because key needs to be migrated. + + // Remove the old key-value pair. + + var existingKeyStorable, existingValueStorable atree.Storable + + legacyKey := LegacyKey(existingKey) + if legacyKey != nil { + existingKeyStorable, existingValueStorable = dictionary.RemoveWithoutTransfer( + inter, + emptyLocationRange, + legacyKey, + ) + } + if existingKeyStorable == nil { + existingKeyStorable, existingValueStorable = dictionary.RemoveWithoutTransfer( + inter, + emptyLocationRange, + existingKey, + ) + } + if existingKeyStorable == nil { + panic(errors.NewUnexpectedError( + "failed to remove old value for migrated key: %s", + existingKey, + )) + } + + // Remove existing key since old key is migrated + interpreter.StoredValue(inter, existingKeyStorable, m.storage). + DeepRemove(inter) + inter.RemoveReferencedSlab(existingKeyStorable) + + // Convert removed value storable to Value. + existingValue := interpreter.StoredValue(inter, existingValueStorable, m.storage) + + // Handle dictionary key conflicts. + // + // If the dictionary contains the key/value pairs + // - key1: value1 + // - key2: value2 + // + // then key1 is migrated to key1_migrated, and value1 is migrated to value1_migrated. + // + // If key1_migrated happens to be equal to key2, then we have a conflict. + // + // Check if the key to set already exists. + // + // - If it already exists, leave it as is, and store the migrated key-value pair + // into a new dictionary under a new unique storage path, and report it. + // + // The new key that already exists, key2, was already or will be migrated, + // so we must NOT handle it here (e.g. remove it from the dictionary). + // + // - If it does not exist, insert the migrated key-value pair normally. + + // NOTE: Do NOT attempt to change the logic here to instead remove newKey + // and move it to the new dictionary instead! + + if dictionary.ContainsKey( + inter, + emptyLocationRange, + newKey, + ) { + newValue := m.MigrateNestedValue( + storageKey, + storageMapKey, + existingValue, + valueMigrations, + reporter, + allowMutation, + ValueMigrationPositionOther, + ) + + var valueToSet interpreter.Value + if newValue == nil { + valueToSet = existingValue + } else { + valueToSet = newValue + + // Remove existing value since value is migrated. + existingValue.DeepRemove(inter) + inter.RemoveReferencedSlab(existingValueStorable) + } + + owner := dictionary.GetOwner() + + pathDomain := common.PathDomainStorage + + storageMap := m.storage.GetStorageMap(owner, pathDomain.Identifier(), true) + conflictDictionary := interpreter.NewDictionaryValueWithAddress( + inter, + emptyLocationRange, + dictionary.Type, + owner, + ) + conflictDictionary.InsertWithoutTransfer( + inter, + emptyLocationRange, + newKey, + valueToSet, + ) + + conflictStorageMapKey := m.nextDictionaryKeyConflictStorageMapKey() + + addressPath := interpreter.AddressPath{ + Address: owner, + Path: interpreter.PathValue{ + Domain: pathDomain, + Identifier: string(conflictStorageMapKey), + }, + } + + if storageMap.ValueExists(conflictStorageMapKey) { + panic(errors.NewUnexpectedError( + "conflict storage map key already exists: %s", addressPath, + )) + } + + storageMap.SetValue( + inter, + conflictStorageMapKey, + conflictDictionary, + ) + + reporter.DictionaryKeyConflict(addressPath) + + } else { + + // No conflict, insert the new key and existing value pair + // Don't migrate value here because we are going to migrate all values in the dictionary next. + + dictionary.InsertWithoutTransfer( + inter, + emptyLocationRange, + newKey, + existingValue, + ) + } + } +} + +func (m *StorageMigration) migrateDictionaryValues( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + dictionary *interpreter.DictionaryValue, + valueMigrations []ValueMigration, + reporter Reporter, + allowMutation bool, +) { + + inter := m.interpreter + + type keyValuePair struct { + key, value interpreter.Value + } + + var existingKeysAndValues []keyValuePair + + dictionary.Iterate( + inter, + func(key, value interpreter.Value) (resume bool) { + + existingKeysAndValues = append( + existingKeysAndValues, + keyValuePair{ + key: key, + value: value, + }, + ) + + // Continue iteration + return true + }, + emptyLocationRange, + ) + + for _, existingKeyAndValue := range existingKeysAndValues { + existingKey := existingKeyAndValue.key + existingValue := existingKeyAndValue.value + + newValue := m.MigrateNestedValue( + storageKey, + storageMapKey, + existingValue, + valueMigrations, + reporter, + allowMutation, + ValueMigrationPositionOther, + ) + + if newValue == nil { + continue + } + + // We should only check if we're allowed to mutate if we actually are going to mutate, + // i.e. if newValue != nil. It might be the case that none of the values need to be migrated, + // in which case we should not panic with an error that we're not allowed to mutate + + if !allowMutation { + panic(errors.NewUnexpectedError( + "mutation not allowed: attempting to migrate dictionary value: %s", + existingValue, + )) + } + + // Set new value with existing key in the dictionary. + existingValueStorable := dictionary.InsertWithoutTransfer( + inter, + emptyLocationRange, + existingKey, + newValue, + ) + if existingValueStorable == nil { + panic(errors.NewUnexpectedError( + "failed to set migrated value for key: %s", + existingKey, + )) + } + + // Remove existing value since value is migrated + interpreter.StoredValue(inter, existingValueStorable, m.storage). + DeepRemove(inter) + inter.RemoveReferencedSlab(existingValueStorable) + } +} + +func (m *StorageMigration) nextDictionaryKeyConflictStorageMapKey() interpreter.StringStorageMapKey { + m.dictionaryKeyConflicts++ + return m.DictionaryKeyConflictStorageMapKey(m.dictionaryKeyConflicts) +} + +func (m *StorageMigration) DictionaryKeyConflictStorageMapKey(index int) interpreter.StringStorageMapKey { + return interpreter.StringStorageMapKey(fmt.Sprintf( + "cadence1_%s_dictionaryKeyConflict_%d", + m.name, + index, + )) +} + +type StorageMigrationError struct { + StorageKey interpreter.StorageKey + StorageMapKey interpreter.StorageMapKey + Migration string + Err error + Stack []byte +} + +func (e StorageMigrationError) Error() string { + return fmt.Sprintf( + "failed to perform migration %s for %s, %s: %s\n%s", + e.Migration, + e.StorageKey, + e.StorageMapKey, + e.Err.Error(), + e.Stack, + ) +} + +func (m *StorageMigration) migrate( + migration ValueMigration, + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + value interpreter.Value, + position ValueMigrationPosition, +) ( + converted interpreter.Value, + err error, +) { + + // Handles panics from each individual migrations (e.g: capcon migration, static type migration, etc.). + // So even if one migration panics, others could still run (i.e: panics are caught inside the loop). + // Removing that would cause all migrations to stop for a particular value, if one of them panics. + // NOTE: this won't catch panics occur at the migration framework level. + // They are caught at `StorageMigration.MigrateNestedValue()`. + defer func() { + if r := recover(); r != nil { + var ok bool + err, ok = r.(error) + if !ok { + err = fmt.Errorf("%v", r) + } + + var stack []byte + if m.stacktraceEnabled { + stack = debug.Stack() + } + + err = StorageMigrationError{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + Migration: migration.Name(), + Err: err, + Stack: stack, + } + } + }() + + return migration.Migrate( + storageKey, + storageMapKey, + value, + m.interpreter, + position, + ) +} + +// LegacyKey return the same type with the "old" hash/ID generation function. +func LegacyKey(key interpreter.Value) interpreter.Value { + switch key := key.(type) { + case interpreter.TypeValue: + legacyType := legacyType(key.Type) + if legacyType != nil { + return interpreter.NewUnmeteredTypeValue(legacyType) + } + + case *interpreter.StringValue: + return &LegacyStringValue{ + StringValue: key, + } + + case interpreter.CharacterValue: + return &LegacyCharacterValue{ + CharacterValue: key, + } + } + + return nil +} + +func legacyType(staticType interpreter.StaticType) interpreter.StaticType { + switch typ := staticType.(type) { + case *interpreter.IntersectionStaticType: + return &LegacyIntersectionType{ + IntersectionStaticType: typ, + } + + case *interpreter.ConstantSizedStaticType: + legacyType := legacyType(typ.Type) + if legacyType != nil { + return interpreter.NewConstantSizedStaticType(nil, legacyType, typ.Size) + } + + case *interpreter.VariableSizedStaticType: + legacyType := legacyType(typ.Type) + if legacyType != nil { + return interpreter.NewVariableSizedStaticType(nil, legacyType) + } + + case *interpreter.DictionaryStaticType: + legacyKeyType := legacyType(typ.KeyType) + legacyValueType := legacyType(typ.ValueType) + if legacyKeyType != nil && legacyValueType != nil { + return interpreter.NewDictionaryStaticType(nil, legacyKeyType, legacyValueType) + } + if legacyKeyType != nil { + return interpreter.NewDictionaryStaticType(nil, legacyKeyType, typ.ValueType) + } + if legacyValueType != nil { + return interpreter.NewDictionaryStaticType(nil, typ.KeyType, legacyValueType) + } + + case *interpreter.OptionalStaticType: + optionalType := typ + + legacyInnerType := legacyType(typ.Type) + if legacyInnerType != nil { + optionalType = interpreter.NewOptionalStaticType(nil, legacyInnerType) + } + + return &LegacyOptionalType{ + OptionalStaticType: optionalType, + } + + case *interpreter.CapabilityStaticType: + legacyBorrowType := legacyType(typ.BorrowType) + if legacyBorrowType != nil { + return interpreter.NewCapabilityStaticType(nil, legacyBorrowType) + } + + case *interpreter.ReferenceStaticType: + referenceType := typ + + legacyReferencedType := legacyType(typ.ReferencedType) + if legacyReferencedType != nil { + referenceType = interpreter.NewReferenceStaticType(nil, typ.Authorization, legacyReferencedType) + } + + return &LegacyReferenceType{ + ReferenceStaticType: referenceType, + } + + case interpreter.PrimitiveStaticType: + switch typ { + case interpreter.PrimitiveStaticTypeAuthAccount, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountAccountCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountStorageCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountContracts, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountContracts, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountKeys, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountKeys, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountInbox, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAccountKey: //nolint:staticcheck + return LegacyPrimitiveStaticType{ + PrimitiveStaticType: typ, + } + } + } + + return nil +} diff --git a/migrations/migration_reporter.go b/migrations/migration_reporter.go new file mode 100644 index 0000000000..bf070e6c39 --- /dev/null +++ b/migrations/migration_reporter.go @@ -0,0 +1,31 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import "github.com/onflow/cadence/runtime/interpreter" + +type Reporter interface { + Migrated( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + migration string, + ) + DictionaryKeyConflict(addressPath interpreter.AddressPath) + Error(err error) +} diff --git a/migrations/migration_test.go b/migrations/migration_test.go new file mode 100644 index 0000000000..8cf592af51 --- /dev/null +++ b/migrations/migration_test.go @@ -0,0 +1,3234 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package migrations + +import ( + "bytes" + _ "embed" + "encoding/csv" + "encoding/hex" + "errors" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/atree" + + "github.com/onflow/cadence" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +type testReporter struct { + migrated map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string + errors []error +} + +var _ Reporter = &testReporter{} + +func newTestReporter() *testReporter { + return &testReporter{ + migrated: map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string{}, + } +} + +func (t *testReporter) Migrated( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + migration string, +) { + key := struct { + interpreter.StorageKey + interpreter.StorageMapKey + }{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + } + + t.migrated[key] = append( + t.migrated[key], + migration, + ) +} + +func (t *testReporter) Error(err error) { + t.errors = append(t.errors, err) +} + +func (t *testReporter) DictionaryKeyConflict(addressPath interpreter.AddressPath) { + // For testing purposes, record the conflict as an error + t.errors = append(t.errors, fmt.Errorf("dictionary key conflict: %s", addressPath)) +} + +// testStringMigration + +type testStringMigration struct{} + +var _ ValueMigration = testStringMigration{} + +func (testStringMigration) Name() string { + return "testStringMigration" +} + +func (testStringMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + if value, ok := value.(*interpreter.StringValue); ok { + return interpreter.NewUnmeteredStringValue(fmt.Sprintf("updated_%s", value.Str)), nil + } + + return nil, nil +} + +func (testStringMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testStringMigration) Domains() map[string]struct{} { + return nil +} + +// testInt8Migration + +type testInt8Migration struct { + mustError bool +} + +var _ ValueMigration = testInt8Migration{} + +func (testInt8Migration) Name() string { + return "testInt8Migration" +} + +func (m testInt8Migration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + int8Value, ok := value.(interpreter.Int8Value) + if !ok { + return nil, nil + } + + if m.mustError { + return nil, errors.New("error occurred while migrating int8") + } + + return interpreter.NewUnmeteredInt8Value(int8(int8Value) + 10), nil +} + +func (testInt8Migration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testInt8Migration) Domains() map[string]struct{} { + return nil +} + +// testCapMigration + +type testCapMigration struct{} + +var _ ValueMigration = testCapMigration{} + +func (testCapMigration) Name() string { + return "testCapMigration" +} + +func (testCapMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + if value, ok := value.(*interpreter.IDCapabilityValue); ok { + return interpreter.NewCapabilityValue( + nil, + value.ID+10, + value.Address, + value.BorrowType, + ), nil + } + + return nil, nil +} + +func (testCapMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testCapMigration) Domains() map[string]struct{} { + return nil +} + +// testCapConMigration + +type testCapConMigration struct{} + +var _ ValueMigration = testCapConMigration{} + +func (testCapConMigration) Name() string { + return "testCapConMigration" +} + +func (testCapConMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + switch value := value.(type) { + case *interpreter.StorageCapabilityControllerValue: + return interpreter.NewStorageCapabilityControllerValue( + nil, + value.BorrowType, + value.CapabilityID+10, + value.TargetPath, + ), nil + + case *interpreter.AccountCapabilityControllerValue: + return interpreter.NewAccountCapabilityControllerValue( + nil, + value.BorrowType, + value.CapabilityID+10, + ), nil + + case interpreter.UInt64Value: + return value + 10, nil + + case interpreter.NilValue: + return value, nil + } + + return nil, nil +} + +func (testCapConMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testCapConMigration) Domains() map[string]struct{} { + return nil +} + +func TestMultipleMigrations(t *testing.T) { + t.Parallel() + + account := common.Address{0x42} + + type testCase struct { + name string + migration string + storedValue interpreter.Value + expectedValue interpreter.Value + key string + } + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + locationRange := interpreter.EmptyLocationRange + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + testCases := []testCase{ + { + name: "string_value", + key: common.PathDomainStorage.Identifier(), + migration: "testStringMigration", + storedValue: interpreter.NewUnmeteredStringValue("hello"), + expectedValue: interpreter.NewUnmeteredStringValue("updated_hello"), + }, + { + name: "int8_value", + key: common.PathDomainStorage.Identifier(), + migration: "testInt8Migration", + storedValue: interpreter.NewUnmeteredInt8Value(5), + expectedValue: interpreter.NewUnmeteredInt8Value(15), + }, + { + name: "int16_value", + key: common.PathDomainStorage.Identifier(), + migration: "", // should not be migrated + storedValue: interpreter.NewUnmeteredInt16Value(5), + expectedValue: interpreter.NewUnmeteredInt16Value(5), + }, + { + name: "storage_cap_value", + key: common.PathDomainStorage.Identifier(), + migration: "testCapMigration", + storedValue: interpreter.NewCapabilityValue( + nil, + 5, + interpreter.AddressValue(common.Address{0x1}), + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeString, + ), + ), + expectedValue: interpreter.NewCapabilityValue( + nil, + 15, + interpreter.AddressValue(common.Address{0x1}), + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeString, + ), + ), + }, + { + name: "inbox_cap_value", + key: stdlib.InboxStorageDomain, + migration: "testCapMigration", + storedValue: interpreter.NewPublishedValue( + nil, + interpreter.AddressValue(common.Address{0x2}), + interpreter.NewCapabilityValue( + nil, + 5, + interpreter.AddressValue(common.Address{0x1}), + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeString, + ), + ), + ), + expectedValue: interpreter.NewPublishedValue( + nil, + interpreter.AddressValue(common.Address{0x2}), + interpreter.NewCapabilityValue( + nil, + 15, + interpreter.AddressValue(common.Address{0x1}), + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeString, + ), + ), + ), + }, + } + + variableSizedAnyStructStaticType := + interpreter.NewVariableSizedStaticType(nil, interpreter.PrimitiveStaticTypeAnyStruct) + + dictionaryAnyStructStaticType := + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeAnyStruct, + interpreter.PrimitiveStaticTypeAnyStruct, + ) + + for _, test := range testCases { + + if test.key != common.PathDomainStorage.Identifier() { + continue + } + + testCases = append(testCases, testCase{ + name: "array_" + test.name, + key: test.key, + migration: test.migration, + storedValue: interpreter.NewArrayValue( + inter, + emptyLocationRange, + variableSizedAnyStructStaticType, + common.ZeroAddress, + test.storedValue, + ), + expectedValue: interpreter.NewArrayValue( + inter, + emptyLocationRange, + variableSizedAnyStructStaticType, + common.ZeroAddress, + test.expectedValue, + ), + }) + + if _, ok := test.storedValue.(interpreter.HashableValue); ok { + + testCases = append(testCases, testCase{ + name: "dict_key_" + test.name, + key: test.key, + migration: test.migration, + storedValue: interpreter.NewDictionaryValue( + inter, + emptyLocationRange, + dictionaryAnyStructStaticType, + test.storedValue, + interpreter.TrueValue, + ), + + expectedValue: interpreter.NewDictionaryValue( + inter, + emptyLocationRange, + dictionaryAnyStructStaticType, + test.expectedValue, + interpreter.TrueValue, + ), + }) + } + + testCases = append(testCases, testCase{ + name: "dict_value_" + test.name, + key: test.key, + migration: test.migration, + storedValue: interpreter.NewDictionaryValue( + inter, + emptyLocationRange, + dictionaryAnyStructStaticType, + interpreter.TrueValue, + test.storedValue, + ), + expectedValue: interpreter.NewDictionaryValue( + inter, + emptyLocationRange, + dictionaryAnyStructStaticType, + interpreter.TrueValue, + test.expectedValue, + ), + }) + + testCases = append(testCases, testCase{ + name: "some_" + test.name, + key: test.key, + migration: test.migration, + storedValue: interpreter.NewSomeValueNonCopying(nil, test.storedValue), + expectedValue: interpreter.NewSomeValueNonCopying(nil, test.expectedValue), + }) + + if _, ok := test.storedValue.(*interpreter.IDCapabilityValue); ok { + + testCases = append(testCases, testCase{ + name: "published_" + test.name, + key: test.key, + migration: test.migration, + storedValue: interpreter.NewPublishedValue( + nil, + interpreter.AddressValue(common.ZeroAddress), + test.storedValue.(*interpreter.IDCapabilityValue), + ), + expectedValue: interpreter.NewPublishedValue( + nil, + interpreter.AddressValue(common.ZeroAddress), + test.expectedValue.(*interpreter.IDCapabilityValue), + ), + }) + } + + testCases = append(testCases, testCase{ + name: "struct_" + test.name, + key: test.key, + migration: test.migration, + storedValue: interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + "S", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: test.storedValue, + }, + }, + common.ZeroAddress, + ), + expectedValue: interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + "S", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: test.expectedValue, + }, + }, + common.ZeroAddress, + ), + }) + } + + // Store values + + for _, testCase := range testCases { + transferredValue := testCase.storedValue.Transfer( + inter, + locationRange, + atree.Address(account), + false, + nil, + nil, + ) + + inter.WriteStored( + account, + testCase.key, + interpreter.StringStorageMapKey(testCase.name), + transferredValue, + ) + } + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + reporter := newTestReporter() + + migration, err := NewStorageMigration( + inter, + storage, + "test", + account, + ) + require.NoError(t, err) + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testStringMigration{}, + testInt8Migration{}, + testCapMigration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + for _, testCase := range testCases { + + t.Run(testCase.name, func(t *testing.T) { + + storageMap := storage.GetStorageMap(account, testCase.key, false) + require.NotNil(t, storageMap) + + readValue := storageMap.ReadValue(nil, interpreter.StringStorageMapKey(testCase.name)) + + utils.AssertValuesEqual(t, + inter, + testCase.expectedValue, + readValue, + ) + }) + } + + // Check the reporter + expectedMigrations := map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string{} + + for _, testCase := range testCases { + + if testCase.migration == "" { + continue + } + + key := struct { + interpreter.StorageKey + interpreter.StorageMapKey + }{ + StorageKey: interpreter.StorageKey{ + Address: account, + Key: testCase.key, + }, + StorageMapKey: interpreter.StringStorageMapKey(testCase.name), + } + + expectedMigrations[key] = append( + expectedMigrations[key], + testCase.migration, + ) + } + + require.Equal(t, + expectedMigrations, + reporter.migrated, + ) +} + +func TestMigrationError(t *testing.T) { + t.Parallel() + + account := common.Address{0x42} + pathDomain := common.PathDomainPublic + + type testCase struct { + storedValue interpreter.Value + expectedValue interpreter.Value + } + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + locationRange := interpreter.EmptyLocationRange + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + testCases := map[string]testCase{ + "string_value": { + storedValue: interpreter.NewUnmeteredStringValue("hello"), + expectedValue: interpreter.NewUnmeteredStringValue("updated_hello"), + }, + // Since Int8 migration expected to produce error, + // int8 value should not have been migrated. + "int8_value": { + storedValue: interpreter.NewUnmeteredInt8Value(5), + expectedValue: interpreter.NewUnmeteredInt8Value(5), + }, + } + + // Store values + + for name, testCase := range testCases { + transferredValue := testCase.storedValue.Transfer( + inter, + locationRange, + atree.Address(account), + false, + nil, + nil, + ) + + inter.WriteStored( + account, + pathDomain.Identifier(), + interpreter.StringStorageMapKey(name), + transferredValue, + ) + } + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", account) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testStringMigration{}, + + // Int8 migration should produce errors + testInt8Migration{ + mustError: true, + }, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + require.Equal(t, + []error{ + StorageMigrationError{ + StorageKey: interpreter.StorageKey{ + Address: account, + Key: pathDomain.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("int8_value"), + Migration: "testInt8Migration", + Err: errors.New("error occurred while migrating int8"), + }, + }, + reporter.errors, + ) + + err = storage.CheckHealth() + require.NoError(t, err) + + // Assert: Traverse through the storage and see if the values are updated now. + + storageMap := storage.GetStorageMap(account, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Greater(t, storageMap.Count(), uint64(0)) + + iterator := storageMap.Iterator(inter) + + for key, value := iterator.Next(); key != nil; key, value = iterator.Next() { + identifier := string(key.(interpreter.StringAtreeValue)) + + t.Run(identifier, func(t *testing.T) { + testCase, ok := testCases[identifier] + require.True(t, ok) + utils.AssertValuesEqual(t, inter, testCase.expectedValue, value) + }) + } + + // Check the reporter. + // Since Int8 migration produces an error, only the string value must have been migrated. + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string{ + { + StorageKey: interpreter.StorageKey{ + Address: account, + Key: pathDomain.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey("string_value"), + }: { + "testStringMigration", + }, + }, + reporter.migrated, + ) +} + +func TestCapConMigration(t *testing.T) { + + t.Parallel() + + testAddress := common.MustBytesToAddress([]byte{0x1}) + + rt := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{testAddress}, nil + }, + } + + // Prepare + + setupTx := ` + transaction { + prepare(signer: auth(Capabilities) &Account) { + signer.capabilities.storage.issue<&AnyStruct>(/storage/foo) + signer.capabilities.account.issue<&Account>() + } + } + ` + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: []byte(setupTx), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + capConStorageMap := storage.GetStorageMap( + testAddress, + stdlib.CapabilityControllerStorageDomain, + false, + ) + + assert.Equal(t, uint64(2), capConStorageMap.Count()) + + controller1 := capConStorageMap.ReadValue(nil, interpreter.Uint64StorageMapKey(1)) + require.IsType(t, &interpreter.StorageCapabilityControllerValue{}, controller1) + assert.Equal(t, + interpreter.UInt64Value(1), + controller1.(*interpreter.StorageCapabilityControllerValue).CapabilityID, + ) + + controller2 := capConStorageMap.ReadValue(nil, interpreter.Uint64StorageMapKey(2)) + require.IsType(t, &interpreter.AccountCapabilityControllerValue{}, controller2) + assert.Equal(t, + interpreter.UInt64Value(2), + controller2.(*interpreter.AccountCapabilityControllerValue).CapabilityID, + ) + + pathCapStorageMap := storage.GetStorageMap( + testAddress, + stdlib.PathCapabilityStorageDomain, + false, + ) + + pathCapSet := pathCapStorageMap.ReadValue(nil, interpreter.StringStorageMapKey("foo")) + require.IsType(t, &interpreter.DictionaryValue{}, pathCapSet) + capSetDict := pathCapSet.(*interpreter.DictionaryValue) + assert.Equal(t, 1, capSetDict.Count()) + assert.True(t, bool(capSetDict.ContainsKey(inter, emptyLocationRange, interpreter.UInt64Value(1)))) + + accountCapStorageMap := storage.GetStorageMap( + testAddress, + stdlib.AccountCapabilityStorageDomain, + false, + ) + + accountCapEntry := accountCapStorageMap.ReadValue(nil, interpreter.Uint64StorageMapKey(2)) + assert.NotNil(t, accountCapEntry) + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testCapConMigration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(1), + }: {"testCapConMigration"}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: stdlib.CapabilityControllerStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(2), + }: {"testCapConMigration"}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: stdlib.PathCapabilityStorageDomain, + }, + StorageMapKey: interpreter.StringStorageMapKey("foo"), + }: {"testCapConMigration", "testCapConMigration"}, + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: stdlib.AccountCapabilityStorageDomain, + }, + StorageMapKey: interpreter.Uint64StorageMapKey(2), + }: {"testCapConMigration"}, + }, + reporter.migrated, + ) + + err = storage.CheckHealth() + require.NoError(t, err) + + capConStorageMap = storage.GetStorageMap( + testAddress, + stdlib.CapabilityControllerStorageDomain, + false, + ) + + assert.Equal(t, uint64(2), capConStorageMap.Count()) + + controller1 = capConStorageMap.ReadValue(nil, interpreter.Uint64StorageMapKey(1)) + require.IsType(t, &interpreter.StorageCapabilityControllerValue{}, controller1) + assert.Equal(t, + interpreter.UInt64Value(11), + controller1.(*interpreter.StorageCapabilityControllerValue).CapabilityID, + ) + + controller2 = capConStorageMap.ReadValue(nil, interpreter.Uint64StorageMapKey(2)) + require.IsType(t, &interpreter.AccountCapabilityControllerValue{}, controller2) + assert.Equal(t, + interpreter.UInt64Value(12), + controller2.(*interpreter.AccountCapabilityControllerValue).CapabilityID, + ) + + pathCapStorageMap = storage.GetStorageMap( + testAddress, + stdlib.PathCapabilityStorageDomain, + false, + ) + + pathCapSet = pathCapStorageMap.ReadValue(nil, interpreter.StringStorageMapKey("foo")) + require.IsType(t, &interpreter.DictionaryValue{}, pathCapSet) + capSetDict = pathCapSet.(*interpreter.DictionaryValue) + assert.Equal(t, 1, capSetDict.Count()) + assert.True(t, bool(capSetDict.ContainsKey(inter, emptyLocationRange, interpreter.UInt64Value(11)))) + + accountCapStorageMap = storage.GetStorageMap( + testAddress, + stdlib.AccountCapabilityStorageDomain, + false, + ) + + accountCapEntry = accountCapStorageMap.ReadValue(nil, interpreter.Uint64StorageMapKey(2)) + assert.NotNil(t, accountCapEntry) +} + +func TestContractMigration(t *testing.T) { + + t.Parallel() + + testAddress := common.MustBytesToAddress([]byte{0x1}) + + rt := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]runtime.Address, error) { + return []runtime.Address{testAddress}, nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetCode: func(location common.Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + } + + const testContract = ` + access(all) + contract Test { + + access(all) + let foo: String + + init() { + self.foo = "bar" + } + } + ` + + // Prepare + + nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() + + err := rt.ExecuteTransaction( + runtime.Script{ + Source: utils.DeploymentTransaction("Test", []byte(testContract)), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + storage, inter, err := rt.Storage(runtime.Context{ + Interface: runtimeInterface, + }) + require.NoError(t, err) + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testStringMigration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + assert.Len(t, reporter.migrated, 1) + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + value, err := rt.ExecuteScript( + runtime.Script{ + Source: []byte(` + import Test from 0x1 + + access(all) + fun main(): String { + return Test.foo + } + `), + }, + runtime.Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) + + require.Equal(t, + cadence.String("updated_bar"), + value, + ) +} + +// testCompositeValueMigration + +type testCompositeValueMigration struct { +} + +var _ ValueMigration = testCompositeValueMigration{} + +func (testCompositeValueMigration) Name() string { + return "testCompositeValueMigration" +} + +func (m testCompositeValueMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + inter *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + compositeValue, ok := value.(*interpreter.CompositeValue) + if !ok { + return nil, nil + } + + return interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + "S2", + common.CompositeKindStructure, + nil, + common.Address(compositeValue.StorageAddress()), + ), nil +} + +func (testCompositeValueMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testCompositeValueMigration) Domains() map[string]struct{} { + return nil +} + +func TestEmptyIntersectionTypeMigration(t *testing.T) { + + t.Parallel() + + testAddress := common.MustBytesToAddress([]byte{0x1}) + + rt := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + } + + // Prepare + + storage, inter, err := rt.Storage(runtime.Context{ + Location: utils.TestLocation, + Interface: runtimeInterface, + }) + require.NoError(t, err) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + elaboration := sema.NewElaboration(nil) + + const s1QualifiedIdentifier = "S1" + const s2QualifiedIdentifier = "S2" + + elaboration.SetCompositeType( + utils.TestLocation.TypeID(nil, s1QualifiedIdentifier), + &sema.CompositeType{ + Location: utils.TestLocation, + Members: &sema.StringMemberOrderedMap{}, + Identifier: s1QualifiedIdentifier, + Kind: common.CompositeKindStructure, + }, + ) + + elaboration.SetCompositeType( + utils.TestLocation.TypeID(nil, s2QualifiedIdentifier), + &sema.CompositeType{ + Location: utils.TestLocation, + Members: &sema.StringMemberOrderedMap{}, + Identifier: s2QualifiedIdentifier, + Kind: common.CompositeKindStructure, + }, + ) + + compositeValue := interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + s1QualifiedIdentifier, + common.CompositeKindStructure, + nil, + testAddress, + ) + + inter.Program = &interpreter.Program{ + Elaboration: elaboration, + } + + // NOTE: create an empty intersection type with a legacy type: AnyStruct{} + emptyIntersectionType := interpreter.NewIntersectionStaticType( + nil, + nil, + ) + emptyIntersectionType.LegacyType = interpreter.PrimitiveStaticTypeAnyStruct + + storageMapKey := interpreter.StringStorageMapKey("test") + + dictionaryKey := interpreter.NewUnmeteredStringValue("foo") + + dictionaryValue := interpreter.NewDictionaryValueWithAddress( + inter, + emptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + emptyIntersectionType, + ), + testAddress, + ) + + dictionaryValue.InsertWithoutTransfer( + inter, + emptyLocationRange, + dictionaryKey, + compositeValue, + ) + + storageMap.WriteValue( + inter, + storageMapKey, + dictionaryValue, + ) + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testCompositeValueMigration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + assert.Len(t, reporter.errors, 0) + assert.Len(t, reporter.migrated, 1) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMap = storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + false, + ) + + assert.Equal(t, uint64(1), storageMap.Count()) + + migratedValue := storageMap.ReadValue(nil, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, migratedValue) + migratedDictionaryValue := migratedValue.(*interpreter.DictionaryValue) + + migratedChildValue, ok := migratedDictionaryValue.Get(inter, emptyLocationRange, dictionaryKey) + require.True(t, ok) + + require.IsType(t, &interpreter.CompositeValue{}, migratedChildValue) + migratedCompositeValue := migratedChildValue.(*interpreter.CompositeValue) + + require.Equal( + t, + s2QualifiedIdentifier, + migratedCompositeValue.QualifiedIdentifier, + ) +} + +// testContainerMigration + +type testContainerMigration struct{} + +var _ ValueMigration = testContainerMigration{} + +func (testContainerMigration) Name() string { + return "testContainerMigration" +} + +func (testContainerMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + inter *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + switch value := value.(type) { + case *interpreter.DictionaryValue: + + newType := interpreter.NewDictionaryStaticType(nil, + interpreter.PrimitiveStaticTypeAnyStruct, + interpreter.PrimitiveStaticTypeAnyStruct, + ) + + value.SetType(newType) + + case *interpreter.ArrayValue: + + newType := interpreter.NewVariableSizedStaticType(nil, + interpreter.PrimitiveStaticTypeAnyStruct, + ) + + value.SetType(newType) + + case *interpreter.CompositeValue: + if value.QualifiedIdentifier == "Inner" { + return interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + "Inner2", + common.CompositeKindStructure, + nil, + value.GetOwner(), + ), nil + } + } + + return nil, nil +} + +func (testContainerMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testContainerMigration) Domains() map[string]struct{} { + return nil +} + +func TestMigratingNestedContainers(t *testing.T) { + + t.Parallel() + + var testAddress = common.Address{0x42} + + migrate := func( + t *testing.T, + valueMigration ValueMigration, + storage *runtime.Storage, + inter *interpreter.Interpreter, + value interpreter.Value, + ) interpreter.Value { + + // Store values + + storageMapKey := interpreter.StringStorageMapKey("test_value") + storageDomain := common.PathDomainStorage.Identifier() + + value = value.Transfer( + inter, + interpreter.EmptyLocationRange, + atree.Address(testAddress), + false, + nil, + nil, + ) + + inter.WriteStored( + testAddress, + storageDomain, + storageMapKey, + value, + ) + + err := storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + valueMigration, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap( + testAddress, + storageDomain, + false, + ) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + result := storageMap.ReadValue(nil, storageMapKey) + require.NotNil(t, value) + + return result + } + + t.Run("nested dictionary, value migrated", func(t *testing.T) { + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + // {"key1": {"key2": 1234}}: {String: {String: Int}} + + storedValue := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt, + ), + ), + interpreter.NewUnmeteredStringValue("key1"), + interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt, + ), + interpreter.NewUnmeteredStringValue("key2"), + interpreter.NewUnmeteredIntValueFromInt64(1234), + ), + ) + + actual := migrate(t, + testContainerMigration{}, + storage, + inter, + storedValue, + ) + + // {AnyStruct: AnyStruct} with {AnyStruct: AnyStruct} + + expected := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeAnyStruct, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + interpreter.NewUnmeteredStringValue("key1"), + interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeAnyStruct, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + interpreter.NewUnmeteredStringValue("key2"), + interpreter.NewUnmeteredIntValueFromInt64(1234), + ), + ) + + utils.AssertValuesEqual(t, inter, expected, actual) + }) + + t.Run("nested dictionary, key migrated", func(t *testing.T) { + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + // {"key1": {"key2": 1234}}: {String: {String: Int}} + + storedValue := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt, + ), + ), + interpreter.NewUnmeteredStringValue("key1"), + interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt, + ), + interpreter.NewUnmeteredStringValue("key2"), + interpreter.NewUnmeteredIntValueFromInt64(1234), + ), + ) + + actual := migrate(t, + testStringMigration{}, + storage, + inter, + storedValue, + ) + + // {"updated_key1": {"updated_key2": 1234}}: {String: {String: Int}} + + expected := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt, + ), + ), + interpreter.NewUnmeteredStringValue("updated_key1"), + interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt, + ), + interpreter.NewUnmeteredStringValue("updated_key2"), + interpreter.NewUnmeteredIntValueFromInt64(1234), + ), + ) + + utils.AssertValuesEqual(t, inter, expected, actual) + }) + + t.Run("nested arrays", func(t *testing.T) { + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + // [["abc"]]: [[String]] + + storedValue := interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + ), + ), + common.ZeroAddress, + interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + ), + common.ZeroAddress, + interpreter.NewUnmeteredStringValue("abc"), + ), + ) + + actual := migrate(t, + testContainerMigration{}, + storage, + inter, + storedValue, + ) + + // [AnyStruct] with [AnyStruct] + + expected := interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + common.ZeroAddress, + interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + common.ZeroAddress, + interpreter.NewUnmeteredStringValue("abc"), + ), + ) + + utils.AssertValuesEqual(t, inter, expected, actual) + }) + + t.Run("nested composite", func(t *testing.T) { + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + // Outer(Inner()) + + storedValue := interpreter.NewCompositeValue( + inter, + locationRange, + utils.TestLocation, + "Outer", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "inner", + Value: interpreter.NewCompositeValue( + inter, + locationRange, + utils.TestLocation, + "Inner", + common.CompositeKindStructure, + nil, + common.ZeroAddress, + ), + }, + }, + common.ZeroAddress, + ) + + actual := migrate(t, + testContainerMigration{}, + storage, + inter, + storedValue, + ) + + // Outer(Inner2()) + + expected := interpreter.NewCompositeValue( + inter, + locationRange, + utils.TestLocation, + "Outer", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "inner", + Value: interpreter.NewCompositeValue( + inter, + locationRange, + utils.TestLocation, + "Inner2", + common.CompositeKindStructure, + nil, + common.ZeroAddress, + ), + }, + }, + common.ZeroAddress, + ) + + utils.AssertValuesEqual(t, inter, expected, actual) + }) +} + +// testPanicMigration + +type testPanicMigration struct{} + +var _ ValueMigration = testInt8Migration{} + +func (testPanicMigration) Name() string { + return "testPanicMigration" +} + +func (m testPanicMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + _ interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + // NOTE: out-of-bounds access, panic + _ = []int{}[0] + + return nil, nil +} + +func (testPanicMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testPanicMigration) Domains() map[string]struct{} { + return nil +} + +func TestMigrationPanic(t *testing.T) { + t.Parallel() + + testAddress := common.Address{0x42} + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + // Store value + + storagePathDomain := common.PathDomainStorage.Identifier() + + storageMapKey := interpreter.StringStorageMapKey("test_value") + + inter.WriteStored( + testAddress, + storagePathDomain, + storageMapKey, + interpreter.NewUnmeteredUInt8Value(42), + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration = migration.WithErrorStacktrace(true) + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testPanicMigration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Len(t, reporter.errors, 1) + + var migrationError StorageMigrationError + require.ErrorAs(t, reporter.errors[0], &migrationError) + + assert.Equal( + t, + interpreter.StorageKey{ + Address: testAddress, + Key: storagePathDomain, + }, + migrationError.StorageKey, + ) + assert.Equal( + t, + storageMapKey, + migrationError.StorageMapKey, + ) + assert.Equal( + t, + "testPanicMigration", + migrationError.Migration, + ) + assert.ErrorContains( + t, + migrationError, + "index out of range", + ) + assert.NotEmpty(t, migrationError.Stack) +} + +type testSkipMigration struct { + migrationCalls []interpreter.Value + canSkip func(valueType interpreter.StaticType) bool +} + +var _ ValueMigration = &testSkipMigration{} + +func (*testSkipMigration) Name() string { + return "testSkipMigration" +} + +func (m *testSkipMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + m.migrationCalls = append(m.migrationCalls, value) + + // Do not actually migrate anything + + return nil, nil +} + +func (m *testSkipMigration) CanSkip(valueType interpreter.StaticType) bool { + return m.canSkip(valueType) +} + +func (*testSkipMigration) Domains() map[string]struct{} { + return nil +} + +func TestSkip(t *testing.T) { + t.Parallel() + + testAddress := common.Address{0x42} + + migrate := func( + t *testing.T, + valueFactory func(interpreter *interpreter.Interpreter) interpreter.Value, + canSkip func(valueType interpreter.StaticType) bool, + ) ( + migrationCalls []interpreter.Value, + inter *interpreter.Interpreter, + ) { + + ledger := NewTestLedger(nil, nil) + + storage := runtime.NewStorage(ledger, nil) + + var err error + inter, err = interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + // Store value + + storagePathDomain := common.PathDomainStorage.Identifier() + storageMapKey := interpreter.StringStorageMapKey("test_value") + + value := valueFactory(inter) + + inter.WriteStored( + testAddress, + storagePathDomain, + storageMapKey, + value, + ) + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + valueMigration := &testSkipMigration{ + canSkip: canSkip, + } + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + valueMigration, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + return valueMigration.migrationCalls, inter + } + + t.Run("skip non-string values", func(t *testing.T) { + t.Parallel() + + var canSkip func(valueType interpreter.StaticType) bool + canSkip = func(valueType interpreter.StaticType) bool { + switch ty := valueType.(type) { + case *interpreter.DictionaryStaticType: + return canSkip(ty.KeyType) && + canSkip(ty.ValueType) + + case interpreter.ArrayStaticType: + return canSkip(ty.ElementType()) + + case *interpreter.OptionalStaticType: + return canSkip(ty.Type) + + case *interpreter.CapabilityStaticType: + return true + + case interpreter.PrimitiveStaticType: + + switch ty { + case interpreter.PrimitiveStaticTypeBool, + interpreter.PrimitiveStaticTypeVoid, + interpreter.PrimitiveStaticTypeAddress, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeBlock, + interpreter.PrimitiveStaticTypeCharacter, + interpreter.PrimitiveStaticTypeCapability: + + return true + } + + if !ty.IsDeprecated() { //nolint:staticcheck + semaType := ty.SemaType() + + if sema.IsSubType(semaType, sema.NumberType) || + sema.IsSubType(semaType, sema.PathType) { + + return true + } + } + } + + return false + } + + t.Run("[{Int: Bool}]", func(t *testing.T) { + + t.Parallel() + + migrationCalls, _ := migrate( + t, + func(inter *interpreter.Interpreter) interpreter.Value { + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt, + interpreter.PrimitiveStaticTypeBool, + ) + + array := interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType( + nil, + dictionaryStaticType, + ), + testAddress, + ) + + array.InsertWithoutTransfer( + inter, + interpreter.EmptyLocationRange, + 0, + interpreter.NewDictionaryValueWithAddress( + inter, + interpreter.EmptyLocationRange, + dictionaryStaticType, + testAddress, + interpreter.NewUnmeteredIntValueFromInt64(42), + interpreter.BoolValue(true), + ), + ) + + return array + }, + canSkip, + ) + + require.Empty(t, migrationCalls) + }) + + t.Run("[{Int: AnyStruct}]", func(t *testing.T) { + + t.Parallel() + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt, + interpreter.PrimitiveStaticTypeAnyStruct, + ) + + newStringValue := func() *interpreter.StringValue { + return interpreter.NewUnmeteredStringValue("abc") + } + + newDictionaryValue := func(inter *interpreter.Interpreter) *interpreter.DictionaryValue { + return interpreter.NewDictionaryValueWithAddress( + inter, + interpreter.EmptyLocationRange, + dictionaryStaticType, + testAddress, + interpreter.NewUnmeteredIntValueFromInt64(42), + newStringValue(), + ) + } + + newArrayValue := func(inter *interpreter.Interpreter) *interpreter.ArrayValue { + array := interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType( + nil, + dictionaryStaticType, + ), + testAddress, + ) + + array.InsertWithoutTransfer( + inter, + interpreter.EmptyLocationRange, + 0, + newDictionaryValue(inter), + ) + + return array + } + + migrationCalls, inter := migrate( + t, + func(inter *interpreter.Interpreter) interpreter.Value { + return newArrayValue(inter) + }, + canSkip, + ) + + // NOTE: the integer value, the key of the dictionary, is skipped! + require.Len(t, migrationCalls, 3) + + // first + + first := migrationCalls[0] + require.IsType(t, &interpreter.StringValue{}, first) + + assert.True(t, + first.(*interpreter.StringValue). + Equal(inter, emptyLocationRange, newStringValue()), + ) + + // second + + second := migrationCalls[1] + require.IsType(t, &interpreter.DictionaryValue{}, second) + + assert.True(t, + second.(*interpreter.DictionaryValue). + Equal(inter, emptyLocationRange, newDictionaryValue(inter)), + ) + + // third + + third := migrationCalls[2] + require.IsType(t, &interpreter.ArrayValue{}, third) + + assert.True(t, + third.(*interpreter.ArrayValue). + Equal(inter, emptyLocationRange, newArrayValue(inter)), + ) + }) + + t.Run("S(foo: {Int: Bool})", func(t *testing.T) { + + t.Parallel() + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt, + interpreter.PrimitiveStaticTypeBool, + ) + + newDictionaryValue := func(inter *interpreter.Interpreter) *interpreter.DictionaryValue { + return interpreter.NewDictionaryValueWithAddress( + inter, + interpreter.EmptyLocationRange, + dictionaryStaticType, + testAddress, + interpreter.NewUnmeteredIntValueFromInt64(42), + interpreter.BoolValue(true), + ) + } + + newCompositeValue := func(inter *interpreter.Interpreter) *interpreter.CompositeValue { + compositeValue := interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + utils.TestLocation, + "S", + common.CompositeKindStructure, + nil, + testAddress, + ) + + compositeValue.SetMemberWithoutTransfer( + inter, + emptyLocationRange, + "foo", + newDictionaryValue(inter), + ) + + return compositeValue + } + + migrationCalls, inter := migrate( + t, + func(inter *interpreter.Interpreter) interpreter.Value { + return newCompositeValue(inter) + }, + canSkip, + ) + + // NOTE: the dictionary value and its children are skipped! + require.Len(t, migrationCalls, 1) + + // first + + first := migrationCalls[0] + require.IsType(t, &interpreter.CompositeValue{}, first) + + assert.True(t, + first.(*interpreter.CompositeValue). + Equal(inter, emptyLocationRange, newCompositeValue(inter)), + ) + }) + + }) +} + +// testPublishedValueMigration + +type testPublishedValueMigration struct{} + +var _ ValueMigration = testPublishedValueMigration{} + +func (testPublishedValueMigration) Name() string { + return "testPublishedValueMigration" +} + +func (testPublishedValueMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + if pathCap, ok := value.(*interpreter.PathCapabilityValue); ok { //nolint:staticcheck + return pathCap, nil + } + + return nil, nil +} + +func (testPublishedValueMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testPublishedValueMigration) Domains() map[string]struct{} { + return nil +} + +func TestPublishedValueMigration(t *testing.T) { + + t.Parallel() + + testAddress := common.MustBytesToAddress([]byte{0x1}) + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + storageMap := storage.GetStorageMap( + testAddress, + stdlib.InboxStorageDomain, + true, + ) + require.NotNil(t, storageMap) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + storageMapKey := interpreter.StringStorageMapKey("test") + + storageMap.WriteValue( + inter, + storageMapKey, + interpreter.NewPublishedValue( + nil, + interpreter.AddressValue(testAddress), + &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: nil, + Path: interpreter.PathValue{ + Domain: common.PathDomainStorage, + Identifier: "foo", + }, + Address: interpreter.AddressValue{0x2}, + }, + ), + ) + + // Migrate + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testPublishedValueMigration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + assert.Len(t, reporter.errors, 0) + assert.Len(t, reporter.migrated, 1) + + err = storage.CheckHealth() + require.NoError(t, err) +} + +// testDomainsMigration + +type testDomainsMigration struct { + domains map[string]struct{} +} + +var _ ValueMigration = testDomainsMigration{} + +func (testDomainsMigration) Name() string { + return "testDomainsMigration" +} + +func (m testDomainsMigration) Migrate( + storageKey interpreter.StorageKey, + _ interpreter.StorageMapKey, + _ interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + if m.domains != nil { + _, ok := m.domains[storageKey.Key] + if !ok { + panic("invalid domain") + } + } + + return interpreter.NewUnmeteredStringValue("42"), nil +} + +func (testDomainsMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (m testDomainsMigration) Domains() map[string]struct{} { + return m.domains +} + +func TestDomainsMigration(t *testing.T) { + + t.Parallel() + + test := func(t *testing.T, migratorDomains map[string]struct{}) { + + testAddress := common.MustBytesToAddress([]byte{0x1}) + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + storageMapKey := interpreter.StringStorageMapKey("test") + + storedDomains := []string{ + common.PathDomainStorage.Identifier(), + common.PathDomainPublic.Identifier(), + common.PathDomainPrivate.Identifier(), + stdlib.InboxStorageDomain, + } + + for _, domain := range storedDomains { + + storageMap := storage.GetStorageMap( + testAddress, + domain, + true, + ) + require.NotNil(t, storageMap) + + storageMap.WriteValue( + inter, + storageMapKey, + interpreter.NewUnmeteredInt8Value(42), + ) + } + + // Migrate + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testDomainsMigration{ + domains: migratorDomains, + }, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + assert.Len(t, reporter.errors, 0) + + expectedMigrated := len(migratorDomains) + if migratorDomains == nil { + expectedMigrated = len(storedDomains) + } + assert.Len(t, reporter.migrated, expectedMigrated) + } + + t.Run("no domains", func(t *testing.T) { + test(t, nil) + }) + + t.Run("only storage", func(t *testing.T) { + t.Parallel() + + test(t, map[string]struct{}{ + common.PathDomainStorage.Identifier(): {}, + }) + }) + + t.Run("only storage and inbox", func(t *testing.T) { + t.Parallel() + + test(t, map[string]struct{}{ + common.PathDomainStorage.Identifier(): {}, + stdlib.InboxStorageDomain: {}, + }) + }) +} + +// testDictionaryKeyConflictMigration + +type testDictionaryKeyConflictMigration struct { + migrateValue bool +} + +var _ ValueMigration = testDictionaryKeyConflictMigration{} + +func (testDictionaryKeyConflictMigration) Name() string { + return "testDictionaryKeyConflictMigration" +} + +func (m testDictionaryKeyConflictMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + typeValue, ok := value.(interpreter.TypeValue) + if ok { + return typeValue, nil + } + + if m.migrateValue { + intValue, ok := value.(interpreter.IntValue) + if ok { + return interpreter.NewUnmeteredIntValueFromInt64(int64(intValue.ToInt(emptyLocationRange)) + 10), nil + } + } + + return nil, nil +} + +func (testDictionaryKeyConflictMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testDictionaryKeyConflictMigration) Domains() map[string]struct{} { + return nil +} + +func TestDictionaryKeyConflict(t *testing.T) { + + t.Parallel() + + test := func(t *testing.T, migrateValue bool) { + + testAddress := common.MustBytesToAddress([]byte{0x1}) + storagePathDomain := common.PathDomainStorage.Identifier() + storageMapKey := interpreter.StringStorageMapKey("test") + + ledger := NewTestLedger(nil, nil) + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + fooQualifiedIdentifier := "Test.Foo" + fooType := &interpreter.InterfaceStaticType{ + Location: utils.TestLocation, + QualifiedIdentifier: fooQualifiedIdentifier, + TypeID: utils.TestLocation.TypeID(nil, fooQualifiedIdentifier), + } + + barQualifiedIdentifier := "Test.Bar" + barType := &interpreter.InterfaceStaticType{ + Location: utils.TestLocation, + QualifiedIdentifier: barQualifiedIdentifier, + TypeID: utils.TestLocation.TypeID(nil, barQualifiedIdentifier), + } + + // Intersection types only differ in order of interfaces + + intersectionType1 := interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooType, + barType, + }, + ) + + intersectionType2 := interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + barType, + fooType, + }, + ) + + dictionaryKey1 := interpreter.NewTypeValue(nil, intersectionType1) + dictionaryKey2 := interpreter.NewTypeValue(nil, intersectionType2) + + // {Type: [Int]} + // Value is an array to ensure slabs are created + arrayType := interpreter.NewVariableSizedStaticType(nil, + interpreter.PrimitiveStaticTypeInt, + ) + + // Prepare + (func() { + storage, inter := newStorageAndInterpreter(t) + + storageMap := storage.GetStorageMap( + testAddress, + storagePathDomain, + true, + ) + + dictionaryValue := interpreter.NewDictionaryValueWithAddress( + inter, + emptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + arrayType, + ), + testAddress, + ) + + // Write the dictionary value to storage before inserting values into dictionary, + // as the insertion of values into the dictionary triggers a storage health check, + // which fails if the dictionary value is not yet stored (unreferenced slabs) + + storageMap.WriteValue( + inter, + storageMapKey, + dictionaryValue, + ) + + // NOTE: use LegacyKey to ensure the key is encoded in old format + + dictionaryValue.InsertWithoutTransfer( + inter, + emptyLocationRange, + LegacyKey(dictionaryKey1), + interpreter.NewArrayValue( + inter, + emptyLocationRange, + arrayType, + testAddress, + interpreter.NewUnmeteredIntValueFromInt64(1), + ), + ) + + dictionaryValue.InsertWithoutTransfer( + inter, + emptyLocationRange, + LegacyKey(dictionaryKey2), + interpreter.NewArrayValue( + inter, + emptyLocationRange, + arrayType, + testAddress, + interpreter.NewUnmeteredIntValueFromInt64(2), + ), + ) + + oldValue1, ok := dictionaryValue.Get( + inter, + emptyLocationRange, + LegacyKey(dictionaryKey1), + ) + require.True(t, ok) + + utils.AssertValuesEqual(t, + inter, + oldValue1, + interpreter.NewArrayValue( + inter, + emptyLocationRange, + arrayType, + common.ZeroAddress, + interpreter.NewUnmeteredIntValueFromInt64(1), + ), + ) + + oldValue2, ok := dictionaryValue.Get( + inter, + emptyLocationRange, + LegacyKey(dictionaryKey2), + ) + require.True(t, ok) + + utils.AssertValuesEqual(t, + inter, + oldValue2, + interpreter.NewArrayValue( + inter, + emptyLocationRange, + arrayType, + common.ZeroAddress, + interpreter.NewUnmeteredIntValueFromInt64(2), + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + + err = storage.CheckHealth() + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testDictionaryKeyConflictMigration{ + migrateValue: migrateValue, + }, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Len(t, reporter.errors, 1) + assert.ErrorContains( + t, + reporter.errors[0], + "dictionary key conflict", + ) + + assert.Len(t, reporter.migrated, 1) + + err = storage.CheckHealth() + require.NoError(t, err) + + // Check storage map + + storageMap := storage.GetStorageMap(testAddress, storagePathDomain, false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(2), storageMap.Count()) + + // Check existing migrated dictionary + + migratedValue := storageMap.ReadValue(nil, storageMapKey) + require.NotNil(t, migratedValue) + + require.IsType(t, &interpreter.DictionaryValue{}, migratedValue) + migratedDict := migratedValue.(*interpreter.DictionaryValue) + + value, _ := migratedDict.Get(inter, emptyLocationRange, dictionaryKey2) + require.NotNil(t, value) + + expectedInt2 := interpreter.NewUnmeteredIntValueFromInt64(2) + if migrateValue { + expectedInt2 = interpreter.NewUnmeteredIntValueFromInt64(12) + } + + utils.RequireValuesEqual(t, + inter, + interpreter.NewArrayValue( + inter, + emptyLocationRange, + arrayType, + common.ZeroAddress, + expectedInt2, + ), + value, + ) + + // Check newly created conflict dictionary + + conflictValue := storageMap.ReadValue(nil, migration.DictionaryKeyConflictStorageMapKey(1)) + require.NotNil(t, conflictValue) + + require.IsType(t, &interpreter.DictionaryValue{}, conflictValue) + conflictDict := conflictValue.(*interpreter.DictionaryValue) + + value, _ = conflictDict.Get(inter, emptyLocationRange, dictionaryKey1) + require.NotNil(t, value) + + expectedInt1 := interpreter.NewUnmeteredIntValueFromInt64(1) + if migrateValue { + expectedInt1 = interpreter.NewUnmeteredIntValueFromInt64(11) + } + + utils.RequireValuesEqual(t, + inter, + interpreter.NewArrayValue( + inter, + emptyLocationRange, + arrayType, + common.ZeroAddress, + expectedInt1, + ), + value, + ) + })() + } + + t.Run("value migrated", func(t *testing.T) { + t.Parallel() + + test(t, true) + }) + + t.Run("value not migrated", func(t *testing.T) { + t.Parallel() + + test(t, false) + }) +} + +//go:embed testdata/missing-slabs-payloads.csv +var missingSlabsPayloadsData []byte + +// '$' + 8 byte index +const slabKeyLength = 9 + +func isSlabStorageKey(key []byte) bool { + return len(key) == slabKeyLength && key[0] == '$' +} + +func TestFixLoadedBrokenReferences(t *testing.T) { + + t.Parallel() + + // Read CSV file with test data + + reader := csv.NewReader(bytes.NewReader(missingSlabsPayloadsData)) + + // account, key, value + reader.FieldsPerRecord = 3 + + records, err := reader.ReadAll() + require.NoError(t, err) + + // Load data into ledger. Skip header + + ledger := NewTestLedger(nil, nil) + + for _, record := range records[1:] { + account, err := hex.DecodeString(record[0]) + require.NoError(t, err) + + key, err := hex.DecodeString(record[1]) + require.NoError(t, err) + + value, err := hex.DecodeString(record[2]) + require.NoError(t, err) + + err = ledger.SetValue(account, key, value) + require.NoError(t, err) + } + + storage := runtime.NewStorage(ledger, nil) + + // Check health. + // Retrieve all slabs before migration + + err = ledger.ForEach(func(owner, key, value []byte) error { + + if !isSlabStorageKey(key) { + return nil + } + + // Convert the owner/key to a storage ID. + + var storageIndex atree.StorageIndex + copy(storageIndex[:], key[1:]) + + storageID := atree.NewStorageID(atree.Address(owner), storageIndex) + + // Retrieve the slab. + _, _, err = storage.Retrieve(storageID) + require.NoError(t, err) + + return nil + }) + require.NoError(t, err) + + address, err := common.HexToAddress("0x5d63c34d7f05e5a4") + require.NoError(t, err) + + for _, domain := range common.AllPathDomains { + _ = storage.GetStorageMap(address, domain.Identifier(), false) + } + + err = storage.CheckHealth() + require.Error(t, err) + + require.ErrorContains(t, err, "slab (0x0.49) not found: slab not found during slab iteration") + + // Fix the broken slab references + + fixedSlabs, skippedSlabIDs, err := storage.PersistentSlabStorage. + FixLoadedBrokenReferences(ShouldFixBrokenCompositeKeyedDictionary) + require.NoError(t, err) + + require.NotEmpty(t, fixedSlabs) + require.Empty(t, skippedSlabIDs) + + // Re-run health check. This time it should pass. + + err = storage.CheckHealth() + require.NoError(t, err) +} + +// testEnumMigration + +type testEnumMigration struct{} + +var _ ValueMigration = testEnumMigration{} + +func (testEnumMigration) Name() string { + return "testEnumMigration" +} + +func (testEnumMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + inter *interpreter.Interpreter, + _ ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + if composite, ok := value.(*interpreter.CompositeValue); ok && composite.Kind == common.CompositeKindEnum { + rawValue := composite.GetField(inter, emptyLocationRange, sema.EnumRawValueFieldName) + raw := rawValue.(interpreter.UInt8Value) + return interpreter.NewCompositeValue( + inter, + emptyLocationRange, + composite.Location, + composite.QualifiedIdentifier, + common.CompositeKindEnum, + []interpreter.CompositeField{ + { + Name: sema.EnumRawValueFieldName, + Value: raw + 1, + }, + }, + composite.GetOwner(), + ), nil + } + + return nil, nil +} + +func (testEnumMigration) CanSkip(_ interpreter.StaticType) bool { + return false +} + +func (testEnumMigration) Domains() map[string]struct{} { + return nil +} + +func TestDictionaryWithEnumKey(t *testing.T) { + + t.Parallel() + + testAddress := common.MustBytesToAddress([]byte{0x1}) + storagePathDomain := common.PathDomainStorage.Identifier() + storageMapKey := interpreter.StringStorageMapKey("test") + + ledger := NewTestLedger(nil, nil) + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + fooQualifiedIdentifier := "Test.Foo" + fooType := &interpreter.CompositeStaticType{ + Location: utils.TestLocation, + QualifiedIdentifier: fooQualifiedIdentifier, + TypeID: utils.TestLocation.TypeID(nil, fooQualifiedIdentifier), + } + + // Prepare + (func() { + storage, inter := newStorageAndInterpreter(t) + + storageMap := storage.GetStorageMap( + testAddress, + storagePathDomain, + true, + ) + + // {Test.Foo: String} + dictionaryValue := interpreter.NewDictionaryValueWithAddress( + inter, + emptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + fooType, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + testAddress, + ) + + // Write the dictionary value to storage before inserting values into dictionary, + // as the insertion of values into the dictionary triggers a storage health check, + // which fails if the dictionary value is not yet stored (unreferenced slabs) + + storageMap.WriteValue( + inter, + storageMapKey, + dictionaryValue, + ) + + dictionaryKey := interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + "Foo", + common.CompositeKindEnum, + []interpreter.CompositeField{ + { + Name: sema.EnumRawValueFieldName, + Value: interpreter.UInt8Value(42), + }, + }, + testAddress, + ) + + dictionaryValue.InsertWithoutTransfer( + inter, + emptyLocationRange, + dictionaryKey, + interpreter.NewUnmeteredStringValue("test"), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + + err = storage.CheckHealth() + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testStringMigration{}, + testEnumMigration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Len(t, reporter.errors, 0) + + assert.Len(t, reporter.migrated, 1) + + err = storage.CheckHealth() + require.NoError(t, err) + + // Check storage map + + storageMap := storage.GetStorageMap(testAddress, storagePathDomain, false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + // Check existing migrated dictionary + + migratedValue := storageMap.ReadValue(nil, storageMapKey) + require.NotNil(t, migratedValue) + + require.IsType(t, &interpreter.DictionaryValue{}, migratedValue) + migratedDict := migratedValue.(*interpreter.DictionaryValue) + + dictionaryKey2 := interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + "Foo", + common.CompositeKindEnum, + []interpreter.CompositeField{ + { + Name: sema.EnumRawValueFieldName, + // NOTE: updated raw value + Value: interpreter.UInt8Value(43), + }, + }, + common.ZeroAddress, + ) + + value, _ := migratedDict.Get(inter, emptyLocationRange, dictionaryKey2) + require.NotNil(t, value) + + utils.RequireValuesEqual(t, + inter, + interpreter.NewUnmeteredStringValue("updated_test"), + value, + ) + })() + +} + +func TestDictionaryKeyMutationMigration(t *testing.T) { + + t.Parallel() + + testAddress := common.MustBytesToAddress([]byte{0x1}) + storagePathDomain := common.PathDomainStorage.Identifier() + storageMapKey := interpreter.StringStorageMapKey("test") + + ledger := NewTestLedger(nil, nil) + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + fooQualifiedIdentifier := "Test.Foo" + fooType := &interpreter.CompositeStaticType{ + Location: utils.TestLocation, + QualifiedIdentifier: fooQualifiedIdentifier, + TypeID: utils.TestLocation.TypeID(nil, fooQualifiedIdentifier), + } + + // Prepare + (func() { + storage, inter := newStorageAndInterpreter(t) + + storageMap := storage.GetStorageMap( + testAddress, + storagePathDomain, + true, + ) + + // {Test.Foo: Int8} + dictionaryValue := interpreter.NewDictionaryValueWithAddress( + inter, + emptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + fooType, + interpreter.PrimitiveStaticTypeInt8, + ), + testAddress, + ) + + // Write the dictionary value to storage before inserting values into dictionary, + // as the insertion of values into the dictionary triggers a storage health check, + // which fails if the dictionary value is not yet stored (unreferenced slabs) + + storageMap.WriteValue( + inter, + storageMapKey, + dictionaryValue, + ) + + dictionaryKey := interpreter.NewCompositeValue( + inter, + emptyLocationRange, + utils.TestLocation, + "Foo", + common.CompositeKindEnum, + []interpreter.CompositeField{ + { + Name: sema.EnumRawValueFieldName, + Value: interpreter.Int8Value(10), + }, + }, + testAddress, + ) + + dictionaryValue.InsertWithoutTransfer( + inter, + emptyLocationRange, + dictionaryKey, + interpreter.Int8Value(100), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + + err = storage.CheckHealth() + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + testInt8Migration{}, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Len(t, reporter.errors, 1) + assert.ErrorContains( + t, + reporter.errors[0], + "mutation not allowed: attempting to migrate composite value field rawValue", + ) + + assert.Len(t, reporter.migrated, 1) + + err = storage.CheckHealth() + require.NoError(t, err) + })() + +} diff --git a/migrations/statictypes/account_type_migration_test.go b/migrations/statictypes/account_type_migration_test.go new file mode 100644 index 0000000000..bc1da112da --- /dev/null +++ b/migrations/statictypes/account_type_migration_test.go @@ -0,0 +1,1461 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package statictypes + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +var _ migrations.Reporter = &testReporter{} + +type testReporter struct { + migrated map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{} + errors []error +} + +func newTestReporter() *testReporter { + return &testReporter{ + migrated: map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{}, + } +} + +func (t *testReporter) Migrated( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + _ string, +) { + key := struct { + interpreter.StorageKey + interpreter.StorageMapKey + }{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + } + t.migrated[key] = struct{}{} +} + +func (t *testReporter) Error(err error) { + t.errors = append(t.errors, err) +} + +func (t *testReporter) DictionaryKeyConflict(addressPath interpreter.AddressPath) { + // For testing purposes, record the conflict as an error + t.errors = append(t.errors, fmt.Errorf("dictionary key conflict: %s", addressPath)) +} + +func TestAccountTypeInTypeValueMigration(t *testing.T) { + t.Parallel() + + account := common.Address{0x42} + pathDomain := common.PathDomainPublic + + const publicAccountType = interpreter.PrimitiveStaticTypePublicAccount //nolint:staticcheck + const authAccountType = interpreter.PrimitiveStaticTypeAuthAccount //nolint:staticcheck + const stringType = interpreter.PrimitiveStaticTypeString + + const fooBarQualifiedIdentifier = "Foo.Bar" + fooAddressLocation := common.NewAddressLocation(nil, account, "Foo") + + type testCase struct { + storedType interpreter.StaticType + expectedType interpreter.StaticType + } + + testCases := map[string]testCase{ + "public_account": { + storedType: publicAccountType, + expectedType: unauthorizedAccountReferenceType, + }, + "auth_account": { + storedType: authAccountType, + expectedType: authAccountReferenceType, + }, + "auth_account_capabilities": { + storedType: interpreter.PrimitiveStaticTypeAuthAccountCapabilities, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_Capabilities, + }, + "public_account_capabilities": { + storedType: interpreter.PrimitiveStaticTypePublicAccountCapabilities, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_Capabilities, + }, + "auth_account_account_capabilities": { + storedType: interpreter.PrimitiveStaticTypeAuthAccountAccountCapabilities, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_AccountCapabilities, + }, + "auth_account_storage_capabilities": { + storedType: interpreter.PrimitiveStaticTypeAuthAccountStorageCapabilities, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_StorageCapabilities, + }, + "auth_account_contracts": { + storedType: interpreter.PrimitiveStaticTypeAuthAccountContracts, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_Contracts, + }, + "public_account_contracts": { + storedType: interpreter.PrimitiveStaticTypePublicAccountContracts, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_Contracts, + }, + "auth_account_keys": { + storedType: interpreter.PrimitiveStaticTypeAuthAccountKeys, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_Keys, + }, + "public_account_keys": { + storedType: interpreter.PrimitiveStaticTypePublicAccountKeys, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_Keys, + }, + "auth_account_inbox": { + storedType: interpreter.PrimitiveStaticTypeAuthAccountInbox, //nolint:staticcheck + expectedType: interpreter.PrimitiveStaticTypeAccount_Inbox, + }, + "account_key": { + storedType: interpreter.PrimitiveStaticTypeAccountKey, //nolint:staticcheck + expectedType: interpreter.AccountKeyStaticType, + }, + "optional_account": { + storedType: interpreter.NewOptionalStaticType(nil, publicAccountType), + expectedType: interpreter.NewOptionalStaticType(nil, unauthorizedAccountReferenceType), + }, + "optional_string": { + storedType: interpreter.NewOptionalStaticType(nil, stringType), + expectedType: interpreter.NewOptionalStaticType(nil, stringType), + }, + "constant_sized_account_array": { + storedType: interpreter.NewConstantSizedStaticType(nil, publicAccountType, 3), + expectedType: interpreter.NewConstantSizedStaticType(nil, unauthorizedAccountReferenceType, 3), + }, + "constant_sized_string_array": { + storedType: interpreter.NewConstantSizedStaticType(nil, stringType, 3), + expectedType: nil, + }, + "variable_sized_account_array": { + storedType: interpreter.NewVariableSizedStaticType(nil, authAccountType), + expectedType: interpreter.NewVariableSizedStaticType(nil, authAccountReferenceType), + }, + "variable_sized_string_array": { + storedType: interpreter.NewVariableSizedStaticType(nil, stringType), + expectedType: nil, + }, + "dictionary_with_account_type_value": { + storedType: interpreter.NewDictionaryStaticType( + nil, + stringType, + authAccountType, + ), + expectedType: interpreter.NewDictionaryStaticType( + nil, + stringType, + authAccountReferenceType, + ), + }, + "dictionary_with_account_type_key": { + storedType: interpreter.NewDictionaryStaticType( + nil, + authAccountType, + stringType, + ), + expectedType: interpreter.NewDictionaryStaticType( + nil, + authAccountReferenceType, + stringType, + ), + }, + "dictionary_with_account_type_key_and_value": { + storedType: interpreter.NewDictionaryStaticType( + nil, + authAccountType, + authAccountType, + ), + expectedType: interpreter.NewDictionaryStaticType( + nil, + authAccountReferenceType, + authAccountReferenceType, + ), + }, + "string_dictionary": { + storedType: interpreter.NewDictionaryStaticType( + nil, + stringType, + stringType, + ), + expectedType: nil, + }, + "capability": { + storedType: interpreter.NewCapabilityStaticType( + nil, + publicAccountType, + ), + expectedType: interpreter.NewCapabilityStaticType( + nil, + unauthorizedAccountReferenceType, + ), + }, + "string_capability": { + storedType: interpreter.NewCapabilityStaticType( + nil, + stringType, + ), + expectedType: nil, + }, + "intersection": { + storedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + expectedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + }, + "intersection_with_legacy_type": { + storedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{}, + LegacyType: interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + expectedType: interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + "public_account_reference": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + publicAccountType, + ), + expectedType: unauthorizedAccountReferenceType, + }, + "public_account_auth_reference": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + publicAccountType, + ), + expectedType: unauthorizedAccountReferenceType, + }, + "auth_account_reference": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + authAccountType, + ), + expectedType: authAccountReferenceType, + }, + "auth_account_auth_reference": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + authAccountType, + ), + expectedType: authAccountReferenceType, + }, + "string_reference": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + stringType, + ), + }, + "account_array_reference": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.NewVariableSizedStaticType(nil, authAccountType), + ), + expectedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.NewVariableSizedStaticType(nil, authAccountReferenceType), + ), + }, + "non_intersection_interface": { + storedType: interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + expectedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + }, + "intersection_interface": { + storedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + expectedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + }, + "composite": { + storedType: interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + expectedType: nil, + }, + + // reference to optionals + "reference_to_optional": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.NewOptionalStaticType( + nil, + interpreter.PrimitiveStaticTypeAccountKey, //nolint:staticcheck + ), + ), + expectedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.NewOptionalStaticType( + nil, + interpreter.AccountKeyStaticType, + ), + ), + }, + } + + test := func(name string, testCase testCase) { + + t.Run(name, func(t *testing.T) { + t.Parallel() + + // Store values + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + storeTypeValue( + inter, + account, + pathDomain, + name, + testCase.storedType, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", account) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMapKey := interpreter.StringStorageMapKey(name) + + if testCase.expectedType == nil { + assert.Empty(t, reporter.migrated) + } else { + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: account, + Key: pathDomain.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + } + + // Assert the migrated values. + + storageMap := storage.GetStorageMap(account, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + value := storageMap.ReadValue(nil, storageMapKey) + + var expectedValue interpreter.Value + if testCase.expectedType != nil { + expectedValue = interpreter.NewTypeValue(nil, testCase.expectedType) + + // `IntersectionType.LegacyType` is not considered in the `IntersectionType.Equal` method. + // Therefore, check for the legacy type equality manually. + typeValue := value.(interpreter.TypeValue) + if actualIntersectionType, ok := typeValue.Type.(*interpreter.IntersectionStaticType); ok { + expectedIntersectionType := testCase.expectedType.(*interpreter.IntersectionStaticType) + + if actualIntersectionType.LegacyType != nil { + assert.True(t, + actualIntersectionType.LegacyType. + Equal(expectedIntersectionType.LegacyType), + ) + } else if expectedIntersectionType.LegacyType != nil { + assert.True(t, + expectedIntersectionType.LegacyType. + Equal(actualIntersectionType.LegacyType), + ) + } else { + assert.Equal(t, + expectedIntersectionType.LegacyType, + actualIntersectionType.LegacyType, + ) + } + } + } else { + expectedValue = interpreter.NewTypeValue(nil, testCase.storedType) + } + + utils.AssertValuesEqual(t, inter, expectedValue, value) + }) + } + + for name, testCase := range testCases { + test(name, testCase) + } +} + +func storeTypeValue( + inter *interpreter.Interpreter, + address common.Address, + domain common.PathDomain, + pathIdentifier string, + staticType interpreter.StaticType, +) { + inter.WriteStored( + address, + domain.Identifier(), + interpreter.StringStorageMapKey(pathIdentifier), + interpreter.NewTypeValue(inter, staticType), + ) +} + +func TestAccountTypeInNestedTypeValueMigration(t *testing.T) { + t.Parallel() + + account := common.Address{0x42} + pathDomain := common.PathDomainPublic + + type testCase struct { + storedValue func(inter *interpreter.Interpreter) interpreter.Value + expectedValue func(inter *interpreter.Interpreter) interpreter.Value + validateValue bool + } + + storedAccountTypeValue := interpreter.NewTypeValue(nil, interpreter.PrimitiveStaticTypePublicAccount) //nolint:staticcheck + expectedAccountTypeValue := interpreter.NewTypeValue(nil, unauthorizedAccountReferenceType) + stringTypeValue := interpreter.NewTypeValue(nil, interpreter.PrimitiveStaticTypeString) + + fooAddressLocation := common.NewAddressLocation(nil, account, "Foo") + const fooBarQualifiedIdentifier = "Foo.Bar" + + testCases := map[string]testCase{ + "account_some_value": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredSomeValueNonCopying(storedAccountTypeValue) + }, + expectedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredSomeValueNonCopying(expectedAccountTypeValue) + }, + validateValue: true, + }, + "int8_some_value": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredSomeValueNonCopying(stringTypeValue) + }, + expectedValue: nil, + validateValue: true, + }, + "account_array": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType(nil, interpreter.PrimitiveStaticTypeAnyStruct), + common.ZeroAddress, + stringTypeValue, + storedAccountTypeValue, + stringTypeValue, + stringTypeValue, + storedAccountTypeValue, + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType(nil, interpreter.PrimitiveStaticTypeAnyStruct), + common.ZeroAddress, + stringTypeValue, + expectedAccountTypeValue, + stringTypeValue, + stringTypeValue, + expectedAccountTypeValue, + ) + }, + validateValue: true, + }, + "non_account_array": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType(nil, interpreter.PrimitiveStaticTypeAnyStruct), + common.ZeroAddress, + stringTypeValue, + stringTypeValue, + stringTypeValue, + ) + }, + expectedValue: nil, + validateValue: true, + }, + "dictionary_with_account_type_value": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt8, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + interpreter.NewUnmeteredInt8Value(4), + storedAccountTypeValue, + interpreter.NewUnmeteredInt8Value(5), + interpreter.NewUnmeteredStringValue("hello"), + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt8, + interpreter.PrimitiveStaticTypeAnyStruct, + ), + interpreter.NewUnmeteredInt8Value(4), + expectedAccountTypeValue, + interpreter.NewUnmeteredInt8Value(5), + interpreter.NewUnmeteredStringValue("hello"), + ) + }, + validateValue: true, + }, + "dictionary_with_optional_account_type_value": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt8, + interpreter.NewOptionalStaticType(nil, interpreter.PrimitiveStaticTypeMetaType), + ), + interpreter.NewUnmeteredInt8Value(4), + interpreter.NewUnmeteredSomeValueNonCopying(storedAccountTypeValue), + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt8, + interpreter.NewOptionalStaticType(nil, interpreter.PrimitiveStaticTypeMetaType), + ), + interpreter.NewUnmeteredInt8Value(4), + interpreter.NewUnmeteredSomeValueNonCopying(expectedAccountTypeValue), + ) + }, + validateValue: true, + }, + "dictionary_with_account_type_key": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeInt8, + ), + interpreter.NewTypeValue( + nil, + dummyStaticType{ + PrimitiveStaticType: interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + }, + ), + interpreter.NewUnmeteredInt8Value(4), + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeInt8, + ), + expectedAccountTypeValue, + interpreter.NewUnmeteredInt8Value(4), + ) + }, + validateValue: false, + }, + "dictionary_with_account_type_key_and_value": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeMetaType, + ), + interpreter.NewTypeValue( + nil, + dummyStaticType{ + PrimitiveStaticType: interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + }, + ), + storedAccountTypeValue, + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeMetaType, + ), + expectedAccountTypeValue, + expectedAccountTypeValue, + ) + }, + validateValue: false, + }, + "composite_with_account_type": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.CompositeKindResource, + []interpreter.CompositeField{ + interpreter.NewUnmeteredCompositeField("field1", storedAccountTypeValue), + interpreter.NewUnmeteredCompositeField("field2", interpreter.NewUnmeteredStringValue("hello")), + }, + common.ZeroAddress, + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.CompositeKindResource, + []interpreter.CompositeField{ + interpreter.NewUnmeteredCompositeField("field1", expectedAccountTypeValue), + interpreter.NewUnmeteredCompositeField("field2", interpreter.NewUnmeteredStringValue("hello")), + }, + common.ZeroAddress, + ) + }, + validateValue: true, + }, + } + + // Store values + + test := func(name string, testCase testCase) { + + t.Run(name, func(t *testing.T) { + t.Parallel() + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: testCase.validateValue, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + transferredValue := testCase.storedValue(inter).Transfer( + inter, + interpreter.EmptyLocationRange, + atree.Address(account), + false, + nil, + nil, + ) + + inter.WriteStored( + account, + pathDomain.Identifier(), + interpreter.StringStorageMapKey(name), + transferredValue, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", account) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap(account, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + value := storageMap.ReadValue(nil, interpreter.StringStorageMapKey(name)) + + expectedStoredValue := testCase.expectedValue + if expectedStoredValue == nil { + expectedStoredValue = testCase.storedValue + } + + utils.AssertValuesEqual(t, inter, expectedStoredValue(inter), value) + }) + } + + for name, testCase := range testCases { + test(name, testCase) + } +} + +func TestMigratingValuesWithAccountStaticType(t *testing.T) { + + t.Parallel() + + account := common.Address{0x42} + pathDomain := common.PathDomainPublic + + type testCase struct { + storedValue func(inter *interpreter.Interpreter) interpreter.Value + expectedValue func(inter *interpreter.Interpreter) interpreter.Value + validateStorage bool + } + + testCases := map[string]testCase{ + "dictionary_value": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + unauthorizedAccountReferenceType, + ), + ) + }, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + validateStorage: false, + }, + "array_value": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + common.ZeroAddress, + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewVariableSizedStaticType( + nil, + unauthorizedAccountReferenceType, + ), + common.ZeroAddress, + ) + }, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + validateStorage: false, + }, + "account_capability_value": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredCapabilityValue( + 123, + interpreter.NewAddressValue(nil, common.Address{0x42}), + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ) + }, + expectedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredCapabilityValue( + 123, + interpreter.NewAddressValue(nil, common.Address{0x42}), + unauthorizedAccountReferenceType, + ) + }, + validateStorage: true, + }, + "string_capability_value": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredCapabilityValue( + 123, + interpreter.NewAddressValue(nil, common.Address{0x42}), + interpreter.PrimitiveStaticTypeString, + ) + }, + validateStorage: true, + }, + "account_capability_controller": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredAccountCapabilityControllerValue( + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAuthAccount, //nolint:staticcheck, + ), + 1234, + ) + }, + expectedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredAccountCapabilityControllerValue( + authAccountReferenceType, + 1234, + ) + }, + validateStorage: true, + }, + "storage_capability_controller": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredStorageCapabilityControllerValue( + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck, + ), + 1234, + interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "v1"), + ) + }, + expectedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredStorageCapabilityControllerValue( + unauthorizedAccountReferenceType, + 1234, + interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "v1"), + ) + }, + validateStorage: true, + }, + "path_link_value": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.PathLinkValue{ //nolint:staticcheck + TargetPath: interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "v1"), + Type: interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + } + }, + expectedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.PathLinkValue{ //nolint:staticcheck + TargetPath: interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "v1"), + Type: unauthorizedAccountReferenceType, + } + }, + validateStorage: true, + }, + "account_link_value": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.AccountLinkValue{} //nolint:staticcheck + }, + expectedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.AccountLinkValue{} //nolint:staticcheck + }, + validateStorage: true, + }, + "path_capability_value": { + storedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return &interpreter.PathCapabilityValue{ //nolint:staticcheck + Address: interpreter.NewAddressValue(nil, common.Address{0x42}), + Path: interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "v1"), + BorrowType: interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + } + }, + expectedValue: func(_ *interpreter.Interpreter) interpreter.Value { + return &interpreter.PathCapabilityValue{ //nolint:staticcheck + Address: interpreter.NewAddressValue(nil, common.Address{0x42}), + Path: interpreter.NewUnmeteredPathValue(common.PathDomainStorage, "v1"), + BorrowType: unauthorizedAccountReferenceType, + } + }, + validateStorage: true, + }, + "capability_dictionary": { + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewCapabilityStaticType( + nil, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ), + interpreter.NewUnmeteredStringValue("key"), + interpreter.NewCapabilityValue( + nil, + interpreter.NewUnmeteredUInt64Value(1234), + interpreter.NewAddressValue(nil, common.ZeroAddress), + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ) + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewCapabilityStaticType( + nil, + unauthorizedAccountReferenceType, + ), + ), + interpreter.NewUnmeteredStringValue("key"), + interpreter.NewCapabilityValue( + nil, + interpreter.NewUnmeteredUInt64Value(1234), + interpreter.NewAddressValue(nil, common.ZeroAddress), + unauthorizedAccountReferenceType, + ), + ) + }, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + validateStorage: false, + }, + } + + test := func(name string, testCase testCase) { + + t.Run(name, func(t *testing.T) { + t.Parallel() + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: testCase.validateStorage, + }, + ) + require.NoError(t, err) + + // Store values + + transferredValue := testCase.storedValue(inter).Transfer( + inter, + interpreter.EmptyLocationRange, + atree.Address(account), + false, + nil, + nil, + ) + + inter.WriteStored( + account, + pathDomain.Identifier(), + interpreter.StringStorageMapKey(name), + transferredValue, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", account) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap(account, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + value := storageMap.ReadValue(nil, interpreter.StringStorageMapKey(name)) + + expectedStoredValue := testCase.expectedValue + if expectedStoredValue == nil { + expectedStoredValue = testCase.storedValue + } + + utils.AssertValuesEqual(t, inter, expectedStoredValue(inter), value) + }) + } + + for name, testCase := range testCases { + test(name, testCase) + } +} + +var testAddress = common.Address{0x42} + +func TestAccountTypeRehash(t *testing.T) { + + t.Parallel() + + test := func(typ interpreter.PrimitiveStaticType) { + + t.Run(typ.String(), func(t *testing.T) { + + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + newStringValue := func(s string) interpreter.Value { + return interpreter.NewUnmeteredStringValue(s) + } + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: atree value validation is disabled + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + // Prepare + storagePathDomain := common.PathDomainStorage.Identifier() + + (func() { + + storage, inter := newStorageAndInterpreter(t) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeString, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + typeValue := interpreter.NewUnmeteredTypeValue( + migrations.LegacyPrimitiveStaticType{ + PrimitiveStaticType: typ, + }, + ) + dictValue.Insert( + inter, + locationRange, + typeValue, + newStringValue(typ.String()), + ) + + storageMap := storage.GetStorageMap( + testAddress, + storagePathDomain, + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: storagePathDomain, + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + storageMap := storage.GetStorageMap(testAddress, storagePathDomain, false) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + var existingKeys []interpreter.Value + dictValue.Iterate(inter, func(key, value interpreter.Value) (resume bool) { + existingKeys = append(existingKeys, key) + // continue iteration + return true + }, interpreter.EmptyLocationRange) + + require.Len(t, existingKeys, 1) + + key := existingKeys[0] + + actual := dictValue.Remove( + inter, + interpreter.EmptyLocationRange, + key, + ) + + assert.NotNil(t, actual) + + staticType := key.(interpreter.TypeValue).Type + + var possibleExpectedValues []interpreter.Value + var str string + + switch { + case staticType.Equal(unauthorizedAccountReferenceType): + str = "PublicAccount" + case staticType.Equal(authAccountReferenceType): + str = "AuthAccount" + case staticType.Equal(interpreter.PrimitiveStaticTypeAccount_Capabilities): + // For both `AuthAccount.Capabilities` and `PublicAccount.Capabilities`, + // the migrated key is the same (`Account_Capabilities`). + // So the value at the key could be any of the two original values, + // depending on the order of migration. + possibleExpectedValues = []interpreter.Value{ + interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewUnmeteredStringValue("AuthAccountCapabilities"), + ), + interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewUnmeteredStringValue("PublicAccountCapabilities"), + ), + } + case staticType.Equal(interpreter.PrimitiveStaticTypeAccount_AccountCapabilities): + str = "AuthAccountAccountCapabilities" + case staticType.Equal(interpreter.PrimitiveStaticTypeAccount_StorageCapabilities): + str = "AuthAccountStorageCapabilities" + case staticType.Equal(interpreter.PrimitiveStaticTypeAccount_Contracts): + // For both `AuthAccount.Contracts` and `PublicAccount.Contracts`, + // the migrated key is the same (Account_Contracts). + // So the value at the key could be any of the two original values, + // depending on the order of migration. + possibleExpectedValues = []interpreter.Value{ + interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewUnmeteredStringValue("AuthAccountContracts"), + ), + interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewUnmeteredStringValue("PublicAccountContracts"), + ), + } + case staticType.Equal(interpreter.PrimitiveStaticTypeAccount_Keys): + // For both `AuthAccount.Keys` and `PublicAccount.Keys`, + // the migrated key is the same (Account_Keys). + // So the value at the key could be any of the two original values, + // depending on the order of migration. + possibleExpectedValues = []interpreter.Value{ + interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewUnmeteredStringValue("AuthAccountKeys"), + ), + interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewUnmeteredStringValue("PublicAccountKeys"), + ), + } + case staticType.Equal(interpreter.PrimitiveStaticTypeAccount_Inbox): + str = "AuthAccountInbox" + case staticType.Equal(interpreter.AccountKeyStaticType): + str = "AccountKey" + default: + require.Fail(t, fmt.Sprintf("Unexpected type `%s` in dictionary key", staticType.ID())) + } + + if possibleExpectedValues != nil { + assert.Contains(t, possibleExpectedValues, actual) + } else { + expected := interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewUnmeteredStringValue(str), + ) + assert.Equal(t, expected, actual) + } + })() + }) + } + + accountTypes := []interpreter.PrimitiveStaticType{ + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccount, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountAccountCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountStorageCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountContracts, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountContracts, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountKeys, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountKeys, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAuthAccountInbox, //nolint:staticcheck + interpreter.PrimitiveStaticTypeAccountKey, //nolint:staticcheck + } + + for _, typ := range accountTypes { + test(typ) + } +} diff --git a/migrations/statictypes/composite_type_migration_test.go b/migrations/statictypes/composite_type_migration_test.go new file mode 100644 index 0000000000..8dc53cf695 --- /dev/null +++ b/migrations/statictypes/composite_type_migration_test.go @@ -0,0 +1,239 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package statictypes + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestCompositeAndInterfaceTypeMigration(t *testing.T) { + t.Parallel() + + pathDomain := common.PathDomainPublic + + type testCase struct { + storedType interpreter.StaticType + expectedType interpreter.StaticType + } + + newCompositeType := func() *interpreter.CompositeStaticType { + return interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ) + } + + newInterfaceType := func() *interpreter.InterfaceStaticType { + return interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBazQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBazQualifiedIdentifier, + ), + ) + } + + testCases := map[string]testCase{ + // base cases + "composite_to_interface": { + storedType: newCompositeType(), + expectedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + newInterfaceType(), + }, + ), + }, + "interface_to_composite": { + storedType: newInterfaceType(), + expectedType: newCompositeType(), + }, + // optional + "optional": { + storedType: interpreter.NewOptionalStaticType(nil, newInterfaceType()), + expectedType: interpreter.NewOptionalStaticType(nil, newCompositeType()), + }, + // array + "array": { + storedType: interpreter.NewConstantSizedStaticType(nil, newInterfaceType(), 3), + expectedType: interpreter.NewConstantSizedStaticType(nil, newCompositeType(), 3), + }, + // dictionary + "dictionary": { + storedType: interpreter.NewDictionaryStaticType(nil, newInterfaceType(), newInterfaceType()), + expectedType: interpreter.NewDictionaryStaticType(nil, newCompositeType(), newCompositeType()), + }, + // reference to optional + "reference_to_optional": { + storedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.NewOptionalStaticType(nil, newInterfaceType()), + ), + expectedType: interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.NewOptionalStaticType(nil, newCompositeType()), + ), + }, + } + + test := func(name string, testCase testCase) { + + t.Run(name, func(t *testing.T) { + t.Parallel() + + // Store values + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + storeTypeValue( + inter, + testAddress, + pathDomain, + name, + testCase.storedType, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + barStaticType := newCompositeType() + bazStaticType := newInterfaceType() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(). + WithCompositeTypeConverter( + func(staticType *interpreter.CompositeStaticType) interpreter.StaticType { + if staticType.Equal(barStaticType) { + return bazStaticType + } else { + panic(errors.NewUnreachableError()) + } + }, + ). + WithInterfaceTypeConverter( + func(staticType *interpreter.InterfaceStaticType) interpreter.StaticType { + if staticType.Equal(bazStaticType) { + return barStaticType + } else { + panic(errors.NewUnreachableError()) + } + }, + ), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMapKey := interpreter.StringStorageMapKey(name) + + if testCase.expectedType == nil { + assert.Empty(t, reporter.migrated) + } else { + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: pathDomain.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + } + + // Assert the migrated values. + + storageMap := storage.GetStorageMap(testAddress, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + value := storageMap.ReadValue(nil, storageMapKey) + + var expectedType interpreter.StaticType + if testCase.expectedType != nil { + expectedType = testCase.expectedType + } else { + expectedType = testCase.storedType + } + + expectedValue := interpreter.NewTypeValue(nil, expectedType) + utils.AssertValuesEqual(t, inter, expectedValue, value) + }) + } + + for name, testCase := range testCases { + test(name, testCase) + } +} diff --git a/migrations/statictypes/dummy_statictype.go b/migrations/statictypes/dummy_statictype.go new file mode 100644 index 0000000000..ccedb12a9d --- /dev/null +++ b/migrations/statictypes/dummy_statictype.go @@ -0,0 +1,49 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package statictypes + +import ( + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" +) + +// dummyStaticType is just a wrapper for `interpreter.PrimitiveStaticType` +// with an overridden `ID` function. +// This is only for testing the migration, so that a type-value with a deprecated primitive type +// (e.g: `PrimitiveStaticTypePublicAccount`) is insertable as a dictionary key (to populate the storage). +// i.e: To make hashing function works, which requires `ID()` method. +// Currently, this is not possible, since the `ID` function of `interpreter.PrimitiveStaticType` +// of deprecated types no longer work, as it relies on the `sema.Type`, +// but the corresponding `sema.Type` for the deprecated primitive types are no longer available. +type dummyStaticType struct { + interpreter.PrimitiveStaticType +} + +func (t dummyStaticType) ID() common.TypeID { + return common.TypeID(t.String()) +} + +func (t dummyStaticType) Equal(other interpreter.StaticType) bool { + otherDummyType, ok := other.(dummyStaticType) + if !ok { + return false + } + + return t == otherDummyType +} diff --git a/migrations/statictypes/intersection_type_migration_test.go b/migrations/statictypes/intersection_type_migration_test.go new file mode 100644 index 0000000000..9e1c3f545f --- /dev/null +++ b/migrations/statictypes/intersection_type_migration_test.go @@ -0,0 +1,1673 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package statictypes + +import ( + "testing" + + "github.com/onflow/atree" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +const fooBarQualifiedIdentifier = "Foo.Bar" +const fooBazQualifiedIdentifier = "Foo.Baz" + +var fooAddressLocation = common.NewAddressLocation(nil, testAddress, "Foo") + +func newIntersectionStaticTypeWithOneInterface() *interpreter.IntersectionStaticType { + return interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ) +} + +func newIntersectionStaticTypeWithTwoInterfaces() *interpreter.IntersectionStaticType { + return interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBazQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBazQualifiedIdentifier, + ), + ), + }, + ) +} + +func newIntersectionStaticTypeWithTwoInterfacesReversed() *interpreter.IntersectionStaticType { + return interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBazQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBazQualifiedIdentifier, + ), + ), + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ) +} + +func TestIntersectionTypeMigration(t *testing.T) { + t.Parallel() + + pathDomain := common.PathDomainPublic + + const stringType = interpreter.PrimitiveStaticTypeString + + type testCase struct { + storedType interpreter.StaticType + expectedType interpreter.StaticType + } + + testCases := map[string]testCase{ + // base cases + "primitive": { + storedType: stringType, + expectedType: nil, + }, + "intersection_with_one_interface": { + storedType: newIntersectionStaticTypeWithOneInterface(), + expectedType: newIntersectionStaticTypeWithOneInterface(), + }, + // optional + "optional_primitive": { + storedType: interpreter.NewOptionalStaticType(nil, stringType), + expectedType: interpreter.NewOptionalStaticType(nil, stringType), + }, + "optional_intersection_with_one_interface": { + storedType: interpreter.NewOptionalStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + ), + expectedType: interpreter.NewOptionalStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + ), + }, + "optional_intersection_with_two_interfaces": { + storedType: interpreter.NewOptionalStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + expectedType: interpreter.NewOptionalStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + }, + // constant-sized array + "constant_sized_array_of_primitive": { + storedType: interpreter.NewConstantSizedStaticType(nil, stringType, 3), + expectedType: nil, + }, + "constant_sized_array_of_intersection_with_one_interface": { + storedType: interpreter.NewConstantSizedStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + 3, + ), + expectedType: interpreter.NewConstantSizedStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + 3, + ), + }, + "constant_sized_array_of_intersection_with_two_interfaces": { + storedType: interpreter.NewConstantSizedStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + 3, + ), + expectedType: interpreter.NewConstantSizedStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + 3, + ), + }, + // variable-sized array + "variable_sized_array_of_primitive": { + storedType: interpreter.NewVariableSizedStaticType(nil, stringType), + expectedType: nil, + }, + "variable_sized_array_of_intersection_with_one_interface": { + storedType: interpreter.NewVariableSizedStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + ), + expectedType: interpreter.NewVariableSizedStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + ), + }, + "variable_sized_array_of_intersection_with_two_interfaces": { + storedType: interpreter.NewVariableSizedStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + expectedType: interpreter.NewVariableSizedStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + }, + // dictionary + "dictionary_of_primitive_key_and_value": { + storedType: interpreter.NewDictionaryStaticType(nil, stringType, stringType), + expectedType: nil, + }, + "dictionary_of_intersection_with_one_interface_key": { + storedType: interpreter.NewDictionaryStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + stringType, + ), + expectedType: interpreter.NewDictionaryStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + stringType, + ), + }, + "dictionary_of_intersection_with_one_interface_value": { + storedType: interpreter.NewDictionaryStaticType( + nil, + stringType, + newIntersectionStaticTypeWithOneInterface(), + ), + expectedType: interpreter.NewDictionaryStaticType( + nil, + stringType, + newIntersectionStaticTypeWithOneInterface(), + ), + }, + "dictionary_of_intersection_with_two_interfaces_key": { + storedType: interpreter.NewDictionaryStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + stringType, + ), + expectedType: interpreter.NewDictionaryStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + stringType, + ), + }, + "dictionary_of_intersection_with_two_interfaces_value": { + storedType: interpreter.NewDictionaryStaticType( + nil, + stringType, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + expectedType: interpreter.NewDictionaryStaticType( + nil, + stringType, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + }, + // capability + "capability_primitive": { + storedType: interpreter.NewCapabilityStaticType(nil, stringType), + expectedType: nil, + }, + "capability_intersection_with_one_interface": { + storedType: interpreter.NewCapabilityStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + ), + expectedType: interpreter.NewCapabilityStaticType( + nil, + newIntersectionStaticTypeWithOneInterface(), + ), + }, + "capability_intersection_with_two_interfaces": { + storedType: interpreter.NewCapabilityStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + expectedType: interpreter.NewCapabilityStaticType( + nil, + newIntersectionStaticTypeWithTwoInterfaces(), + ), + }, + // interface + "non_intersection_interface": { + storedType: interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + expectedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + }, + "intersection_interface": { + storedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + expectedType: interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + }, + ), + }, + // composite + "composite": { + storedType: interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + "Foo.Bar", + common.NewTypeIDFromQualifiedName( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + ), + ), + expectedType: nil, + }, + } + + test := func(name string, testCase testCase) { + + t.Run(name, func(t *testing.T) { + t.Parallel() + + // Store values + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + storeTypeValue( + inter, + testAddress, + pathDomain, + name, + testCase.storedType, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMapKey := interpreter.StringStorageMapKey(name) + + if testCase.expectedType == nil { + assert.Empty(t, reporter.migrated) + } else { + assert.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: pathDomain.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + } + + // Assert the migrated values. + + storageMap := storage.GetStorageMap(testAddress, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + value := storageMap.ReadValue(nil, storageMapKey) + + var expectedValue interpreter.Value + if testCase.expectedType != nil { + expectedValue = interpreter.NewTypeValue(nil, testCase.expectedType) + + // `IntersectionType.LegacyType` is not considered in the `IntersectionType.Equal` method. + // Therefore, check for the legacy type equality manually. + typeValue := value.(interpreter.TypeValue) + if actualIntersectionType, ok := typeValue.Type.(*interpreter.IntersectionStaticType); ok { + expectedIntersectionType := testCase.expectedType.(*interpreter.IntersectionStaticType) + + if actualIntersectionType.LegacyType == nil { + assert.Nil(t, expectedIntersectionType.LegacyType) + } else { + assert.True(t, actualIntersectionType.LegacyType.Equal(expectedIntersectionType.LegacyType)) + } + } + } else { + expectedValue = interpreter.NewTypeValue(nil, testCase.storedType) + } + + utils.AssertValuesEqual(t, inter, expectedValue, value) + }) + } + + for name, testCase := range testCases { + test(name, testCase) + } +} + +// TestIntersectionTypeRehash stores a dictionary in storage, +// which has a key that is a type value with a restricted type that has two interface types, +// runs the migration, and ensures the dictionary is still usable +func TestIntersectionTypeRehash(t *testing.T) { + + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + newTestValue := func() interpreter.Value { + return interpreter.NewUnmeteredStringValue("test") + } + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + // Prepare + (func() { + + storage, inter := newStorageAndInterpreter(t) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeString, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + intersectionType := &migrations.LegacyIntersectionType{ + IntersectionStaticType: newIntersectionStaticTypeWithTwoInterfacesReversed(), + } + + typeValue := interpreter.NewUnmeteredTypeValue(intersectionType) + + dictValue.Insert( + inter, + locationRange, + typeValue, + newTestValue(), + ) + + // NOTE: intentionally in reverse order + assert.Equal(t, + common.TypeID("{A.4200000000000000.Foo.Baz,A.4200000000000000.Foo.Bar}"), + intersectionType.ID(), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + storageMap := storage.GetStorageMap(testAddress, common.PathDomainStorage.Identifier(), false) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + intersectionType := newIntersectionStaticTypeWithTwoInterfaces() + typeValue := interpreter.NewUnmeteredTypeValue(intersectionType) + + // NOTE: in *sorted* order + assert.Equal(t, + common.TypeID("{A.4200000000000000.Foo.Bar,A.4200000000000000.Foo.Baz}"), + intersectionType.ID(), + ) + + assert.Equal(t, 1, dictValue.Count()) + + value, ok := dictValue.Get(inter, locationRange, typeValue) + require.True(t, ok) + + require.IsType(t, &interpreter.StringValue{}, value) + require.Equal(t, + newTestValue(), + value.(*interpreter.StringValue), + ) + })() +} + +// TestRehashNestedIntersectionType stores a dictionary in storage, +// which has a key that is a type value with a restricted type that has two interface types, +// runs the migration, and ensures the dictionary is still usable +func TestRehashNestedIntersectionType(t *testing.T) { + + locationRange := interpreter.EmptyLocationRange + + storageMapKey := interpreter.StringStorageMapKey("dict") + newTestValue := func() interpreter.Value { + return interpreter.NewUnmeteredStringValue("test") + } + + newStorageAndInterpreter := func(t *testing.T, ledger atree.Ledger) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + t.Run("array type", func(t *testing.T) { + t.Parallel() + + ledger := NewTestLedger(nil, nil) + + // Prepare + (func() { + + storage, inter := newStorageAndInterpreter(t, ledger) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeString, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + intersectionStaticType := newIntersectionStaticTypeWithTwoInterfacesReversed() + intersectionStaticType.LegacyType = interpreter.PrimitiveStaticTypeAnyStruct + + intersectionType := &migrations.LegacyIntersectionType{ + IntersectionStaticType: intersectionStaticType, + } + + typeValue := interpreter.NewUnmeteredTypeValue( + interpreter.NewVariableSizedStaticType( + nil, + intersectionType, + ), + ) + + dictValue.Insert( + inter, + locationRange, + typeValue, + newTestValue(), + ) + + // NOTE: intentionally in reverse order + assert.Equal(t, + common.TypeID("AnyStruct{A.4200000000000000.Foo.Baz,A.4200000000000000.Foo.Bar}"), + intersectionType.ID(), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t, ledger) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t, ledger) + + storageMap := storage.GetStorageMap(testAddress, common.PathDomainStorage.Identifier(), false) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + intersectionType := newIntersectionStaticTypeWithTwoInterfaces() + typeValue := interpreter.NewUnmeteredTypeValue( + interpreter.NewVariableSizedStaticType(nil, intersectionType), + ) + + // NOTE: in *sorted* order + assert.Equal(t, + common.TypeID("{A.4200000000000000.Foo.Bar,A.4200000000000000.Foo.Baz}"), + intersectionType.ID(), + ) + + assert.Equal(t, 1, dictValue.Count()) + + value, ok := dictValue.Get(inter, locationRange, typeValue) + require.True(t, ok) + + require.IsType(t, &interpreter.StringValue{}, value) + require.Equal(t, + newTestValue(), + value.(*interpreter.StringValue), + ) + })() + }) + + t.Run("dictionary type", func(t *testing.T) { + t.Parallel() + + ledger := NewTestLedger(nil, nil) + + // + (func() { + + storage, inter := newStorageAndInterpreter(t, ledger) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeString, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + intersectionStaticType := newIntersectionStaticTypeWithTwoInterfacesReversed() + intersectionStaticType.LegacyType = interpreter.PrimitiveStaticTypeAnyStruct + + intersectionType := &migrations.LegacyIntersectionType{ + IntersectionStaticType: intersectionStaticType, + } + + typeValue := interpreter.NewUnmeteredTypeValue( + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + intersectionType, + ), + ) + + dictValue.Insert( + inter, + locationRange, + typeValue, + newTestValue(), + ) + + // NOTE: intentionally in reverse order + assert.Equal(t, + common.TypeID("AnyStruct{A.4200000000000000.Foo.Baz,A.4200000000000000.Foo.Bar}"), + intersectionType.ID(), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t, ledger) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + storage, inter := newStorageAndInterpreter(t, ledger) + + storageMap := storage.GetStorageMap(testAddress, common.PathDomainStorage.Identifier(), false) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + intersectionType := newIntersectionStaticTypeWithTwoInterfaces() + typeValue := interpreter.NewUnmeteredTypeValue( + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + intersectionType, + ), + ) + + // NOTE: in *sorted* order + assert.Equal(t, + common.TypeID("{A.4200000000000000.Foo.Bar,A.4200000000000000.Foo.Baz}"), + intersectionType.ID(), + ) + + assert.Equal(t, 1, dictValue.Count()) + + value, ok := dictValue.Get(inter, locationRange, typeValue) + require.True(t, ok) + + require.IsType(t, &interpreter.StringValue{}, value) + require.Equal(t, + newTestValue(), + value.(*interpreter.StringValue), + ) + })() + }) +} + +func TestIntersectionTypeMigrationWithInterfaceTypeConverter(t *testing.T) { + t.Parallel() + + const fooCompositeQualifiedIdentifierA = "Foo.A" + const fooCompositeQualifiedIdentifierB = "Foo.B" + + fooACompositeType := interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooCompositeQualifiedIdentifierA, + fooAddressLocation.TypeID(nil, fooCompositeQualifiedIdentifierA), + ) + + fooBCompositeType := interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooCompositeQualifiedIdentifierB, + fooAddressLocation.TypeID(nil, fooCompositeQualifiedIdentifierB), + ) + + const fooBarQualifiedIdentifier = "Foo.Bar" + const fooBazQualifiedIdentifier = "Foo.Baz" + + fooBarInterfaceType := interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBarQualifiedIdentifier, + fooAddressLocation.TypeID(nil, fooBarQualifiedIdentifier), + ) + fooBazInterfaceType := interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooBazQualifiedIdentifier, + fooAddressLocation.TypeID(nil, fooBazQualifiedIdentifier), + ) + + test := func( + t *testing.T, + inputType interpreter.StaticType, + convertCompositeType bool, + convertInterfaceType bool, + expectedType interpreter.StaticType, + ) { + + // Store values + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + const testPathDomain = common.PathDomainStorage + const testPathIdentifier = "test_type_value" + + storeTypeValue( + inter, + testAddress, + testPathDomain, + testPathIdentifier, + inputType, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + staticTypeMigration := NewStaticTypeMigration() + if convertCompositeType { + staticTypeMigration.WithCompositeTypeConverter( + func(staticType *interpreter.CompositeStaticType) interpreter.StaticType { + if staticType == fooACompositeType { + return fooBCompositeType + } + return nil + }, + ) + } + if convertInterfaceType { + staticTypeMigration.WithInterfaceTypeConverter( + func(staticType *interpreter.InterfaceStaticType) interpreter.StaticType { + if staticType.ID() == fooBarInterfaceType.ID() { + return fooBazInterfaceType + } + return nil + }, + ) + } + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + staticTypeMigration, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + // Assert the migrated value. + + storageMap := storage.GetStorageMap(testAddress, testPathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + value := storageMap.ReadValue(nil, interpreter.StringStorageMapKey(testPathIdentifier)) + assert.NotNil(t, value) + + expectedValue := interpreter.NewTypeValue(nil, expectedType) + + assert.Equal(t, value, expectedValue) + } + + t.Run("A{}", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + }, + false, + false, + fooACompositeType, + ) + }) + + t.Run("A{}, convert composite", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + }, + true, + false, + fooBCompositeType, + ) + }) + + t.Run("A{Bar}", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + false, + false, + fooACompositeType, + ) + }) + + t.Run("A{Bar}, convert interface", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + false, + true, + fooACompositeType, + ) + }) + + t.Run("A{Bar}, convert composite, convert interface", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + true, + true, + fooBCompositeType, + ) + + }) + + t.Run("{Bar}", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + false, + false, + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + ) + + }) + + t.Run("{Bar}, convert interface", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + false, + true, + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBazInterfaceType, + }, + }, + ) + }) + + t.Run("&A{}", func(t *testing.T) { + t.Parallel() + + test(t, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + }, + }, + false, + false, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + }, + }, + ) + }) + + t.Run("&A{}, convert composite", func(t *testing.T) { + t.Parallel() + + test( + t, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + }, + }, + true, + false, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooBCompositeType, + }, + }, + ) + }) + + t.Run("&A{Bar}", func(t *testing.T) { + t.Parallel() + + test( + t, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + }, + false, + false, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + }, + ) + }) + + t.Run("&A{Bar}, convert interface", func(t *testing.T) { + t.Parallel() + + test( + t, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + }, + false, + true, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBazInterfaceType, + }, + }, + }, + ) + }) + + t.Run("&A{Bar}, convert composite, convert interface", func(t *testing.T) { + t.Parallel() + + test( + t, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooACompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + }, + true, + true, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: fooBCompositeType, + Types: []*interpreter.InterfaceStaticType{ + fooBazInterfaceType, + }, + }, + }, + ) + + }) + + t.Run("&{Bar}", func(t *testing.T) { + t.Parallel() + + test( + t, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + }, + false, + false, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + }, + ) + + }) + + t.Run("&{Bar}, convert interface", func(t *testing.T) { + t.Parallel() + + test( + t, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBarInterfaceType, + }, + }, + }, + false, + true, + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + fooBazInterfaceType, + }, + }, + }, + ) + }) +} + +func TestIntersectionTypeMigrationWithTypeConverters(t *testing.T) { + t.Parallel() + + migrate := func( + t *testing.T, + staticTypeMigration *StaticTypeMigration, + input interpreter.StaticType, + ) interpreter.StaticType { + + // Store values + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + const testPathDomain = common.PathDomainStorage + const testPathIdentifier = "test_type_value" + + storeTypeValue( + inter, + testAddress, + testPathDomain, + testPathIdentifier, + input, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + staticTypeMigration, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + key := struct { + interpreter.StorageKey + interpreter.StorageMapKey + }{ + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: testPathDomain.Identifier(), + }, + StorageMapKey: interpreter.StringStorageMapKey(testPathIdentifier), + } + + assert.Contains(t, reporter.migrated, key) + + storageMap := storage.GetStorageMap(testAddress, testPathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + value := storageMap.ReadValue(nil, interpreter.StringStorageMapKey(testPathIdentifier)) + require.NotNil(t, value) + + require.IsType(t, interpreter.TypeValue{}, value) + + return value.(interpreter.TypeValue).Type + } + + const fooCompositeQualifiedIdentifierA = "Foo.A" + const fooCompositeQualifiedIdentifierB = "Foo.B" + + fooACompositeType := interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooCompositeQualifiedIdentifierA, + fooAddressLocation.TypeID(nil, fooCompositeQualifiedIdentifierA), + ) + + fooBCompositeType := interpreter.NewCompositeStaticType( + nil, + fooAddressLocation, + fooCompositeQualifiedIdentifierB, + fooAddressLocation.TypeID(nil, fooCompositeQualifiedIdentifierB), + ) + + const fooInterfaceQualifiedIdentifierC = "Foo.C" + const fooInterfaceQualifiedIdentifierD = "Foo.D" + + fooCInterfaceType := interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooInterfaceQualifiedIdentifierC, + fooAddressLocation.TypeID(nil, fooInterfaceQualifiedIdentifierC), + ) + fooDInterfaceType := interpreter.NewInterfaceStaticType( + nil, + fooAddressLocation, + fooInterfaceQualifiedIdentifierD, + fooAddressLocation.TypeID(nil, fooInterfaceQualifiedIdentifierD), + ) + + t.Run("composite type converter", func(t *testing.T) { + t.Parallel() + + t.Run("return non-interface", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration(). + WithCompositeTypeConverter(func(staticType *interpreter.CompositeStaticType) interpreter.StaticType { + if staticType == fooACompositeType { + return fooBCompositeType + } + return nil + }) + + actual := migrate(t, staticTypeMigration, fooACompositeType) + assert.Equal(t, fooBCompositeType, actual) + }) + + t.Run("return interface", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration(). + WithCompositeTypeConverter(func(staticType *interpreter.CompositeStaticType) interpreter.StaticType { + if staticType == fooACompositeType { + // NOTE: return interface type as-is, not wrapped in intersection type, + // to test if it gets wrapped properly into an intersection type + return fooCInterfaceType + } + return nil + }) + + actual := migrate(t, staticTypeMigration, fooACompositeType) + assert.Equal(t, + interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooCInterfaceType, + }, + ), + actual, + ) + }) + + t.Run("return intersection", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration(). + WithCompositeTypeConverter(func(staticType *interpreter.CompositeStaticType) interpreter.StaticType { + if staticType == fooACompositeType { + // NOTE: return interface type wrapped in intersection type, + // to test if it does not get re-wrapped into an intersection type + return interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooCInterfaceType, + }, + ) + } + return nil + }) + + actual := migrate(t, staticTypeMigration, fooACompositeType) + assert.Equal(t, + interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooCInterfaceType, + }, + ), + actual, + ) + + }) + }) + + t.Run("interface type converter", func(t *testing.T) { + t.Parallel() + + t.Run("return non-interface", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration(). + WithInterfaceTypeConverter(func(staticType *interpreter.InterfaceStaticType) interpreter.StaticType { + if staticType == fooCInterfaceType { + return fooBCompositeType + } + return nil + }) + + actual := migrate(t, staticTypeMigration, fooCInterfaceType) + assert.Equal(t, fooBCompositeType, actual) + }) + + t.Run("return interface", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration(). + WithInterfaceTypeConverter(func(staticType *interpreter.InterfaceStaticType) interpreter.StaticType { + if staticType == fooCInterfaceType { + // NOTE: return interface type as-is, not wrapped in intersection type, + // to test if it gets wrapped properly into an intersection type + return fooDInterfaceType + } + return nil + }) + + actual := migrate(t, staticTypeMigration, fooCInterfaceType) + assert.Equal(t, + interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooDInterfaceType, + }, + ), + actual, + ) + + }) + + t.Run("return intersection", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration(). + WithInterfaceTypeConverter(func(staticType *interpreter.InterfaceStaticType) interpreter.StaticType { + if staticType == fooCInterfaceType { + // NOTE: return interface type wrapped in intersection type, + // to test if it does not get re-wrapped into an intersection type + return interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooDInterfaceType, + }, + ) + } + return nil + }) + + actual := migrate(t, staticTypeMigration, fooCInterfaceType) + assert.Equal(t, + interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + fooDInterfaceType, + }, + ), + actual, + ) + }) + }) +} diff --git a/migrations/statictypes/statictype_migration.go b/migrations/statictypes/statictype_migration.go new file mode 100644 index 0000000000..ccaee42f64 --- /dev/null +++ b/migrations/statictypes/statictype_migration.go @@ -0,0 +1,647 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package statictypes + +import ( + "fmt" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type StaticTypeMigration struct { + compositeTypeConverter CompositeTypeConverterFunc + interfaceTypeConverter InterfaceTypeConverterFunc + migratedTypeCache migrations.StaticTypeCache +} + +type CompositeTypeConverterFunc func(*interpreter.CompositeStaticType) interpreter.StaticType +type InterfaceTypeConverterFunc func(*interpreter.InterfaceStaticType) interpreter.StaticType + +var _ migrations.ValueMigration = &StaticTypeMigration{} + +func NewStaticTypeMigration() *StaticTypeMigration { + return NewStaticTypeMigrationWithCache(nil) +} + +func NewStaticTypeMigrationWithCache(migratedTypeCache migrations.StaticTypeCache) *StaticTypeMigration { + return &StaticTypeMigration{ + migratedTypeCache: migratedTypeCache, + } +} + +func (m *StaticTypeMigration) WithCompositeTypeConverter(converterFunc CompositeTypeConverterFunc) *StaticTypeMigration { + m.compositeTypeConverter = converterFunc + return m +} + +func (m *StaticTypeMigration) WithInterfaceTypeConverter(converterFunc InterfaceTypeConverterFunc) *StaticTypeMigration { + m.interfaceTypeConverter = converterFunc + return m +} + +func (*StaticTypeMigration) Name() string { + return "StaticTypeMigration" +} + +// Migrate migrates static types in values. +func (m *StaticTypeMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ migrations.ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + switch value := value.(type) { + case interpreter.TypeValue: + // Type is optional. nil represents "unknown"/"invalid" type + ty := value.Type + if ty == nil { + return nil, nil + } + convertedType := m.maybeConvertStaticType(ty, nil) + if convertedType == nil { + return nil, nil + } + return interpreter.NewTypeValue(nil, convertedType), nil + + case *interpreter.IDCapabilityValue: + convertedBorrowType := m.maybeConvertStaticType(value.BorrowType, nil) + if convertedBorrowType == nil { + return nil, nil + } + return interpreter.NewUnmeteredCapabilityValue(value.ID, value.Address, convertedBorrowType), nil + + case *interpreter.PathCapabilityValue: //nolint:staticcheck + // Type is optional + borrowType := value.BorrowType + if borrowType == nil { + return nil, nil + } + convertedBorrowType := m.maybeConvertStaticType(borrowType, nil) + if convertedBorrowType == nil { + return nil, nil + } + return &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: convertedBorrowType, + Path: value.Path, + Address: value.Address, + }, nil + + case interpreter.PathLinkValue: //nolint:staticcheck + convertedBorrowType := m.maybeConvertStaticType(value.Type, nil) + if convertedBorrowType == nil { + return nil, nil + } + return interpreter.PathLinkValue{ //nolint:staticcheck + Type: convertedBorrowType, + TargetPath: value.TargetPath, + }, nil + + case *interpreter.AccountCapabilityControllerValue: + convertedBorrowType := m.maybeConvertStaticType(value.BorrowType, nil) + if convertedBorrowType == nil { + return nil, nil + } + borrowType := convertedBorrowType.(*interpreter.ReferenceStaticType) + return interpreter.NewUnmeteredAccountCapabilityControllerValue(borrowType, value.CapabilityID), nil + + case *interpreter.StorageCapabilityControllerValue: + convertedBorrowType := m.maybeConvertStaticType(value.BorrowType, nil) + if convertedBorrowType == nil { + return nil, nil + } + borrowType := convertedBorrowType.(*interpreter.ReferenceStaticType) + return interpreter.NewUnmeteredStorageCapabilityControllerValue( + borrowType, + value.CapabilityID, + value.TargetPath, + ), nil + + case *interpreter.ArrayValue: + convertedElementType := m.maybeConvertStaticType(value.Type, nil) + if convertedElementType == nil { + return nil, nil + } + + value.SetType( + convertedElementType.(interpreter.ArrayStaticType), + ) + + case *interpreter.DictionaryValue: + convertedElementType := m.maybeConvertStaticType(value.Type, nil) + if convertedElementType == nil { + return nil, nil + } + + value.SetType( + convertedElementType.(*interpreter.DictionaryStaticType), + ) + } + + return nil, nil +} + +func (m *StaticTypeMigration) maybeConvertStaticType( + staticType interpreter.StaticType, + parentType interpreter.StaticType, +) ( + resultType interpreter.StaticType, +) { + // Consult the cache and cache the result at the root of the migration, + // i.e. when the parent type is nil. + // + // Parse of the migration, e.g. the intersection type migration depends on the parent type. + // For example, `{Ts}` in `&{Ts}` is migrated differently from `{Ts}`. + + if parentType == nil { + migratedTypeCache := m.migratedTypeCache + if migratedTypeCache != nil { + // Only cache if cache key generation succeeds. + // Some static types, like function types, are not encodable. + if key, keyErr := migrations.NewStaticTypeKey(staticType); keyErr == nil { + if cachedType, exists := migratedTypeCache.Get(key); exists { + return cachedType.StaticType + } + + defer func() { + migratedTypeCache.Set(key, resultType, nil) + }() + } + } + } + + switch staticType := staticType.(type) { + case *interpreter.ConstantSizedStaticType: + convertedType := m.maybeConvertStaticType(staticType.Type, staticType) + if convertedType != nil { + return interpreter.NewConstantSizedStaticType(nil, convertedType, staticType.Size) + } + + case *interpreter.VariableSizedStaticType: + convertedType := m.maybeConvertStaticType(staticType.Type, staticType) + if convertedType != nil { + return interpreter.NewVariableSizedStaticType(nil, convertedType) + } + + case *interpreter.DictionaryStaticType: + convertedKeyType := m.maybeConvertStaticType(staticType.KeyType, staticType) + convertedValueType := m.maybeConvertStaticType(staticType.ValueType, staticType) + if convertedKeyType != nil && convertedValueType != nil { + return interpreter.NewDictionaryStaticType(nil, convertedKeyType, convertedValueType) + } + if convertedKeyType != nil { + return interpreter.NewDictionaryStaticType(nil, convertedKeyType, staticType.ValueType) + } + if convertedValueType != nil { + return interpreter.NewDictionaryStaticType(nil, staticType.KeyType, convertedValueType) + } + + case *interpreter.CapabilityStaticType: + borrowType := staticType.BorrowType + if borrowType != nil { + convertedBorrowType := m.maybeConvertStaticType(borrowType, staticType) + if convertedBorrowType != nil { + return interpreter.NewCapabilityStaticType(nil, convertedBorrowType) + } + } + + case *interpreter.IntersectionStaticType: + + // First rewrite, then convert the rewritten type. + + var rewrittenType interpreter.StaticType = staticType + + // Rewrite the intersection type, + // if it does not appear in a reference type. + // + // This is necessary to keep sufficient information for the entitlements migration, + // which will rewrite the referenced intersection type once it has added entitlements. + + if _, ok := parentType.(*interpreter.ReferenceStaticType); !ok { + rewrittenType = RewriteLegacyIntersectionType(staticType) + } + + // The rewritten type is either: + // - an intersection type (with or without legacy type) + // - a legacy type + + if rewrittenIntersectionType, ok := rewrittenType.(*interpreter.IntersectionStaticType); ok { + + // Convert all interface types in the intersection type + + var convertedInterfaceTypes []*interpreter.InterfaceStaticType + + var convertedInterfaceType bool + + for _, interfaceStaticType := range rewrittenIntersectionType.Types { + convertedType := m.maybeConvertStaticType(interfaceStaticType, rewrittenIntersectionType) + + // lazily allocate the slice + if convertedInterfaceTypes == nil { + convertedInterfaceTypes = make([]*interpreter.InterfaceStaticType, 0, len(rewrittenIntersectionType.Types)) + } + + var replacement *interpreter.InterfaceStaticType + if convertedType != nil { + var ok bool + replacement, ok = convertedType.(*interpreter.InterfaceStaticType) + if !ok { + panic(fmt.Errorf( + "invalid non-interface replacement in intersection type %s: %s replaced by %s", + rewrittenIntersectionType, + interfaceStaticType, + convertedType, + )) + } + + convertedInterfaceType = true + } else { + replacement = interfaceStaticType + } + convertedInterfaceTypes = append(convertedInterfaceTypes, replacement) + } + + // Convert the legacy type + + legacyType := rewrittenIntersectionType.LegacyType + + var convertedLegacyType interpreter.StaticType + if legacyType != nil { + convertedLegacyType = m.maybeConvertStaticType(legacyType, rewrittenIntersectionType) + switch convertedLegacyType.(type) { + case nil, + *interpreter.CompositeStaticType, + interpreter.PrimitiveStaticType: + // valid + break + + case *interpreter.IntersectionStaticType: + // also valid, temporarily: + // + // Given an intersection type T{Us}, where T is a legacy type, and Us are interface types, + // and given T is converted to intersection type V, + // then the resulting type is V{Us} (e.g. when V is {Ws}, {Ws}{Us}). + // + // The resulting type is expected to be ("temporarily") invalid. + // The entitlements migrations will handle such cases, + // i.e. rewrite the type to a valid type (V/{Ws}). + // + // It is important to not merge the intersection types, e.g. into {Us, Ws}, + // to ensure that the entitlement migration does not infer entitlements for this type, + // which would incorrectly also add entitlements for the legacy type (which was restricted). + break + + default: + panic(fmt.Errorf( + "invalid non-composite/primitive replacement for legacy type in intersection type %s:"+ + " %s replaced by %s", + rewrittenIntersectionType, + legacyType, + convertedLegacyType, + )) + } + } + + // Construct the new intersection type, if needed + + // If the interface set has at least two items, + // then force it to be re-stored/re-encoded, + // even if the interface types in the set have not changed. + if len(rewrittenIntersectionType.Types) >= 2 || + convertedInterfaceType || + convertedLegacyType != nil { + + result := interpreter.NewIntersectionStaticType(nil, convertedInterfaceTypes) + + if convertedLegacyType != nil { + result.LegacyType = convertedLegacyType + } else if legacyType != nil { + result.LegacyType = legacyType + } + + return result + } + + } else { + convertedLegacyType := m.maybeConvertStaticType(rewrittenType, parentType) + if convertedLegacyType != nil { + return convertedLegacyType + } + } + + if rewrittenType != staticType { + return rewrittenType + } + + case *interpreter.OptionalStaticType: + convertedInnerType := m.maybeConvertStaticType(staticType.Type, staticType) + if convertedInnerType != nil { + return interpreter.NewOptionalStaticType(nil, convertedInnerType) + } + // NOTE: force re-storing/re-encoding of optional types, + // even if the inner type has not changed, + // as the type ID generation of optional types has changed + return staticType + + case *interpreter.ReferenceStaticType: + // TODO: Reference of references must not be allowed? + convertedReferencedType := m.maybeConvertStaticType(staticType.ReferencedType, staticType) + if convertedReferencedType != nil { + switch convertedReferencedType { + + // If the converted type is already an account reference, then return as-is. + // i.e: Do not create reference to a reference. + case authAccountReferenceType, + unauthorizedAccountReferenceType: + return convertedReferencedType + + default: + return interpreter.NewReferenceStaticType( + nil, + staticType.Authorization, + convertedReferencedType, + ) + } + } + + case interpreter.FunctionStaticType: + // Non-storable + + case *interpreter.CompositeStaticType: + var convertedType interpreter.StaticType + compositeTypeConverter := m.compositeTypeConverter + if compositeTypeConverter != nil { + convertedType = compositeTypeConverter(staticType) + } + + // Convert built-in types in composite type form to primitive type + if convertedType == nil && staticType.Location == nil { + primitiveStaticType := interpreter.PrimitiveStaticTypeFromTypeID(staticType.TypeID) + if primitiveStaticType != interpreter.PrimitiveStaticTypeUnknown { + convertedPrimitiveStaticType := m.maybeConvertStaticType(primitiveStaticType, parentType) + if convertedPrimitiveStaticType != nil { + return convertedPrimitiveStaticType + } + return primitiveStaticType + } + } + + // Interface types need to be placed in intersection types. + // If the composite type was converted to an interface type, + // and if the parent type is not an intersection type, + // then the converted interface type must be placed in an intersection type + if convertedInterfaceType, ok := convertedType.(*interpreter.InterfaceStaticType); ok { + if _, ok := parentType.(*interpreter.IntersectionStaticType); !ok { + convertedType = interpreter.NewIntersectionStaticType( + nil, []*interpreter.InterfaceStaticType{ + convertedInterfaceType, + }, + ) + } + } + + return convertedType + + case *interpreter.InterfaceStaticType: + var convertedType interpreter.StaticType + interfaceTypeConverter := m.interfaceTypeConverter + if interfaceTypeConverter != nil { + convertedType = interfaceTypeConverter(staticType) + } + + // Interface types need to be placed in intersection types + if _, ok := parentType.(*interpreter.IntersectionStaticType); !ok { + // If the interface type was not converted to another type, + // and given the parent type is not an intersection type, + // then the original interface type must be placed in an intersection type + if convertedType == nil { + convertedType = interpreter.NewIntersectionStaticType( + nil, []*interpreter.InterfaceStaticType{ + staticType, + }, + ) + } else { + // If the interface type was converted to another type, + // it may have been converted to + // - a different kind of type, e.g. a composite type, + // in which case the converted type should be returned as-is + // - another interface type – + // given the parent type is not an intersection type, + // then the converted interface type must be placed in an intersection type + if convertedInterfaceType, ok := convertedType.(*interpreter.InterfaceStaticType); ok { + convertedType = interpreter.NewIntersectionStaticType( + nil, []*interpreter.InterfaceStaticType{ + convertedInterfaceType, + }, + ) + } + } + } + + return convertedType + + case dummyStaticType: + // This is for testing the migration. + // i.e: the dummyStaticType wrapper was only introduced to make it possible to use the type as a dictionary key. + // Ignore the wrapper, and continue with the inner type. + return m.maybeConvertStaticType(staticType.PrimitiveStaticType, staticType) + + case interpreter.PrimitiveStaticType: + // Is it safe to do so? + switch staticType { + case interpreter.PrimitiveStaticTypePublicAccount: //nolint:staticcheck + return unauthorizedAccountReferenceType + + case interpreter.PrimitiveStaticTypeAuthAccount: //nolint:staticcheck + return authAccountReferenceType + + case interpreter.PrimitiveStaticTypeAuthAccountCapabilities, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountCapabilities: //nolint:staticcheck + return interpreter.PrimitiveStaticTypeAccount_Capabilities + + case interpreter.PrimitiveStaticTypeAuthAccountAccountCapabilities: //nolint:staticcheck + return interpreter.PrimitiveStaticTypeAccount_AccountCapabilities + + case interpreter.PrimitiveStaticTypeAuthAccountStorageCapabilities: //nolint:staticcheck + return interpreter.PrimitiveStaticTypeAccount_StorageCapabilities + + case interpreter.PrimitiveStaticTypeAuthAccountContracts, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountContracts: //nolint:staticcheck + return interpreter.PrimitiveStaticTypeAccount_Contracts + + case interpreter.PrimitiveStaticTypeAuthAccountKeys, //nolint:staticcheck + interpreter.PrimitiveStaticTypePublicAccountKeys: //nolint:staticcheck + return interpreter.PrimitiveStaticTypeAccount_Keys + + case interpreter.PrimitiveStaticTypeAuthAccountInbox: //nolint:staticcheck + return interpreter.PrimitiveStaticTypeAccount_Inbox + + case interpreter.PrimitiveStaticTypeAccountKey: //nolint:staticcheck + return interpreter.AccountKeyStaticType + } + + default: + panic(errors.NewUnexpectedError("unexpected static type: %T", staticType)) + } + + return nil +} + +func RewriteLegacyIntersectionType( + intersectionType *interpreter.IntersectionStaticType, +) interpreter.StaticType { + + // Rewrite rules (also enforced by contract update checker): + // + // - T{} / Any*{} -> T/Any* + // + // If the intersection type has no interface types, + // then return the legacy type as-is. + // + // This prevents the migration from creating an intersection type with no interface types, + // as static to sema type conversion ignores the legacy type. + // + // - Any*{A,...} -> {A,...} + // + // If the intersection type has no or an AnyStruct/AnyResource legacy type, + // and has at least one interface type, + // then return the intersection type without the legacy type. + // + // - T{A,...} -> T + // + // If the intersection type has a legacy type, + // and has at least one interface type, + // then return the legacy type as-is. + + legacyType := intersectionType.LegacyType + + if len(intersectionType.Types) > 0 { + switch legacyType { + case nil, + interpreter.PrimitiveStaticTypeAnyStruct, + interpreter.PrimitiveStaticTypeAnyResource: + + // Drop the legacy type, keep the interface types + return interpreter.NewIntersectionStaticType(nil, intersectionType.Types) + } + } + + if legacyType == nil { + panic(errors.NewUnexpectedError( + "invalid intersection type with no interface types and no legacy type: %s", + intersectionType, + )) + } + return legacyType +} + +func (*StaticTypeMigration) Domains() map[string]struct{} { + return nil +} + +var authAccountEntitlements = []common.TypeID{ + sema.StorageType.ID(), + sema.ContractsType.ID(), + sema.KeysType.ID(), + sema.InboxType.ID(), + sema.CapabilitiesType.ID(), +} + +var authAccountReferenceType = func() *interpreter.ReferenceStaticType { + auth := interpreter.NewEntitlementSetAuthorization( + nil, + func() []common.TypeID { + return authAccountEntitlements + }, + len(authAccountEntitlements), + sema.Conjunction, + ) + return interpreter.NewReferenceStaticType( + nil, + auth, + interpreter.PrimitiveStaticTypeAccount, + ) +}() + +var unauthorizedAccountReferenceType = interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAccount, +) + +func (m *StaticTypeMigration) CanSkip(valueType interpreter.StaticType) bool { + return CanSkipStaticTypeMigration(valueType) +} + +func CanSkipStaticTypeMigration(valueType interpreter.StaticType) bool { + + switch valueType := valueType.(type) { + case *interpreter.DictionaryStaticType: + return CanSkipStaticTypeMigration(valueType.KeyType) && + CanSkipStaticTypeMigration(valueType.ValueType) + + case interpreter.ArrayStaticType: + return CanSkipStaticTypeMigration(valueType.ElementType()) + + case *interpreter.OptionalStaticType: + return CanSkipStaticTypeMigration(valueType.Type) + + case *interpreter.CapabilityStaticType: + // Typed capability, cannot skip + return false + + case interpreter.PrimitiveStaticType: + + switch valueType { + case interpreter.PrimitiveStaticTypeMetaType: + return false + + case interpreter.PrimitiveStaticTypeBool, + interpreter.PrimitiveStaticTypeVoid, + interpreter.PrimitiveStaticTypeAddress, + interpreter.PrimitiveStaticTypeBlock, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeCharacter, + // Untyped capability, can skip + interpreter.PrimitiveStaticTypeCapability: + + return true + } + + if !valueType.IsDeprecated() { //nolint:staticcheck + semaType := valueType.SemaType() + + if sema.IsSubType(semaType, sema.NumberType) || + sema.IsSubType(semaType, sema.PathType) { + + return true + } + } + } + + return false +} diff --git a/migrations/statictypes/statictype_migration_test.go b/migrations/statictypes/statictype_migration_test.go new file mode 100644 index 0000000000..66daf018df --- /dev/null +++ b/migrations/statictypes/statictype_migration_test.go @@ -0,0 +1,1410 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package statictypes + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestStaticTypeMigration(t *testing.T) { + t.Parallel() + + migrate := func( + t *testing.T, + staticTypeMigration *StaticTypeMigration, + value interpreter.Value, + atreeValueValidationEnabled bool, + ) interpreter.Value { + + // Store values + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: atreeValueValidationEnabled, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + storageMapKey := interpreter.StringStorageMapKey("test_type_value") + storageDomain := common.PathDomainStorage.Identifier() + + inter.WriteStored( + testAddress, + storageDomain, + storageMapKey, + value, + ) + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + staticTypeMigration, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap( + testAddress, + storageDomain, + false, + ) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + result := storageMap.ReadValue(nil, storageMapKey) + require.NotNil(t, value) + + return result + } + + t.Run("TypeValue with nil type", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue(nil), + // NOTE: atree value validation is disabled, + // because the type value has a nil type (which indicates an invalid or unknown type), + // and invalid unknown types are always unequal + false, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue(nil), + actual, + ) + }) + + t.Run("TypeValue with unparameterized Capability type", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + interpreter.NewCapabilityStaticType(nil, nil), + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + interpreter.NewCapabilityStaticType(nil, nil), + ), + actual, + ) + }) + + t.Run("TypeValue with reference to AuthAccount (as primitive)", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + interpreter.NewDictionaryStaticType(nil, + interpreter.PrimitiveStaticTypeAddress, + interpreter.NewCapabilityStaticType(nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeAuthAccount, //nolint:staticcheck + ), + ), + ), + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + interpreter.NewDictionaryStaticType(nil, + interpreter.PrimitiveStaticTypeAddress, + interpreter.NewCapabilityStaticType(nil, + // NOTE: NOT reference to reference type + authAccountReferenceType, + ), + ), + ), + actual, + ) + }) + + t.Run("TypeValue with reference to AuthAccount (as composite)", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + authAccountTypeID := interpreter.PrimitiveStaticTypeAuthAccount.ID() //nolint:staticcheck + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + interpreter.NewDictionaryStaticType(nil, + interpreter.PrimitiveStaticTypeAddress, + interpreter.NewCapabilityStaticType(nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + // NOTE: AuthAccount as composite type + interpreter.NewCompositeStaticType( + nil, + nil, + string(authAccountTypeID), + authAccountTypeID, + ), + ), + ), + ), + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + interpreter.NewDictionaryStaticType(nil, + interpreter.PrimitiveStaticTypeAddress, + interpreter.NewCapabilityStaticType(nil, + // NOTE: NOT reference to reference type + authAccountReferenceType, + ), + ), + ), + actual, + ) + }) + + t.Run("PathCapabilityValue with nil borrow type", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + path := interpreter.NewUnmeteredPathValue( + common.PathDomainStorage, + "test", + ) + + actual := migrate(t, + staticTypeMigration, + &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: nil, + Path: path, + Address: interpreter.AddressValue(testAddress), + }, + true, + ) + assert.Equal(t, + &interpreter.PathCapabilityValue{ //nolint:staticcheck + BorrowType: nil, + Path: path, + Address: interpreter.AddressValue(testAddress), + }, + actual, + ) + }) + + t.Run("T{I,...} -> T, for T != AnyStruct/AnyResource", func(t *testing.T) { + t.Parallel() + + t.Run("T{I} -> T", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + ), + actual, + ) + }) + + t.Run("&T{I} -> &T{I}", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + }, + }, + ), + actual, + ) + }) + }) + + t.Run("T{I,...} -> {I,...}, for T == AnyStruct/AnyResource", func(t *testing.T) { + t.Parallel() + + t.Run("AnyStruct{I} -> {I}", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: interpreter.PrimitiveStaticTypeAnyStruct, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + }, + ), + actual, + ) + }) + + t.Run("&AnyStruct{I} -> &AnyStruct{I}", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: interpreter.PrimitiveStaticTypeAnyStruct, + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: interpreter.PrimitiveStaticTypeAnyStruct, + }, + }, + ), + actual, + ) + }) + + t.Run("AnyResource{I} -> {I}", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: interpreter.PrimitiveStaticTypeAnyResource, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + }, + ), + actual, + ) + }) + + t.Run("&AnyResource{I} -> &AnyResource{I}", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: interpreter.PrimitiveStaticTypeAnyResource, + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{ + { + Location: nil, + QualifiedIdentifier: "I", + TypeID: "I", + }, + }, + LegacyType: interpreter.PrimitiveStaticTypeAnyResource, + }, + }, + ), + actual, + ) + }) + }) + + t.Run("T{} -> T, for any T", func(t *testing.T) { + t.Parallel() + + t.Run("AnyStruct{} -> AnyStruct", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{}, + LegacyType: interpreter.PrimitiveStaticTypeAnyStruct, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + interpreter.PrimitiveStaticTypeAnyStruct, + ), + actual, + ) + }) + + t.Run("&AnyStruct{} -> &AnyStruct{}", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{}, + LegacyType: interpreter.PrimitiveStaticTypeAnyStruct, + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{}, + LegacyType: interpreter.PrimitiveStaticTypeAnyStruct, + }, + }, + ), + actual, + ) + }) + + t.Run("AnyResource{} -> AnyResource", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{}, + LegacyType: interpreter.PrimitiveStaticTypeAnyResource, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + interpreter.PrimitiveStaticTypeAnyResource, + ), + actual, + ) + }) + + t.Run("&AnyResource{} -> &AnyResource{}", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{}, + LegacyType: interpreter.PrimitiveStaticTypeAnyResource, + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + Types: []*interpreter.InterfaceStaticType{}, + LegacyType: interpreter.PrimitiveStaticTypeAnyResource, + }, + }, + ), + actual, + ) + }) + + t.Run("T{} -> T", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.IntersectionStaticType{ + LegacyType: &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + ), + actual, + ) + }) + + t.Run("&T{} -> &T", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + }, + }, + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue( + &interpreter.ReferenceStaticType{ + Authorization: interpreter.Unauthorized{}, + ReferencedType: &interpreter.IntersectionStaticType{ + LegacyType: &interpreter.CompositeStaticType{ + Location: nil, + QualifiedIdentifier: "T", + TypeID: "T", + }, + }, + }, + ), + actual, + ) + }) + + }) + + t.Run("legacy type gets converted intersection", func(t *testing.T) { + + t.Parallel() + + const compositeQualifiedIdentifier = "S" + compositeType := interpreter.NewCompositeStaticType( + nil, + utils.TestLocation, + compositeQualifiedIdentifier, + utils.TestLocation.TypeID(nil, compositeQualifiedIdentifier), + ) + + const interface1QualifiedIdentifier = "SI1" + interfaceType1 := interpreter.NewInterfaceStaticType( + nil, + utils.TestLocation, + interface1QualifiedIdentifier, + utils.TestLocation.TypeID(nil, interface1QualifiedIdentifier), + ) + + const interface2QualifiedIdentifier = "SI2" + interfaceType2 := interpreter.NewInterfaceStaticType( + nil, + utils.TestLocation, + interface2QualifiedIdentifier, + utils.TestLocation.TypeID(nil, interface2QualifiedIdentifier), + ) + + intersectionType := interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interfaceType1, + }, + ) + // NOTE: the legacy type is a composite type, + // but it will get rewritten to an intersection type + + intersectionType.LegacyType = compositeType + + staticTypeMigration := NewStaticTypeMigration().WithCompositeTypeConverter( + func(staticType *interpreter.CompositeStaticType) interpreter.StaticType { + if staticType.TypeID != compositeType.TypeID { + return nil + } + + return interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interfaceType2, + }, + ) + }, + ) + + storedValue := interpreter.NewTypeValue( + nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + intersectionType, + ), + ) + + actual := migrate(t, + staticTypeMigration, + storedValue, + true, + ) + + // NOTE: the expected type {S2}{S1} is expected to be ("temporarily") invalid. + // The entitlements migrations will handle such cases, i.e. rewrite the type to a valid type ({S2}). + // This is important to ensure that the entitlement migration does not infer entitlements for {S1, S2}. + + expectedIntersection := interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interfaceType1, + }, + ) + expectedIntersection.LegacyType = interpreter.NewIntersectionStaticType( + nil, + []*interpreter.InterfaceStaticType{ + interfaceType2, + }, + ) + + expected := interpreter.NewTypeValue( + nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + expectedIntersection, + ), + ) + + assert.Equal(t, expected, actual) + }) + + t.Run( + "composite types of (non-deprecated) built-in types are converted to primitive static types", + func(t *testing.T) { + t.Parallel() + + test := func(t *testing.T, ty interpreter.PrimitiveStaticType) { + + typeID := ty.ID() + + t.Run(string(typeID), func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + actual := migrate(t, + staticTypeMigration, + interpreter.NewUnmeteredTypeValue( + // NOTE: AuthAccount as composite type + interpreter.NewCompositeStaticType( + nil, + nil, + string(typeID), + typeID, + ), + ), + true, + ) + assert.Equal(t, + interpreter.NewUnmeteredTypeValue(ty), + actual, + ) + }) + } + + for ty := interpreter.PrimitiveStaticTypeUnknown + 1; ty < interpreter.PrimitiveStaticType_Count; ty++ { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck + continue + } + + test(t, ty) + } + }, + ) + +} + +func TestMigratingNestedContainers(t *testing.T) { + t.Parallel() + + migrate := func( + t *testing.T, + staticTypeMigration *StaticTypeMigration, + storage *runtime.Storage, + inter *interpreter.Interpreter, + value interpreter.Value, + ) interpreter.Value { + + // Store values + + storageMapKey := interpreter.StringStorageMapKey("test_value") + storageDomain := common.PathDomainStorage.Identifier() + + value = value.Transfer( + inter, + interpreter.EmptyLocationRange, + atree.Address(testAddress), + false, + nil, + nil, + ) + + inter.WriteStored( + testAddress, + storageDomain, + storageMapKey, + value, + ) + + err := storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + staticTypeMigration, + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap( + testAddress, + storageDomain, + false, + ) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + result := storageMap.ReadValue(nil, storageMapKey) + require.NotNil(t, value) + + return result + } + + t.Run("nested dictionary", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + storedValue := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewCapabilityStaticType( + nil, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ), + ), + interpreter.NewUnmeteredStringValue("key"), + interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewCapabilityStaticType( + nil, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ), + interpreter.NewUnmeteredStringValue("key"), + interpreter.NewCapabilityValue( + nil, + interpreter.NewUnmeteredUInt64Value(1234), + interpreter.NewAddressValue(nil, common.ZeroAddress), + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ), + ) + + actual := migrate(t, + staticTypeMigration, + storage, + inter, + storedValue, + ) + + expected := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewCapabilityStaticType( + nil, + unauthorizedAccountReferenceType, + ), + ), + ), + interpreter.NewUnmeteredStringValue("key"), + interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.NewCapabilityStaticType( + nil, + unauthorizedAccountReferenceType, + ), + ), + interpreter.NewUnmeteredStringValue("key"), + interpreter.NewCapabilityValue( + nil, + interpreter.NewUnmeteredUInt64Value(1234), + interpreter.NewAddressValue(nil, common.ZeroAddress), + unauthorizedAccountReferenceType, + ), + ), + ) + + utils.AssertValuesEqual(t, inter, expected, actual) + }) + + t.Run("nested arrays", func(t *testing.T) { + t.Parallel() + + staticTypeMigration := NewStaticTypeMigration() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + // NOTE: disabled, as storage is not expected to be always valid _during_ migration + AtreeStorageValidationEnabled: false, + }, + ) + require.NoError(t, err) + + storedValue := interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.NewCapabilityStaticType( + nil, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ), + ), + common.ZeroAddress, + interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.NewCapabilityStaticType( + nil, + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ), + common.ZeroAddress, + interpreter.NewCapabilityValue( + nil, + interpreter.NewUnmeteredUInt64Value(1234), + interpreter.NewAddressValue(nil, common.ZeroAddress), + interpreter.PrimitiveStaticTypePublicAccount, //nolint:staticcheck + ), + ), + ) + + actual := migrate(t, + staticTypeMigration, + storage, + inter, + storedValue, + ) + + expected := interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.NewCapabilityStaticType( + nil, + unauthorizedAccountReferenceType, + ), + ), + ), + common.ZeroAddress, + interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType( + nil, + interpreter.NewCapabilityStaticType( + nil, + unauthorizedAccountReferenceType, + ), + ), + common.ZeroAddress, + interpreter.NewCapabilityValue( + nil, + interpreter.NewUnmeteredUInt64Value(1234), + interpreter.NewAddressValue(nil, common.Address{}), + unauthorizedAccountReferenceType, + ), + ), + ) + + utils.AssertValuesEqual(t, inter, expected, actual) + }) + +} + +func TestCanSkipStaticTypeMigration(t *testing.T) { + + t.Parallel() + + testCases := map[interpreter.StaticType]bool{ + + // Primitive types, like Bool and Address + + interpreter.PrimitiveStaticTypeBool: true, + interpreter.PrimitiveStaticTypeAddress: true, + + // Number and Path types, like UInt8 and StoragePath + + interpreter.PrimitiveStaticTypeUInt8: true, + interpreter.PrimitiveStaticTypeStoragePath: true, + + // Capability types + + // Untyped capability, can skip + interpreter.PrimitiveStaticTypeCapability: true, + // Typed capabilities, cannot skip + &interpreter.CapabilityStaticType{ + BorrowType: interpreter.PrimitiveStaticTypeString, + }: false, + &interpreter.CapabilityStaticType{ + BorrowType: interpreter.PrimitiveStaticTypeCharacter, + }: false, + + // Existential types, like AnyStruct and AnyResource + + interpreter.PrimitiveStaticTypeAnyStruct: false, + interpreter.PrimitiveStaticTypeAnyResource: false, + + // Run-time types + interpreter.PrimitiveStaticTypeMetaType: false, + } + + test := func(ty interpreter.StaticType, expected bool) { + + t.Run(ty.String(), func(t *testing.T) { + + t.Parallel() + + t.Run("base", func(t *testing.T) { + + t.Parallel() + + actual := CanSkipStaticTypeMigration(ty) + assert.Equal(t, expected, actual) + + }) + + t.Run("optional", func(t *testing.T) { + + t.Parallel() + + optionalType := interpreter.NewOptionalStaticType(nil, ty) + + actual := CanSkipStaticTypeMigration(optionalType) + assert.Equal(t, expected, actual) + }) + + t.Run("variable-sized", func(t *testing.T) { + + t.Parallel() + + arrayType := interpreter.NewVariableSizedStaticType(nil, ty) + + actual := CanSkipStaticTypeMigration(arrayType) + assert.Equal(t, expected, actual) + }) + + t.Run("constant-sized", func(t *testing.T) { + + t.Parallel() + + arrayType := interpreter.NewConstantSizedStaticType(nil, ty, 2) + + actual := CanSkipStaticTypeMigration(arrayType) + assert.Equal(t, expected, actual) + }) + + t.Run("dictionary key", func(t *testing.T) { + + t.Parallel() + + dictionaryType := interpreter.NewDictionaryStaticType( + nil, + ty, + interpreter.PrimitiveStaticTypeInt, + ) + + actual := CanSkipStaticTypeMigration(dictionaryType) + assert.Equal(t, expected, actual) + + }) + + t.Run("dictionary value", func(t *testing.T) { + + t.Parallel() + + dictionaryType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt, + ty, + ) + + actual := CanSkipStaticTypeMigration(dictionaryType) + assert.Equal(t, expected, actual) + }) + }) + } + + for ty, expected := range testCases { + test(ty, expected) + } +} + +// TestOptionalTypeRehash stores a dictionary in storage, +// which has a key that is a type value with an optional type, +// runs the migration, and ensures the dictionary is still usable +func TestOptionalTypeRehash(t *testing.T) { + + t.Parallel() + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + newTestValue := func() interpreter.Value { + return interpreter.NewUnmeteredStringValue("test") + } + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + AtreeValueValidationEnabled: true, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + newOptionalType := func() *interpreter.OptionalStaticType { + return interpreter.NewOptionalStaticType(nil, interpreter.PrimitiveStaticTypeInt) + } + + // Prepare + (func() { + + storage, inter := newStorageAndInterpreter(t) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeString, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + optionalType := &migrations.LegacyOptionalType{ + OptionalStaticType: newOptionalType(), + } + + typeValue := interpreter.NewUnmeteredTypeValue(optionalType) + + dictValue.Insert( + inter, + locationRange, + typeValue, + newTestValue(), + ) + + // NOTE: intentionally in old format + assert.Equal(t, + common.TypeID("Int?"), + optionalType.ID(), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue(inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStaticTypeMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + // Assert + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + require.Equal(t, + map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }]struct{}{ + { + StorageKey: interpreter.StorageKey{ + Address: testAddress, + Key: common.PathDomainStorage.Identifier(), + }, + StorageMapKey: storageMapKey, + }: {}, + }, + reporter.migrated, + ) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + storageMap := storage.GetStorageMap(testAddress, common.PathDomainStorage.Identifier(), false) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + optionalType := newOptionalType() + typeValue := interpreter.NewUnmeteredTypeValue(optionalType) + + // NOTE: in *new* format + assert.Equal(t, + common.TypeID("(Int)?"), + optionalType.ID(), + ) + + assert.Equal(t, 1, dictValue.Count()) + + value, ok := dictValue.Get(inter, locationRange, typeValue) + require.True(t, ok) + + require.IsType(t, &interpreter.StringValue{}, value) + require.Equal(t, + newTestValue(), + value.(*interpreter.StringValue), + ) + })() +} diff --git a/migrations/string_normalization/migration.go b/migrations/string_normalization/migration.go new file mode 100644 index 0000000000..18e4b8381e --- /dev/null +++ b/migrations/string_normalization/migration.go @@ -0,0 +1,124 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package string_normalization + +import ( + "golang.org/x/text/unicode/norm" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type StringNormalizingMigration struct{} + +var _ migrations.ValueMigration = StringNormalizingMigration{} + +func NewStringNormalizingMigration() StringNormalizingMigration { + return StringNormalizingMigration{} +} + +func (StringNormalizingMigration) Name() string { + return "StringNormalizingMigration" +} + +func (StringNormalizingMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + _ migrations.ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + + // Normalize strings and characters to NFC. + // If the value is already in NFC, skip the migration. + + switch value := value.(type) { + case *interpreter.StringValue: + unnormalizedStr := value.UnnormalizedStr + normalizedStr := norm.NFC.String(unnormalizedStr) + if normalizedStr == unnormalizedStr { + return nil, nil + } + return interpreter.NewStringValue_Unsafe(normalizedStr, unnormalizedStr), nil //nolint:staticcheck + + case interpreter.CharacterValue: + unnormalizedStr := value.UnnormalizedStr + normalizedStr := norm.NFC.String(unnormalizedStr) + if normalizedStr == unnormalizedStr { + return nil, nil + } + return interpreter.NewCharacterValue_Unsafe(normalizedStr, unnormalizedStr), nil //nolint:staticcheck + } + + return nil, nil +} + +func (StringNormalizingMigration) Domains() map[string]struct{} { + return nil +} + +func (m StringNormalizingMigration) CanSkip(valueType interpreter.StaticType) bool { + return CanSkipStringNormalizingMigration(valueType) +} + +func CanSkipStringNormalizingMigration(valueType interpreter.StaticType) bool { + switch ty := valueType.(type) { + case *interpreter.DictionaryStaticType: + return CanSkipStringNormalizingMigration(ty.KeyType) && + CanSkipStringNormalizingMigration(ty.ValueType) + + case interpreter.ArrayStaticType: + return CanSkipStringNormalizingMigration(ty.ElementType()) + + case *interpreter.OptionalStaticType: + return CanSkipStringNormalizingMigration(ty.Type) + + case *interpreter.CapabilityStaticType: + return true + + case interpreter.PrimitiveStaticType: + + switch ty { + case interpreter.PrimitiveStaticTypeBool, + interpreter.PrimitiveStaticTypeVoid, + interpreter.PrimitiveStaticTypeAddress, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeBlock, + interpreter.PrimitiveStaticTypeCapability: + + return true + } + + if !ty.IsDeprecated() { //nolint:staticcheck + semaType := ty.SemaType() + + if sema.IsSubType(semaType, sema.NumberType) || + sema.IsSubType(semaType, sema.PathType) { + + return true + } + } + } + + return false +} diff --git a/migrations/string_normalization/migration_test.go b/migrations/string_normalization/migration_test.go new file mode 100644 index 0000000000..a383bda4e0 --- /dev/null +++ b/migrations/string_normalization/migration_test.go @@ -0,0 +1,767 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package string_normalization + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +type testReporter struct { + migrated map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string + errors []error +} + +var _ migrations.Reporter = &testReporter{} + +func newTestReporter() *testReporter { + return &testReporter{ + migrated: map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string{}, + } +} + +func (t *testReporter) Migrated( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + migration string, +) { + key := struct { + interpreter.StorageKey + interpreter.StorageMapKey + }{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + } + + t.migrated[key] = append( + t.migrated[key], + migration, + ) +} + +func (t *testReporter) Error(err error) { + t.errors = append(t.errors, err) +} + +func (t *testReporter) DictionaryKeyConflict(addressPath interpreter.AddressPath) { + // For testing purposes, record the conflict as an error + t.errors = append(t.errors, fmt.Errorf("dictionary key conflict: %s", addressPath)) +} + +func TestStringNormalizingMigration(t *testing.T) { + t.Parallel() + + account := common.Address{0x42} + pathDomain := common.PathDomainPublic + + type testCase struct { + storedValue interpreter.Value + expectedValue interpreter.Value + } + + ledger := NewTestLedger(nil, nil) + storage := runtime.NewStorage(ledger, nil) + locationRange := interpreter.EmptyLocationRange + + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: disabled, because encoded and decoded values are expected to not match + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + newLegacyStringValue := func(s string) *interpreter.StringValue { + return &interpreter.StringValue{ + Str: s, + UnnormalizedStr: s, + } + } + + newLegacyCharacterValue := func(s string) interpreter.CharacterValue { + return interpreter.CharacterValue{ + Str: s, + UnnormalizedStr: s, + } + } + + testCases := map[string]testCase{ + "normalized_string": { + storedValue: newLegacyStringValue("Caf\u00E9"), + expectedValue: interpreter.NewUnmeteredStringValue("Caf\u00E9"), + }, + "un-normalized_string": { + storedValue: newLegacyStringValue("Cafe\u0301"), + expectedValue: interpreter.NewUnmeteredStringValue("Caf\u00E9"), + }, + "normalized_character": { + storedValue: newLegacyCharacterValue("\u03A9"), + expectedValue: interpreter.NewUnmeteredCharacterValue("\u03A9"), + }, + "un-normalized_character": { + storedValue: newLegacyCharacterValue("\u2126"), + expectedValue: interpreter.NewUnmeteredCharacterValue("\u03A9"), + }, + "string_array": { + storedValue: interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType(nil, interpreter.PrimitiveStaticTypeAnyStruct), + common.ZeroAddress, + newLegacyStringValue("Cafe\u0301"), + ), + expectedValue: interpreter.NewArrayValue( + inter, + locationRange, + interpreter.NewVariableSizedStaticType(nil, interpreter.PrimitiveStaticTypeAnyStruct), + common.ZeroAddress, + interpreter.NewUnmeteredStringValue("Caf\u00E9"), + ), + }, + "dictionary_with_un-normalized_string": { + storedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt8, + interpreter.PrimitiveStaticTypeString, + ), + interpreter.NewUnmeteredInt8Value(4), + newLegacyStringValue("Cafe\u0301"), + ), + expectedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt8, + interpreter.PrimitiveStaticTypeString, + ), + interpreter.NewUnmeteredInt8Value(4), + interpreter.NewUnmeteredStringValue("Caf\u00E9"), + ), + }, + "dictionary_with_un-normalized_string_key": { + storedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt8, + ), + newLegacyStringValue("Cafe\u0301"), + interpreter.NewUnmeteredInt8Value(4), + ), + expectedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt8, + ), + interpreter.NewUnmeteredStringValue("Caf\u00E9"), + interpreter.NewUnmeteredInt8Value(4), + ), + }, + "dictionary_with_un-normalized_string_key_and_value": { + storedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeString, + ), + newLegacyStringValue("Cafe\u0301"), + newLegacyStringValue("Cafe\u0301"), + ), + expectedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeString, + ), + interpreter.NewUnmeteredStringValue("Caf\u00E9"), + interpreter.NewUnmeteredStringValue("Caf\u00E9"), + ), + }, + "composite_with_un-normalized_string": { + storedValue: interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + common.NewAddressLocation(nil, common.Address{0x42}, "Foo"), + "Bar", + common.CompositeKindResource, + []interpreter.CompositeField{ + interpreter.NewUnmeteredCompositeField( + "field", + newLegacyStringValue("Cafe\u0301"), + ), + }, + common.ZeroAddress, + ), + expectedValue: interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + common.NewAddressLocation(nil, common.Address{0x42}, "Foo"), + "Bar", + common.CompositeKindResource, + []interpreter.CompositeField{ + interpreter.NewUnmeteredCompositeField( + "field", + interpreter.NewUnmeteredStringValue("Caf\u00E9"), + ), + }, + common.ZeroAddress, + ), + }, + "dictionary_with_un-normalized_character_key": { + storedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeCharacter, + interpreter.PrimitiveStaticTypeInt8, + ), + newLegacyCharacterValue("\u2126"), + interpreter.NewUnmeteredInt8Value(4), + ), + expectedValue: interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeCharacter, + interpreter.PrimitiveStaticTypeInt8, + ), + interpreter.NewUnmeteredCharacterValue("\u03A9"), + interpreter.NewUnmeteredInt8Value(4), + ), + }, + } + + // Store values + + for name, testCase := range testCases { + transferredValue := testCase.storedValue.Transfer( + inter, + locationRange, + atree.Address(account), + false, + nil, + nil, + ) + + inter.WriteStored( + account, + pathDomain.Identifier(), + interpreter.StringStorageMapKey(name), + transferredValue, + ) + } + + err = storage.Commit(inter, true) + require.NoError(t, err) + + // Migrate + + migration, err := migrations.NewStorageMigration(inter, storage, "test", account) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStringNormalizingMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + require.Empty(t, reporter.errors) + + err = storage.CheckHealth() + require.NoError(t, err) + + // Assert: Traverse through the storage and see if the values are updated now. + + storageMap := storage.GetStorageMap(account, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Greater(t, storageMap.Count(), uint64(0)) + + iterator := storageMap.Iterator(inter) + + for key, value := iterator.Next(); key != nil; key, value = iterator.Next() { + identifier := string(key.(interpreter.StringAtreeValue)) + + t.Run(identifier, func(t *testing.T) { + testCase, ok := testCases[identifier] + require.True(t, ok) + + expectedStoredValue := testCase.expectedValue + if expectedStoredValue == nil { + expectedStoredValue = testCase.storedValue + } + + utils.AssertValuesEqual(t, inter, expectedStoredValue, value) + }) + } +} + +// TestStringValueRehash stores a dictionary in storage, +// which has a key that is a string value with a non-normalized representation, +// runs the migration, and ensures the dictionary is still usable +func TestStringValueRehash(t *testing.T) { + + t.Parallel() + + var testAddress = common.MustBytesToAddress([]byte{0x1}) + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + newTestValue := func() interpreter.Value { + return interpreter.NewUnmeteredIntValueFromInt64(42) + } + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: disabled, because encoded and decoded values are expected to not match + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + // Prepare + (func() { + + storage, inter := newStorageAndInterpreter(t) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeInt, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + // NOTE: un-normalized + unnormalizedString := "Cafe\u0301" + stringValue := &interpreter.StringValue{ + Str: unnormalizedString, + UnnormalizedStr: unnormalizedString, + } + + dictValue.Insert( + inter, + locationRange, + stringValue, + newTestValue(), + ) + + assert.Equal(t, + []byte("\x01Cafe\xCC\x81"), + stringValue.HashInput(inter, locationRange, nil), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue( + inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStringNormalizingMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + require.Empty(t, reporter.errors) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + err := storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap(testAddress, common.PathDomainStorage.Identifier(), false) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + stringValue := interpreter.NewUnmeteredStringValue("Caf\u00E9") + + assert.Equal(t, + []byte("\x01Caf\xC3\xA9"), + stringValue.HashInput(inter, locationRange, nil), + ) + + assert.Equal(t, 1, dictValue.Count()) + + value, ok := dictValue.Get(inter, locationRange, stringValue) + require.True(t, ok) + + require.IsType(t, interpreter.IntValue{}, value) + require.Equal(t, + newTestValue(), + value.(interpreter.IntValue), + ) + })() +} + +// TestCharacterValueRehash stores a dictionary in storage, +// which has a key that is a character value with a non-normalized representation, +// runs the migration, and ensures the dictionary is still usable +func TestCharacterValueRehash(t *testing.T) { + + t.Parallel() + + var testAddress = common.MustBytesToAddress([]byte{0x1}) + + locationRange := interpreter.EmptyLocationRange + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("dict") + newTestValue := func() interpreter.Value { + return interpreter.NewUnmeteredIntValueFromInt64(42) + } + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: disabled, because encoded and decoded values are expected to not match + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + // Prepare + (func() { + storage, inter := newStorageAndInterpreter(t) + + dictionaryStaticType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeCharacter, + interpreter.PrimitiveStaticTypeInt, + ) + dictValue := interpreter.NewDictionaryValue(inter, locationRange, dictionaryStaticType) + + // NOTE: un-normalized 'Ω'. + unnormalizedString := "\u2126" + + characterValue := &interpreter.CharacterValue{ + Str: unnormalizedString, + UnnormalizedStr: unnormalizedString, + } + + dictValue.Insert( + inter, + locationRange, + characterValue, + newTestValue(), + ) + + assert.Equal(t, + []byte("\x06\xe2\x84\xa6"), + characterValue.HashInput(inter, locationRange, nil), + ) + + storageMap := storage.GetStorageMap( + testAddress, + common.PathDomainStorage.Identifier(), + true, + ) + + storageMap.SetValue( + inter, + storageMapKey, + dictValue.Transfer( + inter, + locationRange, + atree.Address(testAddress), + false, + nil, + nil, + ), + ) + + err := storage.Commit(inter, false) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", testAddress) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewStringNormalizingMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + require.Empty(t, reporter.errors) + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + err := storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap(testAddress, common.PathDomainStorage.Identifier(), false) + storedValue := storageMap.ReadValue(inter, storageMapKey) + + require.IsType(t, &interpreter.DictionaryValue{}, storedValue) + + dictValue := storedValue.(*interpreter.DictionaryValue) + + characterValue := interpreter.NewUnmeteredCharacterValue("\u03A9") + + assert.Equal(t, + []byte("\x06\xCe\xA9"), + characterValue.HashInput(inter, locationRange, nil), + ) + + assert.Equal(t, 1, dictValue.Count()) + + value, ok := dictValue.Get(inter, locationRange, characterValue) + require.True(t, ok) + + require.IsType(t, interpreter.IntValue{}, value) + require.Equal(t, + newTestValue(), + value.(interpreter.IntValue), + ) + })() +} + +func TestCanSkipStringNormalizingMigration(t *testing.T) { + + t.Parallel() + + testCases := map[interpreter.StaticType]bool{ + + // Primitive types, like Bool and Address + + interpreter.PrimitiveStaticTypeBool: true, + interpreter.PrimitiveStaticTypeAddress: true, + + // Number and Path types, like UInt8 and StoragePath + + interpreter.PrimitiveStaticTypeUInt8: true, + interpreter.PrimitiveStaticTypeStoragePath: true, + + // Capability types + + interpreter.PrimitiveStaticTypeCapability: true, + &interpreter.CapabilityStaticType{ + BorrowType: interpreter.PrimitiveStaticTypeString, + }: true, + &interpreter.CapabilityStaticType{ + BorrowType: interpreter.PrimitiveStaticTypeCharacter, + }: true, + + // String and Character + + interpreter.PrimitiveStaticTypeString: false, + interpreter.PrimitiveStaticTypeCharacter: false, + + // Existential types, like AnyStruct and AnyResource + + interpreter.PrimitiveStaticTypeAnyStruct: false, + interpreter.PrimitiveStaticTypeAnyResource: false, + } + + test := func(ty interpreter.StaticType, expected bool) { + + t.Run(ty.String(), func(t *testing.T) { + + t.Parallel() + + t.Run("base", func(t *testing.T) { + + t.Parallel() + + actual := CanSkipStringNormalizingMigration(ty) + assert.Equal(t, expected, actual) + + }) + + t.Run("optional", func(t *testing.T) { + + t.Parallel() + + optionalType := interpreter.NewOptionalStaticType(nil, ty) + + actual := CanSkipStringNormalizingMigration(optionalType) + assert.Equal(t, expected, actual) + }) + + t.Run("variable-sized", func(t *testing.T) { + + t.Parallel() + + arrayType := interpreter.NewVariableSizedStaticType(nil, ty) + + actual := CanSkipStringNormalizingMigration(arrayType) + assert.Equal(t, expected, actual) + }) + + t.Run("constant-sized", func(t *testing.T) { + + t.Parallel() + + arrayType := interpreter.NewConstantSizedStaticType(nil, ty, 2) + + actual := CanSkipStringNormalizingMigration(arrayType) + assert.Equal(t, expected, actual) + }) + + t.Run("dictionary key", func(t *testing.T) { + + t.Parallel() + + dictionaryType := interpreter.NewDictionaryStaticType( + nil, + ty, + interpreter.PrimitiveStaticTypeInt, + ) + + actual := CanSkipStringNormalizingMigration(dictionaryType) + assert.Equal(t, expected, actual) + + }) + + t.Run("dictionary value", func(t *testing.T) { + + t.Parallel() + + dictionaryType := interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeInt, + ty, + ) + + actual := CanSkipStringNormalizingMigration(dictionaryType) + assert.Equal(t, expected, actual) + }) + }) + } + + for ty, expected := range testCases { + test(ty, expected) + } +} diff --git a/migrations/testdata/missing-slabs-payloads.csv b/migrations/testdata/missing-slabs-payloads.csv new file mode 100644 index 0000000000..c64aa50fa8 --- /dev/null +++ b/migrations/testdata/missing-slabs-payloads.csv @@ -0,0 +1,25 @@ +owner,key,value +5d63c34d7f05e5a4,240000000000000009,008883d88483d8c082487e60df042a9c086869466c6f77546f6b656e6f466c6f77546f6b656e2e5661756c7402021b6f605c4ae015732a008883005b00000000000000100727f5bf434b68c18638e048b5b7cdb49b0000000000000002826475756964d8a41a00a4a65d826762616c616e6365d8bc1b0000001748783b3a +5d63c34d7f05e5a4,612e73,0000000000000012b9000000000000002b0000000000000001 +5d63c34d7f05e5a4,24000000000000000f,00c883d8d982d8d41830d8d582d8c08248631e88ae7f1d7c20704e6f6e46756e6769626c65546f6b656e744e6f6e46756e6769626c65546f6b656e2e4e4654031bb9d0e9f36650574100c883005b00000000000000180a5d0065f54d3b70efeefcbe52b8e6bbfe71d66e8625c1019b000000000000000382d8a419bfedd8ff505d63c34d7f05e5a4000000000000001682d8a419bfecd8ff505d63c34d7f05e5a4000000000000001082d8a419c026d8ff505d63c34d7f05e5a40000000000000028 +5d63c34d7f05e5a4,240000000000000005,00c883d88483d8c08248a47a2d3a3b7e9133734469676974616c436f6e74656e744173736574781b4469676974616c436f6e74656e7441737365742e4e46544461746101041bdb477d045820e23f00c883005b000000000000002001e9dead718715827af7a9558c406fd09c308d168ef2bca4bbd2c23d2c1c98209b0000000000000004826c73657269616c4e756d626572d8a30182666974656d4964d8876e746573742d6974656d2d69642d3282686d65746164617461d8ff505d63c34d7f05e5a40000000000000006826b6974656d56657273696f6ed8a301 +5d63c34d7f05e5a4,240000000000000006,008883d8d982d8d408d8d408011bd3ad92ee82a688cf008883005b00000000000000087d4660d52656b0f19b000000000000000182d887666578496e666fd887781b4164646974696f6e616c20696e666f206561636820746f6b656e2e +5d63c34d7f05e5a4,24000000000000002a,008883d8d982d8d408d8d408001b7d63d5c2a25d9570008883005b00000000000000009b0000000000000000 +5d63c34d7f05e5a4,24000000000000000d,008883f6051bbe10d8ef134f8081008883005b00000000000000283c74aa8be0b9f0e484cd59f126f4e5908c69f0b6aca96e5f9c1af60840e775e3c06c0966bef02b939b0000000000000005826d444341436f6c6c656374696f6ed8cb82d8c882016d444341436f6c6c656374696f6ed8db82f4d8dc82d8d40581d8d682d8c08248a47a2d3a3b7e9133734469676974616c436f6e74656e74417373657478244469676974616c436f6e74656e7441737365742e436f6c6c656374696f6e5075626c6963827046616e546f705065726d697373696f6ed8cb82d8c882017046616e546f705065726d697373696f6ed8db82f4d8dc82d8d40581d8d682d8c08248a47a2d3a3b7e91337046616e546f705065726d697373696f6e781946616e546f705065726d697373696f6e2e52656365697665728270666c6f77546f6b656e42616c616e6365d8cb82d8c882016e666c6f77546f6b656e5661756c74d8db82f4d8dc82d8d582d8c082487e60df042a9c086869466c6f77546f6b656e6f466c6f77546f6b656e2e5661756c7481d8d682d8c082489a0766d93b6608b76d46756e6769626c65546f6b656e7546756e6769626c65546f6b656e2e42616c616e63658271666c6f77546f6b656e5265636569766572d8cb82d8c882016e666c6f77546f6b656e5661756c74d8db82f4d8dc82d8d582d8c082487e60df042a9c086869466c6f77546f6b656e6f466c6f77546f6b656e2e5661756c7481d8d682d8c082489a0766d93b6608b76d46756e6769626c65546f6b656e7646756e6769626c65546f6b656e2e5265636569766572827546616e546f70546f6b656e436f6c6c656374696f6ed8cb82d8c882017546616e546f70546f6b656e436f6c6c656374696f6ed8db82f4d8dc82d8d40581d8d682d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e781c46616e546f70546f6b656e2e436f6c6c656374696f6e5075626c6963 +5d63c34d7f05e5a4,7075626c6963,000000000000000d +5d63c34d7f05e5a4,240000000000000029,00c883d88483d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e7346616e546f70546f6b656e2e4e46544461746101041bee2eefad66dc79bb00c883005b000000000000002038fc822d312df7f38ef037256b43eed596a75665ca80dfe6aec0bc45428aa9e59b0000000000000004826b6974656d56657273696f6ed8a301826c73657269616c4e756d626572d8a30182686d65746164617461d8ff505d63c34d7f05e5a4000000000000002a82666974656d4964d887781a746573742d6974656d2d69642d31363534393133393635393138 +5d63c34d7f05e5a4,73746f72616765,000000000000000c +5d63c34d7f05e5a4,24000000000000000c,00c883f6041bd6bd24f14bb87b1d00c883005b000000000000002011e0799c7eee7e48e100d7590eb37bbcfc5fbcac8f0e7c49fdc92797c5d69e9f9b0000000000000004826e666c6f77546f6b656e5661756c74d8ff505d63c34d7f05e5a40000000000000009827546616e546f70546f6b656e436f6c6c656374696f6ed8ff505d63c34d7f05e5a4000000000000000e827046616e546f705065726d697373696f6ed8ff505d63c34d7f05e5a4000000000000000a826d444341436f6c6c656374696f6ed8ff505d63c34d7f05e5a40000000000000008 +5d63c34d7f05e5a4,240000000000000028,00c883d88483d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e6f46616e546f70546f6b656e2e4e465402041bb77700225b8d6b5200c883005b00000000000000202183e3a62217fe8a36d1395a6a775e199d29ed46c773a0acc6d7ec7f9e97bfc79b0000000000000004826464617461d8ff505d63c34d7f05e5a40000000000000029826475756964d8a41a05cb6bc982657265664964d8877819746573742d7265662d69642d3136353439313339363539313882626964d8a419c026 +5d63c34d7f05e5a4,240000000000000016,00c883d88483d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e6f46616e546f70546f6b656e2e4e465402041bb77700225b8d6b5200c883005b00000000000000202183e3a62217fe8a36d1395a6a775e199d29ed46c773a0acc6d7ec7f9e97bfc79b0000000000000004826464617461d8ff505d63c34d7f05e5a40000000000000017826475756964d8a41a05c8448882657265664964d8877819746573742d7265662d69642d3136353436363835373330383182626964d8a419bfed +5d63c34d7f05e5a4,24000000000000000b,00c883d8d982d8d582d8c08248a47a2d3a3b7e91337046616e546f705065726d697373696f6e7546616e546f705065726d697373696f6e2e526f6c65d8ddf6011b535c9de83a38cab000c883005b00000000000000089bd8ae8dd553d9479b000000000000000182d8ff5000000000000000000000000000000031d8c983d88348a47a2d3a3b7e9133d8c882026c46616e546f704d696e746572d8db82f4d8d582d8c08248a47a2d3a3b7e91337046616e546f705065726d697373696f6e7746616e546f705065726d697373696f6e2e4d696e746572 +5d63c34d7f05e5a4,240000000000000007,00c883d8d982d8d41830d8d582d8c08248631e88ae7f1d7c20704e6f6e46756e6769626c65546f6b656e744e6f6e46756e6769626c65546f6b656e2e4e4654011b095f1b185a2800d900c883005b00000000000000085521726dbf8b37549b000000000000000182d8a4182bd8ff505d63c34d7f05e5a40000000000000004 +5d63c34d7f05e5a4,240000000000000004,00c883d88483d8c08248a47a2d3a3b7e9133734469676974616c436f6e74656e744173736574774469676974616c436f6e74656e7441737365742e4e465402041bf62e63ac21a3216600c883005b00000000000000200507c593895292f5ab364b56d50468c7d0766f8c688ebb74f8c1a4433ffbccf29b000000000000000482626964d8a4182b826464617461d8ff505d63c34d7f05e5a40000000000000005826475756964d8a41a00a5641882657265664964d8877830746573742d7265662d69642d61353662363764392d306634352d346339622d613264352d636534306439376339333230 +5d63c34d7f05e5a4,240000000000000008,00c883d88483d8c08248a47a2d3a3b7e9133734469676974616c436f6e74656e744173736574781e4469676974616c436f6e74656e7441737365742e436f6c6c656374696f6e02021bf7f58ec9906ea65700c883005b0000000000000010e5df9d08d0a2430ce91971a214b62eaa9b0000000000000002826475756964d8a41a00a4a66682696f776e65644e465473d8ff505d63c34d7f05e5a40000000000000007 +5d63c34d7f05e5a4,240000000000000017,00c883d88483d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e7346616e546f70546f6b656e2e4e46544461746101041bee2eefad66dc79bb00c883005b000000000000002038fc822d312df7f38ef037256b43eed596a75665ca80dfe6aec0bc45428aa9e59b0000000000000004826b6974656d56657273696f6ed8a301826c73657269616c4e756d626572d8a30182686d65746164617461d8ff505d63c34d7f05e5a4000000000000001882666974656d4964d887781a746573742d6974656d2d69642d31363534363638353733303831 +5d63c34d7f05e5a4,240000000000000018,008883d8d982d8d408d8d408001b7d63d5c2a25d9570008883005b00000000000000009b0000000000000000 +5d63c34d7f05e5a4,240000000000000010,00c883d88483d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e6f46616e546f70546f6b656e2e4e465402041bb77700225b8d6b5200c883005b00000000000000202183e3a62217fe8a36d1395a6a775e199d29ed46c773a0acc6d7ec7f9e97bfc79b0000000000000004826464617461d8ff505d63c34d7f05e5a40000000000000011826475756964d8a41a05c838bf82657265664964d8877819746573742d7265662d69642d3136353436363539323439343382626964d8a419bfec +5d63c34d7f05e5a4,240000000000000011,00c883d88483d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e7346616e546f70546f6b656e2e4e46544461746101041bee2eefad66dc79bb00c883005b000000000000002038fc822d312df7f38ef037256b43eed596a75665ca80dfe6aec0bc45428aa9e59b0000000000000004826b6974656d56657273696f6ed8a301826c73657269616c4e756d626572d8a30182686d65746164617461d8ff505d63c34d7f05e5a4000000000000001282666974656d4964d887781a746573742d6974656d2d69642d31363534363635393234393433 +5d63c34d7f05e5a4,24000000000000000a,00c883d88483d8c08248a47a2d3a3b7e91337046616e546f705065726d697373696f6e7746616e546f705065726d697373696f6e2e486f6c64657202031bb9d0e9f36650574100c883005b000000000000001820d6c23f2e85e694b0070dbc21a9822de5725916c4a005e99b0000000000000003826475756964d8a41a00d858bc8265726f6c6573d8ff505d63c34d7f05e5a4000000000000000b8269726563697069656e74d883485d63c34d7f05e5a4 +5d63c34d7f05e5a4,240000000000000012,008883d8d982d8d408d8d408001b7d63d5c2a25d9570008883005b00000000000000009b0000000000000000 +5d63c34d7f05e5a4,24000000000000000e,00c883d88483d8c08248a47a2d3a3b7e91336b46616e546f70546f6b656e7646616e546f70546f6b656e2e436f6c6c656374696f6e02021b85d7c70d054429ef00c883005b000000000000001012dab75ddc75f021eec8d5b5338fb70a9b000000000000000282696f776e65644e465473d8ff505d63c34d7f05e5a4000000000000000f826475756964d8a41a05c83883 diff --git a/migrations/type_keys/migration.go b/migrations/type_keys/migration.go new file mode 100644 index 0000000000..a222a864fd --- /dev/null +++ b/migrations/type_keys/migration.go @@ -0,0 +1,118 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package type_keys + +import ( + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type TypeKeyMigration struct{} + +var _ migrations.ValueMigration = TypeKeyMigration{} + +func NewTypeKeyMigration() TypeKeyMigration { + return TypeKeyMigration{} +} + +func (TypeKeyMigration) Name() string { + return "TypeKeyMigration" +} + +func (TypeKeyMigration) Migrate( + _ interpreter.StorageKey, + _ interpreter.StorageMapKey, + value interpreter.Value, + _ *interpreter.Interpreter, + position migrations.ValueMigrationPosition, +) ( + interpreter.Value, + error, +) { + // Re-store Type values used as dictionary keys, + // to ensure that even when such values failed to get migrated + // by the static types and entitlements migration, + // they are still stored using their new hash. + + if position == migrations.ValueMigrationPositionDictionaryKey { + if typeValue, ok := value.(interpreter.TypeValue); ok { + return typeValue, nil + } + } + + return nil, nil +} + +func (TypeKeyMigration) Domains() map[string]struct{} { + return nil +} + +func (m TypeKeyMigration) CanSkip(valueType interpreter.StaticType) bool { + return CanSkipTypeKeyMigration(valueType) +} + +func CanSkipTypeKeyMigration(valueType interpreter.StaticType) bool { + + switch valueType := valueType.(type) { + case *interpreter.DictionaryStaticType: + return CanSkipTypeKeyMigration(valueType.KeyType) && + CanSkipTypeKeyMigration(valueType.ValueType) + + case interpreter.ArrayStaticType: + return CanSkipTypeKeyMigration(valueType.ElementType()) + + case *interpreter.OptionalStaticType: + return CanSkipTypeKeyMigration(valueType.Type) + + case *interpreter.CapabilityStaticType: + // Typed capability, can skip + return true + + case interpreter.PrimitiveStaticType: + + switch valueType { + case interpreter.PrimitiveStaticTypeMetaType: + return false + + case interpreter.PrimitiveStaticTypeBool, + interpreter.PrimitiveStaticTypeVoid, + interpreter.PrimitiveStaticTypeAddress, + interpreter.PrimitiveStaticTypeBlock, + interpreter.PrimitiveStaticTypeString, + interpreter.PrimitiveStaticTypeCharacter, + // Untyped capability, can skip + interpreter.PrimitiveStaticTypeCapability: + + return true + } + + if !valueType.IsDeprecated() { //nolint:staticcheck + semaType := valueType.SemaType() + + if sema.IsSubType(semaType, sema.NumberType) || + sema.IsSubType(semaType, sema.PathType) { + + return true + } + } + } + + return false +} diff --git a/migrations/type_keys/migration_test.go b/migrations/type_keys/migration_test.go new file mode 100644 index 0000000000..e43e68f3d8 --- /dev/null +++ b/migrations/type_keys/migration_test.go @@ -0,0 +1,269 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package type_keys + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/migrations" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +type testReporter struct { + migrated map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string + errors []error +} + +var _ migrations.Reporter = &testReporter{} + +func newTestReporter() *testReporter { + return &testReporter{ + migrated: map[struct { + interpreter.StorageKey + interpreter.StorageMapKey + }][]string{}, + } +} + +func (t *testReporter) Migrated( + storageKey interpreter.StorageKey, + storageMapKey interpreter.StorageMapKey, + migration string, +) { + key := struct { + interpreter.StorageKey + interpreter.StorageMapKey + }{ + StorageKey: storageKey, + StorageMapKey: storageMapKey, + } + + t.migrated[key] = append( + t.migrated[key], + migration, + ) +} + +func (t *testReporter) Error(err error) { + t.errors = append(t.errors, err) +} + +func (t *testReporter) DictionaryKeyConflict(addressPath interpreter.AddressPath) { + // For testing purposes, record the conflict as an error + t.errors = append(t.errors, fmt.Errorf("dictionary key conflict: %s", addressPath)) +} + +func TestTypeKeyMigration(t *testing.T) { + t.Parallel() + + account := common.Address{0x42} + pathDomain := common.PathDomainPublic + locationRange := interpreter.EmptyLocationRange + + type testCase struct { + name string + storedValue func(inter *interpreter.Interpreter) interpreter.Value + expectedValue func(inter *interpreter.Interpreter) interpreter.Value + } + + test := func(t *testing.T, testCase testCase) { + + t.Run(testCase.name, func(t *testing.T) { + + t.Parallel() + + ledger := NewTestLedger(nil, nil) + + storageMapKey := interpreter.StringStorageMapKey("test") + + newStorageAndInterpreter := func(t *testing.T) (*runtime.Storage, *interpreter.Interpreter) { + storage := runtime.NewStorage(ledger, nil) + inter, err := interpreter.NewInterpreter( + nil, + utils.TestLocation, + &interpreter.Config{ + Storage: storage, + // NOTE: disabled, because encoded and decoded values are expected to not match + AtreeValueValidationEnabled: false, + AtreeStorageValidationEnabled: true, + }, + ) + require.NoError(t, err) + + return storage, inter + } + + // Store value + (func() { + + storage, inter := newStorageAndInterpreter(t) + + transferredValue := testCase.storedValue(inter).Transfer( + inter, + locationRange, + atree.Address(account), + false, + nil, + nil, + ) + + inter.WriteStored( + account, + pathDomain.Identifier(), + storageMapKey, + transferredValue, + ) + + err := storage.Commit(inter, true) + require.NoError(t, err) + })() + + // Migrate + (func() { + + storage, inter := newStorageAndInterpreter(t) + + migration, err := migrations.NewStorageMigration(inter, storage, "test", account) + require.NoError(t, err) + + reporter := newTestReporter() + + migration.Migrate( + migration.NewValueMigrationsPathMigrator( + reporter, + NewTypeKeyMigration(), + ), + ) + + err = migration.Commit() + require.NoError(t, err) + + require.Empty(t, reporter.errors) + + })() + + // Load + (func() { + + storage, inter := newStorageAndInterpreter(t) + + err := storage.CheckHealth() + require.NoError(t, err) + + storageMap := storage.GetStorageMap(account, pathDomain.Identifier(), false) + require.NotNil(t, storageMap) + require.Equal(t, uint64(1), storageMap.Count()) + + actualValue := storageMap.ReadValue(nil, storageMapKey) + + expectedValue := testCase.expectedValue(inter) + + utils.AssertValuesEqual(t, inter, expectedValue, actualValue) + })() + }) + } + + testCases := []testCase{ + { + name: "optional reference", + storedValue: func(inter *interpreter.Interpreter) interpreter.Value { + + dictValue := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeInt, + ), + ) + + dictValue.Insert( + inter, + locationRange, + // NOTE: storing with legacy key + migrations.LegacyKey( + interpreter.NewTypeValue( + nil, + interpreter.NewOptionalStaticType( + nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeInt, + ), + ), + ), + ), + interpreter.NewUnmeteredIntValueFromInt64(42), + ) + + return dictValue + }, + expectedValue: func(inter *interpreter.Interpreter) interpreter.Value { + dictValue := interpreter.NewDictionaryValue( + inter, + locationRange, + interpreter.NewDictionaryStaticType( + nil, + interpreter.PrimitiveStaticTypeMetaType, + interpreter.PrimitiveStaticTypeInt, + ), + ) + + dictValue.Insert( + inter, + locationRange, + // NOTE: expecting to load with new key + interpreter.NewTypeValue( + nil, + interpreter.NewOptionalStaticType( + nil, + interpreter.NewReferenceStaticType( + nil, + interpreter.UnauthorizedAccess, + interpreter.PrimitiveStaticTypeInt, + ), + ), + ), + interpreter.NewUnmeteredIntValueFromInt64(42), + ) + + return dictValue + }, + }, + } + + for _, testCase := range testCases { + test(t, testCase) + } + +} diff --git a/migrations_data/staged-contracts-report-2024-04-17T20-05-50Z-testnet.json b/migrations_data/staged-contracts-report-2024-04-17T20-05-50Z-testnet.json new file mode 100644 index 0000000000..540b4f5926 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-04-17T20-05-50Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopMarket"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter","error":"error: resource `aiSportsMinter.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8ba321af4bd37bb.aiSportsMinter:157:23\n |\n157 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(contract) var ownedNFTs: @{UInt64: aiSportsMinter.NFT}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: conformances does not match in `Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^^^^^^^^^^\n\nerror: conformances does not match in `ZeedzINO`\n --\u003e d35bad52c7e1ab65.ZeedzINO:32:21\n |\n32 | access(all) contract ZeedzINO: NonFungibleToken {\n | ^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-failure","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT","error":"error: resource `PackNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e a2526e2d9cc7f0d2.PackNFT:209:25\n |\n209 | access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {\n | ^\n ... \n |\n213 | access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Marketplace","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot apply unary operation * to type\n --\u003e 99ca04281098b33d.Art:415:185\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:55:39\n |\n55 | recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:55:38\n |\n55 | recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:89:30\n |\n89 | init(id: UInt64, art: Art.Metadata, cacheKey: String, price: UFix64){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:81:17\n |\n81 | let art: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:107:31\n |\n107 | var forSale: @{UInt64: Art.NFT}\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:150:37\n |\n150 | fun borrowArt(id: UInt64): \u0026{Art.Public}?{ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:150:36\n |\n150 | fun borrowArt(id: UInt64): \u0026{Art.Public}?{ \n | ^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:159:40\n |\n159 | fun withdraw(tokenID: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:170:32\n |\n170 | fun listForSale(token: @Art.NFT, price: UFix64){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:194:65\n |\n194 | fun purchase(tokenID: UInt64, recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:194:64\n |\n194 | fun purchase(tokenID: UInt64, recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:152:46\n |\n152 | return (\u0026self.forSale[id] as \u0026Art.NFT?)!\n | ^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Auction","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot apply unary operation * to type\n --\u003e 99ca04281098b33d.Art:415:185\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:438:20\n |\n438 | token: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:443:40\n |\n443 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:443:39\n |\n443 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:458:40\n |\n458 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:458:39\n |\n458 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:67:22\n |\n67 | metadata: Art.Metadata?,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:41:22\n |\n41 | let metadata: Art.Metadata?\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:184:18\n |\n184 | NFT: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:189:45\n |\n189 | ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:189:44\n |\n189 | ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:134:18\n |\n134 | var NFT: @Art.NFT?\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:169:49\n |\n169 | var recipientCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e?\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:169:48\n |\n169 | var recipientCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:177:45\n |\n177 | let ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:177:44\n |\n177 | let ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:216:47\n |\n216 | fun sendNFT(_ capability: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:216:46\n |\n216 | fun sendNFT(_ capability: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:359:40\n |\n359 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:359:39\n |\n359 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:34\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:169\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:499:168\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:557:145\n |\n557 | fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:557:144\n |\n557 | fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:573:16\n |\n573 | token: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:578:36\n |\n578 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:578:35\n |\n578 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Versus","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot apply unary operation * to type\n --\u003e 99ca04281098b33d.Art:415:185\n\n--\u003e 99ca04281098b33d.Art\n\nerror: error getting program 99ca04281098b33d.Auction: failed to derive value: load program failed: Checking failed:\nerror: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot apply unary operation * to type\n --\u003e 99ca04281098b33d.Art:415:185\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:438:20\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:443:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:443:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:458:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:458:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:67:22\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:41:22\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:184:18\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:189:45\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:189:44\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:134:18\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:169:49\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:169:48\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:177:45\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:177:44\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:216:47\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:216:46\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:359:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:359:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:34\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:169\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:499:168\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:557:145\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:557:144\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:573:16\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:578:36\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:578:35\n\n--\u003e 99ca04281098b33d.Auction\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:564:40\n |\n564 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:564:39\n |\n564 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:138:28\n |\n138 | uniqueAuction: @Auction.AuctionItem,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:139:30\n |\n139 | editionAuctions: @Auction.AuctionCollection,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:108:28\n |\n108 | let uniqueAuction: @Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:111:30\n |\n111 | let editionAuctions: @Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:128:22\n |\n128 | let metadata: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:274:44\n |\n274 | fun getAuction(auctionId: UInt64): \u0026Auction.AuctionItem{ \n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:296:40\n |\n296 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:296:39\n |\n296 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:442:30\n |\n442 | init(_ auctionStatus: Auction.AuctionStatus){ \n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:508:26\n |\n508 | uniqueStatus: Auction.AuctionStatus,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:516:22\n |\n516 | metadata: Art.Metadata,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:495:22\n |\n495 | let metadata: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:603:104\n |\n603 | init(marketplaceVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e, cutPercentage: UFix64){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:603:103\n |\n603 | init(marketplaceVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e, cutPercentage: UFix64){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:601:46\n |\n601 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:601:45\n |\n601 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:717:168\n |\n717 | fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:717:167\n |\n717 | fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:840:166\n |\n840 | fun mintArt(artist: Address, artistName: String, artName: String, content: String, description: String, type: String, artistCut: UFix64, minterCut: UFix64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:861:29\n |\n861 | fun editionArt(art: \u0026Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:861:77\n |\n861 | fun editionArt(art: \u0026Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:866:39\n |\n866 | fun editionAndDepositArt(art: \u0026Art.NFT, to: [Address]){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:941:46\n |\n941 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e =\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:941:45\n |\n941 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e =\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:942:35\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:942:34\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:942:58\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:942:8\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:165:52\n |\n165 | let uniqueRef = \u0026self.uniqueAuction as \u0026Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:166:55\n |\n166 | let editionRef = \u0026self.editionAuctions as \u0026Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:339:57\n |\n339 | let auctionRef = \u0026self.uniqueAuction as \u0026Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:350:60\n |\n350 | let editionsRef = \u0026self.editionAuctions as \u0026Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:631:32\n |\n631 | let art \u003c- nft as! @Art.NFT\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:636:37\n |\n636 | let editionedAuctions \u003c- Auction.createAuctionCollection(marketplaceVault: self.marketplaceVault, cutPercentage: self.cutPercentage)\n | ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:639:57\n |\n639 | editionedAuctions.createAuction(token: \u003c-Art.makeEdition(original: \u0026art as \u0026Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:639:92\n |\n639 | editionedAuctions.createAuction(token: \u003c-Art.makeEdition(original: \u0026art as \u0026Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:644:24\n |\n644 | let item \u003c- Auction.createStandaloneAuction(token: \u003c-art, minimumBidIncrement: minimumBidUniqueIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:814:54\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:814:76\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:814:23\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:855:37\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:855:98\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^^^ not found in this scope\n\nerror: cannot infer type from dictionary literal: requires an explicit type annotation\n --\u003e 99ca04281098b33d.Versus:855:25\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:856:23\n |\n856 | let art \u003c- Art.createArtWithPointer(name: artName, artist: artistName, artistAddress: artist, description: description, type: type, contentCapability: contentCapability, contentId: contentId, royalty: royalty)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:862:21\n |\n862 | return \u003c-Art.makeEdition(original: art, edition: edition, maxEdition: maxEdition)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:870:36\n |\n870 | let editionedArt \u003c- Art.makeEdition(original: art, edition: i, maxEdition: maxEdition)\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:872:63\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:872:62\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:872:86\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:872:36\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:873:17\n |\n873 | (collectionCap.borrow()!).deposit(token: \u003c-editionedArt)\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:902:87\n |\n902 | return Versus.account.storage.borrow\u003c\u0026{NonFungibleToken.Collection}\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Art","error":"error: cannot apply unary operation * to type\n --\u003e 99ca04281098b33d.Art:415:185\n |\n415 | var newNFT \u003c- create NFT(initID: Art.totalSupply, metadata: metadata, contentCapability: original.contentCapability, contentId: original.contentId, url: original.url, royalty: *original.royalty)\n | ^^^^^^^^^^^^^^^^ expected primitive or container of primitives, got `{String: Art.Royalty}`\n"},{"kind":"contract-update-failure","account_address":"0x95e019a17d0e23d7","contract_name":"LockedTokens","error":"error: expected token '\u0026'\n --\u003e 95e019a17d0e23d7.LockedTokens:94:46\n |\n94 | access(all) var vault: Capability\u003cauth(FungibleToken.Withdraw) \u0026FlowToken.Vault\u003e\n | ^\n"},{"kind":"contract-update-failure","account_address":"0x95e019a17d0e23d7","contract_name":"FlowStakingCollection","error":"error: unexpected identifier\n --\u003e 95e019a17d0e23d7.FlowStakingCollection:43:13\n |\n43 | view init(nodeID: String, delegatorID: UInt32) {\n | ^\n"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KaratNFT"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:340:32\n |\n340 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:15\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:56\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:110\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:399:8\n |\n399 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: use of previously moved resource\n --\u003e 3e5b4c627064625d.GeneratedExperiences:271:43\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ^^^^^ resource used here after move\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ----- resource previously moved here\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:284:32\n |\n284 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:15\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:56\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:110\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:15\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:67\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:121\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:328:8\n |\n328 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:341:32\n |\n341 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:15\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:56\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:110\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:15\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:67\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:121\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:396:8\n |\n396 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:380:36\n |\n380 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:19\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:60\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:114\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:19\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:71\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:125\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:414:46\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 3e5b4c627064625d.Flomies:414:45\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:434:12\n |\n434 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FIND","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n |\n1358 | access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n |\n1610 | access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{LeaseCollectionPublic}\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n |\n2110 | if self.account.storage.borrow\u003c\u0026FUSD.Vault\u003e(from: FUSD.VaultStoragePath) == nil {\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n |\n2112 | let vault \u003c- FUSD.createEmptyVault()\n | ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n |\n2115 | self.account.storage.save(\u003c-vault, to: FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n |\n2119 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n |\n2121 | self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)\n | ^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n |\n2123 | let capb = self.account.capabilities.storage.issue\u003c\u0026{FungibleToken.Vault}\u003e(FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n |\n2129 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n |\n2131 | self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)\n | ^^^^^^^^^^^^^^^^^^ unknown member\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n |\n1633 | let usdcCap = account.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FiatToken.VaultReceiverPubPath)!\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindViews","error":"error: mismatching field `cap` in `ViewReadPointer`\n --\u003e 35717efbbce11c74.FindViews:137:30\n |\n137 | access(self) let cap: Capability\u003c\u0026{ViewResolver.ResolverCollection}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected `{MetadataViews.ResolverCollection}`, found `{ViewResolver.ResolverCollection}`\n\nerror: mismatching field `cap` in `AuthNFTPointer`\n --\u003e 35717efbbce11c74.FindViews:234:30\n |\n234 | access(self) let cap: Capability\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider, ViewResolver.ResolverCollection}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected `{MetadataViews.ResolverCollection, NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}`, found `{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider, ViewResolver.ResolverCollection}`\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:21:36\n |\n21 | access(all) resource SaleItem : FindLeaseMarket.SaleItem{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:132:71\n |\n132 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:59\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:58\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:18:170\n |\n18 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:33:22\n |\n33 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:26:38\n |\n26 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:94:38\n |\n94 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:110:40\n |\n110 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:47\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:46\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:60\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:59\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:41\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:40\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:201:48\n |\n201 | access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:59\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:58\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:83\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:82\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:283:138\n |\n283 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:294:8\n |\n294 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:295:8\n |\n295 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:284:11\n |\n284 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:287:22\n |\n287 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:288:101\n |\n288 | return getAccount(user).capabilities.get\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:64:23\n |\n64 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:25\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:19\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:87:19\n |\n87 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:111:19\n |\n111 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:174:183\n |\n174 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy lease for sale\"), seller: self.owner!.address, buyer: to)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:189:26\n |\n189 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:190:26\n |\n190 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:194:12\n |\n194 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:196:123\n |\n196 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:\"sold\", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:216:183\n |\n216 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list lease for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:223:124\n |\n223 | emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:237:187\n |\n237 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist lease for sale\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:243:126\n |\n243 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:250:126\n |\n250 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:252:126\n |\n252 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n\n--\u003e 35717efbbce11c74.NameVoucher\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:38:57\n |\n38 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:44:49\n |\n44 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:46:57\n |\n46 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:156:110\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:156:109\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:59:12\n |\n59 | FindForge.addPublicForgeType(forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:67:12\n |\n67 | FindForge.addPrivateForgeType(name: name, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:75:12\n |\n75 | FindForge.removeForgeType(type: type)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:83:12\n |\n83 | FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.Admin:91:12\n |\n91 | FindForgeOrder.addMintType(mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:99:12\n |\n99 | FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:106:12\n |\n106 | FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:114:19\n |\n114 | return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:161:16\n |\n161 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:174:16\n |\n174 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:178:23\n |\n178 | let user = FIND.lookupAddress(name) ?? panic(\"Cannot find lease owner. Lease : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:58\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:179:57\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:87\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:188:16\n |\n188 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:192:12\n |\n192 | FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:200:12\n |\n200 | FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:295:122\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:296:12\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:359:19\n |\n359 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:57\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:87\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:367:27\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:368:19\n |\n368 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n |\n228 | let status = FIND.status(name)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n |\n231 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarket","error":"error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n |\n1411 | if sbRef.getVaultTypes().contains(ftInfo.type) {\n | ^^^^^^^^^^^^^ unknown member\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n |\n1417 | case Type\u003c@TokenForwarding.Forwarder\u003e() :\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n |\n1417 | case Type\u003c@TokenForwarding.Forwarder\u003e() :\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:26:57\n |\n26 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:32:49\n |\n32 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:34:57\n |\n34 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:91\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:133\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:58:51\n |\n58 | access(Owner) fun getFindMarketClient(): \u0026FindMarket.TenantClient{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:129:61\n |\n129 | access(Owner) fun getTenantRef(_ tenant: Address) : \u0026FindMarket.Tenant {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:139:66\n |\n139 | access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:155:64\n |\n155 | access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:171:69\n |\n171 | access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:47:20\n |\n47 | return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:55:12\n |\n55 | FindMarket.removeFindMarketTenant(tenant: tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:63:23\n |\n63 | let path = FindMarket.TenantClientStoragePath\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:63\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:94\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:19\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:74:12\n |\n74 | FindMarket.addSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:81:12\n |\n81 | FindMarket.addMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:88:12\n |\n88 | FindMarket.addSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:95:12\n |\n95 | FindMarket.addMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:102:12\n |\n102 | FindMarket.removeSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:109:12\n |\n109 | FindMarket.removeMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:116:12\n |\n116 | FindMarket.removeSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:123:12\n |\n123 | FindMarket.removeMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:133:25\n |\n133 | let string = FindMarket.getTenantPathForAddress(tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:67\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:22\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:228:12\n |\n228 | FindMarket.setResidualAddress(address)\n | ^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n |\n12 | access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n |\n13 | access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n |\n18 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n |\n20 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n |\n27 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n |\n68 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n |\n70 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n |\n78 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n |\n81 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n |\n100 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n |\n102 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n |\n110 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n |\n115 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Dandy","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:348:32\n |\n348 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:63:119\n |\n63 | init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:61:39\n |\n61 | access(contract) let platform: FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:87:46\n |\n87 | access(all) fun getMinterPlatform() : FindForge.MinterPlatform {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:15\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:56\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:110\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:333:109\n |\n333 | access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: [AnyStruct], externalUrlPrefix:String?) : @NFT {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:360:42\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Dandy:360:41\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:388:8\n |\n388 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:390:8\n |\n390 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:88:27\n |\n88 | if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:89:50\n |\n89 | let platform = \u0026self.platform as \u0026FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n |\n46 | let senderName = FIND.reverseLookup(sender)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n |\n76 | emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n |\n95 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n |\n124 | flowTokenRepayment: flowTokenRepayment\n | ^^^^^^^^^^^^^^^^^^ expected `Capability\u003c\u0026FlowToken.Vault\u003e?`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n |\n129 | emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n |\n140 | emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: \"invalid capability\")\n | ^^^^ not found in this scope\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n |\n154 | shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)\n | ^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n |\n162 | senderName = FIND.reverseLookup(sender!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n |\n164 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n |\n165 | emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:14:141\n |\n14 | access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: [String], nfts:[FindMarket.NFTInfo], tags: [String], quoteOwner: Address?, quoteId: UInt64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:154:73\n |\n154 | emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:167:68\n |\n167 | emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:56\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:111\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:268:24\n |\n268 | let nfts : [FindMarket.NFTInfo] = []\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:273:28\n |\n273 | nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:282:30\n |\n282 | let creatorName = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:307:23\n |\n307 | name = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:309:80\n |\n309 | emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:264:71\n |\n264 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:707:31\n |\n707 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:756:73\n |\n756 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:106:52\n |\n106 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:197:38\n |\n197 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:47\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:46\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:60\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:59\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:41\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:40\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:57\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:56\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:93\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:92\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:60\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:59\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:41\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:40\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:55\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:54\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:83\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:82\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:131\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:130\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:900:118\n |\n900 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:910:115\n |\n910 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:921:8\n |\n921 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:922:8\n |\n922 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:923:8\n |\n923 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:924:8\n |\n924 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:901:11\n |\n901 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:904:22\n |\n904 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:905:81\n |\n905 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:911:11\n |\n911 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:914:22\n |\n914 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:915:82\n |\n915 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:89:19\n |\n89 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:101:23\n |\n101 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:107:19\n |\n107 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:198:19\n |\n198 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:292:148\n |\n292 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"add bid in auction\"), seller: self.owner!.address, buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:337:36\n |\n337 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:342:26\n |\n342 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:344:110\n |\n344 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:400:148\n |\n400 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid in auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:429:26\n |\n429 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:431:110\n |\n431 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:497:24\n |\n497 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:504:30\n |\n504 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:506:114\n |\n506 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:508:114\n |\n508 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:538:152\n |\n538 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill auction\"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:560:30\n |\n560 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:561:33\n |\n561 | let sellerName = FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:572:25\n |\n572 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:16\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:189\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:635:148\n |\n635 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:662:113\n |\n662 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForge","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n |\n413 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n |\n421 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n |\n427 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n |\n110 | access(all) fun setMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n |\n178 | access(all) fun removeMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n |\n229 | access(all) fun orderForge(lease: \u0026FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n |\n263 | access(all) fun mint (lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct, receiver: \u0026{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n |\n310 | access(all) fun addContractData(lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n |\n155 | let user = FIND.lookupAddress(leaseName) ?? panic(\"Cannot find lease owner. Lease : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n |\n234 | FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n |\n238 | FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n |\n242 | FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n |\n246 | let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n |\n272 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n |\n302 | let toName = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n |\n303 | let new = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n |\n319 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n |\n36 | self.minter=FIND.lookupAddress(self.name)!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:22:36\n |\n22 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:163:71\n |\n163 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:158:57\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:158:56\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:19:164\n |\n19 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:106:38\n |\n106 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:122:52\n |\n122 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:170:47\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:170:46\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:168:60\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:168:59\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:175:41\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:175:40\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:360:57\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:360:56\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:369:83\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:369:82\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:373:133\n |\n373 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:383:8\n |\n383 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:384:8\n |\n384 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:374:26\n |\n374 | if let tenantCap=FindMarket.getTenantCapability(marketplace) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:376:96\n |\n376 | return getAccount(user).capabilities.get\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:73:23\n |\n73 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:99:19\n |\n99 | return FIND.reverseLookup(self.pointer.owner())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:123:19\n |\n123 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:213:139\n |\n213 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"buy item for sale\"), seller: self.owner!.address, buyer: nftCap.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:224:26\n |\n224 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:225:27\n |\n225 | let sellerName=FIND.reverseLookup(self.owner!.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:227:113\n |\n227 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:\"sold\", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:234:21\n |\n234 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:236:12\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:236:199\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:286:139\n |\n286 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:295:115\n |\n295 | emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:311:24\n |\n311 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:317:98\n |\n317 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36\n |\n17 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71\n |\n175 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31\n |\n452 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73\n |\n501 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171\n |\n13 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52\n |\n80 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38\n |\n108 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8\n |\n695 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8\n |\n696 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8\n |\n697 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8\n |\n698 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11\n |\n661 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22\n |\n664 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11\n |\n671 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22\n |\n674 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11\n |\n685 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22\n |\n688 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19\n |\n65 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26\n |\n74 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19\n |\n81 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26\n |\n211 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24\n |\n214 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106\n |\n219 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152\n |\n236 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"add bid in direct offer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26\n |\n246 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106\n |\n251 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156\n |\n269 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30\n |\n282 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113\n |\n287 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152\n |\n302 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26\n |\n325 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36\n |\n330 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106\n |\n332 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26\n |\n354 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24\n |\n357 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106\n |\n362 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152\n |\n384 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26\n |\n402 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27\n |\n403 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21\n |\n415 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Profile","error":"error: mismatching field `balance` in `Wallet`\n --\u003e 35717efbbce11c74.Profile:39:33\n |\n39 | access(all) let balance: Capability\u003c\u0026{FungibleToken.Vault}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected `{FungibleToken.Balance}`, found `{FungibleToken.Vault}`\n\nerror: conformances does not match in `User`\n --\u003e 35717efbbce11c74.Profile:258:25\n |\n258 | access(all) resource User: Public, FungibleToken.Receiver {\n | ^^^^\n\nerror: missing DeclarationKindResourceInterface declaration `Owner`\n --\u003e 35717efbbce11c74.Profile:9:21\n |\n9 | access(all) contract Profile {\n | ^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n |\n154 | if !cap.check() {\n | ^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n |\n157 | let ref = cap.borrow()!\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:189:71\n |\n189 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:533:31\n |\n533 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:586:73\n |\n586 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:14:171\n |\n14 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:74:38\n |\n74 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:120:52\n |\n120 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:47\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:46\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:60\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:59\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:41\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:40\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:57\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:56\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:93\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:92\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:60\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:59\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:41\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:40\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:55\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:54\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:83\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:82\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:131\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:130\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:774:8\n |\n774 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:775:8\n |\n775 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:776:8\n |\n776 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:777:8\n |\n777 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:754:11\n |\n754 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:757:22\n |\n757 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:764:11\n |\n764 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:767:22\n |\n767 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:106:19\n |\n106 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:114:26\n |\n114 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:121:19\n |\n121 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:234:26\n |\n234 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:237:24\n |\n237 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:242:134\n |\n242 | emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:260:150\n |\n260 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:270:26\n |\n270 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:275:106\n |\n275 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:293:183\n |\n293 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:304:30\n |\n304 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:309:113\n |\n309 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:325:150\n |\n325 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:348:26\n |\n348 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:353:36\n |\n353 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:356:106\n |\n356 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:378:26\n |\n378 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:381:24\n |\n381 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:386:106\n |\n386 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:413:150\n |\n413 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:427:26\n |\n427 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:432:106\n |\n432 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:457:150\n |\n457 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:470:26\n |\n470 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:471:27\n |\n471 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:486:21\n |\n486 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:12\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:187\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:7:86\n |\n7 | access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:14:22\n |\n14 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:16:43\n |\n16 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:22:22\n |\n22 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:24:43\n |\n24 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n |\n1156 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n |\n307 | init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n |\n305 | access(all) let verifierRef: \u0026FindForge.Verifier\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n |\n1220 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n |\n1223 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:260:71\n |\n260 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:657:31\n |\n657 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:708:73\n |\n708 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:102:52\n |\n102 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:193:38\n |\n193 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:47\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:46\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:60\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:59\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:41\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:40\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:57\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:56\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:93\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:92\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:60\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:59\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:41\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:40\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:55\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:54\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:83\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:82\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:131\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:130\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:864:8\n |\n864 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:865:8\n |\n865 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:866:8\n |\n866 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:867:8\n |\n867 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:844:11\n |\n844 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:847:22\n |\n847 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:854:11\n |\n854 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:857:22\n |\n857 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:85:19\n |\n85 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:97:23\n |\n97 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:103:19\n |\n103 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:194:19\n |\n194 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:290:147\n |\n290 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"add bit in soft-auction\"), seller: self.owner!.address ,buyer: buyer)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:333:36\n |\n333 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:336:26\n |\n336 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:338:110\n |\n338 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:388:146\n |\n388 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:416:26\n |\n416 | let buyerName=FIND.reverseLookup(callback.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:418:123\n |\n418 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:452:24\n |\n452 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:458:30\n |\n458 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:460:114\n |\n460 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:462:114\n |\n462 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:518:146\n |\n518 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:537:26\n |\n537 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:538:27\n |\n538 | let sellerName=FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:540:110\n |\n540 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:549:21\n |\n549 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:12\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:146\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:592:163\n |\n592 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:612:126\n |\n612 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: \"active_listed\", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71\n |\n228 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31\n |\n529 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73\n |\n579 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22\n |\n32 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38\n |\n19 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40\n |\n91 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38\n |\n181 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51\n |\n463 | access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118\n |\n706 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115\n |\n716 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8\n |\n727 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8\n |\n728 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8\n |\n729 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8\n |\n730 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11\n |\n707 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22\n |\n710 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81\n |\n711 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11\n |\n717 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22\n |\n720 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82\n |\n721 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19\n |\n70 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23\n |\n86 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19\n |\n92 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19\n |\n182 | return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26\n |\n254 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36\n |\n261 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30\n |\n265 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30\n |\n266 | let profile = FIND.lookup(buyer!.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138\n |\n267 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138\n |\n269 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167\n |\n280 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"add bit in soft-auction\"), seller: self.owner!.address ,buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167\n |\n361 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167\n |\n405 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item from soft-auction\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167\n |\n443 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12\n |\n457 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167\n |\n482 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38\n |\n621 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32\n |\n629 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-failure","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog","error":"error: conformances does not match in `NFTCatalogProposalManager`\n --\u003e 324c34e1c517e4db.NFTCatalog:76:25\n |\n76 | access(all) resource NFTCatalogProposalManager {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: missing DeclarationKindResourceInterface declaration `NFTCatalogProposalManagerPublic`\n --\u003e 324c34e1c517e4db.NFTCatalog:13:21\n |\n13 | access(all) contract NFTCatalog {\n | ^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n |\n325 | access(all) fun getLease() : FIND.LeaseInformation\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n |\n352 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n |\n401 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n |\n666 | access(contract) fun getNetwork() : \u0026FIND.Network {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n |\n30 | return FindMarket.getTenantCapability(tenant)!.borrow()!\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n |\n58 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n |\n70 | let address=FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n |\n87 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n |\n100 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n |\n110 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n |\n114 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n |\n124 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n |\n128 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n |\n168 | let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n |\n183 | let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n |\n224 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n |\n245 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n |\n443 | let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n |\n449 | let findName = FIND.reverseLookup(cut.getAddress())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n |\n673 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n |\n674 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n |\n679 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n |\n680 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n |\n685 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n |\n686 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n |\n691 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n |\n692 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n |\n337 | let address = FIND.lookupAddress(name) ?? panic(\"This lease name is not owned\")\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n |\n477 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n |\n479 | } else if status.status == FIND.LeaseStatus.LOCKED {\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 35717efbbce11c74.FindMarket:1417:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarket:1417:17\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31\n |\n418 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73\n |\n470 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177\n |\n16 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22\n |\n27 | init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability\u003c\u0026{MarketBidCollectionPublic}\u003e, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38\n |\n69 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40\n |\n119 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51\n |\n131 | access(contract) fun setPointer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50\n |\n328 | access(Seller) fun acceptOffer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118\n |\n614 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115\n |\n625 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8\n |\n636 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8\n |\n637 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8\n |\n638 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8\n |\n639 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12\n |\n615 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22\n |\n618 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81\n |\n620 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12\n |\n626 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22\n |\n629 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82\n |\n630 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43\n |\n50 | let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19\n |\n105 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26\n |\n113 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19\n |\n120 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167\n |\n207 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"cancel bid in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26\n |\n223 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26\n |\n224 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26\n |\n226 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36\n |\n233 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130\n |\n236 | emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167\n |\n247 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27\n |\n262 | let item = FindLeaseMarket.ReadLeasePointer(name: name)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171\n |\n264 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167\n |\n281 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167\n |\n314 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"reject offer in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167\n |\n339 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167\n |\n366 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12\n |\n377 | FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo: leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38\n |\n514 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32\n |\n532 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks","error":"error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:43:33\n |\n43 | \t\taccess(all) fun getPackType(): DoodlePackTypes.PackType {\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:217:17\n |\n217 | \t\tlet packType = DoodlePackTypes.getPackType(id: typeId) ?? panic(\"Invalid pack type\")\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:218:38\n |\n218 | \t\tassert(packType.maxSupply == nil || DoodlePackTypes.getPackTypesMintedCount(typeId: packType.id) \u003c packType.maxSupply!, message: \"Max supply reached\")\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:222:2\n |\n222 | \t\tDoodlePackTypes.addMintedCountToPackType(typeId: typeId, amount: 1)\n | \t\t^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n |\n236 | \t\tlet openPack \u003c- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:31:7\n |\n31 | \t\t\tif (DoodlePackTypes.getPackType(id: typeId) == nil) {\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:44:10\n |\n44 | \t\t\treturn DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:17\n |\n64 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:44\n |\n64 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Teleport","error":"error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:0\n |\n19 | pub contract TokenForwarding {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event ForwardedDeposit(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub resource interface ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:8\n |\n28 | pub fun check(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:8\n |\n36 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:4\n |\n39 | pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:8\n |\n51 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun check(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun safeBorrow(): \u0026{FungibleToken.Receiver}? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:8\n |\n79 | pub fun changeRecipient(_ newRecipient: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:8\n |\n90 | pub fun getSupportedVaultTypes(): {Type: Bool} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub fun createNewForwarder(recipient: Capability): @Forwarder {\n | ^^^\n\n--\u003e 51ea0e37c27a1f1a.TokenForwarding\n\nerror: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :7:0\n |\n7 | pub contract DapperStorageRent {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:2\n |\n9 | pub let DapperStorageRentAdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:2\n |\n23 | pub event BlockedAddress(_ address: [Address])\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:2\n |\n25 | pub event Refuelled(_ address: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub event RefilledFailed(address: Address, reason: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub fun getStorageRentRefillThreshold(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:2\n |\n41 | pub fun getRefilledAccounts(): [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub fun getBlockedAccounts() : [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:2\n |\n57 | pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:2\n |\n65 | pub fun getRefillRequiredBlocks(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:2\n |\n70 | pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:2\n |\n75 | pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:2\n |\n85 | pub fun tryRefill(_ address: Address) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :124:106\n |\n124 | if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow\u003c\u0026FlowToken.Vault{FungibleToken.Balance}\u003e() {\n | ^^^^^^^^^^^^^\n\n--\u003e 43ee8c22fcf94ea3.DapperStorageRent\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 1c5033ad60821c97.Teleport:128:43\n |\n128 | \t\t\t\tlet isDapper=receiver.isInstance(Type\u003c@TokenForwarding.Forwarder\u003e())\n | \t\t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:128:37\n |\n128 | \t\t\t\tlet isDapper=receiver.isInstance(Type\u003c@TokenForwarding.Forwarder\u003e())\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:136:3\n |\n136 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:159:20\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:159:88\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `TokenForwarding`\n --\u003e 1c5033ad60821c97.Teleport:193:43\n |\n193 | \t\t\t\tlet isDapper=receiver.isInstance(Type\u003c@TokenForwarding.Forwarder\u003e())\n | \t\t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:193:37\n |\n193 | \t\t\t\tlet isDapper=receiver.isInstance(Type\u003c@TokenForwarding.Forwarder\u003e())\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:201:3\n |\n201 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:224:20\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:224:88\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Admin","error":"error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n\n--\u003e 1c5033ad60821c97.Doodles\n\nerror: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:43:33\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:217:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:218:38\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:222:2\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:31:7\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:44:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:44\n\n--\u003e 1c5033ad60821c97.DoodlePacks\n\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:195:52\n |\n195 | \t\taccess(all) fun registerDoodlesBaseCharacter(_ d: Doodles.BaseCharacter) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:209:46\n |\n209 | \t\taccess(all) fun registerDoodlesSpecies(_ d: Doodles.Species) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:223:42\n |\n223 | \t\taccess(all) fun registerDoodlesSet(_ d: Doodles.Set) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:242:6\n |\n242 | \t\t): @Doodles.NFT {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.Admin:373:27\n |\n373 | \t\t\ttemplateDistributions: [DoodlePackTypes.TemplateDistribution],\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.Admin:375:5\n |\n375 | \t\t): DoodlePackTypes.PackType {\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:199:3\n |\n199 | \t\t\tDoodles.setBaseCharacter(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:206:3\n |\n206 | \t\t\tDoodles.retireBaseCharacter(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:213:3\n |\n213 | \t\t\tDoodles.addSpecies(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:220:3\n |\n220 | \t\t\tDoodles.retireSpecies(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:227:3\n |\n227 | \t\t\tDoodles.addSet(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:234:3\n |\n234 | \t\t\tDoodles.retireSet(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:247:17\n |\n247 | \t\t\tlet doodle \u003c- Doodles.adminMintDoodle(\n | \t\t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:363:3\n |\n363 | \t\t\tDoodlePacks.mintNFT(recipient: recipient, typeId: typeId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.Admin:380:10\n |\n380 | \t\t\treturn DoodlePackTypes.addPackType(\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:435:3\n |\n435 | \t\t\tOpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)\n | \t\t\t^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n |\n205 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n |\n233 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes","error":"error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n |\n242 | \t\t\treturn Type\u003c@FlowUtilityToken.Vault\u003e()\n | \t\t\t ^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n |\n242 | \t\t\treturn Type\u003c@FlowUtilityToken.Vault\u003e()\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks","error":"error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n |\n51 | access(all) fun getPackType(): DoodlePackTypes.PackType {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n |\n227 | init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n |\n227 | init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n |\n221 | access(all) let packType: DoodlePackTypes.PackType\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n |\n222 | access(all) var templateDistribution: DoodlePackTypes.TemplateDistribution\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n |\n321 | packType: DoodlePackTypes.PackType,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n |\n372 | packType: DoodlePackTypes.PackType,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n |\n419 | collection: DoodlePackTypes.Collection,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n |\n423 | packType: DoodlePackTypes.PackType\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n |\n279 | \u0026\u0026 DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) \u003e= templateDistribution.maxMint!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n |\n328 | \u0026\u0026 (templateDistribution.maxMint == nil || DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) \u003c templateDistribution.maxMint!)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n |\n344 | DoodlePackTypes.addMintedCountToTemplateDistribution(\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n |\n351 | || (templateDistribution.maxMint != nil \u0026\u0026 DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n |\n399 | DoodlePackTypes.addMintedCountToTemplateDistribution(\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n |\n407 | || (templateDistribution.maxMint != nil \u0026\u0026 DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n |\n426 | case DoodlePackTypes.Collection.Wearables:\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n |\n437 | case DoodlePackTypes.Collection.Redeemables:\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n |\n39 | if (DoodlePackTypes.getPackType(id: typeId) == nil) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n |\n52 | \t\t\treturn DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n |\n72 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n |\n72 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n |\n251 | DoodlePackTypes.getTemplateDistributionMintedCount(\n | ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Doodles","error":"error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n |\n234 | \t\taccess(all) var name: @{UInt64 : DoodleNames.NFT}\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n |\n581 | \t\taccess(account) fun addName(_ nft: @DoodleNames.NFT, owner:Address) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n |\n590 | \t\taccess(all) fun equipName(_ nft: @DoodleNames.NFT) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n |\n606 | \t\taccess(contract) fun unequipName() : @DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n |\n673 | \t\taccess(all) fun borrowName(_ id: UInt64) : \u0026DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n |\n940 | \t\tlet name \u003c- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Wearables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-04-17T20-05-50Z-testnet.md b/migrations_data/staged-contracts-report-2024-04-17T20-05-50Z-testnet.md new file mode 100644 index 0000000000..0958b42f6f --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-04-17T20-05-50Z-testnet.md @@ -0,0 +1,189 @@ +## Cadence 1.0 staged contracts migration results +Report Date: 18 April, 2024 + +Stats: 178 contracts staged, 130 successfully upgraded, 48 failed to upgrade + +Snapshot: devnet49-execution-snapshot-for-migration-3-april-17 + +Flow-go build: [v0.34.0-crescendo-preview.12](https://github.com/onflow/flow-go/releases/tag/v0.34.0-crescendo-preview.12) + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0xff5b7741090ee518 | Signature | ✅ | +| 0xff5b7741090ee518 | FanTopPermissionV2a | ✅ | +| 0xff5b7741090ee518 | FanTopSerial | ✅ | +| 0xff5b7741090ee518 | FanTopPermission | ✅ | +| 0xff5b7741090ee518 | FanTopToken | ✅ | +| 0xff5b7741090ee518 | FanTopMarket | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xf8ba321af4bd37bb | aiSportsMinter | ❌

Error:
error: resource \`aiSportsMinter.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8ba321af4bd37bb.aiSportsMinter:157:23
\|
157 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(contract) var ownedNFTs: @{UInt64: aiSportsMinter.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xf28310b45fc6b319 | ExampleNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ✅ | +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ✅ | +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: conformances does not match in \`Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^^^^^^^^^^

error: conformances does not match in \`ZeedzINO\`
--\> d35bad52c7e1ab65.ZeedzINO:32:21
\|
32 \| access(all) contract ZeedzINO: NonFungibleToken {
\| ^^^^^^^^
| +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ❌

Error:
error: resource \`PackNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> a2526e2d9cc7f0d2.PackNFT:209:25
\|
209 \| access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {
\| ^
...
\|
213 \| access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Marketplace | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot apply unary operation \* to type
--\> 99ca04281098b33d.Art:415:185

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:55:39
\|
55 \| recipientCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:55:38
\|
55 \| recipientCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:89:30
\|
89 \| init(id: UInt64, art: Art.Metadata, cacheKey: String, price: UFix64){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:81:17
\|
81 \| let art: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:107:31
\|
107 \| var forSale: @{UInt64: Art.NFT}
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:150:37
\|
150 \| fun borrowArt(id: UInt64): &{Art.Public}?{
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:150:36
\|
150 \| fun borrowArt(id: UInt64): &{Art.Public}?{
\| ^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:159:40
\|
159 \| fun withdraw(tokenID: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:170:32
\|
170 \| fun listForSale(token: @Art.NFT, price: UFix64){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:194:65
\|
194 \| fun purchase(tokenID: UInt64, recipientCap: Capability<&{Art.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:194:64
\|
194 \| fun purchase(tokenID: UInt64, recipientCap: Capability<&{Art.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:152:46
\|
152 \| return (&self.forSale\$&id\$& as &Art.NFT?)!
\| ^^^ not found in this scope
| +| 0x99ca04281098b33d | Auction | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot apply unary operation \* to type
--\> 99ca04281098b33d.Art:415:185

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:438:20
\|
438 \| token: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:443:40
\|
443 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:443:39
\|
443 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:458:40
\|
458 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:458:39
\|
458 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:67:22
\|
67 \| metadata: Art.Metadata?,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:41:22
\|
41 \| let metadata: Art.Metadata?
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:184:18
\|
184 \| NFT: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:189:45
\|
189 \| ownerCollectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:189:44
\|
189 \| ownerCollectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:134:18
\|
134 \| var NFT: @Art.NFT?
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:169:49
\|
169 \| var recipientCollectionCap: Capability<&{Art.CollectionPublic}>?
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:169:48
\|
169 \| var recipientCollectionCap: Capability<&{Art.CollectionPublic}>?
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:177:45
\|
177 \| let ownerCollectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:177:44
\|
177 \| let ownerCollectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:216:47
\|
216 \| fun sendNFT(\_ capability: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:216:46
\|
216 \| fun sendNFT(\_ capability: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:359:40
\|
359 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:359:39
\|
359 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:34
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:169
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:499:168
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:557:145
\|
557 \| fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:557:144
\|
557 \| fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:573:16
\|
573 \| token: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:578:36
\|
578 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:578:35
\|
578 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^
| +| 0x99ca04281098b33d | Versus | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot apply unary operation \* to type
--\> 99ca04281098b33d.Art:415:185

--\> 99ca04281098b33d.Art

error: error getting program 99ca04281098b33d.Auction: failed to derive value: load program failed: Checking failed:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot apply unary operation \* to type
--\> 99ca04281098b33d.Art:415:185

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:438:20

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:443:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:443:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:458:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:458:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:67:22

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:41:22

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:184:18

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:189:45

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:189:44

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:134:18

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:169:49

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:169:48

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:177:45

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:177:44

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:216:47

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:216:46

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:359:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:359:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:34

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:169

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:499:168

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:557:145

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:557:144

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:573:16

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:578:36

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:578:35

--\> 99ca04281098b33d.Auction

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:564:40
\|
564 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:564:39
\|
564 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:138:28
\|
138 \| uniqueAuction: @Auction.AuctionItem,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:139:30
\|
139 \| editionAuctions: @Auction.AuctionCollection,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:108:28
\|
108 \| let uniqueAuction: @Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:111:30
\|
111 \| let editionAuctions: @Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:128:22
\|
128 \| let metadata: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:274:44
\|
274 \| fun getAuction(auctionId: UInt64): &Auction.AuctionItem{
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:296:40
\|
296 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:296:39
\|
296 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:442:30
\|
442 \| init(\_ auctionStatus: Auction.AuctionStatus){
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:508:26
\|
508 \| uniqueStatus: Auction.AuctionStatus,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:516:22
\|
516 \| metadata: Art.Metadata,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:495:22
\|
495 \| let metadata: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:603:104
\|
603 \| init(marketplaceVault: Capability<&{FungibleToken.Receiver}>, marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>, cutPercentage: UFix64){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:603:103
\|
603 \| init(marketplaceVault: Capability<&{FungibleToken.Receiver}>, marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>, cutPercentage: UFix64){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:601:46
\|
601 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:601:45
\|
601 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:717:168
\|
717 \| fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:717:167
\|
717 \| fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:840:166
\|
840 \| fun mintArt(artist: Address, artistName: String, artName: String, content: String, description: String, type: String, artistCut: UFix64, minterCut: UFix64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:861:29
\|
861 \| fun editionArt(art: &Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:861:77
\|
861 \| fun editionArt(art: &Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:866:39
\|
866 \| fun editionAndDepositArt(art: &Art.NFT, to: \$&Address\$&){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:941:46
\|
941 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}> =
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:941:45
\|
941 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}> =
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:942:35
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:942:34
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:942:58
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:942:8
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:165:52
\|
165 \| let uniqueRef = &self.uniqueAuction as &Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:166:55
\|
166 \| let editionRef = &self.editionAuctions as &Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:339:57
\|
339 \| let auctionRef = &self.uniqueAuction as &Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:350:60
\|
350 \| let editionsRef = &self.editionAuctions as &Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:631:32
\|
631 \| let art <- nft as! @Art.NFT
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:636:37
\|
636 \| let editionedAuctions <- Auction.createAuctionCollection(marketplaceVault: self.marketplaceVault, cutPercentage: self.cutPercentage)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:639:57
\|
639 \| editionedAuctions.createAuction(token: <-Art.makeEdition(original: &art as &Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:639:92
\|
639 \| editionedAuctions.createAuction(token: <-Art.makeEdition(original: &art as &Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:644:24
\|
644 \| let item <- Auction.createStandaloneAuction(token: <-art, minimumBidIncrement: minimumBidUniqueIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:814:54
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:814:76
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:814:23
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:855:37
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:855:98
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^^^ not found in this scope

error: cannot infer type from dictionary literal: requires an explicit type annotation
--\> 99ca04281098b33d.Versus:855:25
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:856:23
\|
856 \| let art <- Art.createArtWithPointer(name: artName, artist: artistName, artistAddress: artist, description: description, type: type, contentCapability: contentCapability, contentId: contentId, royalty: royalty)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:862:21
\|
862 \| return <-Art.makeEdition(original: art, edition: edition, maxEdition: maxEdition)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:870:36
\|
870 \| let editionedArt <- Art.makeEdition(original: art, edition: i, maxEdition: maxEdition)
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:872:63
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:872:62
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:872:86
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:872:36
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:873:17
\|
873 \| (collectionCap.borrow()!).deposit(token: <-editionedArt)
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:902:87
\|
902 \| return Versus.account.storage.borrow<&{NonFungibleToken.Collection}>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope
| +| 0x99ca04281098b33d | Art | ❌

Error:
error: cannot apply unary operation \* to type
--\> 99ca04281098b33d.Art:415:185
\|
415 \| var newNFT <- create NFT(initID: Art.totalSupply, metadata: metadata, contentCapability: original.contentCapability, contentId: original.contentId, url: original.url, royalty: \*original.royalty)
\| ^^^^^^^^^^^^^^^^ expected primitive or container of primitives, got \`{String: Art.Royalty}\`
| +| 0x95e019a17d0e23d7 | LockedTokens | ❌

Error:
error: expected token '&'
--\> 95e019a17d0e23d7.LockedTokens:94:46
\|
94 \| access(all) var vault: Capability
\| ^
| +| 0x95e019a17d0e23d7 | FlowStakingCollection | ❌

Error:
error: unexpected identifier
--\> 95e019a17d0e23d7.FlowStakingCollection:43:13
\|
43 \| view init(nodeID: String, delegatorID: UInt32) {
\| ^
| +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x877931736ee77cff | TopShot | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x668df1b27a5da384 | FanTopMarket | ✅ | +| 0x668df1b27a5da384 | FanTopToken | ✅ | +| 0x668df1b27a5da384 | FanTopSerial | ✅ | +| 0x668df1b27a5da384 | FanTopPermissionV2a | ✅ | +| 0x668df1b27a5da384 | Signature | ✅ | +| 0x668df1b27a5da384 | FanTopPermission | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | ExampleNFT | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | KaratNFT | ✅ | +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:340:32
\|
340 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:15
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:56
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:110
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:399:8
\|
399 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: use of previously moved resource
--\> 3e5b4c627064625d.GeneratedExperiences:271:43
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| ^^^^^ resource used here after move
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| \-\-\-\-\- resource previously moved here
| +| 0x3e5b4c627064625d | NFGv3 | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:284:32
\|
284 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:15
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:56
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:110
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:15
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:67
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:121
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:328:8
\|
328 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:341:32
\|
341 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:15
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:56
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:110
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:15
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:67
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:121
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:396:8
\|
396 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:380:36
\|
380 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:19
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:60
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:114
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:19
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:71
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:125
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:414:46
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 3e5b4c627064625d.Flomies:414:45
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:434:12
\|
434 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FIND | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66
\|
1358 \| access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59
\|
1610 \| access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability<&{Profile.Public}>, leases: Capability<&{LeaseCollectionPublic}>) {
\| ^^^^^^^^^ not found in this scope

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63
\|
2110 \| if self.account.storage.borrow<&FUSD.Vault>(from: FUSD.VaultStoragePath) == nil {
\| ^^^^^^^^^^^^^^^^ unknown member

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25
\|
2112 \| let vault <- FUSD.createEmptyVault()
\| ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56
\|
2115 \| self.account.storage.save(<-vault, to: FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21
\|
2119 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65
\|
2121 \| self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)
\| ^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92
\|
2123 \| let capb = self.account.capabilities.storage.issue<&{FungibleToken.Vault}>(FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21
\|
2129 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68
\|
2131 \| self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)
\| ^^^^^^^^^^^^^^^^^^ unknown member

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78
\|
1633 \| let usdcCap = account.capabilities.get<&{FungibleToken.Receiver}>(FiatToken.VaultReceiverPubPath)!
\| ^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindViews | ❌

Error:
error: mismatching field \`cap\` in \`ViewReadPointer\`
--\> 35717efbbce11c74.FindViews:137:30
\|
137 \| access(self) let cap: Capability<&{ViewResolver.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected \`{MetadataViews.ResolverCollection}\`, found \`{ViewResolver.ResolverCollection}\`

error: mismatching field \`cap\` in \`AuthNFTPointer\`
--\> 35717efbbce11c74.FindViews:234:30
\|
234 \| access(self) let cap: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected \`{MetadataViews.ResolverCollection, NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\`, found \`{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider, ViewResolver.ResolverCollection}\`
| +| 0x35717efbbce11c74 | FindLeaseMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:21:36
\|
21 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:132:71
\|
132 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:128:59
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:128:58
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:18:170
\|
18 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:33:22
\|
33 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:26:38
\|
26 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:94:38
\|
94 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:110:40
\|
110 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:138:47
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:138:46
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:136:60
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:136:59
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:143:41
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:143:40
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:201:48
\|
201 \| access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:269:59
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:269:58
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:279:83
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:279:82
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:283:138
\|
283 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:294:8
\|
294 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:295:8
\|
295 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:284:11
\|
284 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:287:22
\|
287 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:288:101
\|
288 \| return getAccount(user).capabilities.get<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:64:23
\|
64 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:25
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:19
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:87:19
\|
87 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:111:19
\|
111 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:174:183
\|
174 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy lease for sale"), seller: self.owner!.address, buyer: to)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:189:26
\|
189 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:190:26
\|
190 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:194:12
\|
194 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:196:123
\|
196 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:"sold", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:216:183
\|
216 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list lease for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:223:124
\|
223 \| emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:237:187
\|
237 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist lease for sale"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:243:126
\|
243 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:250:126
\|
250 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:252:126
\|
252 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28

--\> 35717efbbce11c74.NameVoucher

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:38:57
\|
38 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:44:49
\|
44 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:46:57
\|
46 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:156:110
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:156:109
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:59:12
\|
59 \| FindForge.addPublicForgeType(forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:67:12
\|
67 \| FindForge.addPrivateForgeType(name: name, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:75:12
\|
75 \| FindForge.removeForgeType(type: type)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:83:12
\|
83 \| FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.Admin:91:12
\|
91 \| FindForgeOrder.addMintType(mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:99:12
\|
99 \| FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:106:12
\|
106 \| FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:114:19
\|
114 \| return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:161:16
\|
161 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:174:16
\|
174 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:178:23
\|
178 \| let user = FIND.lookupAddress(name) ?? panic("Cannot find lease owner. Lease : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:58
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:179:57
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:87
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:188:16
\|
188 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:192:12
\|
192 \| FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:200:12
\|
200 \| FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:295:122
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:296:12
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:359:19
\|
359 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:57
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:87
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:367:27
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:368:19
\|
368 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | NameVoucher | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25
\|
228 \| let status = FIND.status(name)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32
\|
231 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindMarket | ❌

Error:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29
\|
1411 \| if sbRef.getVaultTypes().contains(ftInfo.type) {
\| ^^^^^^^^^^^^^ unknown member

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23
\|
1417 \| case Type<@TokenForwarding.Forwarder>() :
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17
\|
1417 \| case Type<@TokenForwarding.Forwarder>() :
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindMarketAdmin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:26:57
\|
26 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:32:49
\|
32 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:34:57
\|
34 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:91
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:133
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:58:51
\|
58 \| access(Owner) fun getFindMarketClient(): &FindMarket.TenantClient{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:129:61
\|
129 \| access(Owner) fun getTenantRef(\_ tenant: Address) : &FindMarket.Tenant {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:139:66
\|
139 \| access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:155:64
\|
155 \| access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:171:69
\|
171 \| access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:47:20
\|
47 \| return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:55:12
\|
55 \| FindMarket.removeFindMarketTenant(tenant: tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:63:23
\|
63 \| let path = FindMarket.TenantClientStoragePath
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:63
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:94
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:64:19
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:74:12
\|
74 \| FindMarket.addSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:81:12
\|
81 \| FindMarket.addMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:88:12
\|
88 \| FindMarket.addSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:95:12
\|
95 \| FindMarket.addMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:102:12
\|
102 \| FindMarket.removeSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:109:12
\|
109 \| FindMarket.removeMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:116:12
\|
116 \| FindMarket.removeSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:123:12
\|
123 \| FindMarket.removeMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:133:25
\|
133 \| let string = FindMarket.getTenantPathForAddress(tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:135:67
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:135:22
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:228:12
\|
228 \| FindMarket.setResidualAddress(address)
\| ^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindAirdropper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119
\|
12 \| access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135
\|
13 \| access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21
\|
18 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23
\|
20 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22
\|
27 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21
\|
68 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23
\|
70 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22
\|
78 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23
\|
81 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21
\|
100 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23
\|
102 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22
\|
110 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23
\|
115 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | Dandy | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:348:32
\|
348 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:63:119
\|
63 \| init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:61:39
\|
61 \| access(contract) let platform: FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:87:46
\|
87 \| access(all) fun getMinterPlatform() : FindForge.MinterPlatform {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:15
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:56
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:110
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:333:109
\|
333 \| access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: \$&AnyStruct\$&, externalUrlPrefix:String?) : @NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:360:42
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Dandy:360:41
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:388:8
\|
388 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:390:8
\|
390 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:88:27
\|
88 \| if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:89:50
\|
89 \| let platform = &self.platform as &FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25
\|
46 \| let senderName = FIND.reverseLookup(sender)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83
\|
76 \| emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79
\|
95 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32
\|
124 \| flowTokenRepayment: flowTokenRepayment
\| ^^^^^^^^^^^^^^^^^^ expected \`Capability<&FlowToken.Vault>?\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70
\|
129 \| emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77
\|
140 \| emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: "invalid capability")
\| ^^^^ not found in this scope

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8
\|
154 \| shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)
\| ^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25
\|
162 \| senderName = FIND.reverseLookup(sender!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67
\|
164 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69
\|
165 \| emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindThoughts | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:14:141
\|
14 \| access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: \$&String\$&, nfts:\$&FindMarket.NFTInfo\$&, tags: \$&String\$&, quoteOwner: Address?, quoteId: UInt64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:154:73
\|
154 \| emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:167:68
\|
167 \| emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:56
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:111
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:268:24
\|
268 \| let nfts : \$&FindMarket.NFTInfo\$& = \$&\$&
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:273:28
\|
273 \| nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:282:30
\|
282 \| let creatorName = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:307:23
\|
307 \| name = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:309:80
\|
309 \| emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:264:71
\|
264 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:707:31
\|
707 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:756:73
\|
756 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:106:52
\|
106 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:197:38
\|
197 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:47
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:46
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:60
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:59
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:41
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:40
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:57
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:56
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:93
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:92
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:60
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:59
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:41
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:40
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:55
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:54
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:83
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:82
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:131
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:130
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:900:118
\|
900 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:910:115
\|
910 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:921:8
\|
921 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:922:8
\|
922 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:923:8
\|
923 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:924:8
\|
924 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:901:11
\|
901 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:904:22
\|
904 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:905:81
\|
905 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:911:11
\|
911 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:914:22
\|
914 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:915:82
\|
915 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:89:19
\|
89 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:101:23
\|
101 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:107:19
\|
107 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:198:19
\|
198 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:292:148
\|
292 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"add bid in auction"), seller: self.owner!.address, buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:337:36
\|
337 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:342:26
\|
342 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:344:110
\|
344 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:400:148
\|
400 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid in auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:429:26
\|
429 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:431:110
\|
431 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:497:24
\|
497 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:504:30
\|
504 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:506:114
\|
506 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:508:114
\|
508 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:538:152
\|
538 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill auction"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:560:30
\|
560 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:561:33
\|
561 \| let sellerName = FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:572:25
\|
572 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:16
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:189
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:635:148
\|
635 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:662:113
\|
662 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindForge | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57
\|
413 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49
\|
421 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57
\|
427 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46
\|
110 \| access(all) fun setMinterPlatform(lease: &FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49
\|
178 \| access(all) fun removeMinterPlatform(lease: &FIND.Lease, forgeType: Type) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39
\|
229 \| access(all) fun orderForge(lease: &FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34
\|
263 \| access(all) fun mint (lease: &FIND.Lease, forgeType: Type , data: AnyStruct, receiver: &{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44
\|
310 \| access(all) fun addContractData(lease: &FIND.Lease, forgeType: Type , data: AnyStruct) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19
\|
155 \| let user = FIND.lookupAddress(leaseName) ?? panic("Cannot find lease owner. Lease : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8
\|
234 \| FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8
\|
238 \| FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8
\|
242 \| FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20
\|
246 \| let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22
\|
272 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21
\|
302 \| let toName = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18
\|
303 \| let new = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22
\|
319 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24
\|
36 \| self.minter=FIND.lookupAddress(self.name)!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:22:36
\|
22 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:163:71
\|
163 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:158:57
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:158:56
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:19:164
\|
19 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:106:38
\|
106 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:122:52
\|
122 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:170:47
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:170:46
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:168:60
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:168:59
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:175:41
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:175:40
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:360:57
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:360:56
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:369:83
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:369:82
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:373:133
\|
373 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:383:8
\|
383 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:384:8
\|
384 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:374:26
\|
374 \| if let tenantCap=FindMarket.getTenantCapability(marketplace) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:376:96
\|
376 \| return getAccount(user).capabilities.get<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:73:23
\|
73 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:99:19
\|
99 \| return FIND.reverseLookup(self.pointer.owner())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:123:19
\|
123 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:213:139
\|
213 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "buy item for sale"), seller: self.owner!.address, buyer: nftCap.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:224:26
\|
224 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:225:27
\|
225 \| let sellerName=FIND.reverseLookup(self.owner!.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:227:113
\|
227 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:"sold", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:234:21
\|
234 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:236:12
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:236:199
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:286:139
\|
286 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:295:115
\|
295 \| emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:311:24
\|
311 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:317:98
\|
317 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindForgeOrder | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND
| +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36
\|
17 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71
\|
175 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31
\|
452 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73
\|
501 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171
\|
13 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52
\|
80 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38
\|
108 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8
\|
695 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8
\|
696 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8
\|
697 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8
\|
698 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11
\|
661 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22
\|
664 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11
\|
671 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22
\|
674 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11
\|
685 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22
\|
688 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19
\|
65 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26
\|
74 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19
\|
81 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26
\|
211 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24
\|
214 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106
\|
219 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152
\|
236 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "add bid in direct offer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26
\|
246 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106
\|
251 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156
\|
269 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30
\|
282 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113
\|
287 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152
\|
302 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26
\|
325 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36
\|
330 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106
\|
332 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26
\|
354 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24
\|
357 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106
\|
362 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152
\|
384 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26
\|
402 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27
\|
403 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21
\|
415 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | Profile | ❌

Error:
error: mismatching field \`balance\` in \`Wallet\`
--\> 35717efbbce11c74.Profile:39:33
\|
39 \| access(all) let balance: Capability<&{FungibleToken.Vault}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected \`{FungibleToken.Balance}\`, found \`{FungibleToken.Vault}\`

error: conformances does not match in \`User\`
--\> 35717efbbce11c74.Profile:258:25
\|
258 \| access(all) resource User: Public, FungibleToken.Receiver {
\| ^^^^

error: missing DeclarationKindResourceInterface declaration \`Owner\`
--\> 35717efbbce11c74.Profile:9:21
\|
9 \| access(all) contract Profile {
\| ^^^^^^^
| +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16
\|
154 \| if !cap.check() {
\| ^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22
\|
157 \| let ref = cap.borrow()!
\| ^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:189:71
\|
189 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:533:31
\|
533 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:586:73
\|
586 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:14:171
\|
14 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:74:38
\|
74 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:120:52
\|
120 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:47
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:46
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:60
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:59
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:41
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:40
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:57
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:56
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:93
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:92
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:60
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:59
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:41
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:40
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:55
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:54
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:83
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:82
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:131
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:130
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:774:8
\|
774 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:775:8
\|
775 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:776:8
\|
776 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:777:8
\|
777 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:754:11
\|
754 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:757:22
\|
757 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:764:11
\|
764 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:767:22
\|
767 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:106:19
\|
106 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:114:26
\|
114 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:121:19
\|
121 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:234:26
\|
234 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:237:24
\|
237 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:242:134
\|
242 \| emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:260:150
\|
260 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:270:26
\|
270 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:275:106
\|
275 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:293:183
\|
293 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:304:30
\|
304 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:309:113
\|
309 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:325:150
\|
325 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:348:26
\|
348 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:353:36
\|
353 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:356:106
\|
356 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:378:26
\|
378 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:381:24
\|
381 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:386:106
\|
386 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:413:150
\|
413 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:427:26
\|
427 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:432:106
\|
432 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:457:150
\|
457 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:470:26
\|
470 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:471:27
\|
471 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:486:21
\|
486 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:12
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:187
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:7:86
\|
7 \| access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:14:22
\|
14 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:16:43
\|
16 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:22:22
\|
22 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:24:43
\|
24 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32
\|
1156 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79
\|
307 \| init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38
\|
305 \| access(all) let verifierRef: &FindForge.Verifier
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8
\|
1220 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8
\|
1223 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:260:71
\|
260 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:657:31
\|
657 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:708:73
\|
708 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:102:52
\|
102 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:193:38
\|
193 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:47
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:46
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:60
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:59
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:41
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:40
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:57
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:56
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:93
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:92
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:60
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:59
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:41
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:40
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:55
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:54
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:83
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:82
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:131
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:130
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:864:8
\|
864 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:865:8
\|
865 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:866:8
\|
866 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:867:8
\|
867 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:844:11
\|
844 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:847:22
\|
847 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:854:11
\|
854 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:857:22
\|
857 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:85:19
\|
85 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:97:23
\|
97 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:103:19
\|
103 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:194:19
\|
194 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:290:147
\|
290 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "add bit in soft-auction"), seller: self.owner!.address ,buyer: buyer)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:333:36
\|
333 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:336:26
\|
336 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:338:110
\|
338 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:388:146
\|
388 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:416:26
\|
416 \| let buyerName=FIND.reverseLookup(callback.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:418:123
\|
418 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:452:24
\|
452 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:458:30
\|
458 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:460:114
\|
460 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:462:114
\|
462 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:518:146
\|
518 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:537:26
\|
537 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:538:27
\|
538 \| let sellerName=FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:540:110
\|
540 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:549:21
\|
549 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:12
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:146
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:592:163
\|
592 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:612:126
\|
612 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: "active\_listed", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71
\|
228 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31
\|
529 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73
\|
579 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22
\|
32 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38
\|
19 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40
\|
91 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38
\|
181 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51
\|
463 \| access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118
\|
706 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115
\|
716 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8
\|
727 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8
\|
728 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8
\|
729 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8
\|
730 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11
\|
707 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22
\|
710 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81
\|
711 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11
\|
717 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22
\|
720 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82
\|
721 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19
\|
70 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23
\|
86 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19
\|
92 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19
\|
182 \| return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26
\|
254 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36
\|
261 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30
\|
265 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30
\|
266 \| let profile = FIND.lookup(buyer!.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138
\|
267 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138
\|
269 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167
\|
280 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"add bit in soft-auction"), seller: self.owner!.address ,buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167
\|
361 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167
\|
405 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item from soft-auction"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167
\|
443 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12
\|
457 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167
\|
482 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38
\|
621 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32
\|
629 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ❌

Error:
error: conformances does not match in \`NFTCatalogProposalManager\`
--\> 324c34e1c517e4db.NFTCatalog:76:25
\|
76 \| access(all) resource NFTCatalogProposalManager {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: missing DeclarationKindResourceInterface declaration \`NFTCatalogProposalManagerPublic\`
--\> 324c34e1c517e4db.NFTCatalog:13:21
\|
13 \| access(all) contract NFTCatalog {
\| ^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindLeaseMarket | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37
\|
325 \| access(all) fun getLease() : FIND.LeaseInformation
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37
\|
352 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37
\|
401 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41
\|
666 \| access(contract) fun getNetwork() : &FIND.Network {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15
\|
30 \| return FindMarket.getTenantCapability(tenant)!.borrow()!
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15
\|
58 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20
\|
70 \| let address=FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22
\|
87 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31
\|
100 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22
\|
110 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31
\|
114 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22
\|
124 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31
\|
128 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137
\|
168 \| let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140
\|
183 \| let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15
\|
224 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31
\|
245 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25
\|
443 \| let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35
\|
449 \| let findName = FIND.reverseLookup(cut.getAddress())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8
\|
673 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8
\|
674 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8
\|
679 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8
\|
680 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8
\|
685 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8
\|
686 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8
\|
691 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8
\|
692 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26
\|
337 \| let address = FIND.lookupAddress(name) ?? panic("This lease name is not owned")
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32
\|
477 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39
\|
479 \| } else if status.status == FIND.LeaseStatus.LOCKED {
\| ^^^^ not found in this scope
| +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

error: cannot find type in this scope: \`TokenForwarding\`
--\> 35717efbbce11c74.FindMarket:1417:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarket:1417:17

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31
\|
418 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73
\|
470 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177
\|
16 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22
\|
27 \| init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability<&{MarketBidCollectionPublic}>, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38
\|
69 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40
\|
119 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51
\|
131 \| access(contract) fun setPointer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50
\|
328 \| access(Seller) fun acceptOffer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118
\|
614 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115
\|
625 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8
\|
636 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8
\|
637 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8
\|
638 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8
\|
639 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12
\|
615 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22
\|
618 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81
\|
620 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12
\|
626 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22
\|
629 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82
\|
630 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43
\|
50 \| let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19
\|
105 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26
\|
113 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19
\|
120 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167
\|
207 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"cancel bid in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26
\|
223 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26
\|
224 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26
\|
226 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36
\|
233 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130
\|
236 \| emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167
\|
247 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27
\|
262 \| let item = FindLeaseMarket.ReadLeasePointer(name: name)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171
\|
264 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167
\|
281 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167
\|
314 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"reject offer in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167
\|
339 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167
\|
366 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12
\|
377 \| FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo: leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38
\|
514 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32
\|
532 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ✅ | +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | DoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:43:33
\|
43 \| access(all) fun getPackType(): DoodlePackTypes.PackType {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:217:17
\|
217 \| let packType = DoodlePackTypes.getPackType(id: typeId) ?? panic("Invalid pack type")
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:218:38
\|
218 \| assert(packType.maxSupply == nil \|\| DoodlePackTypes.getPackTypesMintedCount(typeId: packType.id) < packType.maxSupply!, message: "Max supply reached")
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:222:2
\|
222 \| DoodlePackTypes.addMintedCountToPackType(typeId: typeId, amount: 1)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18
\|
236 \| let openPack <- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:31:7
\|
31 \| if (DoodlePackTypes.getPackType(id: typeId) == nil) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:44:10
\|
44 \| return DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:17
\|
64 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:44
\|
64 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | Teleport | ❌

Error:
error: error getting program 51ea0e37c27a1f1a.TokenForwarding: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :19:0
\|
19 \| pub contract TokenForwarding {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event ForwardedDeposit(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub resource interface ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:8
\|
28 \| pub fun check(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:8
\|
36 \| pub fun safeBorrow(): &{FungibleToken.Receiver}?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:4
\|
39 \| pub resource Forwarder: FungibleToken.Receiver, ForwarderPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:8
\|
51 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun check(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun safeBorrow(): &{FungibleToken.Receiver}? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:8
\|
79 \| pub fun changeRecipient(\_ newRecipient: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:8
\|
90 \| pub fun getSupportedVaultTypes(): {Type: Bool} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub fun createNewForwarder(recipient: Capability): @Forwarder {
\| ^^^

--\> 51ea0e37c27a1f1a.TokenForwarding

error: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :7:0
\|
7 \| pub contract DapperStorageRent {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:2
\|
9 \| pub let DapperStorageRentAdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:2
\|
23 \| pub event BlockedAddress(\_ address: \$&Address\$&)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:2
\|
25 \| pub event Refuelled(\_ address: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub event RefilledFailed(address: Address, reason: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub fun getStorageRentRefillThreshold(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:2
\|
41 \| pub fun getRefilledAccounts(): \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub fun getBlockedAccounts() : \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:2
\|
57 \| pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:2
\|
65 \| pub fun getRefillRequiredBlocks(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:2
\|
70 \| pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:2
\|
75 \| pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:2
\|
85 \| pub fun tryRefill(\_ address: Address) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :124:106
\|
124 \| if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow<&FlowToken.Vault{FungibleToken.Balance}>() {
\| ^^^^^^^^^^^^^

--\> 43ee8c22fcf94ea3.DapperStorageRent

error: cannot find type in this scope: \`TokenForwarding\`
--\> 1c5033ad60821c97.Teleport:128:43
\|
128 \| let isDapper=receiver.isInstance(Type<@TokenForwarding.Forwarder>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:128:37
\|
128 \| let isDapper=receiver.isInstance(Type<@TokenForwarding.Forwarder>())
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:136:3
\|
136 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:159:20
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:159:88
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`TokenForwarding\`
--\> 1c5033ad60821c97.Teleport:193:43
\|
193 \| let isDapper=receiver.isInstance(Type<@TokenForwarding.Forwarder>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:193:37
\|
193 \| let isDapper=receiver.isInstance(Type<@TokenForwarding.Forwarder>())
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:201:3
\|
201 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:224:20
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:224:88
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^
| +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | Admin | ❌

Error:
error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12

--\> 1c5033ad60821c97.Doodles

error: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:43:33

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:217:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:218:38

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:222:2

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:31:7

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:44:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:44

--\> 1c5033ad60821c97.DoodlePacks

error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:195:52
\|
195 \| access(all) fun registerDoodlesBaseCharacter(\_ d: Doodles.BaseCharacter) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:209:46
\|
209 \| access(all) fun registerDoodlesSpecies(\_ d: Doodles.Species) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:223:42
\|
223 \| access(all) fun registerDoodlesSet(\_ d: Doodles.Set) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:242:6
\|
242 \| ): @Doodles.NFT {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.Admin:373:27
\|
373 \| templateDistributions: \$&DoodlePackTypes.TemplateDistribution\$&,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.Admin:375:5
\|
375 \| ): DoodlePackTypes.PackType {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:199:3
\|
199 \| Doodles.setBaseCharacter(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:206:3
\|
206 \| Doodles.retireBaseCharacter(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:213:3
\|
213 \| Doodles.addSpecies(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:220:3
\|
220 \| Doodles.retireSpecies(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:227:3
\|
227 \| Doodles.addSet(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:234:3
\|
234 \| Doodles.retireSet(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:247:17
\|
247 \| let doodle <- Doodles.adminMintDoodle(
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePacks\`
--\> 1c5033ad60821c97.Admin:363:3
\|
363 \| DoodlePacks.mintNFT(recipient: recipient, typeId: typeId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.Admin:380:10
\|
380 \| return DoodlePackTypes.addPackType(
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.Admin:435:3
\|
435 \| OpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | DoodleNames | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7
\|
205 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7
\|
233 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | DoodlePackTypes | ❌

Error:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16
\|
242 \| return Type<@FlowUtilityToken.Vault>()
\| ^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10
\|
242 \| return Type<@FlowUtilityToken.Vault>()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x1c5033ad60821c97 | OpenDoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39
\|
51 \| access(all) fun getPackType(): DoodlePackTypes.PackType {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23
\|
227 \| init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71
\|
227 \| init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34
\|
221 \| access(all) let packType: DoodlePackTypes.PackType
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46
\|
222 \| access(all) var templateDistribution: DoodlePackTypes.TemplateDistribution
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18
\|
321 \| packType: DoodlePackTypes.PackType,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18
\|
372 \| packType: DoodlePackTypes.PackType,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20
\|
419 \| collection: DoodlePackTypes.Collection,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18
\|
423 \| packType: DoodlePackTypes.PackType
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19
\|
279 \| && DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) >= templateDistribution.maxMint!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59
\|
328 \| && (templateDistribution.maxMint == nil \|\| DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) < templateDistribution.maxMint!)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24
\|
344 \| DoodlePackTypes.addMintedCountToTemplateDistribution(
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71
\|
351 \| \|\| (templateDistribution.maxMint != nil && DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20
\|
399 \| DoodlePackTypes.addMintedCountToTemplateDistribution(
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68
\|
407 \| \|\| (templateDistribution.maxMint != nil && DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17
\|
426 \| case DoodlePackTypes.Collection.Wearables:
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17
\|
437 \| case DoodlePackTypes.Collection.Redeemables:
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16
\|
39 \| if (DoodlePackTypes.getPackType(id: typeId) == nil) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10
\|
52 \| return DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17
\|
72 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44
\|
72 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20
\|
251 \| DoodlePackTypes.getTemplateDistributionMintedCount(
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Doodles | ❌

Error:
error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35
\|
234 \| access(all) var name: @{UInt64 : DoodleNames.NFT}
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38
\|
581 \| access(account) fun addName(\_ nft: @DoodleNames.NFT, owner:Address) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36
\|
590 \| access(all) fun equipName(\_ nft: @DoodleNames.NFT) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40
\|
606 \| access(contract) fun unequipName() : @DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46
\|
673 \| access(all) fun borrowName(\_ id: UInt64) : &DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14
\|
940 \| let name <- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`
| +| 0x1c5033ad60821c97 | Redeemables | ✅ | +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Wearables | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-04-24T07-50-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-04-24T07-50-00Z-testnet.json new file mode 100644 index 0000000000..5dc19bfa7d --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-04-24T07-50-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"Signature"},{"kind":"contract-update-failure","account_address":"0xff5b7741090ee518","contract_name":"FanTopMarket","error":"error: mismatching field `capability` in `SellOrder`\n --\u003e ff5b7741090ee518.FanTopMarket:53:41\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xff5b7741090ee518","contract_name":"FanTopToken"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS","error":"error: mismatching field `withdrawCap` in `SharedCapabilities`\n --\u003e ef4cd3d07a7b43ce.PDS:108:38\n |\n108 | access(self) let withdrawCap: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-failure","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty","error":"error: mismatching field `nftProviderCapability` in `Listing`\n --\u003e e1d43e0cfc237807.Flowty:424:52\n |\n424 | access(contract) let nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-failure","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals","error":"error: cannot use optional chaining: type `Capability\u003c\u0026{FlowtyRentals.FlowtyRentalsStorefrontPublic}\u003e` is not optional\n --\u003e e1d43e0cfc237807.FlowtyRentals:1226:15\n |\n1226 | return getAccount(addr).capabilities.get\u003c\u0026{FlowtyRentalsStorefrontPublic}\u003e(FlowtyRentals.FlowtyRentalsStorefrontPublicPath)?.borrow() ?? nil\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-failure","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT","error":"error: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: conformances do not match in `Collection`: missing `A.d35bad52c7e1ab65.NonFungibleToken.Provider`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^^^^^^^^^^\n\nerror: conformances do not match in `ZeedzINO`: missing `A.d35bad52c7e1ab65.NonFungibleToken`\n --\u003e d35bad52c7e1ab65.ZeedzINO:32:21\n |\n32 | access(all) contract ZeedzINO: NonFungibleToken {\n | ^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: error getting program 94b06cfca1d8a476.NFTStorefront: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:0\n |\n24 | pub contract NFTStorefront {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event NFTStorefrontInitialized()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:4\n |\n70 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:4\n |\n84 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :91:4\n |\n91 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :98:8\n |\n98 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:8\n |\n101 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:4\n |\n115 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :120:8\n |\n120 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :122:8\n |\n122 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :128:8\n |\n128 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:8\n |\n132 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :181:4\n |\n181 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:8\n |\n186 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub fun purchase(payment: @FungibleToken.Vault): @NonFungibleToken.NFT\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:8\n |\n196 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:4\n |\n205 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:8\n |\n233 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun purchase(payment: @FungibleToken.Vault): @NonFungibleToken.NFT {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :301:8\n |\n301 | destroy () {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :357:4\n |\n357 | pub resource interface StorefrontManager {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :361:8\n |\n361 | pub fun createListing(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :371:8\n |\n371 | pub fun removeListing(listingResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :378:4\n |\n378 | pub resource interface StorefrontPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :379:8\n |\n379 | pub fun getListingIDs(): [UInt64]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :380:8\n |\n380 | pub fun borrowListing(listingResourceID: UInt64): \u0026Listing{ListingPublic}?\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :380:67\n |\n380 | pub fun borrowListing(listingResourceID: UInt64): \u0026Listing{ListingPublic}?\n | ^^^^^^^^^^^^^\n\n--\u003e 94b06cfca1d8a476.NFTStorefront\n\nerror: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n\n--\u003e 877931736ee77cff.TopShot\n\nerror: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:0\n |\n40 | pub contract Market {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub resource interface SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:8\n |\n62 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:8\n |\n68 | pub fun getPrice(tokenID: UInt64): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:8\n |\n69 | pub fun getIDs(): [UInt64]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:8\n |\n70 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub resource SaleCollection: SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun listForSale(token: @TopShot.NFT, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub fun withdraw(tokenID: UInt64): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :166:8\n |\n166 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :198:8\n |\n198 | pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :209:8\n |\n209 | pub fun changePercentage(_ newPercent: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :216:8\n |\n216 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :225:8\n |\n225 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :227:73\n |\n227 | newBeneficiaryCapability.borrow\u003c\u0026DapperUtilityCoin.Vault{FungibleToken.Receiver}\u003e() != nil:\n | ^^^^^^^^^^^^^\n\n--\u003e 547f177b243b4d80.Market\n\nerror: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:0\n |\n46 | pub contract TopShotMarketV3 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let marketStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub let marketPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:4\n |\n79 | pub resource SaleCollection: Market.SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:8\n |\n101 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub fun listForSale(tokenID: UInt64, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub fun cancelSale(tokenID: UInt64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:8\n |\n196 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :247:8\n |\n247 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:8\n |\n259 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:8\n |\n272 | pub fun getPrice(tokenID: UInt64): UFix64? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :282:8\n |\n282 | pub fun getIDs(): [UInt64] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:8\n |\n302 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :318:4\n |\n318 | pub fun createSaleCollection(ownerCollection: Capability\u003c\u0026TopShot.Collection\u003e,\n | ^^^\n\n--\u003e 547f177b243b4d80.TopShotMarketV3\n\nerror: cannot find type in this scope: `NFTStorefront`\n --\u003e c7c122b5b811de8e.BulkPurchase:149:70\n |\n149 | access(contract) view fun getStorefrontV1Ref(address: Address): \u0026{NFTStorefront.StorefrontPublic}? {\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:149:69\n |\n149 | access(contract) view fun getStorefrontV1Ref(address: Address): \u0026{NFTStorefront.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:154:70\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:154:69\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:159:73\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:159:72\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:164:73\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:164:72\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefront`\n --\u003e c7c122b5b811de8e.BulkPurchase:173:22\n |\n173 | storefront: \u0026{NFTStorefront.StorefrontPublic},\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:173:21\n |\n173 | storefront: \u0026{NFTStorefront.StorefrontPublic},\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:225:22\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:225:21\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:301:25\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:301:24\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefront`\n --\u003e c7c122b5b811de8e.BulkPurchase:151:35\n |\n151 | .capabilities.borrow\u003c\u0026{NFTStorefront.StorefrontPublic}\u003e(NFTStorefront.StorefrontPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:151:34\n |\n151 | .capabilities.borrow\u003c\u0026{NFTStorefront.StorefrontPublic}\u003e(NFTStorefront.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefront`\n --\u003e c7c122b5b811de8e.BulkPurchase:151:68\n |\n151 | .capabilities.borrow\u003c\u0026{NFTStorefront.StorefrontPublic}\u003e(NFTStorefront.StorefrontPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:150:15\n |\n150 | return getAccount(address)\n151 | .capabilities.borrow\u003c\u0026{NFTStorefront.StorefrontPublic}\u003e(NFTStorefront.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:35\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:156:34\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:70\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:155:15\n |\n155 | return getAccount(address)\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:161:35\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:161:34\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:160:15\n |\n160 | return getAccount(address)\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:35\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:166:34\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `TopShotMarketV3`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:55\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:165:15\n |\n165 | return getAccount(address)\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `TopShot`\n --\u003e c7c122b5b811de8e.BulkPurchase:322:63\n |\n322 | let receiverCapability = nftReceiverCapabilities[Type\u003c@TopShot.NFT\u003e().identifier] \n | ^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:322:57\n |\n322 | let receiverCapability = nftReceiverCapabilities[Type\u003c@TopShot.NFT\u003e().identifier] \n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `TopShot`\n --\u003e c7c122b5b811de8e.BulkPurchase:333:31\n |\n333 | order.setNFTType(Type\u003c@TopShot.NFT\u003e())\n | ^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:333:25\n |\n333 | order.setNFTType(Type\u003c@TopShot.NFT\u003e())\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefront`\n --\u003e c7c122b5b811de8e.BulkPurchase:352:42\n |\n352 | let storefrontV1Refs: {Address: \u0026{NFTStorefront.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:352:41\n |\n352 | let storefrontV1Refs: {Address: \u0026{NFTStorefront.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:353:42\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:353:41\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:354:45\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:354:44\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:355:45\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:355:44\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:160:8\n |\n160 | ): [NFTStorefrontV2.SaleCut] {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:161:23\n |\n161 | let saleCuts: [NFTStorefrontV2.SaleCut] = []\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:164:28\n |\n164 | saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut * salePrice))\n | ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks","error":"error: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n |\n111 | access(all) resource Collection: FlowverseSocksCollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n113 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures","error":"error: resource `FlowverseTreasures.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:596:25\n |\n596 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n599 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal","error":"error: error getting program c7c122b5b811de8e.OrdinalVendor: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\nerror: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n\n--\u003e c7c122b5b811de8e.FlowverseShirt\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:94\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:93\n\nerror: cannot find variable in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:127\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:47\n\nerror: cannot find type in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:88\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:87\n\nerror: cannot find variable in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:136\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:41\n\nerror: cannot find type in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:88\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:87\n\nerror: cannot find variable in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:122\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:41\n\n--\u003e c7c122b5b811de8e.OrdinalVendor\n\nerror: cannot find type in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:194:33\n |\n194 | access(all) resource Minter: OrdinalVendor.IMinter {\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:183:19\n |\n183 | assert(OrdinalVendor.checkDomainAvailability(domain: data), message: \"domain already exists\")\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:83:38\n |\n83 | let isOrdinalRestricted = OrdinalVendor.checkOrdinalRestricted(id: self.id)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Ordinal.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.Ordinal:230:25\n |\n230 | access(all) resource Collection: CollectionPublic, CollectionUpdate, NonFungibleToken.Collection {\n | ^\n ... \n |\n233 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\nerror: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n\n--\u003e c7c122b5b811de8e.FlowverseShirt\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:94\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:93\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:127\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:47\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:88\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:87\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:136\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:41\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:88\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:87\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:122\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:41\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\n--\u003e c7c122b5b811de8e.FlowversePrimarySale\n\nerror: cannot find type in this scope: `FlowversePrimarySale`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:12:33\n |\n12 | access(all) resource Minter: FlowversePrimarySale.IMinter {\n | ^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:19:25\n |\n19 | init(setMinter: @FlowversePass.SetMinter) {\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:13:37\n |\n13 | access(self) let setMinter: @FlowversePass.SetMinter\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:24:45\n |\n24 | access(all) fun createMinter(setMinter: @FlowversePass.SetMinter): @Minter {\n | ^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt","error":"error: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n |\n206 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n209 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter","error":"error: error getting program c7c122b5b811de8e.FlowverseTreasures: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseTreasures.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:596:25\n\n--\u003e c7c122b5b811de8e.FlowverseTreasures\n\nerror: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\n--\u003e c7c122b5b811de8e.FlowversePrimarySale\n\nerror: cannot find type in this scope: `FlowversePrimarySale`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:12:33\n |\n12 | access(all) resource Minter: FlowversePrimarySale.IMinter {\n | ^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:19:25\n |\n19 | init(setMinter: @FlowverseTreasures.SetMinter) {\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:13:37\n |\n13 | access(self) let setMinter: @FlowverseTreasures.SetMinter\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:24:45\n |\n24 | access(all) fun createMinter(setMinter: @FlowverseTreasures.SetMinter): @Minter {\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass","error":"error: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n |\n561 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n564 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-failure","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket","error":"error: mismatching field `capability` in `SellOrder`\n --\u003e b668e8c9726ef26b.FanTopMarket:53:41\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-failure","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2","error":"error: mismatching field `nftProviderCapability` in `Listing`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:252:47\n |\n252 | \t\t\taccess(contract) let nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-failure","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket","error":"error: mismatching field `capability` in `SellOrder`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:53:41\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-failure","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT","error":"error: resource `PackNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e a2526e2d9cc7f0d2.PackNFT:209:25\n |\n209 | access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {\n | ^\n ... \n |\n213 | access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle","error":"error: resource `Pinnacle.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1712:25\n |\n1712 | access(all) resource Collection: NonFungibleToken.Collection, PinNFTCollectionPublic {\n | ^\n ... \n |\n1716 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Art"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Versus"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Marketplace"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Auction"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-failure","account_address":"0x877931736ee77cff","contract_name":"TopShot","error":"error: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n |\n1060 | access(all) resource Collection: MomentCollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n1063 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x8c5303eaa26202d6","contract_name":"EVM"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopToken"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopMarket","error":"error: mismatching field `capability` in `SellOrder`\n --\u003e 668df1b27a5da384.FanTopMarket:53:41\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KaratNFT","error":"error: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n |\n155 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT","error":"error: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:284:32\n |\n284 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:15\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:56\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:110\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:15\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:67\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:121\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:328:8\n |\n328 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:341:32\n |\n341 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:15\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:56\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:110\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:15\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:67\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:121\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:396:8\n |\n396 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:380:36\n |\n380 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:19\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:60\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:114\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:19\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:71\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:125\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:414:46\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 3e5b4c627064625d.Flomies:414:45\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:434:12\n |\n434 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:340:32\n |\n340 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:15\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:56\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:110\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:399:8\n |\n399 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: use of previously moved resource\n --\u003e 3e5b4c627064625d.GeneratedExperiences:271:43\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ^^^^^ resource used here after move\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ----- resource previously moved here\n\nerror: resource `GeneratedExperiences.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:221:25\n |\n221 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n224 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForge","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n |\n413 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n |\n421 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n |\n427 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n |\n110 | access(all) fun setMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n |\n178 | access(all) fun removeMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n |\n229 | access(all) fun orderForge(lease: \u0026FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n |\n263 | access(all) fun mint (lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct, receiver: \u0026{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n |\n310 | access(all) fun addContractData(lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n |\n155 | let user = FIND.lookupAddress(leaseName) ?? panic(\"Cannot find lease owner. Lease : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n |\n234 | FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n |\n238 | FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n |\n242 | FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n |\n246 | let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n |\n272 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n |\n302 | let toName = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n |\n303 | let new = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n |\n319 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n |\n36 | self.minter=FIND.lookupAddress(self.name)!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:22:36\n |\n22 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:163:71\n |\n163 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:158:57\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:158:56\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:19:164\n |\n19 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:106:38\n |\n106 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:122:52\n |\n122 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:170:47\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:170:46\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:168:60\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:168:59\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:175:41\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:175:40\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:360:57\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:360:56\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:369:83\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:369:82\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:373:133\n |\n373 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:383:8\n |\n383 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:384:8\n |\n384 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:374:26\n |\n374 | if let tenantCap=FindMarket.getTenantCapability(marketplace) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:376:96\n |\n376 | return getAccount(user).capabilities.get\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:73:23\n |\n73 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:99:19\n |\n99 | return FIND.reverseLookup(self.pointer.owner())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:123:19\n |\n123 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:213:139\n |\n213 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"buy item for sale\"), seller: self.owner!.address, buyer: nftCap.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:224:26\n |\n224 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:225:27\n |\n225 | let sellerName=FIND.reverseLookup(self.owner!.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:227:113\n |\n227 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:\"sold\", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:234:21\n |\n234 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:236:12\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:236:199\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:286:139\n |\n286 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:295:115\n |\n295 | emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:311:24\n |\n311 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:317:98\n |\n317 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36\n |\n17 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71\n |\n175 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31\n |\n452 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73\n |\n501 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171\n |\n13 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52\n |\n80 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38\n |\n108 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8\n |\n695 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8\n |\n696 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8\n |\n697 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8\n |\n698 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11\n |\n661 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22\n |\n664 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11\n |\n671 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22\n |\n674 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11\n |\n685 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22\n |\n688 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19\n |\n65 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26\n |\n74 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19\n |\n81 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26\n |\n211 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24\n |\n214 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106\n |\n219 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152\n |\n236 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"add bid in direct offer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26\n |\n246 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106\n |\n251 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156\n |\n269 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30\n |\n282 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113\n |\n287 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152\n |\n302 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26\n |\n325 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36\n |\n330 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106\n |\n332 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26\n |\n354 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24\n |\n357 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106\n |\n362 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152\n |\n384 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26\n |\n402 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27\n |\n403 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21\n |\n415 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Profile","error":"error: conformances do not match in `User`: missing `Owner`\n --\u003e 35717efbbce11c74.Profile:328:25\n |\n328 | access(all) resource User: Public, FungibleToken.Receiver {\n | ^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n |\n154 | if !cap.check() {\n | ^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n |\n157 | let ref = cap.borrow()!\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:189:71\n |\n189 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:533:31\n |\n533 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:586:73\n |\n586 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:14:171\n |\n14 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:74:38\n |\n74 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:120:52\n |\n120 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:47\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:46\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:60\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:59\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:41\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:40\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:57\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:56\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:93\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:92\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:60\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:59\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:41\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:40\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:55\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:54\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:83\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:82\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:131\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:130\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:774:8\n |\n774 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:775:8\n |\n775 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:776:8\n |\n776 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:777:8\n |\n777 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:754:11\n |\n754 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:757:22\n |\n757 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:764:11\n |\n764 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:767:22\n |\n767 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:106:19\n |\n106 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:114:26\n |\n114 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:121:19\n |\n121 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:234:26\n |\n234 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:237:24\n |\n237 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:242:134\n |\n242 | emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:260:150\n |\n260 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:270:26\n |\n270 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:275:106\n |\n275 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:293:183\n |\n293 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:304:30\n |\n304 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:309:113\n |\n309 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:325:150\n |\n325 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:348:26\n |\n348 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:353:36\n |\n353 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:356:106\n |\n356 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:378:26\n |\n378 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:381:24\n |\n381 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:386:106\n |\n386 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:413:150\n |\n413 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:427:26\n |\n427 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:432:106\n |\n432 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:457:150\n |\n457 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:470:26\n |\n470 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:471:27\n |\n471 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:486:21\n |\n486 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:12\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:187\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: resource `FindMarketDirectOfferSoft.SaleItemCollection` does not conform to resource interface `FindMarketDirectOfferSoft.SaleItemCollectionPublic`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:189:25\n |\n189 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^\n ... \n |\n207 | access(all) fun isAcceptedDirectOffer(_ id:UInt64) : Bool{\n | --------------------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:7:86\n |\n7 | access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:14:22\n |\n14 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:16:43\n |\n16 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:22:22\n |\n22 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:24:43\n |\n24 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n |\n1156 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n |\n307 | init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n |\n305 | access(all) let verifierRef: \u0026FindForge.Verifier\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n |\n1220 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n |\n1223 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:260:71\n |\n260 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:657:31\n |\n657 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:708:73\n |\n708 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:102:52\n |\n102 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:193:38\n |\n193 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:47\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:46\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:60\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:59\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:41\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:40\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:57\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:56\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:93\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:92\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:60\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:59\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:41\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:40\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:55\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:54\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:83\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:82\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:131\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:130\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:864:8\n |\n864 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:865:8\n |\n865 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:866:8\n |\n866 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:867:8\n |\n867 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:844:11\n |\n844 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:847:22\n |\n847 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:854:11\n |\n854 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:857:22\n |\n857 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:85:19\n |\n85 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:97:23\n |\n97 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:103:19\n |\n103 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:194:19\n |\n194 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:290:147\n |\n290 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"add bit in soft-auction\"), seller: self.owner!.address ,buyer: buyer)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:333:36\n |\n333 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:336:26\n |\n336 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:338:110\n |\n338 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:388:146\n |\n388 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:416:26\n |\n416 | let buyerName=FIND.reverseLookup(callback.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:418:123\n |\n418 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:452:24\n |\n452 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:458:30\n |\n458 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:460:114\n |\n460 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:462:114\n |\n462 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:518:146\n |\n518 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:537:26\n |\n537 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:538:27\n |\n538 | let sellerName=FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:540:110\n |\n540 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:549:21\n |\n549 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:12\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:146\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:592:163\n |\n592 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:612:126\n |\n612 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: \"active_listed\", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71\n |\n228 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31\n |\n529 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73\n |\n579 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22\n |\n32 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38\n |\n19 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40\n |\n91 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38\n |\n181 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51\n |\n463 | access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118\n |\n706 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115\n |\n716 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8\n |\n727 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8\n |\n728 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8\n |\n729 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8\n |\n730 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11\n |\n707 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22\n |\n710 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81\n |\n711 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11\n |\n717 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22\n |\n720 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82\n |\n721 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19\n |\n70 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23\n |\n86 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19\n |\n92 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19\n |\n182 | return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26\n |\n254 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36\n |\n261 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30\n |\n265 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30\n |\n266 | let profile = FIND.lookup(buyer!.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138\n |\n267 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138\n |\n269 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167\n |\n280 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"add bit in soft-auction\"), seller: self.owner!.address ,buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167\n |\n361 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167\n |\n405 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item from soft-auction\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167\n |\n443 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12\n |\n457 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167\n |\n482 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38\n |\n621 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32\n |\n629 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n |\n325 | access(all) fun getLease() : FIND.LeaseInformation\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n |\n352 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n |\n401 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n |\n666 | access(contract) fun getNetwork() : \u0026FIND.Network {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n |\n30 | return FindMarket.getTenantCapability(tenant)!.borrow()!\n | ^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n |\n46 | if let cap = getAccount(address).capabilities.get\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenantRef.getPublicPath(type)) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e`\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n |\n58 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n |\n70 | let address=FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n |\n87 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n |\n100 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n |\n110 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n |\n114 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n |\n124 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n |\n128 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n |\n168 | let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n |\n183 | let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n |\n224 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n |\n245 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n |\n443 | let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n |\n449 | let findName = FIND.reverseLookup(cut.getAddress())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n |\n673 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n |\n674 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n |\n679 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n |\n680 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n |\n685 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n |\n686 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n |\n691 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n |\n692 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n |\n337 | let address = FIND.lookupAddress(name) ?? panic(\"This lease name is not owned\")\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n |\n477 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n |\n479 | } else if status.status == FIND.LeaseStatus.LOCKED {\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31\n |\n418 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73\n |\n470 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177\n |\n16 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22\n |\n27 | init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability\u003c\u0026{MarketBidCollectionPublic}\u003e, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38\n |\n69 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40\n |\n119 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51\n |\n131 | access(contract) fun setPointer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50\n |\n328 | access(Seller) fun acceptOffer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118\n |\n614 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115\n |\n625 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8\n |\n636 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8\n |\n637 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8\n |\n638 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8\n |\n639 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12\n |\n615 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22\n |\n618 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81\n |\n620 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12\n |\n626 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22\n |\n629 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82\n |\n630 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43\n |\n50 | let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19\n |\n105 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26\n |\n113 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19\n |\n120 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167\n |\n207 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"cancel bid in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26\n |\n223 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26\n |\n224 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26\n |\n226 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36\n |\n233 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130\n |\n236 | emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167\n |\n247 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27\n |\n262 | let item = FindLeaseMarket.ReadLeasePointer(name: name)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171\n |\n264 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167\n |\n281 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167\n |\n314 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"reject offer in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167\n |\n339 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167\n |\n366 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12\n |\n377 | FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo: leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FindLeaseMarketDirectOfferSoft.SaleItemCollection` does not conform to resource interface `FindLeaseMarketDirectOfferSoft.SaleItemCollectionPublic`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:25\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^\n ... \n |\n187 | access(all) fun isAcceptedDirectOffer(_ name:String) : Bool{\n | --------------------- mismatch here\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38\n |\n514 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32\n |\n532 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:264:71\n |\n264 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:707:31\n |\n707 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:756:73\n |\n756 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:106:52\n |\n106 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:197:38\n |\n197 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:47\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:46\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:60\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:59\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:41\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:40\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:57\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:56\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:93\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:92\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:60\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:59\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:41\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:40\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:55\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:54\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:83\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:82\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:131\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:130\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:900:118\n |\n900 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:910:115\n |\n910 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:921:8\n |\n921 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:922:8\n |\n922 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:923:8\n |\n923 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:924:8\n |\n924 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:901:11\n |\n901 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:904:22\n |\n904 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:905:81\n |\n905 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:911:11\n |\n911 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:914:22\n |\n914 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:915:82\n |\n915 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:89:19\n |\n89 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:101:23\n |\n101 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:107:19\n |\n107 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:198:19\n |\n198 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:292:148\n |\n292 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"add bid in auction\"), seller: self.owner!.address, buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:337:36\n |\n337 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:342:26\n |\n342 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:344:110\n |\n344 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:400:148\n |\n400 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid in auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:429:26\n |\n429 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:431:110\n |\n431 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:497:24\n |\n497 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:504:30\n |\n504 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:506:114\n |\n506 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:508:114\n |\n508 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:538:152\n |\n538 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill auction\"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:560:30\n |\n560 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:561:33\n |\n561 | let sellerName = FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:572:25\n |\n572 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:16\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:189\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:635:148\n |\n635 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:662:113\n |\n662 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:14:141\n |\n14 | access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: [String], nfts:[FindMarket.NFTInfo], tags: [String], quoteOwner: Address?, quoteId: UInt64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:154:73\n |\n154 | emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:167:68\n |\n167 | emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:56\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:111\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:268:24\n |\n268 | let nfts : [FindMarket.NFTInfo] = []\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:273:28\n |\n273 | nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:282:30\n |\n282 | let creatorName = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:307:23\n |\n307 | name = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:309:80\n |\n309 | emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n |\n46 | let senderName = FIND.reverseLookup(sender)\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n |\n63 | if let receiverCap = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(collectionPublicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n |\n76 | emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n |\n82 | if let collectionPublicCap = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Collection}\u003e(collectionPublicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{NonFungibleToken.Collection}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n |\n95 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n |\n124 | flowTokenRepayment: flowTokenRepayment\n | ^^^^^^^^^^^^^^^^^^ expected `Capability\u003c\u0026FlowToken.Vault\u003e?`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n |\n129 | emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n |\n140 | emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: \"invalid capability\")\n | ^^^^ not found in this scope\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n |\n154 | shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)\n | ^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n |\n162 | senderName = FIND.reverseLookup(sender!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n |\n164 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n |\n165 | emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Dandy","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:348:32\n |\n348 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:63:119\n |\n63 | init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:61:39\n |\n61 | access(contract) let platform: FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:87:46\n |\n87 | access(all) fun getMinterPlatform() : FindForge.MinterPlatform {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:15\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:56\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:110\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:333:109\n |\n333 | access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: [AnyStruct], externalUrlPrefix:String?) : @NFT {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:360:42\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Dandy:360:41\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:388:8\n |\n388 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:390:8\n |\n390 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:88:27\n |\n88 | if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:89:50\n |\n89 | let platform = \u0026self.platform as \u0026FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n |\n12 | access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n |\n13 | access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n |\n18 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n |\n20 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n |\n27 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n |\n68 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n |\n70 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n |\n78 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n |\n81 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n |\n100 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n |\n102 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n |\n110 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n |\n115 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:26:57\n |\n26 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:32:49\n |\n32 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:34:57\n |\n34 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:91\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:133\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:58:51\n |\n58 | access(Owner) fun getFindMarketClient(): \u0026FindMarket.TenantClient{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:129:61\n |\n129 | access(Owner) fun getTenantRef(_ tenant: Address) : \u0026FindMarket.Tenant {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:139:66\n |\n139 | access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:155:64\n |\n155 | access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:171:69\n |\n171 | access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:47:20\n |\n47 | return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:55:12\n |\n55 | FindMarket.removeFindMarketTenant(tenant: tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:63:23\n |\n63 | let path = FindMarket.TenantClientStoragePath\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:63\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:94\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:19\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:74:12\n |\n74 | FindMarket.addSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:81:12\n |\n81 | FindMarket.addMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:88:12\n |\n88 | FindMarket.addSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:95:12\n |\n95 | FindMarket.addMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:102:12\n |\n102 | FindMarket.removeSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:109:12\n |\n109 | FindMarket.removeMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:116:12\n |\n116 | FindMarket.removeSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:123:12\n |\n123 | FindMarket.removeMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:133:25\n |\n133 | let string = FindMarket.getTenantPathForAddress(tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:67\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:22\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:228:12\n |\n228 | FindMarket.setResidualAddress(address)\n | ^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarket","error":"error: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n |\n315 | if let cap = getAccount(address).capabilities.get\u003c\u0026{FindMarket.MarketBidCollectionPublic}\u003e(tenantRef.getPublicPath(type)) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FindMarket.MarketBidCollectionPublic}\u003e`\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n |\n1411 | if sbRef.getVaultTypes().contains(ftInfo.type) {\n | ^^^^^^^^^^^^^ unknown member\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n |\n228 | let status = FIND.status(name)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n |\n231 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n\n--\u003e 35717efbbce11c74.NameVoucher\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:38:57\n |\n38 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:44:49\n |\n44 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:46:57\n |\n46 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:156:110\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:156:109\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:59:12\n |\n59 | FindForge.addPublicForgeType(forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:67:12\n |\n67 | FindForge.addPrivateForgeType(name: name, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:75:12\n |\n75 | FindForge.removeForgeType(type: type)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:83:12\n |\n83 | FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.Admin:91:12\n |\n91 | FindForgeOrder.addMintType(mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:99:12\n |\n99 | FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:106:12\n |\n106 | FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:114:19\n |\n114 | return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:161:16\n |\n161 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:174:16\n |\n174 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:178:23\n |\n178 | let user = FIND.lookupAddress(name) ?? panic(\"Cannot find lease owner. Lease : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:58\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:179:57\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:87\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:188:16\n |\n188 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:192:12\n |\n192 | FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:200:12\n |\n200 | FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:295:122\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:296:12\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:359:19\n |\n359 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:57\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:87\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:367:27\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:368:19\n |\n368 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:21:36\n |\n21 | access(all) resource SaleItem : FindLeaseMarket.SaleItem{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:132:71\n |\n132 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:59\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:58\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:18:170\n |\n18 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:33:22\n |\n33 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:26:38\n |\n26 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:94:38\n |\n94 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:110:40\n |\n110 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:47\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:46\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:60\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:59\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:41\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:40\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:201:48\n |\n201 | access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:59\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:58\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:83\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:82\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:283:138\n |\n283 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:294:8\n |\n294 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:295:8\n |\n295 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:284:11\n |\n284 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:287:22\n |\n287 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:288:101\n |\n288 | return getAccount(user).capabilities.get\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:64:23\n |\n64 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:25\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:19\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:87:19\n |\n87 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:111:19\n |\n111 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:174:183\n |\n174 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy lease for sale\"), seller: self.owner!.address, buyer: to)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:189:26\n |\n189 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:190:26\n |\n190 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:194:12\n |\n194 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:196:123\n |\n196 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:\"sold\", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:216:183\n |\n216 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list lease for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:223:124\n |\n223 | emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:237:187\n |\n237 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist lease for sale\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:243:126\n |\n243 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:250:126\n |\n250 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:252:126\n |\n252 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindViews","error":"error: mismatching field `cap` in `ViewReadPointer`\n --\u003e 35717efbbce11c74.FindViews:137:30\n |\n137 | access(self) let cap: Capability\u003c\u0026{ViewResolver.ResolverCollection}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected `{MetadataViews.ResolverCollection}`, found `{ViewResolver.ResolverCollection}`\n\nerror: mismatching field `cap` in `AuthNFTPointer`\n --\u003e 35717efbbce11c74.FindViews:234:30\n |\n234 | access(self) let cap: Capability\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider, ViewResolver.ResolverCollection}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected `{MetadataViews.ResolverCollection, NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}`, found `{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider, ViewResolver.ResolverCollection}`\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FIND","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n |\n1358 | access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n |\n1610 | access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{LeaseCollectionPublic}\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n |\n2110 | if self.account.storage.borrow\u003c\u0026FUSD.Vault\u003e(from: FUSD.VaultStoragePath) == nil {\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n |\n2112 | let vault \u003c- FUSD.createEmptyVault()\n | ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n |\n2115 | self.account.storage.save(\u003c-vault, to: FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n |\n2119 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n |\n2121 | self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)\n | ^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n |\n2123 | let capb = self.account.capabilities.storage.issue\u003c\u0026{FungibleToken.Vault}\u003e(FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n |\n2129 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n |\n2131 | self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)\n | ^^^^^^^^^^^^^^^^^^ unknown member\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n |\n153 | if let cap = account.capabilities.get\u003c\u0026{Profile.Public}\u003e(Profile.publicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{Profile.Public}\u003e`\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n |\n627 | access(all) resource LeaseCollection: LeaseCollectionPublic {\n | ^\n ... \n |\n1293 | access(all) fun move(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, to: Capability\u003c\u0026LeaseCollection\u003e) {\n | ---- mismatch here\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n |\n1633 | let usdcCap = account.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FiatToken.VaultReceiverPubPath)!\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog","error":"error: conformances do not match in `NFTCatalogProposalManager`: missing `NFTCatalogProposalManagerPublic`\n --\u003e 324c34e1c517e4db.NFTCatalog:76:25\n |\n76 | access(all) resource NFTCatalogProposalManager {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: missing DeclarationKindResourceInterface declaration `NFTCatalogProposalManagerPublic`\n --\u003e 324c34e1c517e4db.NFTCatalog:13:21\n |\n13 | access(all) contract NFTCatalog {\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-failure","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders","error":"error: mismatching field `provider` in `ScopedNFTProvider`\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:81:35\n |\n81 | access(self) let provider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-failure","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders","error":"error: resource `ScopedFTProviders.ScopedFTProvider` does not conform to resource interface `FungibleToken.Provider`\n --\u003e 31ad40c07a2a9788.ScopedFTProviders:47:25\n |\n47 | access(all) resource ScopedFTProvider: FungibleToken.Provider {\n | ^\n ... \n |\n93 | access(FungibleToken.Withdraw | FungibleToken.Withdraw) fun withdraw(amount: UFix64): @{FungibleToken.Vault} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow","error":"error: resource `HeroesOfTheFlow.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 2d59ec5158e3adae.HeroesOfTheFlow:260:25\n |\n260 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n263 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-failure","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking","error":"error: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n\n--\u003e 877931736ee77cff.TopShot\n\nerror: error getting program a2526e2d9cc7f0d2.Pinnacle: failed to derive value: load program failed: Checking failed:\nerror: resource `Pinnacle.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1712:25\n\n--\u003e a2526e2d9cc7f0d2.Pinnacle\n\nerror: cannot find type in this scope: `TopShot`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:12:20\n |\n12 | \t\tif (type == Type\u003c@TopShot.NFT\u003e()) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:12:14\n |\n12 | \t\tif (type == Type\u003c@TopShot.NFT\u003e()) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Pinnacle`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:17:20\n |\n17 | \t\tif (type == Type\u003c@Pinnacle.NFT\u003e()) {\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:17:14\n |\n17 | \t\tif (type == Type\u003c@Pinnacle.NFT\u003e()) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Pinnacle`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:19:23\n |\n19 | \t\t\treturn (nftRef as! \u0026Pinnacle.NFT).isLocked()\n | \t\t\t ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap","error":"error: mismatching field `collectionProviderCapabilities` in `UserCapabilities`\n --\u003e 2bd8210db3a8fe8a.Swap:203:55\n |\n203 | \t\taccess(contract) let collectionProviderCapabilities: {String: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e}\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value `NonFungibleToken.Withdraw | NonFungibleToken.Owner`, but the annotation present is `NonFungibleToken.Withdraw, NonFungibleToken.Owner`\n"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Admin","error":"error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n\n--\u003e 1c5033ad60821c97.Doodles\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:43:33\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:217:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:218:38\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:222:2\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:31:7\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:44:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:44\n\n--\u003e 1c5033ad60821c97.DoodlePacks\n\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:195:52\n |\n195 | \t\taccess(all) fun registerDoodlesBaseCharacter(_ d: Doodles.BaseCharacter) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:209:46\n |\n209 | \t\taccess(all) fun registerDoodlesSpecies(_ d: Doodles.Species) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:223:42\n |\n223 | \t\taccess(all) fun registerDoodlesSet(_ d: Doodles.Set) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:242:6\n |\n242 | \t\t): @Doodles.NFT {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.Admin:373:27\n |\n373 | \t\t\ttemplateDistributions: [DoodlePackTypes.TemplateDistribution],\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.Admin:375:5\n |\n375 | \t\t): DoodlePackTypes.PackType {\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:199:3\n |\n199 | \t\t\tDoodles.setBaseCharacter(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:206:3\n |\n206 | \t\t\tDoodles.retireBaseCharacter(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:213:3\n |\n213 | \t\t\tDoodles.addSpecies(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:220:3\n |\n220 | \t\t\tDoodles.retireSpecies(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:227:3\n |\n227 | \t\t\tDoodles.addSet(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:234:3\n |\n234 | \t\t\tDoodles.retireSet(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:247:17\n |\n247 | \t\t\tlet doodle \u003c- Doodles.adminMintDoodle(\n | \t\t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:261:3\n |\n261 | \t\t\tRedeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:269:3\n |\n269 | \t\t\tRedeemables.updateSetActive(setId: setId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:276:3\n |\n276 | \t\t\tRedeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:283:3\n |\n283 | \t\t\tRedeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:300:3\n |\n300 | \t\t\tRedeemables.createTemplate(\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:317:3\n |\n317 | \t\t\tRedeemables.updateTemplateActive(templateId: templateId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:324:3\n |\n324 | \t\t\tRedeemables.mintNFT(recipient: recipient, templateId: templateId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:331:3\n |\n331 | \t\t\tRedeemables.burnUnredeemedSet(setId: setId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:363:3\n |\n363 | \t\t\tDoodlePacks.mintNFT(recipient: recipient, typeId: typeId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.Admin:380:10\n |\n380 | \t\t\treturn DoodlePackTypes.addPackType(\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:435:3\n |\n435 | \t\t\tOpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)\n | \t\t\t^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Teleport","error":"error: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :7:0\n |\n7 | pub contract DapperStorageRent {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:2\n |\n9 | pub let DapperStorageRentAdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:2\n |\n23 | pub event BlockedAddress(_ address: [Address])\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:2\n |\n25 | pub event Refuelled(_ address: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub event RefilledFailed(address: Address, reason: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub fun getStorageRentRefillThreshold(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:2\n |\n41 | pub fun getRefilledAccounts(): [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub fun getBlockedAccounts() : [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:2\n |\n57 | pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:2\n |\n65 | pub fun getRefillRequiredBlocks(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:2\n |\n70 | pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:2\n |\n75 | pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:2\n |\n85 | pub fun tryRefill(_ address: Address) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :124:106\n |\n124 | if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow\u003c\u0026FlowToken.Vault{FungibleToken.Balance}\u003e() {\n | ^^^^^^^^^^^^^\n\n--\u003e 43ee8c22fcf94ea3.DapperStorageRent\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:136:3\n |\n136 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:159:20\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:159:88\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:201:3\n |\n201 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:224:20\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:224:88\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks","error":"error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:43:33\n |\n43 | \t\taccess(all) fun getPackType(): DoodlePackTypes.PackType {\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:217:17\n |\n217 | \t\tlet packType = DoodlePackTypes.getPackType(id: typeId) ?? panic(\"Invalid pack type\")\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:218:38\n |\n218 | \t\tassert(packType.maxSupply == nil || DoodlePackTypes.getPackTypesMintedCount(typeId: packType.id) \u003c packType.maxSupply!, message: \"Max supply reached\")\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:222:2\n |\n222 | \t\tDoodlePackTypes.addMintedCountToPackType(typeId: typeId, amount: 1)\n | \t\t^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n |\n236 | \t\tlet openPack \u003c- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:31:7\n |\n31 | \t\t\tif (DoodlePackTypes.getPackType(id: typeId) == nil) {\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:44:10\n |\n44 | \t\t\treturn DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:17\n |\n64 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.DoodlePacks:64:44\n |\n64 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n |\n205 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n |\n233 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes","error":"error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n |\n242 | \t\t\treturn Type\u003c@FlowUtilityToken.Vault\u003e()\n | \t\t\t ^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n |\n242 | \t\t\treturn Type\u003c@FlowUtilityToken.Vault\u003e()\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks","error":"error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:\nerror: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :3:0\n |\n3 | pub contract FlowUtilityToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :6:4\n |\n6 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:4\n |\n9 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :12:4\n |\n12 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event TokensMinted(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :21:4\n |\n21 | pub event TokensBurned(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event MinterCreated(allowedAmount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:4\n |\n27 | pub event BurnerCreated()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:8\n |\n44 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:8\n |\n60 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:8\n |\n73 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :81:8\n |\n81 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub fun createEmptyVault(): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub resource Administrator {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :102:8\n |\n102 | pub fun createNewMinter(allowedAmount: UFix64): @Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :111:8\n |\n111 | pub fun createNewBurner(): @Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :121:4\n |\n121 | pub resource Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :124:8\n |\n124 | pub var allowedAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :131:8\n |\n131 | pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:4\n |\n151 | pub resource Burner {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:8\n |\n160 | pub fun burnTokens(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :184:50\n |\n184 | self.account.link\u003c\u0026FlowUtilityToken.Vault{FungibleToken.Balance}\u003e(\n | ^^^^^^^^^^^^^\n\n--\u003e 82ec283f88a62e65.FlowUtilityToken\n\nerror: cannot find type in this scope: `FlowUtilityToken`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.DoodlePackTypes:242:10\n\n--\u003e 1c5033ad60821c97.DoodlePackTypes\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:51:39\n |\n51 | access(all) fun getPackType(): DoodlePackTypes.PackType {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:23\n |\n227 | init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:227:71\n |\n227 | init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:221:34\n |\n221 | access(all) let packType: DoodlePackTypes.PackType\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:222:46\n |\n222 | access(all) var templateDistribution: DoodlePackTypes.TemplateDistribution\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:321:18\n |\n321 | packType: DoodlePackTypes.PackType,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:372:18\n |\n372 | packType: DoodlePackTypes.PackType,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:419:20\n |\n419 | collection: DoodlePackTypes.Collection,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:423:18\n |\n423 | packType: DoodlePackTypes.PackType\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:279:19\n |\n279 | \u0026\u0026 DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) \u003e= templateDistribution.maxMint!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:328:59\n |\n328 | \u0026\u0026 (templateDistribution.maxMint == nil || DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) \u003c templateDistribution.maxMint!)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:344:24\n |\n344 | DoodlePackTypes.addMintedCountToTemplateDistribution(\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:351:71\n |\n351 | || (templateDistribution.maxMint != nil \u0026\u0026 DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:399:20\n |\n399 | DoodlePackTypes.addMintedCountToTemplateDistribution(\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:407:68\n |\n407 | || (templateDistribution.maxMint != nil \u0026\u0026 DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:426:17\n |\n426 | case DoodlePackTypes.Collection.Wearables:\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:437:17\n |\n437 | case DoodlePackTypes.Collection.Redeemables:\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n |\n438 | let recipient = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(Redeemables.CollectionPublicPath)!.borrow()\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n |\n440 | Redeemables.mintNFT(recipient: recipient, templateId: templateId)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:39:16\n |\n39 | if (DoodlePackTypes.getPackType(id: typeId) == nil) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:52:10\n |\n52 | \t\t\treturn DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:17\n |\n72 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:72:44\n |\n72 | \t\t\tlet packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePackTypes`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:251:20\n |\n251 | DoodlePackTypes.getTemplateDistributionMintedCount(\n | ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Doodles","error":"error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n |\n234 | \t\taccess(all) var name: @{UInt64 : DoodleNames.NFT}\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n |\n581 | \t\taccess(account) fun addName(_ nft: @DoodleNames.NFT, owner:Address) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n |\n590 | \t\taccess(all) fun equipName(_ nft: @DoodleNames.NFT) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n |\n606 | \t\taccess(contract) fun unequipName() : @DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n |\n673 | \t\taccess(all) fun borrowName(_ id: UInt64) : \u0026DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n |\n940 | \t\tlet name \u003c- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Wearables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables","error":"error: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n |\n440 | \t\t\t\tgetAccount(address).capabilities.get\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e(Redeemables.CollectionPublicPath)?.borrow()\n | \t\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-failure","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers","error":"error: mismatched types\n --\u003e 0d3dc5ad70be03d1.Offers:159:16\n |\n159 | \t\t\tif let cap = getAccount(receiver.address).capabilities.get\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath) {\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e`\n"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-04-24T07-50-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-04-24T07-50-00Z-testnet.md new file mode 100644 index 0000000000..f43b14e4a2 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-04-24T07-50-00Z-testnet.md @@ -0,0 +1,249 @@ +## Cadence 1.0 staged contracts migration results +Date: 26 April, 2024 +Stats: 198 contracts staged, 124 successfully upgraded, 74 failed to upgrade + +Snapshot: devnet49-execution-snapshot-for-migration-4-april-24 + +Flow-go build: v0.34.0-crescendo-preview.15-atree-inlining + +### Previously staged contrats that need updating + +The Cadence team introduced new breaking changes in the [Cadence preview build 22](https://github.com/onflow/cadence/releases/tag/v1.0.0-preview.22), for this reason some contracts that were previously successfully migrated failed this migration. The changes were [announced in Discord](https://discord.com/channels/613813861610684416/811693600403357706/1230562679312089249) and discussed and approved by the community in the [Developer Office Hours](https://discord.com/channels/613813861610684416/811693600403357706/1232758129788457000). +Please upgrade you contract to comply with the latest release and re-stage it. See the full migration report in the following section to see the specific migration error for your contract. + +|Account Address | Contract Name | +| --- | --- | +|0x566c813b3632783e | ExampleNFT | +|0xd704ee8202a0d82d | ExampleNFT | +|0xf28310b45fc6b319 | ExampleNFT | +|0x1f38da7a93c61f28 | ExampleNFT | +|0x668df1b27a5da384 | FanTopMarket | +|0xff5b7741090ee518 | FanTopMarket | +|0xb668e8c9726ef26b | FanTopMarket | +|0xa47a2d3a3b7e9133 | FanTopMarket | +|0xe1d43e0cfc237807 | Flowty | +|0xe1d43e0cfc237807 | FlowtyRentals | +|0xc7c122b5b811de8e | FlowversePass | +|0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | +|0xc7c122b5b811de8e | FlowversePrimarySale | +|0xc7c122b5b811de8e | FlowverseShirt | +|0xc7c122b5b811de8e | FlowverseSocks | +|0xc7c122b5b811de8e | FlowverseTreasures | +|0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | +|0x2d59ec5158e3adae | HeroesOfTheFlow | +|0x566c813b3632783e | KaratNFT | +|0x2bd8210db3a8fe8a | NFTLocking +|0xb051bdaddb672a33 | NFTStorefrontV2 | +|0x0d3dc5ad70be03d1 | Offers | +|0xc7c122b5b811de8e | Ordinal | +|0xc7c122b5b811de8e | OrdinalVendor | +|0xef4cd3d07a7b43ce | PDS | +|0xa2526e2d9cc7f0d2 | Pinnacle | +|0x1c5033ad60821c97 | Redeemables | +|0x31ad40c07a2a9788 | ScopedFTProviders | +|0x31ad40c07a2a9788 | ScopedNFTProviders | +|0x2bd8210db3a8fe8a | Swap | +v0x877931736ee77cff | TopShot | + +### Full Migration Report + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0xff5b7741090ee518 | FanTopPermissionV2a | ✅ | +| 0xff5b7741090ee518 | FanTopSerial | ✅ | +| 0xff5b7741090ee518 | Signature | ✅ | +| 0xff5b7741090ee518 | FanTopMarket | ❌

Error:
error: mismatching field \`capability\` in \`SellOrder\`
--\> ff5b7741090ee518.FanTopMarket:53:41
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0xff5b7741090ee518 | FanTopPermission | ✅ | +| 0xff5b7741090ee518 | FanTopToken | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xef4cd3d07a7b43ce | PDS | ❌

Error:
error: mismatching field \`withdrawCap\` in \`SharedCapabilities\`
--\> ef4cd3d07a7b43ce.PDS:108:38
\|
108 \| access(self) let withdrawCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ❌

Error:
error: mismatching field \`nftProviderCapability\` in \`Listing\`
--\> e1d43e0cfc237807.Flowty:424:52
\|
424 \| access(contract) let nftProviderCapability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ❌

Error:
error: cannot use optional chaining: type \`Capability<&{FlowtyRentals.FlowtyRentalsStorefrontPublic}>\` is not optional
--\> e1d43e0cfc237807.FlowtyRentals:1226:15
\|
1226 \| return getAccount(addr).capabilities.get<&{FlowtyRentalsStorefrontPublic}>(FlowtyRentals.FlowtyRentalsStorefrontPublicPath)?.borrow() ?? nil
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ❌

Error:
error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: conformances do not match in \`Collection\`: missing \`A.d35bad52c7e1ab65.NonFungibleToken.Provider\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^^^^^^^^^^

error: conformances do not match in \`ZeedzINO\`: missing \`A.d35bad52c7e1ab65.NonFungibleToken\`
--\> d35bad52c7e1ab65.ZeedzINO:32:21
\|
32 \| access(all) contract ZeedzINO: NonFungibleToken {
\| ^^^^^^^^
| +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: error getting program 94b06cfca1d8a476.NFTStorefront: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :24:0
\|
24 \| pub contract NFTStorefront {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event NFTStorefrontInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:4
\|
70 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:4
\|
84 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :91:4
\|
91 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :98:8
\|
98 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:8
\|
101 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:4
\|
115 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :120:8
\|
120 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :122:8
\|
122 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :128:8
\|
128 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:8
\|
132 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :181:4
\|
181 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:8
\|
186 \| pub fun borrowNFT(): &NonFungibleToken.NFT
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub fun purchase(payment: @FungibleToken.Vault): @NonFungibleToken.NFT
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:8
\|
196 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:4
\|
205 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun borrowNFT(): &NonFungibleToken.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:8
\|
233 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun purchase(payment: @FungibleToken.Vault): @NonFungibleToken.NFT {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :301:8
\|
301 \| destroy () {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :357:4
\|
357 \| pub resource interface StorefrontManager {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :361:8
\|
361 \| pub fun createListing(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :371:8
\|
371 \| pub fun removeListing(listingResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :378:4
\|
378 \| pub resource interface StorefrontPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :379:8
\|
379 \| pub fun getListingIDs(): \$&UInt64\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :380:8
\|
380 \| pub fun borrowListing(listingResourceID: UInt64): &Listing{ListingPublic}?
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :380:67
\|
380 \| pub fun borrowListing(listingResourceID: UInt64): &Listing{ListingPublic}?
\| ^^^^^^^^^^^^^

--\> 94b06cfca1d8a476.NFTStorefront

error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:
error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25

--\> 877931736ee77cff.TopShot

error: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :40:0
\|
40 \| pub contract Market {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub resource interface SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:8
\|
62 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:8
\|
68 \| pub fun getPrice(tokenID: UInt64): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:8
\|
69 \| pub fun getIDs(): \$&UInt64\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:8
\|
70 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub resource SaleCollection: SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun listForSale(token: @TopShot.NFT, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub fun withdraw(tokenID: UInt64): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :166:8
\|
166 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :198:8
\|
198 \| pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :209:8
\|
209 \| pub fun changePercentage(\_ newPercent: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :216:8
\|
216 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :225:8
\|
225 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :227:73
\|
227 \| newBeneficiaryCapability.borrow<&DapperUtilityCoin.Vault{FungibleToken.Receiver}>() != nil:
\| ^^^^^^^^^^^^^

--\> 547f177b243b4d80.Market

error: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :46:0
\|
46 \| pub contract TopShotMarketV3 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let marketStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub let marketPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:4
\|
79 \| pub resource SaleCollection: Market.SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:8
\|
101 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub fun listForSale(tokenID: UInt64, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub fun cancelSale(tokenID: UInt64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:8
\|
196 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :247:8
\|
247 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:8
\|
259 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:8
\|
272 \| pub fun getPrice(tokenID: UInt64): UFix64? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :282:8
\|
282 \| pub fun getIDs(): \$&UInt64\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:8
\|
302 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :318:4
\|
318 \| pub fun createSaleCollection(ownerCollection: Capability<&TopShot.Collection>,
\| ^^^

--\> 547f177b243b4d80.TopShotMarketV3

error: cannot find type in this scope: \`NFTStorefront\`
--\> c7c122b5b811de8e.BulkPurchase:149:70
\|
149 \| access(contract) view fun getStorefrontV1Ref(address: Address): &{NFTStorefront.StorefrontPublic}? {
\| ^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:149:69
\|
149 \| access(contract) view fun getStorefrontV1Ref(address: Address): &{NFTStorefront.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:154:70
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:154:69
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:159:73
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:159:72
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:164:73
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:164:72
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefront\`
--\> c7c122b5b811de8e.BulkPurchase:173:22
\|
173 \| storefront: &{NFTStorefront.StorefrontPublic},
\| ^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:173:21
\|
173 \| storefront: &{NFTStorefront.StorefrontPublic},
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:225:22
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:225:21
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:301:25
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:301:24
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefront\`
--\> c7c122b5b811de8e.BulkPurchase:151:35
\|
151 \| .capabilities.borrow<&{NFTStorefront.StorefrontPublic}>(NFTStorefront.StorefrontPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:151:34
\|
151 \| .capabilities.borrow<&{NFTStorefront.StorefrontPublic}>(NFTStorefront.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefront\`
--\> c7c122b5b811de8e.BulkPurchase:151:68
\|
151 \| .capabilities.borrow<&{NFTStorefront.StorefrontPublic}>(NFTStorefront.StorefrontPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:150:15
\|
150 \| return getAccount(address)
151 \| .capabilities.borrow<&{NFTStorefront.StorefrontPublic}>(NFTStorefront.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:35
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:156:34
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:70
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:155:15
\|
155 \| return getAccount(address)
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:161:35
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:161:34
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:160:15
\|
160 \| return getAccount(address)
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:166:35
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:166:34
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`TopShotMarketV3\`
--\> c7c122b5b811de8e.BulkPurchase:166:55
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:165:15
\|
165 \| return getAccount(address)
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`TopShot\`
--\> c7c122b5b811de8e.BulkPurchase:322:63
\|
322 \| let receiverCapability = nftReceiverCapabilities\$&Type<@TopShot.NFT>().identifier\$&
\| ^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:322:57
\|
322 \| let receiverCapability = nftReceiverCapabilities\$&Type<@TopShot.NFT>().identifier\$&
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`TopShot\`
--\> c7c122b5b811de8e.BulkPurchase:333:31
\|
333 \| order.setNFTType(Type<@TopShot.NFT>())
\| ^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:333:25
\|
333 \| order.setNFTType(Type<@TopShot.NFT>())
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefront\`
--\> c7c122b5b811de8e.BulkPurchase:352:42
\|
352 \| let storefrontV1Refs: {Address: &{NFTStorefront.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:352:41
\|
352 \| let storefrontV1Refs: {Address: &{NFTStorefront.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:353:42
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:353:41
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:354:45
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:354:44
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:355:45
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:355:44
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | Royalties | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:160:8
\|
160 \| ): \$&NFTStorefrontV2.SaleCut\$& {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:161:23
\|
161 \| let saleCuts: \$&NFTStorefrontV2.SaleCut\$& = \$&\$&
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:164:28
\|
164 \| saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut \* salePrice))
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowverseSocks | ❌

Error:
error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25
\|
111 \| access(all) resource Collection: FlowverseSocksCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
113 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowverseTreasures | ❌

Error:
error: resource \`FlowverseTreasures.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseTreasures:596:25
\|
596 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
599 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | Ordinal | ❌

Error:
error: error getting program c7c122b5b811de8e.OrdinalVendor: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

error: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25

--\> c7c122b5b811de8e.FlowverseShirt

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:94

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:203:93

error: cannot find variable in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:127

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:203:47

error: cannot find type in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:88

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:210:87

error: cannot find variable in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:136

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:210:41

error: cannot find type in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:88

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:217:87

error: cannot find variable in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:122

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:217:41

--\> c7c122b5b811de8e.OrdinalVendor

error: cannot find type in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:194:33
\|
194 \| access(all) resource Minter: OrdinalVendor.IMinter {
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:183:19
\|
183 \| assert(OrdinalVendor.checkDomainAvailability(domain: data), message: "domain already exists")
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:83:38
\|
83 \| let isOrdinalRestricted = OrdinalVendor.checkOrdinalRestricted(id: self.id)
\| ^^^^^^^^^^^^^ not found in this scope

error: resource \`Ordinal.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.Ordinal:230:25
\|
230 \| access(all) resource Collection: CollectionPublic, CollectionUpdate, NonFungibleToken.Collection {
\| ^
...
\|
233 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | OrdinalVendor | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

error: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25

--\> c7c122b5b811de8e.FlowverseShirt

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:94
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:203:93
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:127
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:203:47
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:88
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:210:87
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:136
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:210:41
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:88
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:217:87
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:122
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:217:41
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

--\> c7c122b5b811de8e.FlowversePrimarySale

error: cannot find type in this scope: \`FlowversePrimarySale\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:12:33
\|
12 \| access(all) resource Minter: FlowversePrimarySale.IMinter {
\| ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:19:25
\|
19 \| init(setMinter: @FlowversePass.SetMinter) {
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:13:37
\|
13 \| access(self) let setMinter: @FlowversePass.SetMinter
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:24:45
\|
24 \| access(all) fun createMinter(setMinter: @FlowversePass.SetMinter): @Minter {
\| ^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowverseShirt | ❌

Error:
error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25
\|
206 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
209 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowversePrimarySale | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks
| +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowverseTreasures: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseTreasures.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseTreasures:596:25

--\> c7c122b5b811de8e.FlowverseTreasures

error: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

--\> c7c122b5b811de8e.FlowversePrimarySale

error: cannot find type in this scope: \`FlowversePrimarySale\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:12:33
\|
12 \| access(all) resource Minter: FlowversePrimarySale.IMinter {
\| ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:19:25
\|
19 \| init(setMinter: @FlowverseTreasures.SetMinter) {
\| ^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:13:37
\|
13 \| access(self) let setMinter: @FlowverseTreasures.SetMinter
\| ^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:24:45
\|
24 \| access(all) fun createMinter(setMinter: @FlowverseTreasures.SetMinter): @Minter {
\| ^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowversePass | ❌

Error:
error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25
\|
561 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
564 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ❌

Error:
error: mismatching field \`capability\` in \`SellOrder\`
--\> b668e8c9726ef26b.FanTopMarket:53:41
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ❌

Error:
error: mismatching field \`nftProviderCapability\` in \`Listing\`
--\> b051bdaddb672a33.NFTStorefrontV2:252:47
\|
252 \| access(contract) let nftProviderCapability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ❌

Error:
error: mismatching field \`capability\` in \`SellOrder\`
--\> a47a2d3a3b7e9133.FanTopMarket:53:41
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ❌

Error:
error: resource \`PackNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> a2526e2d9cc7f0d2.PackNFT:209:25
\|
209 \| access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {
\| ^
...
\|
213 \| access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0xa2526e2d9cc7f0d2 | Pinnacle | ❌

Error:
error: resource \`Pinnacle.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> a2526e2d9cc7f0d2.Pinnacle:1712:25
\|
1712 \| access(all) resource Collection: NonFungibleToken.Collection, PinNFTCollectionPublic {
\| ^
...
\|
1716 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x877931736ee77cff | TopShot | ❌

Error:
error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25
\|
1060 \| access(all) resource Collection: MomentCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
1063 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x8c5303eaa26202d6 | EVM | ✅ | +| 0x668df1b27a5da384 | FanTopPermissionV2a | ✅ | +| 0x668df1b27a5da384 | FanTopSerial | ✅ | +| 0x668df1b27a5da384 | FanTopToken | ✅ | +| 0x668df1b27a5da384 | FanTopMarket | ❌

Error:
error: mismatching field \`capability\` in \`SellOrder\`
--\> 668df1b27a5da384.FanTopMarket:53:41
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0x668df1b27a5da384 | Signature | ✅ | +| 0x668df1b27a5da384 | FanTopPermission | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | KaratNFT | ❌

Error:
error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
\|
155 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | ExampleNFT | ❌

Error:
error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0x3e5b4c627064625d | NFGv3 | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:284:32
\|
284 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:15
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:56
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:110
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:15
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:67
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:121
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:328:8
\|
328 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:341:32
\|
341 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:15
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:56
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:110
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:15
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:67
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:121
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:396:8
\|
396 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:380:36
\|
380 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:19
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:60
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:114
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:19
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:71
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:125
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:414:46
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 3e5b4c627064625d.Flomies:414:45
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:434:12
\|
434 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:340:32
\|
340 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:15
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:56
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:110
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:399:8
\|
399 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: use of previously moved resource
--\> 3e5b4c627064625d.GeneratedExperiences:271:43
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| ^^^^^ resource used here after move
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| \-\-\-\-\- resource previously moved here

error: resource \`GeneratedExperiences.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.GeneratedExperiences:221:25
\|
221 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
224 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | FindForge | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57
\|
413 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49
\|
421 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57
\|
427 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46
\|
110 \| access(all) fun setMinterPlatform(lease: &FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49
\|
178 \| access(all) fun removeMinterPlatform(lease: &FIND.Lease, forgeType: Type) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39
\|
229 \| access(all) fun orderForge(lease: &FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34
\|
263 \| access(all) fun mint (lease: &FIND.Lease, forgeType: Type , data: AnyStruct, receiver: &{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44
\|
310 \| access(all) fun addContractData(lease: &FIND.Lease, forgeType: Type , data: AnyStruct) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19
\|
155 \| let user = FIND.lookupAddress(leaseName) ?? panic("Cannot find lease owner. Lease : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8
\|
234 \| FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8
\|
238 \| FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8
\|
242 \| FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20
\|
246 \| let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22
\|
272 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21
\|
302 \| let toName = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18
\|
303 \| let new = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22
\|
319 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24
\|
36 \| self.minter=FIND.lookupAddress(self.name)!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:22:36
\|
22 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:163:71
\|
163 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:158:57
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:158:56
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:19:164
\|
19 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:106:38
\|
106 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:122:52
\|
122 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:170:47
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:170:46
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:168:60
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:168:59
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:175:41
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:175:40
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:360:57
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:360:56
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:369:83
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:369:82
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:373:133
\|
373 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:383:8
\|
383 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:384:8
\|
384 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:374:26
\|
374 \| if let tenantCap=FindMarket.getTenantCapability(marketplace) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:376:96
\|
376 \| return getAccount(user).capabilities.get<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:73:23
\|
73 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:99:19
\|
99 \| return FIND.reverseLookup(self.pointer.owner())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:123:19
\|
123 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:213:139
\|
213 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "buy item for sale"), seller: self.owner!.address, buyer: nftCap.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:224:26
\|
224 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:225:27
\|
225 \| let sellerName=FIND.reverseLookup(self.owner!.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:227:113
\|
227 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:"sold", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:234:21
\|
234 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:236:12
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:236:199
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:286:139
\|
286 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:295:115
\|
295 \| emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:311:24
\|
311 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:317:98
\|
317 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindForgeOrder | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND
| +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36
\|
17 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71
\|
175 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31
\|
452 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73
\|
501 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171
\|
13 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52
\|
80 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38
\|
108 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8
\|
695 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8
\|
696 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8
\|
697 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8
\|
698 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11
\|
661 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22
\|
664 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11
\|
671 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22
\|
674 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11
\|
685 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22
\|
688 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19
\|
65 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26
\|
74 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19
\|
81 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26
\|
211 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24
\|
214 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106
\|
219 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152
\|
236 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "add bid in direct offer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26
\|
246 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106
\|
251 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156
\|
269 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30
\|
282 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113
\|
287 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152
\|
302 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26
\|
325 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36
\|
330 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106
\|
332 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26
\|
354 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24
\|
357 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106
\|
362 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152
\|
384 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26
\|
402 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27
\|
403 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21
\|
415 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Profile | ❌

Error:
error: conformances do not match in \`User\`: missing \`Owner\`
--\> 35717efbbce11c74.Profile:328:25
\|
328 \| access(all) resource User: Public, FungibleToken.Receiver {
\| ^^^^
| +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16
\|
154 \| if !cap.check() {
\| ^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22
\|
157 \| let ref = cap.borrow()!
\| ^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:189:71
\|
189 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:533:31
\|
533 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:586:73
\|
586 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:14:171
\|
14 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:74:38
\|
74 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:120:52
\|
120 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:47
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:46
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:60
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:59
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:41
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:40
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:57
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:56
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:93
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:92
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:60
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:59
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:41
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:40
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:55
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:54
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:83
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:82
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:131
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:130
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:774:8
\|
774 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:775:8
\|
775 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:776:8
\|
776 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:777:8
\|
777 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:754:11
\|
754 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:757:22
\|
757 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:764:11
\|
764 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:767:22
\|
767 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:106:19
\|
106 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:114:26
\|
114 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:121:19
\|
121 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:234:26
\|
234 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:237:24
\|
237 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:242:134
\|
242 \| emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:260:150
\|
260 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:270:26
\|
270 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:275:106
\|
275 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:293:183
\|
293 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:304:30
\|
304 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:309:113
\|
309 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:325:150
\|
325 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:348:26
\|
348 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:353:36
\|
353 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:356:106
\|
356 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:378:26
\|
378 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:381:24
\|
381 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:386:106
\|
386 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:413:150
\|
413 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:427:26
\|
427 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:432:106
\|
432 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:457:150
\|
457 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:470:26
\|
470 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:471:27
\|
471 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:486:21
\|
486 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:12
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:187
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: resource \`FindMarketDirectOfferSoft.SaleItemCollection\` does not conform to resource interface \`FindMarketDirectOfferSoft.SaleItemCollectionPublic\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:189:25
\|
189 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^
...
\|
207 \| access(all) fun isAcceptedDirectOffer(\_ id:UInt64) : Bool{
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:7:86
\|
7 \| access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:14:22
\|
14 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:16:43
\|
16 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:22:22
\|
22 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:24:43
\|
24 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32
\|
1156 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79
\|
307 \| init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38
\|
305 \| access(all) let verifierRef: &FindForge.Verifier
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8
\|
1220 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8
\|
1223 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:260:71
\|
260 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:657:31
\|
657 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:708:73
\|
708 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:102:52
\|
102 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:193:38
\|
193 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:47
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:46
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:60
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:59
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:41
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:40
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:57
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:56
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:93
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:92
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:60
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:59
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:41
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:40
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:55
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:54
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:83
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:82
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:131
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:130
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:864:8
\|
864 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:865:8
\|
865 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:866:8
\|
866 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:867:8
\|
867 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:844:11
\|
844 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:847:22
\|
847 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:854:11
\|
854 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:857:22
\|
857 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:85:19
\|
85 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:97:23
\|
97 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:103:19
\|
103 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:194:19
\|
194 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:290:147
\|
290 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "add bit in soft-auction"), seller: self.owner!.address ,buyer: buyer)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:333:36
\|
333 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:336:26
\|
336 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:338:110
\|
338 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:388:146
\|
388 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:416:26
\|
416 \| let buyerName=FIND.reverseLookup(callback.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:418:123
\|
418 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:452:24
\|
452 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:458:30
\|
458 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:460:114
\|
460 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:462:114
\|
462 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:518:146
\|
518 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:537:26
\|
537 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:538:27
\|
538 \| let sellerName=FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:540:110
\|
540 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:549:21
\|
549 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:12
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:146
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:592:163
\|
592 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:612:126
\|
612 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: "active\_listed", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71
\|
228 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31
\|
529 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73
\|
579 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22
\|
32 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38
\|
19 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40
\|
91 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38
\|
181 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51
\|
463 \| access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118
\|
706 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115
\|
716 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8
\|
727 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8
\|
728 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8
\|
729 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8
\|
730 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11
\|
707 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22
\|
710 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81
\|
711 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11
\|
717 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22
\|
720 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82
\|
721 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19
\|
70 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23
\|
86 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19
\|
92 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19
\|
182 \| return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26
\|
254 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36
\|
261 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30
\|
265 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30
\|
266 \| let profile = FIND.lookup(buyer!.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138
\|
267 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138
\|
269 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167
\|
280 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"add bit in soft-auction"), seller: self.owner!.address ,buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167
\|
361 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167
\|
405 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item from soft-auction"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167
\|
443 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12
\|
457 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167
\|
482 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38
\|
621 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32
\|
629 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37
\|
325 \| access(all) fun getLease() : FIND.LeaseInformation
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37
\|
352 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37
\|
401 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41
\|
666 \| access(contract) fun getNetwork() : &FIND.Network {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15
\|
30 \| return FindMarket.getTenantCapability(tenant)!.borrow()!
\| ^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29
\|
46 \| if let cap = getAccount(address).capabilities.get<&{FindLeaseMarket.SaleItemCollectionPublic}>(tenantRef.getPublicPath(type)) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\`

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15
\|
58 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20
\|
70 \| let address=FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22
\|
87 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31
\|
100 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22
\|
110 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31
\|
114 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22
\|
124 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31
\|
128 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137
\|
168 \| let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140
\|
183 \| let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15
\|
224 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31
\|
245 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25
\|
443 \| let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35
\|
449 \| let findName = FIND.reverseLookup(cut.getAddress())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8
\|
673 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8
\|
674 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8
\|
679 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8
\|
680 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8
\|
685 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8
\|
686 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8
\|
691 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8
\|
692 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26
\|
337 \| let address = FIND.lookupAddress(name) ?? panic("This lease name is not owned")
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32
\|
477 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39
\|
479 \| } else if status.status == FIND.LeaseStatus.LOCKED {
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31
\|
418 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73
\|
470 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177
\|
16 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22
\|
27 \| init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability<&{MarketBidCollectionPublic}>, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38
\|
69 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40
\|
119 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51
\|
131 \| access(contract) fun setPointer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50
\|
328 \| access(Seller) fun acceptOffer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118
\|
614 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115
\|
625 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8
\|
636 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8
\|
637 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8
\|
638 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8
\|
639 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12
\|
615 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22
\|
618 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81
\|
620 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12
\|
626 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22
\|
629 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82
\|
630 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43
\|
50 \| let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19
\|
105 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26
\|
113 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19
\|
120 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167
\|
207 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"cancel bid in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26
\|
223 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26
\|
224 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26
\|
226 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36
\|
233 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130
\|
236 \| emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167
\|
247 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27
\|
262 \| let item = FindLeaseMarket.ReadLeasePointer(name: name)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171
\|
264 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167
\|
281 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167
\|
314 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"reject offer in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167
\|
339 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167
\|
366 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12
\|
377 \| FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo: leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FindLeaseMarketDirectOfferSoft.SaleItemCollection\` does not conform to resource interface \`FindLeaseMarketDirectOfferSoft.SaleItemCollectionPublic\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:25
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^
...
\|
187 \| access(all) fun isAcceptedDirectOffer(\_ name:String) : Bool{
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38
\|
514 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32
\|
532 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:264:71
\|
264 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:707:31
\|
707 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:756:73
\|
756 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:106:52
\|
106 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:197:38
\|
197 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:47
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:46
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:60
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:59
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:41
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:40
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:57
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:56
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:93
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:92
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:60
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:59
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:41
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:40
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:55
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:54
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:83
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:82
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:131
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:130
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:900:118
\|
900 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:910:115
\|
910 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:921:8
\|
921 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:922:8
\|
922 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:923:8
\|
923 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:924:8
\|
924 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:901:11
\|
901 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:904:22
\|
904 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:905:81
\|
905 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:911:11
\|
911 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:914:22
\|
914 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:915:82
\|
915 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:89:19
\|
89 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:101:23
\|
101 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:107:19
\|
107 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:198:19
\|
198 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:292:148
\|
292 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"add bid in auction"), seller: self.owner!.address, buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:337:36
\|
337 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:342:26
\|
342 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:344:110
\|
344 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:400:148
\|
400 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid in auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:429:26
\|
429 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:431:110
\|
431 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:497:24
\|
497 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:504:30
\|
504 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:506:114
\|
506 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:508:114
\|
508 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:538:152
\|
538 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill auction"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:560:30
\|
560 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:561:33
\|
561 \| let sellerName = FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:572:25
\|
572 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:16
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:189
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:635:148
\|
635 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:662:113
\|
662 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:14:141
\|
14 \| access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: \$&String\$&, nfts:\$&FindMarket.NFTInfo\$&, tags: \$&String\$&, quoteOwner: Address?, quoteId: UInt64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:154:73
\|
154 \| emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:167:68
\|
167 \| emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:56
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:111
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:268:24
\|
268 \| let nfts : \$&FindMarket.NFTInfo\$& = \$&\$&
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:273:28
\|
273 \| nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:282:30
\|
282 \| let creatorName = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:307:23
\|
307 \| name = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:309:80
\|
309 \| emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25
\|
46 \| let senderName = FIND.reverseLookup(sender)
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29
\|
63 \| if let receiverCap = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(collectionPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{NonFungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83
\|
76 \| emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37
\|
82 \| if let collectionPublicCap = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Collection}>(collectionPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{NonFungibleToken.Collection}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79
\|
95 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32
\|
124 \| flowTokenRepayment: flowTokenRepayment
\| ^^^^^^^^^^^^^^^^^^ expected \`Capability<&FlowToken.Vault>?\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70
\|
129 \| emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77
\|
140 \| emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: "invalid capability")
\| ^^^^ not found in this scope

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8
\|
154 \| shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)
\| ^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25
\|
162 \| senderName = FIND.reverseLookup(sender!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67
\|
164 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69
\|
165 \| emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | Dandy | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:348:32
\|
348 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:63:119
\|
63 \| init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:61:39
\|
61 \| access(contract) let platform: FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:87:46
\|
87 \| access(all) fun getMinterPlatform() : FindForge.MinterPlatform {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:15
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:56
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:110
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:333:109
\|
333 \| access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: \$&AnyStruct\$&, externalUrlPrefix:String?) : @NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:360:42
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Dandy:360:41
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:388:8
\|
388 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:390:8
\|
390 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:88:27
\|
88 \| if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:89:50
\|
89 \| let platform = &self.platform as &FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119
\|
12 \| access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135
\|
13 \| access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21
\|
18 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23
\|
20 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22
\|
27 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21
\|
68 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23
\|
70 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22
\|
78 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23
\|
81 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21
\|
100 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23
\|
102 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22
\|
110 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23
\|
115 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAdmin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:26:57
\|
26 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:32:49
\|
32 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:34:57
\|
34 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:91
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:133
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:58:51
\|
58 \| access(Owner) fun getFindMarketClient(): &FindMarket.TenantClient{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:129:61
\|
129 \| access(Owner) fun getTenantRef(\_ tenant: Address) : &FindMarket.Tenant {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:139:66
\|
139 \| access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:155:64
\|
155 \| access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:171:69
\|
171 \| access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:47:20
\|
47 \| return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:55:12
\|
55 \| FindMarket.removeFindMarketTenant(tenant: tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:63:23
\|
63 \| let path = FindMarket.TenantClientStoragePath
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:63
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:94
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:64:19
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:74:12
\|
74 \| FindMarket.addSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:81:12
\|
81 \| FindMarket.addMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:88:12
\|
88 \| FindMarket.addSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:95:12
\|
95 \| FindMarket.addMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:102:12
\|
102 \| FindMarket.removeSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:109:12
\|
109 \| FindMarket.removeMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:116:12
\|
116 \| FindMarket.removeSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:123:12
\|
123 \| FindMarket.removeMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:133:25
\|
133 \| let string = FindMarket.getTenantPathForAddress(tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:135:67
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:135:22
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:228:12
\|
228 \| FindMarket.setResidualAddress(address)
\| ^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarket | ❌

Error:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25
\|
315 \| if let cap = getAccount(address).capabilities.get<&{FindMarket.MarketBidCollectionPublic}>(tenantRef.getPublicPath(type)) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FindMarket.MarketBidCollectionPublic}>\`

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29
\|
1411 \| if sbRef.getVaultTypes().contains(ftInfo.type) {
\| ^^^^^^^^^^^^^ unknown member
| +| 0x35717efbbce11c74 | NameVoucher | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25
\|
228 \| let status = FIND.status(name)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32
\|
231 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28

--\> 35717efbbce11c74.NameVoucher

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:38:57
\|
38 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:44:49
\|
44 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:46:57
\|
46 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:156:110
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:156:109
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:59:12
\|
59 \| FindForge.addPublicForgeType(forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:67:12
\|
67 \| FindForge.addPrivateForgeType(name: name, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:75:12
\|
75 \| FindForge.removeForgeType(type: type)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:83:12
\|
83 \| FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.Admin:91:12
\|
91 \| FindForgeOrder.addMintType(mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:99:12
\|
99 \| FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:106:12
\|
106 \| FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:114:19
\|
114 \| return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:161:16
\|
161 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:174:16
\|
174 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:178:23
\|
178 \| let user = FIND.lookupAddress(name) ?? panic("Cannot find lease owner. Lease : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:58
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:179:57
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:87
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:188:16
\|
188 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:192:12
\|
192 \| FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:200:12
\|
200 \| FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:295:122
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:296:12
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:359:19
\|
359 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:57
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:87
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:367:27
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:368:19
\|
368 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLeaseMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:21:36
\|
21 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:132:71
\|
132 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:128:59
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:128:58
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:18:170
\|
18 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:33:22
\|
33 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:26:38
\|
26 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:94:38
\|
94 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:110:40
\|
110 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:138:47
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:138:46
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:136:60
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:136:59
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:143:41
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:143:40
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:201:48
\|
201 \| access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:269:59
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:269:58
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:279:83
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:279:82
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:283:138
\|
283 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:294:8
\|
294 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:295:8
\|
295 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:284:11
\|
284 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:287:22
\|
287 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:288:101
\|
288 \| return getAccount(user).capabilities.get<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:64:23
\|
64 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:25
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:19
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:87:19
\|
87 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:111:19
\|
111 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:174:183
\|
174 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy lease for sale"), seller: self.owner!.address, buyer: to)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:189:26
\|
189 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:190:26
\|
190 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:194:12
\|
194 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:196:123
\|
196 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:"sold", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:216:183
\|
216 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list lease for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:223:124
\|
223 \| emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:237:187
\|
237 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist lease for sale"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:243:126
\|
243 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:250:126
\|
250 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:252:126
\|
252 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindViews | ❌

Error:
error: mismatching field \`cap\` in \`ViewReadPointer\`
--\> 35717efbbce11c74.FindViews:137:30
\|
137 \| access(self) let cap: Capability<&{ViewResolver.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected \`{MetadataViews.ResolverCollection}\`, found \`{ViewResolver.ResolverCollection}\`

error: mismatching field \`cap\` in \`AuthNFTPointer\`
--\> 35717efbbce11c74.FindViews:234:30
\|
234 \| access(self) let cap: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected \`{MetadataViews.ResolverCollection, NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\`, found \`{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider, ViewResolver.ResolverCollection}\`
| +| 0x35717efbbce11c74 | FIND | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66
\|
1358 \| access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59
\|
1610 \| access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability<&{Profile.Public}>, leases: Capability<&{LeaseCollectionPublic}>) {
\| ^^^^^^^^^ not found in this scope

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63
\|
2110 \| if self.account.storage.borrow<&FUSD.Vault>(from: FUSD.VaultStoragePath) == nil {
\| ^^^^^^^^^^^^^^^^ unknown member

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25
\|
2112 \| let vault <- FUSD.createEmptyVault()
\| ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56
\|
2115 \| self.account.storage.save(<-vault, to: FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21
\|
2119 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65
\|
2121 \| self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)
\| ^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92
\|
2123 \| let capb = self.account.capabilities.storage.issue<&{FungibleToken.Vault}>(FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21
\|
2129 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68
\|
2131 \| self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)
\| ^^^^^^^^^^^^^^^^^^ unknown member

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25
\|
153 \| if let cap = account.capabilities.get<&{Profile.Public}>(Profile.publicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{Profile.Public}>\`

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25
\|
627 \| access(all) resource LeaseCollection: LeaseCollectionPublic {
\| ^
...
\|
1293 \| access(all) fun move(name: String, profile: Capability<&{Profile.Public}>, to: Capability<&LeaseCollection>) {
\| \-\-\-\- mismatch here

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78
\|
1633 \| let usdcCap = account.capabilities.get<&{FungibleToken.Receiver}>(FiatToken.VaultReceiverPubPath)!
\| ^^^^^^^^^ not found in this scope
| +| 0x324c34e1c517e4db | NFTCatalog | ❌

Error:
error: conformances do not match in \`NFTCatalogProposalManager\`: missing \`NFTCatalogProposalManagerPublic\`
--\> 324c34e1c517e4db.NFTCatalog:76:25
\|
76 \| access(all) resource NFTCatalogProposalManager {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: missing DeclarationKindResourceInterface declaration \`NFTCatalogProposalManagerPublic\`
--\> 324c34e1c517e4db.NFTCatalog:13:21
\|
13 \| access(all) contract NFTCatalog {
\| ^^^^^^^^^^
| +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ❌

Error:
error: mismatching field \`provider\` in \`ScopedNFTProvider\`
--\> 31ad40c07a2a9788.ScopedNFTProviders:81:35
\|
81 \| access(self) let provider: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ❌

Error:
error: resource \`ScopedFTProviders.ScopedFTProvider\` does not conform to resource interface \`FungibleToken.Provider\`
--\> 31ad40c07a2a9788.ScopedFTProviders:47:25
\|
47 \| access(all) resource ScopedFTProvider: FungibleToken.Provider {
\| ^
...
\|
93 \| access(FungibleToken.Withdraw \| FungibleToken.Withdraw) fun withdraw(amount: UFix64): @{FungibleToken.Vault} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ❌

Error:
error: resource \`HeroesOfTheFlow.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 2d59ec5158e3adae.HeroesOfTheFlow:260:25
\|
260 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
263 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ❌

Error:
error: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:
error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25

--\> 877931736ee77cff.TopShot

error: error getting program a2526e2d9cc7f0d2.Pinnacle: failed to derive value: load program failed: Checking failed:
error: resource \`Pinnacle.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> a2526e2d9cc7f0d2.Pinnacle:1712:25

--\> a2526e2d9cc7f0d2.Pinnacle

error: cannot find type in this scope: \`TopShot\`
--\> 2bd8210db3a8fe8a.NFTLocking:12:20
\|
12 \| if (type == Type<@TopShot.NFT>()) {
\| ^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 2bd8210db3a8fe8a.NFTLocking:12:14
\|
12 \| if (type == Type<@TopShot.NFT>()) {
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Pinnacle\`
--\> 2bd8210db3a8fe8a.NFTLocking:17:20
\|
17 \| if (type == Type<@Pinnacle.NFT>()) {
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 2bd8210db3a8fe8a.NFTLocking:17:14
\|
17 \| if (type == Type<@Pinnacle.NFT>()) {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Pinnacle\`
--\> 2bd8210db3a8fe8a.NFTLocking:19:23
\|
19 \| return (nftRef as! &Pinnacle.NFT).isLocked()
\| ^^^^^^^^ not found in this scope
| +| 0x2bd8210db3a8fe8a | Swap | ❌

Error:
error: mismatching field \`collectionProviderCapabilities\` in \`UserCapabilities\`
--\> 2bd8210db3a8fe8a.Swap:203:55
\|
203 \| access(contract) let collectionProviderCapabilities: {String: Capability}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mismatching authorization: the entitlements migration would only grant this value \`NonFungibleToken.Withdraw \| NonFungibleToken.Owner\`, but the annotation present is \`NonFungibleToken.Withdraw, NonFungibleToken.Owner\`
| +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Admin | ❌

Error:
error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12

--\> 1c5033ad60821c97.Doodles

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

--\> 1c5033ad60821c97.Redeemables

error: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:43:33

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:217:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:218:38

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:222:2

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:31:7

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:44:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:44

--\> 1c5033ad60821c97.DoodlePacks

error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:195:52
\|
195 \| access(all) fun registerDoodlesBaseCharacter(\_ d: Doodles.BaseCharacter) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:209:46
\|
209 \| access(all) fun registerDoodlesSpecies(\_ d: Doodles.Species) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:223:42
\|
223 \| access(all) fun registerDoodlesSet(\_ d: Doodles.Set) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:242:6
\|
242 \| ): @Doodles.NFT {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.Admin:373:27
\|
373 \| templateDistributions: \$&DoodlePackTypes.TemplateDistribution\$&,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.Admin:375:5
\|
375 \| ): DoodlePackTypes.PackType {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:199:3
\|
199 \| Doodles.setBaseCharacter(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:206:3
\|
206 \| Doodles.retireBaseCharacter(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:213:3
\|
213 \| Doodles.addSpecies(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:220:3
\|
220 \| Doodles.retireSpecies(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:227:3
\|
227 \| Doodles.addSet(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:234:3
\|
234 \| Doodles.retireSet(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:247:17
\|
247 \| let doodle <- Doodles.adminMintDoodle(
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:261:3
\|
261 \| Redeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:269:3
\|
269 \| Redeemables.updateSetActive(setId: setId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:276:3
\|
276 \| Redeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:283:3
\|
283 \| Redeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:300:3
\|
300 \| Redeemables.createTemplate(
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:317:3
\|
317 \| Redeemables.updateTemplateActive(templateId: templateId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:324:3
\|
324 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:331:3
\|
331 \| Redeemables.burnUnredeemedSet(setId: setId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePacks\`
--\> 1c5033ad60821c97.Admin:363:3
\|
363 \| DoodlePacks.mintNFT(recipient: recipient, typeId: typeId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.Admin:380:10
\|
380 \| return DoodlePackTypes.addPackType(
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.Admin:435:3
\|
435 \| OpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | Teleport | ❌

Error:
error: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :7:0
\|
7 \| pub contract DapperStorageRent {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:2
\|
9 \| pub let DapperStorageRentAdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:2
\|
23 \| pub event BlockedAddress(\_ address: \$&Address\$&)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:2
\|
25 \| pub event Refuelled(\_ address: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub event RefilledFailed(address: Address, reason: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub fun getStorageRentRefillThreshold(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:2
\|
41 \| pub fun getRefilledAccounts(): \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub fun getBlockedAccounts() : \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:2
\|
57 \| pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:2
\|
65 \| pub fun getRefillRequiredBlocks(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:2
\|
70 \| pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:2
\|
75 \| pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:2
\|
85 \| pub fun tryRefill(\_ address: Address) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :124:106
\|
124 \| if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow<&FlowToken.Vault{FungibleToken.Balance}>() {
\| ^^^^^^^^^^^^^

--\> 43ee8c22fcf94ea3.DapperStorageRent

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:136:3
\|
136 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:159:20
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:159:88
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:201:3
\|
201 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:224:20
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:224:88
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^
| +| 0x1c5033ad60821c97 | DoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:43:33
\|
43 \| access(all) fun getPackType(): DoodlePackTypes.PackType {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:217:17
\|
217 \| let packType = DoodlePackTypes.getPackType(id: typeId) ?? panic("Invalid pack type")
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:218:38
\|
218 \| assert(packType.maxSupply == nil \|\| DoodlePackTypes.getPackTypesMintedCount(typeId: packType.id) < packType.maxSupply!, message: "Max supply reached")
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:222:2
\|
222 \| DoodlePackTypes.addMintedCountToPackType(typeId: typeId, amount: 1)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18
\|
236 \| let openPack <- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:31:7
\|
31 \| if (DoodlePackTypes.getPackType(id: typeId) == nil) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:44:10
\|
44 \| return DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:17
\|
64 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.DoodlePacks:64:44
\|
64 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7
\|
205 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7
\|
233 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | DoodlePackTypes | ❌

Error:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16
\|
242 \| return Type<@FlowUtilityToken.Vault>()
\| ^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10
\|
242 \| return Type<@FlowUtilityToken.Vault>()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x1c5033ad60821c97 | OpenDoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.DoodlePackTypes: failed to derive value: load program failed: Checking failed:
error: error getting program 82ec283f88a62e65.FlowUtilityToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :3:0
\|
3 \| pub contract FlowUtilityToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :6:4
\|
6 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:4
\|
9 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :12:4
\|
12 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event TokensMinted(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :21:4
\|
21 \| pub event TokensBurned(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event MinterCreated(allowedAmount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:4
\|
27 \| pub event BurnerCreated()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub resource Vault: FungibleToken.Provider, FungibleToken.Receiver, FungibleToken.Balance {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:8
\|
44 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:8
\|
60 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:8
\|
73 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :81:8
\|
81 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub fun createEmptyVault(): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub resource Administrator {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :102:8
\|
102 \| pub fun createNewMinter(allowedAmount: UFix64): @Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :111:8
\|
111 \| pub fun createNewBurner(): @Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :121:4
\|
121 \| pub resource Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :124:8
\|
124 \| pub var allowedAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :131:8
\|
131 \| pub fun mintTokens(amount: UFix64): @FlowUtilityToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:4
\|
151 \| pub resource Burner {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:8
\|
160 \| pub fun burnTokens(from: @FungibleToken.Vault) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :184:50
\|
184 \| self.account.link<&FlowUtilityToken.Vault{FungibleToken.Balance}>(
\| ^^^^^^^^^^^^^

--\> 82ec283f88a62e65.FlowUtilityToken

error: cannot find type in this scope: \`FlowUtilityToken\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:16

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.DoodlePackTypes:242:10

--\> 1c5033ad60821c97.DoodlePackTypes

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:51:39
\|
51 \| access(all) fun getPackType(): DoodlePackTypes.PackType {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:23
\|
227 \| init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:227:71
\|
227 \| init(packType: DoodlePackTypes.PackType, templateDistribution: DoodlePackTypes.TemplateDistribution) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:221:34
\|
221 \| access(all) let packType: DoodlePackTypes.PackType
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:222:46
\|
222 \| access(all) var templateDistribution: DoodlePackTypes.TemplateDistribution
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:321:18
\|
321 \| packType: DoodlePackTypes.PackType,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:372:18
\|
372 \| packType: DoodlePackTypes.PackType,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:419:20
\|
419 \| collection: DoodlePackTypes.Collection,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:423:18
\|
423 \| packType: DoodlePackTypes.PackType
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:279:19
\|
279 \| && DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) >= templateDistribution.maxMint!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:328:59
\|
328 \| && (templateDistribution.maxMint == nil \|\| DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) < templateDistribution.maxMint!)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:344:24
\|
344 \| DoodlePackTypes.addMintedCountToTemplateDistribution(
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:351:71
\|
351 \| \|\| (templateDistribution.maxMint != nil && DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:399:20
\|
399 \| DoodlePackTypes.addMintedCountToTemplateDistribution(
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:407:68
\|
407 \| \|\| (templateDistribution.maxMint != nil && DoodlePackTypes.getTemplateDistributionMintedCount(typeId: packType.id, templateDistributionId: templateDistribution.id) == templateDistribution.maxMint!)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:426:17
\|
426 \| case DoodlePackTypes.Collection.Wearables:
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:437:17
\|
437 \| case DoodlePackTypes.Collection.Redeemables:
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107
\|
438 \| let recipient = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(Redeemables.CollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16
\|
440 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:39:16
\|
39 \| if (DoodlePackTypes.getPackType(id: typeId) == nil) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:52:10
\|
52 \| return DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:17
\|
72 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:72:44
\|
72 \| let packType: DoodlePackTypes.PackType = DoodlePackTypes.getPackType(id: self.typeId)!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePackTypes\`
--\> 1c5033ad60821c97.OpenDoodlePacks:251:20
\|
251 \| DoodlePackTypes.getTemplateDistributionMintedCount(
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Doodles | ❌

Error:
error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35
\|
234 \| access(all) var name: @{UInt64 : DoodleNames.NFT}
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38
\|
581 \| access(account) fun addName(\_ nft: @DoodleNames.NFT, owner:Address) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36
\|
590 \| access(all) fun equipName(\_ nft: @DoodleNames.NFT) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40
\|
606 \| access(contract) fun unequipName() : @DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46
\|
673 \| access(all) fun borrowName(\_ id: UInt64) : &DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14
\|
940 \| let name <- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`
| +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | Wearables | ✅ | +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ❌

Error:
error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4
\|
440 \| getAccount(address).capabilities.get<&{Redeemables.RedeemablesCollectionPublic}>(Redeemables.CollectionPublicPath)?.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ❌

Error:
error: mismatched types
--\> 0d3dc5ad70be03d1.Offers:159:16
\|
159 \| if let cap = getAccount(receiver.address).capabilities.get<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{NFTStorefrontV2.StorefrontPublic}>\`
| +| 0x072127280188a611 | TestRootContract | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-05-01T13-03-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-05-01T13-03-00Z-testnet.json new file mode 100644 index 0000000000..375c79f5bf --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-01T13-03-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8ba321af4bd37bb.aiSportsMinter:193:39\n |\n193 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `aiSportsMinter.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8ba321af4bd37bb.aiSportsMinter:168:25\n |\n168 | access(all) resource Collection: NonFungibleToken.Collection, aiSportsMinterCollectionPublic {\n | ^\n ... \n |\n193 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS","error":"error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:102:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:103:41\n\n--\u003e d8f6346999b983f5.IPackNFT\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:67:36\n |\n67 | access(all) struct Collectible: IPackNFT.Collectible {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e ef4cd3d07a7b43ce.PDS:158:68\n |\n158 | withdrawCap: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:159:41\n |\n159 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:159:61\n |\n159 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:159:60\n |\n159 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e ef4cd3d07a7b43ce.PDS:108:81\n |\n108 | access(self) let withdrawCap: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:112:54\n |\n112 | access(self) let operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:112:74\n |\n112 | access(self) let operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:112:73\n |\n112 | access(self) let operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:136:62\n |\n136 | access(all) fun revealPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:136:61\n |\n136 | access(all) fun revealPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:143:60\n |\n143 | access(all) fun openPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], recvCap: \u0026{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:143:59\n |\n143 | access(all) fun openPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], recvCap: \u0026{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e ef4cd3d07a7b43ce.PDS:311:64\n |\n311 | withdrawCap: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:312:37\n |\n312 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:312:57\n |\n312 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:312:56\n |\n312 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: mismatched types\n --\u003e ef4cd3d07a7b43ce.PDS:315:25\n |\n315 | withdrawCap: withdrawCap,\n | ^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.ef4cd3d07a7b43ce.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.ef4cd3d07a7b43ce.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: mismatched types\n --\u003e ef4cd3d07a7b43ce.PDS:161:31\n |\n161 | self.withdrawCap = withdrawCap\n | ^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.ef4cd3d07a7b43ce.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.ef4cd3d07a7b43ce.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:248:23\n |\n248 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:248:22\n |\n248 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:270:23\n |\n270 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:270:22\n |\n270 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-failure","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:1258:78\n |\n1258 | nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:598:78\n |\n598 | nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:424:95\n |\n424 | access(contract) let nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:1302:78\n |\n1302 | nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.Flowty:627:41\n |\n627 | self.nftProviderCapability = nftProviderCapability\n | ^^^^^^^^^^^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.Flowty:1335:39\n |\n1335 | nftProviderCapability: nftProviderCapability,\n | ^^^^^^^^^^^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: resource `Flowty.FlowtyStorefront` does not conform to resource interface `Flowty.FlowtyStorefrontManager`\n --\u003e e1d43e0cfc237807.Flowty:1291:25\n |\n1291 | access(all) resource FlowtyStorefront : FlowtyStorefrontManager, FlowtyStorefrontPublic, Burner.Burnable {\n | ^\n ... \n |\n1300 | access(List | Owner) fun createListing(\n | ------------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-failure","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals","error":"error: error getting program e1d43e0cfc237807.Flowty: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:1258:78\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:598:78\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:424:95\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.Flowty:1302:78\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.Flowty:627:41\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.Flowty:1335:39\n\nerror: resource `Flowty.FlowtyStorefront` does not conform to resource interface `Flowty.FlowtyStorefrontManager`\n --\u003e e1d43e0cfc237807.Flowty:1291:25\n\n--\u003e e1d43e0cfc237807.Flowty\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:308:74\n |\n308 | renterNFTProvider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:957:74\n |\n957 | renterNFTProvider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:1064:78\n |\n1064 | nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flowty`\n --\u003e e1d43e0cfc237807.FlowtyRentals:1073:24\n |\n1073 | paymentCut: Flowty.PaymentCut,\n | ^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flowty`\n --\u003e e1d43e0cfc237807.FlowtyRentals:265:24\n |\n265 | paymentCut: Flowty.PaymentCut,\n | ^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flowty`\n --\u003e e1d43e0cfc237807.FlowtyRentals:226:37\n |\n226 | access(self) let paymentCut: Flowty.PaymentCut\n | ^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flowty`\n --\u003e e1d43e0cfc237807.FlowtyRentals:243:46\n |\n243 | access(all) view fun getPaymentCut(): Flowty.PaymentCut {\n | ^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:539:78\n |\n539 | nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flowty`\n --\u003e e1d43e0cfc237807.FlowtyRentals:548:24\n |\n548 | paymentCut: Flowty.PaymentCut,\n | ^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:349:95\n |\n349 | access(contract) let nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:395:74\n |\n395 | renterNFTProvider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:727:74\n |\n727 | renterNFTProvider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:709:91\n |\n709 | access(contract) let renterNFTProvider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:989:74\n |\n989 | renterNFTProvider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.CollectionPublic, NonFungibleToken.Provider}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e e1d43e0cfc237807.FlowtyRentals:1097:78\n |\n1097 | nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flowty`\n --\u003e e1d43e0cfc237807.FlowtyRentals:1106:24\n |\n1106 | paymentCut: Flowty.PaymentCut,\n | ^^^^^^ not found in this scope\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{FlowtyRentals.FlowtyRentalsStorefrontPublic}\u003e` is not optional\n --\u003e e1d43e0cfc237807.FlowtyRentals:1226:15\n |\n1226 | return getAccount(addr).capabilities.get\u003c\u0026{FlowtyRentalsStorefrontPublic}\u003e(FlowtyRentals.FlowtyRentalsStorefrontPublicPath)?.borrow() ?? nil\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.FlowtyRentals:559:41\n |\n559 | self.nftProviderCapability = nftProviderCapability\n | ^^^^^^^^^^^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.FlowtyRentals:445:35\n |\n445 | renterNFTProvider: renterNFTProvider\n | ^^^^^^^^^^^^^^^^^ expected `(Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e)?`, got `(Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e)?`\n\nerror: cannot find variable in this scope: `Flowty`\n --\u003e e1d43e0cfc237807.FlowtyRentals:514:47\n |\n514 | let remaining = Fix64(listedTime + Flowty.SuspendedFundingPeriod) - Fix64(currentTime)\n | ^^^^^^ not found in this scope\n\nerror: resource `FlowtyRentals.Listing` does not conform to resource interface `FlowtyRentals.ListingPublic`\n --\u003e e1d43e0cfc237807.FlowtyRentals:332:25\n |\n332 | access(all) resource Listing: ListingPublic, FlowtyListingCallback.Listing, Burner.Burnable {\n | ^\n ... \n |\n391 | access(all) fun rent(\n | ---- mismatch here\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.FlowtyRentals:733:37\n |\n733 | self.renterNFTProvider = renterNFTProvider\n | ^^^^^^^^^^^^^^^^^ expected `(Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e)?`, got `(Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e)?`\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.FlowtyRentals:1008:35\n |\n1008 | renterNFTProvider: renterNFTProvider\n | ^^^^^^^^^^^^^^^^^ expected `(Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e)?`, got `(Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e)?`\n\nerror: resource `FlowtyRentals.FlowtyRentalsMarketplace` does not conform to resource interface `FlowtyRentals.FlowtyRentalsMarketplaceManager`\n --\u003e e1d43e0cfc237807.FlowtyRentals:970:25\n |\n970 | access(all) resource FlowtyRentalsMarketplace: FlowtyRentalsMarketplaceManager, FlowtyRentalsMarketplacePublic, Burner.Burnable {\n | ^\n ... \n |\n976 | access(contract) fun createRental(\n | ------------ mismatch here\n\nerror: mismatched types\n --\u003e e1d43e0cfc237807.FlowtyRentals:1122:39\n |\n1122 | nftProviderCapability: nftProviderCapability,\n | ^^^^^^^^^^^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.e1d43e0cfc237807.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n"},{"kind":"contract-update-failure","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:102:41\n |\n102 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun reveal(openRequest: Bool)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:103:41\n |\n103 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun open()\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e d704ee8202a0d82d.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:160:8\n |\n160 | ): [NFTStorefrontV2.SaleCut] {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:161:23\n |\n161 | let saleCuts: [NFTStorefrontV2.SaleCut] = []\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:164:28\n |\n164 | saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut * salePrice))\n | ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseSocks:142:43\n |\n142 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n |\n111 | access(all) resource Collection: FlowverseSocksCollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n142 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:628:43\n |\n628 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowverseTreasures.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:596:25\n |\n596 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n628 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal","error":"error: error getting program c7c122b5b811de8e.OrdinalVendor: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseSocks:142:43\n\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\nerror: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseShirt:238:43\n\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n\n--\u003e c7c122b5b811de8e.FlowverseShirt\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:94\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:93\n\nerror: cannot find variable in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:127\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:47\n\nerror: cannot find type in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:88\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:87\n\nerror: cannot find variable in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:136\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:41\n\nerror: cannot find type in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:88\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:87\n\nerror: cannot find variable in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:122\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:41\n\n--\u003e c7c122b5b811de8e.OrdinalVendor\n\nerror: cannot find type in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:194:33\n |\n194 | access(all) resource Minter: OrdinalVendor.IMinter {\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.Ordinal:262:43\n |\n262 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:183:19\n |\n183 | assert(OrdinalVendor.checkDomainAvailability(domain: data), message: \"domain already exists\")\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:83:38\n |\n83 | let isOrdinalRestricted = OrdinalVendor.checkOrdinalRestricted(id: self.id)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Ordinal.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.Ordinal:230:25\n |\n230 | access(all) resource Collection: CollectionPublic, CollectionUpdate, NonFungibleToken.Collection {\n | ^\n ... \n |\n262 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseSocks:142:43\n\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\nerror: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseShirt:238:43\n\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n\n--\u003e c7c122b5b811de8e.FlowverseShirt\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:94\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:93\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:127\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:47\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:88\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:87\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:136\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:41\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:88\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:87\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:122\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:41\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\n--\u003e c7c122b5b811de8e.FlowversePrimarySale\n\nerror: cannot find type in this scope: `FlowversePrimarySale`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:12:33\n |\n12 | access(all) resource Minter: FlowversePrimarySale.IMinter {\n | ^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:19:25\n |\n19 | init(setMinter: @FlowversePass.SetMinter) {\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:13:37\n |\n13 | access(self) let setMinter: @FlowversePass.SetMinter\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:24:45\n |\n24 | access(all) fun createMinter(setMinter: @FlowversePass.SetMinter): @Minter {\n | ^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1101:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1127:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1184:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1198:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1207:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1221:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1233:41\n\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n\n--\u003e 877931736ee77cff.TopShot\n\nerror: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:0\n |\n40 | pub contract Market {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub resource interface SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:8\n |\n62 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:8\n |\n68 | pub fun getPrice(tokenID: UInt64): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:8\n |\n69 | pub fun getIDs(): [UInt64]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:8\n |\n70 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub resource SaleCollection: SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun listForSale(token: @TopShot.NFT, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub fun withdraw(tokenID: UInt64): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :166:8\n |\n166 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :198:8\n |\n198 | pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :209:8\n |\n209 | pub fun changePercentage(_ newPercent: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :216:8\n |\n216 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :225:8\n |\n225 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :227:73\n |\n227 | newBeneficiaryCapability.borrow\u003c\u0026DapperUtilityCoin.Vault{FungibleToken.Receiver}\u003e() != nil:\n | ^^^^^^^^^^^^^\n\n--\u003e 547f177b243b4d80.Market\n\nerror: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:0\n |\n46 | pub contract TopShotMarketV3 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let marketStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub let marketPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:4\n |\n79 | pub resource SaleCollection: Market.SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:8\n |\n101 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub fun listForSale(tokenID: UInt64, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub fun cancelSale(tokenID: UInt64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:8\n |\n196 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :247:8\n |\n247 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:8\n |\n259 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:8\n |\n272 | pub fun getPrice(tokenID: UInt64): UFix64? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :282:8\n |\n282 | pub fun getIDs(): [UInt64] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:8\n |\n302 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :318:4\n |\n318 | pub fun createSaleCollection(ownerCollection: Capability\u003c\u0026TopShot.Collection\u003e,\n | ^^^\n\n--\u003e 547f177b243b4d80.TopShotMarketV3\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:154:70\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:154:69\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:159:73\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:159:72\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:164:73\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:164:72\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:225:22\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:225:21\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:301:25\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:301:24\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:35\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:156:34\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:70\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:155:15\n |\n155 | return getAccount(address)\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:161:35\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:161:34\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:160:15\n |\n160 | return getAccount(address)\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:35\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:166:34\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `TopShotMarketV3`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:55\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:165:15\n |\n165 | return getAccount(address)\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `TopShot`\n --\u003e c7c122b5b811de8e.BulkPurchase:322:63\n |\n322 | let receiverCapability = nftReceiverCapabilities[Type\u003c@TopShot.NFT\u003e().identifier] \n | ^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:322:57\n |\n322 | let receiverCapability = nftReceiverCapabilities[Type\u003c@TopShot.NFT\u003e().identifier] \n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `TopShot`\n --\u003e c7c122b5b811de8e.BulkPurchase:333:31\n |\n333 | order.setNFTType(Type\u003c@TopShot.NFT\u003e())\n | ^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:333:25\n |\n333 | order.setNFTType(Type\u003c@TopShot.NFT\u003e())\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:353:42\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:353:41\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:354:45\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:354:44\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:355:45\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:355:44\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseShirt:238:43\n |\n238 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n |\n206 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n238 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n |\n593 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n |\n561 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n593 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter","error":"error: error getting program c7c122b5b811de8e.FlowverseTreasures: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:628:43\n\nerror: resource `FlowverseTreasures.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:596:25\n\n--\u003e c7c122b5b811de8e.FlowverseTreasures\n\nerror: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\n--\u003e c7c122b5b811de8e.FlowversePrimarySale\n\nerror: cannot find type in this scope: `FlowversePrimarySale`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:12:33\n |\n12 | access(all) resource Minter: FlowversePrimarySale.IMinter {\n | ^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:19:25\n |\n19 | init(setMinter: @FlowverseTreasures.SetMinter) {\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:13:37\n |\n13 | access(self) let setMinter: @FlowverseTreasures.SetMinter\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:24:45\n |\n24 | access(all) fun createMinter(setMinter: @FlowverseTreasures.SetMinter): @Minter {\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-failure","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission","error":"error: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e b668e8c9726ef26b.FanTopToken:222:25\n\n--\u003e b668e8c9726ef26b.FanTopToken\n"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-failure","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:229:43\n |\n229 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:239:43\n |\n239 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun batchWithdraw(ids: [UInt64]): @{NonFungibleToken.Collection} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e b668e8c9726ef26b.FanTopToken:222:25\n |\n222 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {\n | ^\n ... \n |\n229 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket","error":"error: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e b668e8c9726ef26b.FanTopToken:222:25\n\n--\u003e b668e8c9726ef26b.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopMarket:61:67\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:61:92\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopMarket:53:84\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:53:109\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:75:42\n |\n75 | access(contract) fun withdraw(): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:80:51\n |\n80 | view access(all) fun borrowFanTopToken(): \u0026FanTopToken.NFT? {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopMarket:207:63\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:207:88\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:284:95\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e b668e8c9726ef26b.FanTopMarket:284:94\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:76:89\n |\n76 | let token \u003c- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a","error":"error: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e b668e8c9726ef26b.FanTopToken:222:25\n\n--\u003e b668e8c9726ef26b.FanTopToken\n\nerror: error getting program b668e8c9726ef26b.FanTopMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e b668e8c9726ef26b.FanTopToken:222:25\n\n--\u003e b668e8c9726ef26b.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopMarket:61:67\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:61:92\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopMarket:53:84\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:53:109\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:75:42\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:80:51\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopMarket:207:63\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:207:88\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:284:95\n\nerror: ambiguous intersection type\n --\u003e b668e8c9726ef26b.FanTopMarket:284:94\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopMarket:76:89\n\n--\u003e b668e8c9726ef26b.FanTopMarket\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:114:118\n |\n114 | access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:118:156\n |\n118 | access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:139:79\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:139:78\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:155:67\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:155:92\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:74:12\n |\n74 | FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:86:12\n |\n86 | FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:90:12\n |\n90 | FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:94:12\n |\n94 | FanTopToken.updateLimit(itemId: itemId, limit: limit)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:98:12\n |\n98 | FanTopToken.updateActive(itemId: itemId, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:115:22\n |\n115 | return \u003c- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:119:22\n |\n119 | return \u003c- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:136:12\n |\n136 | FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:140:12\n |\n140 | FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:144:12\n |\n144 | FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:202:12\n |\n202 | FanTopMarket.sell(\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:218:16\n |\n218 | FanTopMarket.containsOrder(orderId): \"Order is not exists\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:219:16\n |\n219 | FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): \"Cancel account is not match order account\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e b668e8c9726ef26b.FanTopPermissionV2a:222:12\n |\n222 | FanTopMarket.cancel(agent: nil, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:513:70\n |\n513 | \t\t\t\tnftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:458:70\n |\n458 | \t\t\t\tnftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:252:90\n |\n252 | \t\t\taccess(contract) let nftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:580:70\n |\n580 | \t\t\t\tnftProviderCapability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e b051bdaddb672a33.NFTStorefrontV2:486:33\n |\n486 | \t\t\t\tself.nftProviderCapability = nftProviderCapability\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.b051bdaddb672a33.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.b051bdaddb672a33.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: mismatched types\n --\u003e b051bdaddb672a33.NFTStorefrontV2:616:28\n |\n616 | \t\t\t\t\tnftProviderCapability: nftProviderCapability,\n | \t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^ expected `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.b051bdaddb672a33.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.631e88ae7f1d7c20.NonFungibleToken.Withdraw,A.b051bdaddb672a33.NonFungibleToken)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: resource `NFTStorefrontV2.Storefront` does not conform to resource interface `NFTStorefrontV2.StorefrontManager`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:563:23\n |\n563 | \t\taccess(all) resource Storefront : StorefrontManager, StorefrontPublic, PrivateListingAcceptor, Burner.Burnable {\n | \t\t ^\n ... \n |\n579 | \t\t\taccess(List | Owner) fun createListing(\n | \t\t\t ------------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-failure","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket","error":"error: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e a47a2d3a3b7e9133.FanTopToken:222:25\n\n--\u003e a47a2d3a3b7e9133.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:61:67\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:61:92\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:53:84\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:53:109\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:75:42\n |\n75 | access(contract) fun withdraw(): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:80:51\n |\n80 | view access(all) fun borrowFanTopToken(): \u0026FanTopToken.NFT? {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:207:63\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:207:88\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:284:95\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a47a2d3a3b7e9133.FanTopMarket:284:94\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:76:89\n |\n76 | let token \u003c- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission","error":"error: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e a47a2d3a3b7e9133.FanTopToken:222:25\n\n--\u003e a47a2d3a3b7e9133.FanTopToken\n"},{"kind":"contract-update-failure","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:229:43\n |\n229 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:239:43\n |\n239 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun batchWithdraw(ids: [UInt64]): @{NonFungibleToken.Collection} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e a47a2d3a3b7e9133.FanTopToken:222:25\n |\n222 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {\n | ^\n ... \n |\n229 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-failure","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a","error":"error: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e a47a2d3a3b7e9133.FanTopToken:222:25\n\n--\u003e a47a2d3a3b7e9133.FanTopToken\n\nerror: error getting program a47a2d3a3b7e9133.FanTopMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:229:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopToken:239:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e a47a2d3a3b7e9133.FanTopToken:222:25\n\n--\u003e a47a2d3a3b7e9133.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:61:67\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:61:92\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:53:84\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:53:109\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:75:42\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:80:51\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:207:63\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:207:88\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:284:95\n\nerror: ambiguous intersection type\n --\u003e a47a2d3a3b7e9133.FanTopMarket:284:94\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopMarket:76:89\n\n--\u003e a47a2d3a3b7e9133.FanTopMarket\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:114:118\n |\n114 | access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:118:156\n |\n118 | access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:139:79\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:139:78\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:155:67\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:155:92\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:74:12\n |\n74 | FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:86:12\n |\n86 | FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:90:12\n |\n90 | FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:94:12\n |\n94 | FanTopToken.updateLimit(itemId: itemId, limit: limit)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:98:12\n |\n98 | FanTopToken.updateActive(itemId: itemId, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:115:22\n |\n115 | return \u003c- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:119:22\n |\n119 | return \u003c- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:136:12\n |\n136 | FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:140:12\n |\n140 | FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:144:12\n |\n144 | FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:202:12\n |\n202 | FanTopMarket.sell(\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:218:16\n |\n218 | FanTopMarket.containsOrder(orderId): \"Order is not exists\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:219:16\n |\n219 | FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): \"Cancel account is not match order account\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e a47a2d3a3b7e9133.FanTopPermissionV2a:222:12\n |\n222 | FanTopMarket.cancel(agent: nil, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-failure","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT","error":"error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:102:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:103:41\n\n--\u003e d8f6346999b983f5.IPackNFT\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:8:48\n |\n8 | access(all) contract PackNFT: NonFungibleToken, IPackNFT {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:45:42\n |\n45 | access(all) resource PackNFTOperator: IPackNFT.IOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:144:52\n |\n144 | access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:144:66\n |\n144 | access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:144:90\n |\n144 | access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:209:66\n |\n209 | access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:50:15\n |\n50 | access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:50:98\n |\n50 | access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:50:97\n |\n50 | access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {\n | ^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:61:15\n |\n61 | access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:61:64\n |\n61 | access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:61:63\n |\n61 | access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:69:15\n |\n69 | access(IPackNFT.Operate) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:69:62\n |\n69 | access(IPackNFT.Operate) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:69:61\n |\n69 | access(IPackNFT.Operate) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:97:41\n |\n97 | access(self) fun _verify(nfts: [{IPackNFT.Collectible}], salt: String, commitHash: String): String {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:97:40\n |\n97 | access(self) fun _verify(nfts: [{IPackNFT.Collectible}], salt: String, commitHash: String): String {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:112:56\n |\n112 | access(contract) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:112:55\n |\n112 | access(contract) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:120:54\n |\n120 | access(contract) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:120:53\n |\n120 | access(contract) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.PackNFT:158:41\n |\n158 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun reveal(openRequest: Bool) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.PackNFT:164:40\n |\n164 | access(NonFungibleToken.Update |NonFungibleToken.Owner) fun open() {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.PackNFT:223:43\n |\n223 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:304:53\n |\n304 | access(all) fun publicReveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:304:52\n |\n304 | access(all) fun publicReveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:399:54\n |\n399 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IPackNFTCollectionPublic}\u003e(self.CollectionStoragePath),\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:399:53\n |\n399 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IPackNFTCollectionPublic}\u003e(self.CollectionStoragePath),\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e a2526e2d9cc7f0d2.PackNFT:399:12\n |\n399 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IPackNFTCollectionPublic}\u003e(self.CollectionStoragePath),\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:405:50\n |\n405 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IOperator}\u003e(self.OperatorStoragePath)\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:405:49\n |\n405 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IOperator}\u003e(self.OperatorStoragePath)\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e a2526e2d9cc7f0d2.PackNFT:405:8\n |\n405 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IOperator}\u003e(self.OperatorStoragePath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: resource `PackNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e a2526e2d9cc7f0d2.PackNFT:209:25\n |\n209 | access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {\n | ^\n ... \n |\n223 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1744:43\n |\n1744 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1766:43\n |\n1766 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun batchWithdraw(ids: [UInt64]): @{NonFungibleToken.Collection} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1803:41\n |\n1803 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun addNFTInscription(id: UInt64): Int {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1815:41\n |\n1815 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun removeNFTInscription(id: UInt64) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1828:41\n |\n1828 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun updateNFTInscriptionNote(id: UInt64, note: String, adminRef: \u0026Admin) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1840:41\n |\n1840 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun toggleNFTXP(id: UInt64): UInt64? {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1846:41\n |\n1846 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun batchToggleXP(_ activateAll: Bool) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:2565:81\n |\n2565 | access(all) view fun emitNFTUpdated(_ nftRef: auth(NonFungibleToken.Update | NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}) {}\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: contract `Pinnacle` does not conform to contract interface `NonFungibleToken`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:50:21\n |\n50 | access(all) contract Pinnacle: NonFungibleToken {\n | ^\n ... \n |\n2565 | access(all) view fun emitNFTUpdated(_ nftRef: auth(NonFungibleToken.Update | NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}) {}\n | -------------- mismatch here\n\nerror: resource `Pinnacle.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1712:25\n |\n1712 | access(all) resource Collection: NonFungibleToken.Collection, PinNFTCollectionPublic {\n | ^\n ... \n |\n1744 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Art","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n |\n266 | access(NonFungibleToken.Withdraw |NonFungibleToken.Owner)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n |\n246 | resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic, ViewResolver.ResolverCollection{ \n | ^\n ... \n |\n267 | fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT}{ \n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Versus","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: error getting program 99ca04281098b33d.Auction: failed to derive value: load program failed: Checking failed:\nerror: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:438:20\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:443:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:443:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:458:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:458:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:67:22\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:41:22\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:184:18\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:189:45\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:189:44\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:134:18\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:169:49\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:169:48\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:177:45\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:177:44\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:216:47\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:216:46\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:359:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:359:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:34\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:169\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:499:168\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:557:145\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:557:144\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:573:16\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:578:36\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:578:35\n\n--\u003e 99ca04281098b33d.Auction\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:564:40\n |\n564 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:564:39\n |\n564 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:138:28\n |\n138 | uniqueAuction: @Auction.AuctionItem,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:139:30\n |\n139 | editionAuctions: @Auction.AuctionCollection,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:108:28\n |\n108 | let uniqueAuction: @Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:111:30\n |\n111 | let editionAuctions: @Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:128:22\n |\n128 | let metadata: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:274:44\n |\n274 | fun getAuction(auctionId: UInt64): \u0026Auction.AuctionItem{ \n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:296:40\n |\n296 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:296:39\n |\n296 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:442:30\n |\n442 | init(_ auctionStatus: Auction.AuctionStatus){ \n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:508:26\n |\n508 | uniqueStatus: Auction.AuctionStatus,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:516:22\n |\n516 | metadata: Art.Metadata,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:495:22\n |\n495 | let metadata: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:603:104\n |\n603 | init(marketplaceVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e, cutPercentage: UFix64){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:603:103\n |\n603 | init(marketplaceVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e, cutPercentage: UFix64){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:601:46\n |\n601 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:601:45\n |\n601 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:717:168\n |\n717 | fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:717:167\n |\n717 | fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:840:166\n |\n840 | fun mintArt(artist: Address, artistName: String, artName: String, content: String, description: String, type: String, artistCut: UFix64, minterCut: UFix64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:861:29\n |\n861 | fun editionArt(art: \u0026Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:861:77\n |\n861 | fun editionArt(art: \u0026Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:866:39\n |\n866 | fun editionAndDepositArt(art: \u0026Art.NFT, to: [Address]){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:941:46\n |\n941 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e =\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:941:45\n |\n941 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e =\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:942:35\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:942:34\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:942:58\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:942:8\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:165:52\n |\n165 | let uniqueRef = \u0026self.uniqueAuction as \u0026Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:166:55\n |\n166 | let editionRef = \u0026self.editionAuctions as \u0026Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:339:57\n |\n339 | let auctionRef = \u0026self.uniqueAuction as \u0026Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:350:60\n |\n350 | let editionsRef = \u0026self.editionAuctions as \u0026Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:631:32\n |\n631 | let art \u003c- nft as! @Art.NFT\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:636:37\n |\n636 | let editionedAuctions \u003c- Auction.createAuctionCollection(marketplaceVault: self.marketplaceVault, cutPercentage: self.cutPercentage)\n | ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:639:57\n |\n639 | editionedAuctions.createAuction(token: \u003c-Art.makeEdition(original: \u0026art as \u0026Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:639:92\n |\n639 | editionedAuctions.createAuction(token: \u003c-Art.makeEdition(original: \u0026art as \u0026Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:644:24\n |\n644 | let item \u003c- Auction.createStandaloneAuction(token: \u003c-art, minimumBidIncrement: minimumBidUniqueIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:814:54\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:814:76\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:814:23\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:855:37\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:855:98\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^^^ not found in this scope\n\nerror: cannot infer type from dictionary literal: requires an explicit type annotation\n --\u003e 99ca04281098b33d.Versus:855:25\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:856:23\n |\n856 | let art \u003c- Art.createArtWithPointer(name: artName, artist: artistName, artistAddress: artist, description: description, type: type, contentCapability: contentCapability, contentId: contentId, royalty: royalty)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:862:21\n |\n862 | return \u003c-Art.makeEdition(original: art, edition: edition, maxEdition: maxEdition)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:870:36\n |\n870 | let editionedArt \u003c- Art.makeEdition(original: art, edition: i, maxEdition: maxEdition)\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:872:63\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:872:62\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:872:86\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:872:36\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:873:17\n |\n873 | (collectionCap.borrow()!).deposit(token: \u003c-editionedArt)\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:902:87\n |\n902 | return Versus.account.storage.borrow\u003c\u0026{NonFungibleToken.Collection}\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Auction","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:438:20\n |\n438 | token: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:443:40\n |\n443 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:443:39\n |\n443 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:458:40\n |\n458 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:458:39\n |\n458 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:67:22\n |\n67 | metadata: Art.Metadata?,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:41:22\n |\n41 | let metadata: Art.Metadata?\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:184:18\n |\n184 | NFT: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:189:45\n |\n189 | ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:189:44\n |\n189 | ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:134:18\n |\n134 | var NFT: @Art.NFT?\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:169:49\n |\n169 | var recipientCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e?\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:169:48\n |\n169 | var recipientCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:177:45\n |\n177 | let ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:177:44\n |\n177 | let ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:216:47\n |\n216 | fun sendNFT(_ capability: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:216:46\n |\n216 | fun sendNFT(_ capability: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:359:40\n |\n359 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:359:39\n |\n359 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:34\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:169\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:499:168\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:557:145\n |\n557 | fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:557:144\n |\n557 | fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:573:16\n |\n573 | token: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:578:36\n |\n578 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:578:35\n |\n578 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Marketplace","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:55:39\n |\n55 | recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:55:38\n |\n55 | recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:89:30\n |\n89 | init(id: UInt64, art: Art.Metadata, cacheKey: String, price: UFix64){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:81:17\n |\n81 | let art: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:107:31\n |\n107 | var forSale: @{UInt64: Art.NFT}\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:150:37\n |\n150 | fun borrowArt(id: UInt64): \u0026{Art.Public}?{ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:150:36\n |\n150 | fun borrowArt(id: UInt64): \u0026{Art.Public}?{ \n | ^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:159:40\n |\n159 | fun withdraw(tokenID: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:170:32\n |\n170 | fun listForSale(token: @Art.NFT, price: UFix64){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:194:65\n |\n194 | fun purchase(tokenID: UInt64, recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:194:64\n |\n194 | fun purchase(tokenID: UInt64, recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:152:46\n |\n152 | return (\u0026self.forSale[id] as \u0026Art.NFT?)!\n | ^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-failure","account_address":"0x877931736ee77cff","contract_name":"TopShot","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1101:43\n |\n1101 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1127:43\n |\n1127 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun batchWithdraw(ids: [UInt64]): @{NonFungibleToken.Collection} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1184:41\n |\n1184 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun lock(id: UInt64, duration: UFix64) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1198:41\n |\n1198 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun batchLock(ids: [UInt64], duration: UFix64) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1207:41\n |\n1207 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun unlock(id: UInt64) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1221:41\n |\n1221 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun batchUnlock(ids: [UInt64]) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1233:41\n |\n1233 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun destroyMoments(ids: [UInt64]) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n |\n1060 | access(all) resource Collection: MomentCollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n1063 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n |\n1060 | access(all) resource Collection: MomentCollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n1101 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-failure","account_address":"0x8c5303eaa26202d6","contract_name":"EVM","error":"error: mismatched types\n --\u003e 8c5303eaa26202d6.EVM:300:37\n |\n300 | return EVMAddress(bytes: addressBytes)\n | ^^^^^^^^^^^^ expected `[UInt8; 20]`, got `AnyStruct`\n"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopMarket","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:61:67\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:61:92\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:53:84\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:53:109\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:75:42\n |\n75 | access(contract) fun withdraw(): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:80:51\n |\n80 | view access(all) fun borrowFanTopToken(): \u0026FanTopToken.NFT? {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:207:63\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:207:88\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:284:95\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopMarket:284:94\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:76:89\n |\n76 | let token \u003c- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopSerial"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopToken","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n |\n233 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n |\n243 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun batchWithdraw(ids: [UInt64]): @{NonFungibleToken.Collection} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n |\n226 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {\n | ^\n ... \n |\n233 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermissionV2a","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: error getting program 668df1b27a5da384.FanTopMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:61:67\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:61:92\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:53:84\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:53:109\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:75:42\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:80:51\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:207:63\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:207:88\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:284:95\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopMarket:284:94\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:76:89\n\n--\u003e 668df1b27a5da384.FanTopMarket\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:114:118\n |\n114 | access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:118:156\n |\n118 | access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:139:79\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:139:78\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:155:67\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:155:92\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:74:12\n |\n74 | FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:86:12\n |\n86 | FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:90:12\n |\n90 | FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:94:12\n |\n94 | FanTopToken.updateLimit(itemId: itemId, limit: limit)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:98:12\n |\n98 | FanTopToken.updateActive(itemId: itemId, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:115:22\n |\n115 | return \u003c- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:119:22\n |\n119 | return \u003c- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:136:12\n |\n136 | FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:140:12\n |\n140 | FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:144:12\n |\n144 | FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:201:12\n |\n201 | FanTopMarket.sell(\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:217:16\n |\n217 | FanTopMarket.containsOrder(orderId): \"Order is not exists\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:218:16\n |\n218 | FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): \"Cancel account is not match order account\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:221:12\n |\n221 | FanTopMarket.cancel(agent: nil, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"Signature"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermission","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KaratNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.KaratNFT:179:43\n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n |\n155 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n ... \n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:340:32\n |\n340 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:258:43\n |\n258 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:15\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:56\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:110\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:399:8\n |\n399 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: use of previously moved resource\n --\u003e 3e5b4c627064625d.GeneratedExperiences:271:43\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ^^^^^ resource used here after move\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ----- resource previously moved here\n\nerror: resource `GeneratedExperiences.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:221:25\n |\n221 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n224 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `GeneratedExperiences.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:221:25\n |\n221 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n258 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:284:32\n |\n284 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.NFGv3:203:43\n |\n203 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:15\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:56\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:110\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:15\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:67\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:121\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:328:8\n |\n328 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: resource `NFGv3.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.NFGv3:188:25\n |\n188 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n203 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:341:32\n |\n341 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.PartyFavorz:260:43\n |\n260 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:15\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:56\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:110\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:15\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:67\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:121\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:396:8\n |\n396 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: resource `PartyFavorz.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.PartyFavorz:245:25\n |\n245 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n260 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:380:36\n |\n380 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.Flomies:242:43\n |\n242 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:19\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:60\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:114\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:19\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:71\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:125\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:414:46\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 3e5b4c627064625d.Flomies:414:45\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:434:12\n |\n434 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: resource `Flomies.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 3e5b4c627064625d.Flomies:227:25\n |\n227 | access(all) resource Collection: NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n242 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.CharityNFT:190:43\n |\n190 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `CharityNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.CharityNFT:179:25\n |\n179 | access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic , ViewResolver.ResolverCollection{\n | ^\n ... \n |\n190 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:22:36\n |\n22 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:163:71\n |\n163 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:158:57\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:158:56\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:19:164\n |\n19 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:106:38\n |\n106 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:122:52\n |\n122 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:170:47\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:170:46\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:168:60\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:168:59\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:175:41\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:175:40\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:360:57\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:360:56\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:369:83\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:369:82\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:373:133\n |\n373 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:383:8\n |\n383 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:384:8\n |\n384 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:374:26\n |\n374 | if let tenantCap=FindMarket.getTenantCapability(marketplace) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:376:96\n |\n376 | return getAccount(user).capabilities.get\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:73:23\n |\n73 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:99:19\n |\n99 | return FIND.reverseLookup(self.pointer.owner())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:123:19\n |\n123 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:213:139\n |\n213 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"buy item for sale\"), seller: self.owner!.address, buyer: nftCap.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:224:26\n |\n224 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:225:27\n |\n225 | let sellerName=FIND.reverseLookup(self.owner!.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:227:113\n |\n227 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:\"sold\", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:234:21\n |\n234 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:236:12\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:236:199\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:286:139\n |\n286 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:295:115\n |\n295 | emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:311:24\n |\n311 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:317:98\n |\n317 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForge","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n |\n413 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n |\n421 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n |\n427 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n |\n110 | access(all) fun setMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n |\n178 | access(all) fun removeMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n |\n229 | access(all) fun orderForge(lease: \u0026FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n |\n263 | access(all) fun mint (lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct, receiver: \u0026{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n |\n310 | access(all) fun addContractData(lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n |\n155 | let user = FIND.lookupAddress(leaseName) ?? panic(\"Cannot find lease owner. Lease : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n |\n234 | FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n |\n238 | FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n |\n242 | FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n |\n246 | let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n |\n272 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n |\n302 | let toName = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n |\n303 | let new = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n |\n319 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n |\n36 | self.minter=FIND.lookupAddress(self.name)!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36\n |\n17 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71\n |\n175 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31\n |\n452 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73\n |\n501 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171\n |\n13 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52\n |\n80 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38\n |\n108 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8\n |\n695 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8\n |\n696 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8\n |\n697 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8\n |\n698 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11\n |\n661 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22\n |\n664 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11\n |\n671 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22\n |\n674 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11\n |\n685 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22\n |\n688 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19\n |\n65 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26\n |\n74 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19\n |\n81 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26\n |\n211 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24\n |\n214 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106\n |\n219 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152\n |\n236 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"add bid in direct offer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26\n |\n246 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106\n |\n251 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156\n |\n269 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30\n |\n282 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113\n |\n287 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152\n |\n302 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26\n |\n325 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36\n |\n330 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106\n |\n332 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26\n |\n354 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24\n |\n357 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106\n |\n362 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152\n |\n384 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26\n |\n402 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27\n |\n403 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21\n |\n415 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Profile","error":"error: conformances do not match in `User`: missing `Owner`\n --\u003e 35717efbbce11c74.Profile:328:25\n |\n328 | access(all) resource User: Public, FungibleToken.Receiver {\n | ^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n |\n154 | if !cap.check() {\n | ^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n |\n157 | let ref = cap.borrow()!\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:189:71\n |\n189 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:533:31\n |\n533 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:586:73\n |\n586 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:14:171\n |\n14 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:74:38\n |\n74 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:120:52\n |\n120 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:47\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:46\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:60\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:59\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:41\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:40\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:57\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:56\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:93\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:92\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:60\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:59\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:41\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:40\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:55\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:54\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:83\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:82\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:131\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:130\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:774:8\n |\n774 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:775:8\n |\n775 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:776:8\n |\n776 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:777:8\n |\n777 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:754:11\n |\n754 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:757:22\n |\n757 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:764:11\n |\n764 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:767:22\n |\n767 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:106:19\n |\n106 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:114:26\n |\n114 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:121:19\n |\n121 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:234:26\n |\n234 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:237:24\n |\n237 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:242:134\n |\n242 | emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:260:150\n |\n260 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:270:26\n |\n270 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:275:106\n |\n275 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:293:183\n |\n293 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:304:30\n |\n304 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:309:113\n |\n309 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:325:150\n |\n325 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:348:26\n |\n348 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:353:36\n |\n353 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:356:106\n |\n356 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:378:26\n |\n378 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:381:24\n |\n381 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:386:106\n |\n386 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:413:150\n |\n413 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:427:26\n |\n427 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:432:106\n |\n432 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:457:150\n |\n457 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:470:26\n |\n470 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:471:27\n |\n471 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:486:21\n |\n486 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:12\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:187\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: resource `FindMarketDirectOfferSoft.SaleItemCollection` does not conform to resource interface `FindMarketDirectOfferSoft.SaleItemCollectionPublic`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:189:25\n |\n189 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^\n ... \n |\n207 | access(all) fun isAcceptedDirectOffer(_ id:UInt64) : Bool{\n | --------------------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:7:86\n |\n7 | access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:14:22\n |\n14 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:16:43\n |\n16 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:22:22\n |\n22 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:24:43\n |\n24 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:260:71\n |\n260 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:657:31\n |\n657 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:708:73\n |\n708 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:102:52\n |\n102 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:193:38\n |\n193 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:47\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:46\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:60\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:59\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:41\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:40\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:57\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:56\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:93\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:92\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:60\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:59\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:41\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:40\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:55\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:54\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:83\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:82\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:131\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:130\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:864:8\n |\n864 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:865:8\n |\n865 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:866:8\n |\n866 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:867:8\n |\n867 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:844:11\n |\n844 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:847:22\n |\n847 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:854:11\n |\n854 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:857:22\n |\n857 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:85:19\n |\n85 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:97:23\n |\n97 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:103:19\n |\n103 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:194:19\n |\n194 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:290:147\n |\n290 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"add bit in soft-auction\"), seller: self.owner!.address ,buyer: buyer)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:333:36\n |\n333 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:336:26\n |\n336 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:338:110\n |\n338 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:388:146\n |\n388 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:416:26\n |\n416 | let buyerName=FIND.reverseLookup(callback.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:418:123\n |\n418 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:452:24\n |\n452 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:458:30\n |\n458 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:460:114\n |\n460 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:462:114\n |\n462 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:518:146\n |\n518 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:537:26\n |\n537 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:538:27\n |\n538 | let sellerName=FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:540:110\n |\n540 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:549:21\n |\n549 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:12\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:146\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:592:163\n |\n592 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:612:126\n |\n612 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: \"active_listed\", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n |\n1156 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n |\n307 | init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n |\n305 | access(all) let verifierRef: \u0026FindForge.Verifier\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n |\n833 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n |\n1220 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n |\n1223 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n |\n612 | access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n833 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71\n |\n228 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31\n |\n529 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73\n |\n579 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22\n |\n32 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38\n |\n19 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40\n |\n91 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38\n |\n181 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51\n |\n463 | access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118\n |\n706 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115\n |\n716 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8\n |\n727 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8\n |\n728 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8\n |\n729 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8\n |\n730 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11\n |\n707 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22\n |\n710 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81\n |\n711 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11\n |\n717 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22\n |\n720 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82\n |\n721 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19\n |\n70 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23\n |\n86 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19\n |\n92 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19\n |\n182 | return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26\n |\n254 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36\n |\n261 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30\n |\n265 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30\n |\n266 | let profile = FIND.lookup(buyer!.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138\n |\n267 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138\n |\n269 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167\n |\n280 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"add bit in soft-auction\"), seller: self.owner!.address ,buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167\n |\n361 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167\n |\n405 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item from soft-auction\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167\n |\n443 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12\n |\n457 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167\n |\n482 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38\n |\n621 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32\n |\n629 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n |\n325 | access(all) fun getLease() : FIND.LeaseInformation\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n |\n352 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n |\n401 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n |\n666 | access(contract) fun getNetwork() : \u0026FIND.Network {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n |\n30 | return FindMarket.getTenantCapability(tenant)!.borrow()!\n | ^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n |\n46 | if let cap = getAccount(address).capabilities.get\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenantRef.getPublicPath(type)) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e`\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n |\n58 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n |\n70 | let address=FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n |\n87 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n |\n100 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n |\n110 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n |\n114 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n |\n124 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n |\n128 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n |\n168 | let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n |\n183 | let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n |\n224 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n |\n245 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n |\n443 | let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n |\n449 | let findName = FIND.reverseLookup(cut.getAddress())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n |\n673 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n |\n674 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n |\n679 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n |\n680 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n |\n685 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n |\n686 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n |\n691 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n |\n692 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n |\n337 | let address = FIND.lookupAddress(name) ?? panic(\"This lease name is not owned\")\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n |\n477 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n |\n479 | } else if status.status == FIND.LeaseStatus.LOCKED {\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31\n |\n418 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73\n |\n470 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177\n |\n16 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22\n |\n27 | init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability\u003c\u0026{MarketBidCollectionPublic}\u003e, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38\n |\n69 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40\n |\n119 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51\n |\n131 | access(contract) fun setPointer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50\n |\n328 | access(Seller) fun acceptOffer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118\n |\n614 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115\n |\n625 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8\n |\n636 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8\n |\n637 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8\n |\n638 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8\n |\n639 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12\n |\n615 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22\n |\n618 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81\n |\n620 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12\n |\n626 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22\n |\n629 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82\n |\n630 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43\n |\n50 | let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19\n |\n105 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26\n |\n113 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19\n |\n120 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167\n |\n207 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"cancel bid in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26\n |\n223 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26\n |\n224 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26\n |\n226 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36\n |\n233 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130\n |\n236 | emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167\n |\n247 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27\n |\n262 | let item = FindLeaseMarket.ReadLeasePointer(name: name)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171\n |\n264 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167\n |\n281 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167\n |\n314 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"reject offer in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167\n |\n339 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167\n |\n366 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12\n |\n377 | FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo: leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FindLeaseMarketDirectOfferSoft.SaleItemCollection` does not conform to resource interface `FindLeaseMarketDirectOfferSoft.SaleItemCollectionPublic`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:25\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^\n ... \n |\n187 | access(all) fun isAcceptedDirectOffer(_ name:String) : Bool{\n | --------------------- mismatch here\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38\n |\n514 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32\n |\n532 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:264:71\n |\n264 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:707:31\n |\n707 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:756:73\n |\n756 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:106:52\n |\n106 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:197:38\n |\n197 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:47\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:46\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:60\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:59\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:41\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:40\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:57\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:56\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:93\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:92\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:60\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:59\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:41\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:40\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:55\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:54\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:83\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:82\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:131\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:130\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:900:118\n |\n900 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:910:115\n |\n910 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:921:8\n |\n921 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:922:8\n |\n922 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:923:8\n |\n923 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:924:8\n |\n924 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:901:11\n |\n901 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:904:22\n |\n904 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:905:81\n |\n905 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:911:11\n |\n911 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:914:22\n |\n914 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:915:82\n |\n915 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:89:19\n |\n89 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:101:23\n |\n101 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:107:19\n |\n107 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:198:19\n |\n198 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:292:148\n |\n292 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"add bid in auction\"), seller: self.owner!.address, buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:337:36\n |\n337 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:342:26\n |\n342 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:344:110\n |\n344 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:400:148\n |\n400 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid in auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:429:26\n |\n429 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:431:110\n |\n431 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:497:24\n |\n497 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:504:30\n |\n504 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:506:114\n |\n506 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:508:114\n |\n508 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:538:152\n |\n538 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill auction\"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:560:30\n |\n560 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:561:33\n |\n561 | let sellerName = FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:572:25\n |\n572 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:16\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:189\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:635:148\n |\n635 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:662:113\n |\n662 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:14:141\n |\n14 | access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: [String], nfts:[FindMarket.NFTInfo], tags: [String], quoteOwner: Address?, quoteId: UInt64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:154:73\n |\n154 | emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:167:68\n |\n167 | emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:56\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:111\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:268:24\n |\n268 | let nfts : [FindMarket.NFTInfo] = []\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:273:28\n |\n273 | nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:282:30\n |\n282 | let creatorName = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:307:23\n |\n307 | name = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:309:80\n |\n309 | emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n |\n46 | let senderName = FIND.reverseLookup(sender)\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n |\n63 | if let receiverCap = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(collectionPublicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n |\n76 | emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n |\n82 | if let collectionPublicCap = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Collection}\u003e(collectionPublicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{NonFungibleToken.Collection}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n |\n95 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n |\n124 | flowTokenRepayment: flowTokenRepayment\n | ^^^^^^^^^^^^^^^^^^ expected `Capability\u003c\u0026FlowToken.Vault\u003e?`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n |\n129 | emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n |\n140 | emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: \"invalid capability\")\n | ^^^^ not found in this scope\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n |\n154 | shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)\n | ^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n |\n162 | senderName = FIND.reverseLookup(sender!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n |\n164 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n |\n165 | emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Dandy","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:348:32\n |\n348 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:63:119\n |\n63 | init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:61:39\n |\n61 | access(contract) let platform: FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:87:46\n |\n87 | access(all) fun getMinterPlatform() : FindForge.MinterPlatform {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.Dandy:240:43\n |\n240 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:15\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:56\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:110\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:333:109\n |\n333 | access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: [AnyStruct], externalUrlPrefix:String?) : @NFT {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:360:42\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Dandy:360:41\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:388:8\n |\n388 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:390:8\n |\n390 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:88:27\n |\n88 | if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:89:50\n |\n89 | let platform = \u0026self.platform as \u0026FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n\nerror: resource `Dandy.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.Dandy:225:25\n |\n225 | access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n240 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n |\n12 | access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n |\n13 | access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n |\n18 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n |\n20 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n |\n27 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n |\n68 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n |\n70 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n |\n78 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n |\n81 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n |\n100 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n |\n102 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n |\n110 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n |\n115 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:26:57\n |\n26 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:32:49\n |\n32 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:34:57\n |\n34 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:91\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:133\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:58:51\n |\n58 | access(Owner) fun getFindMarketClient(): \u0026FindMarket.TenantClient{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:129:61\n |\n129 | access(Owner) fun getTenantRef(_ tenant: Address) : \u0026FindMarket.Tenant {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:139:66\n |\n139 | access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:155:64\n |\n155 | access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:171:69\n |\n171 | access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:47:20\n |\n47 | return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:55:12\n |\n55 | FindMarket.removeFindMarketTenant(tenant: tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:63:23\n |\n63 | let path = FindMarket.TenantClientStoragePath\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:63\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:94\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:19\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:74:12\n |\n74 | FindMarket.addSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:81:12\n |\n81 | FindMarket.addMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:88:12\n |\n88 | FindMarket.addSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:95:12\n |\n95 | FindMarket.addMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:102:12\n |\n102 | FindMarket.removeSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:109:12\n |\n109 | FindMarket.removeMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:116:12\n |\n116 | FindMarket.removeSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:123:12\n |\n123 | FindMarket.removeMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:133:25\n |\n133 | let string = FindMarket.getTenantPathForAddress(tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:67\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:22\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:228:12\n |\n228 | FindMarket.setResidualAddress(address)\n | ^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarket","error":"error: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n |\n315 | if let cap = getAccount(address).capabilities.get\u003c\u0026{FindMarket.MarketBidCollectionPublic}\u003e(tenantRef.getPublicPath(type)) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FindMarket.MarketBidCollectionPublic}\u003e`\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n |\n1411 | if sbRef.getVaultTypes().contains(ftInfo.type) {\n | ^^^^^^^^^^^^^ unknown member\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.NameVoucher:168:43\n |\n168 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n |\n228 | let status = FIND.status(name)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n |\n231 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: resource `NameVoucher.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.NameVoucher:158:25\n |\n158 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n168 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.NameVoucher:168:43\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n\nerror: resource `NameVoucher.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.NameVoucher:158:25\n\n--\u003e 35717efbbce11c74.NameVoucher\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:38:57\n |\n38 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:44:49\n |\n44 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:46:57\n |\n46 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:156:110\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:156:109\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:59:12\n |\n59 | FindForge.addPublicForgeType(forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:67:12\n |\n67 | FindForge.addPrivateForgeType(name: name, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:75:12\n |\n75 | FindForge.removeForgeType(type: type)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:83:12\n |\n83 | FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.Admin:91:12\n |\n91 | FindForgeOrder.addMintType(mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:99:12\n |\n99 | FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:106:12\n |\n106 | FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:114:19\n |\n114 | return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:161:16\n |\n161 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:174:16\n |\n174 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:178:23\n |\n178 | let user = FIND.lookupAddress(name) ?? panic(\"Cannot find lease owner. Lease : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:58\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:179:57\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:87\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:188:16\n |\n188 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:192:12\n |\n192 | FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:200:12\n |\n200 | FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:295:122\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:296:12\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:359:19\n |\n359 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:57\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:87\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:367:27\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:368:19\n |\n368 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:21:36\n |\n21 | access(all) resource SaleItem : FindLeaseMarket.SaleItem{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:132:71\n |\n132 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:59\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:58\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:18:170\n |\n18 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:33:22\n |\n33 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:26:38\n |\n26 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:94:38\n |\n94 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:110:40\n |\n110 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:47\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:46\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:60\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:59\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:41\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:40\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:201:48\n |\n201 | access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:59\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:58\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:83\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:82\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:283:138\n |\n283 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:294:8\n |\n294 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:295:8\n |\n295 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:284:11\n |\n284 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:287:22\n |\n287 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:288:101\n |\n288 | return getAccount(user).capabilities.get\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:64:23\n |\n64 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:25\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:19\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:87:19\n |\n87 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:111:19\n |\n111 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:174:183\n |\n174 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy lease for sale\"), seller: self.owner!.address, buyer: to)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:189:26\n |\n189 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:190:26\n |\n190 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:194:12\n |\n194 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:196:123\n |\n196 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:\"sold\", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:216:183\n |\n216 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list lease for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:223:124\n |\n223 | emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:237:187\n |\n237 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist lease for sale\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:243:126\n |\n243 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:250:126\n |\n250 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:252:126\n |\n252 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FIND","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n |\n1358 | access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n |\n1610 | access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{LeaseCollectionPublic}\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n |\n2110 | if self.account.storage.borrow\u003c\u0026FUSD.Vault\u003e(from: FUSD.VaultStoragePath) == nil {\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n |\n2112 | let vault \u003c- FUSD.createEmptyVault()\n | ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n |\n2115 | self.account.storage.save(\u003c-vault, to: FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n |\n2119 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n |\n2121 | self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)\n | ^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n |\n2123 | let capb = self.account.capabilities.storage.issue\u003c\u0026{FungibleToken.Vault}\u003e(FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n |\n2129 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n |\n2131 | self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)\n | ^^^^^^^^^^^^^^^^^^ unknown member\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n |\n153 | if let cap = account.capabilities.get\u003c\u0026{Profile.Public}\u003e(Profile.publicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{Profile.Public}\u003e`\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n |\n627 | access(all) resource LeaseCollection: LeaseCollectionPublic {\n | ^\n ... \n |\n1293 | access(all) fun move(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, to: Capability\u003c\u0026LeaseCollection\u003e) {\n | ---- mismatch here\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n |\n1633 | let usdcCap = account.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FiatToken.VaultReceiverPubPath)!\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-failure","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders","error":"error: resource `ScopedFTProviders.ScopedFTProvider` does not conform to resource interface `FungibleToken.Provider`\n --\u003e 31ad40c07a2a9788.ScopedFTProviders:47:25\n |\n47 | access(all) resource ScopedFTProvider: FungibleToken.Provider {\n | ^\n ... \n |\n93 | access(FungibleToken.Withdraw | FungibleToken.Withdraw) fun withdraw(amount: UFix64): @{FungibleToken.Vault} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-failure","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:94:78\n |\n94 | access(all) init(provider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e, filters: [{NFTFilter}], expiration: UFix64?) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:81:78\n |\n81 | access(self) let provider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:128:43\n |\n128 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:160:61\n |\n160 | provider: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:164:53\n |\n164 | return \u003c- create ScopedNFTProvider(provider: provider, filters: filters, expiration: expiration)\n | ^^^^^^^^ expected `Capability\u003cauth(A.31ad40c07a2a9788.NonFungibleToken,A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.31ad40c07a2a9788.NonFungibleToken,A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: mismatched types\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:95:28\n |\n95 | self.provider = provider\n | ^^^^^^^^ expected `Capability\u003cauth(A.31ad40c07a2a9788.NonFungibleToken,A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`, got `Capability\u003cauth(A.31ad40c07a2a9788.NonFungibleToken,A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.CollectionPublic,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e`\n\nerror: resource `ScopedNFTProviders.ScopedNFTProvider` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 31ad40c07a2a9788.ScopedNFTProviders:80:25\n |\n80 | access(all) resource ScopedNFTProvider: NonFungibleToken.Provider {\n | ^\n ... \n |\n128 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 2d59ec5158e3adae.HeroesOfTheFlow:292:43\n |\n292 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `HeroesOfTheFlow.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 2d59ec5158e3adae.HeroesOfTheFlow:260:25\n |\n260 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n292 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-failure","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking","error":"error: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1101:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1127:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1184:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1198:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1207:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1221:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 877931736ee77cff.TopShot:1233:41\n\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n\nerror: resource `TopShot.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 877931736ee77cff.TopShot:1060:25\n\n--\u003e 877931736ee77cff.TopShot\n\nerror: error getting program a2526e2d9cc7f0d2.Pinnacle: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1744:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1766:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1803:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1815:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1828:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1840:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1846:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:2565:81\n\nerror: contract `Pinnacle` does not conform to contract interface `NonFungibleToken`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:50:21\n\nerror: resource `Pinnacle.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e a2526e2d9cc7f0d2.Pinnacle:1712:25\n\n--\u003e a2526e2d9cc7f0d2.Pinnacle\n\nerror: cannot find type in this scope: `TopShot`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:12:20\n |\n12 | \t\tif (type == Type\u003c@TopShot.NFT\u003e()) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:12:14\n |\n12 | \t\tif (type == Type\u003c@TopShot.NFT\u003e()) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Pinnacle`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:17:20\n |\n17 | \t\tif (type == Type\u003c@Pinnacle.NFT\u003e()) {\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:17:14\n |\n17 | \t\tif (type == Type\u003c@Pinnacle.NFT\u003e()) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Pinnacle`\n --\u003e 2bd8210db3a8fe8a.NFTLocking:19:23\n |\n19 | \t\t\treturn (nftRef as! \u0026Pinnacle.NFT).isLocked()\n | \t\t\t ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 2bd8210db3a8fe8a.Swap:209:88\n |\n209 | \t\t\tcollectionProviderCapabilities: {String: Capability\u003cauth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e},\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 2bd8210db3a8fe8a.Swap:203:108\n |\n203 | \t\taccess(contract) let collectionProviderCapabilities: {String: Capability\u003cauth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e}\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 2bd8210db3a8fe8a.Swap:791:14\n |\n791 | \t\t\tlet nft \u003c- providerReference.withdraw(withdrawID: proposedNft.nftID)\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: mismatched types\n --\u003e 2bd8210db3a8fe8a.Swap:214:41\n |\n214 | \t\t\tself.collectionProviderCapabilities = collectionProviderCapabilities\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `{String:Capability\u003cauth(A.2bd8210db3a8fe8a.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e}`, got `{String:Capability\u003cauth(A.2bd8210db3a8fe8a.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Provider}\u003e}`\n"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-failure","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory","error":"error: unsafe access modifiers on CapabilityFactory.Manager: the entitlements migration would grant references to this type CapabilityFactory.Owner, CapabilityFactory.Add, CapabilityFactory.Delete authorization, which is too permissive.\n --\u003e 294e44e1ec6993c6.CapabilityFactory:42:4\n |\n42 | access(all) resource Manager: Getter {\n43 | /// Mapping of Factories indexed on Type of Capability they retrieve\n44 | access(all) let factories: {Type: {CapabilityFactory.Factory}}\n45 | \n46 | /// Retrieves a list of Types supported by contained Factories\n47 | ///\n48 | /// @return List of Types supported by the Manager\n49 | ///\n50 | access(all) view fun getSupportedTypes(): [Type] {\n51 | return self.factories.keys\n52 | }\n53 | \n54 | /// Retrieves a Factory from the Manager, returning it or nil if it doesn't exist\n55 | ///\n56 | /// @param t: Type the Factory is indexed on\n57 | ///\n58 | access(all) view fun getFactory(_ t: Type): {CapabilityFactory.Factory}? {\n59 | return self.factories[t]\n60 | }\n61 | \n62 | /// Adds a Factory to the Manager, conditioned on the Factory not already existing\n63 | ///\n64 | /// @param t: Type of Capability the Factory retrieves\n65 | /// @param f: Factory to add\n66 | ///\n67 | access(Owner | Add) fun addFactory(_ t: Type, _ f: {CapabilityFactory.Factory}) {\n68 | pre {\n69 | !self.factories.containsKey(t): \"Factory of given type already exists\"\n70 | }\n71 | self.factories[t] = f\n72 | }\n73 | \n74 | /// Updates a Factory in the Manager, adding if it didn't already exist\n75 | ///\n76 | /// @param t: Type of Capability the Factory retrieves\n77 | /// @param f: Factory to replace existing Factory\n78 | ///\n79 | access(Owner | Add) fun updateFactory(_ t: Type, _ f: {CapabilityFactory.Factory}) {\n80 | self.factories[t] = f\n81 | }\n82 | \n83 | /// Removes a Factory from the Manager, returning it or nil if it didn't exist\n84 | ///\n85 | /// @param t: Type the Factory is indexed on\n86 | ///\n87 | access(Owner | Delete) fun removeFactory(_ t: Type): {CapabilityFactory.Factory}? {\n88 | return self.factories.remove(key: t)\n89 | }\n90 | \n91 | init () {\n92 | self.factories = {}\n93 | }\n94 | }\n | ^ Consider removing any disjunction access modifiers\n"},{"kind":"contract-update-failure","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter","error":"error: unsafe access modifiers on CapabilityFilter.DenylistFilter: the entitlements migration would grant references to this type CapabilityFilter.Owner, CapabilityFilter.Add, CapabilityFilter.Delete authorization, which is too permissive.\n --\u003e 294e44e1ec6993c6.CapabilityFilter:34:4\n |\n34 | access(all) resource DenylistFilter: Filter {\n35 | \n36 | /// Represents the underlying types which should not ever be returned by a RestrictedChildAccount. The filter\n37 | /// will borrow a requested capability, and make sure that the type it gets back is not in the list of denied\n38 | /// types\n39 | access(self) let deniedTypes: {Type: Bool}\n40 | \n41 | /// Adds a type to the mapping of denied types with a value of true\n42 | /// \n43 | /// @param type: The type to add to the denied types mapping\n44 | ///\n45 | access(Owner | Add) fun addType(_ type: Type) {\n46 | self.deniedTypes.insert(key: type, true)\n47 | emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: true)\n48 | }\n49 | \n50 | /// Removes a type from the mapping of denied types\n51 | ///\n52 | /// @param type: The type to remove from the denied types mapping\n53 | ///\n54 | access(Owner | Delete) fun removeType(_ type: Type) {\n55 | if let removed = self.deniedTypes.remove(key: type) {\n56 | emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: false)\n57 | }\n58 | }\n59 | \n60 | /// Removes all types from the mapping of denied types\n61 | ///\n62 | access(Owner | Delete) fun removeAllTypes() {\n63 | for type in self.deniedTypes.keys {\n64 | self.removeType(type)\n65 | }\n66 | }\n67 | \n68 | /// Determines if a requested capability is allowed by this `Filter`\n69 | ///\n70 | /// @param cap: The capability to check\n71 | /// @return: true if the capability is allowed, false otherwise\n72 | ///\n73 | access(all) view fun allowed(cap: Capability): Bool {\n74 | if let item = cap.borrow\u003c\u0026AnyResource\u003e() {\n75 | return !self.deniedTypes.containsKey(item.getType())\n76 | }\n77 | \n78 | return false\n79 | }\n80 | \n81 | /// Returns details about this filter\n82 | ///\n83 | /// @return A struct containing details about this filter including this Filter's Type indexed on the `type`\n84 | /// key as well as types denied indexed on the `deniedTypes` key\n85 | ///\n86 | access(all) view fun getDetails(): AnyStruct {\n87 | return {\n88 | \"type\": self.getType(),\n89 | \"deniedTypes\": self.deniedTypes.keys\n90 | }\n91 | }\n92 | \n93 | init() {\n94 | self.deniedTypes = {}\n95 | }\n96 | }\n | ^ Consider removing any disjunction access modifiers\n\nerror: unsafe access modifiers on CapabilityFilter.AllowlistFilter: the entitlements migration would grant references to this type CapabilityFilter.Owner, CapabilityFilter.Add, CapabilityFilter.Delete authorization, which is too permissive.\n --\u003e 294e44e1ec6993c6.CapabilityFilter:100:4\n |\n100 | access(all) resource AllowlistFilter: Filter {\n101 | // allowedTypes\n102 | // Represents the set of underlying types which are allowed to be \n103 | // returned by a RestrictedChildAccount. The filter will borrow\n104 | // a requested capability, and make sure that the type it gets back is\n105 | // in the list of allowed types\n106 | access(self) let allowedTypes: {Type: Bool}\n107 | \n108 | /// Adds a type to the mapping of allowed types with a value of true\n109 | /// \n110 | /// @param type: The type to add to the allowed types mapping\n111 | ///\n112 | access(Owner | Add) fun addType(_ type: Type) {\n113 | self.allowedTypes.insert(key: type, true)\n114 | emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: true)\n115 | }\n116 | \n117 | /// Removes a type from the mapping of allowed types\n118 | ///\n119 | /// @param type: The type to remove from the denied types mapping\n120 | ///\n121 | access(Owner | Delete) fun removeType(_ type: Type) {\n122 | if let removed = self.allowedTypes.remove(key: type) {\n123 | emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: false)\n124 | }\n125 | }\n126 | \n127 | /// Removes all types from the mapping of denied types\n128 | ///\n129 | access(Owner | Delete) fun removeAllTypes() {\n130 | for type in self.allowedTypes.keys {\n131 | self.removeType(type)\n132 | }\n133 | }\n134 | \n135 | /// Determines if a requested capability is allowed by this `Filter`\n136 | ///\n137 | /// @param cap: The capability to check\n138 | /// @return: true if the capability is allowed, false otherwise\n139 | ///\n140 | access(all) view fun allowed(cap: Capability): Bool {\n141 | if let item = cap.borrow\u003c\u0026AnyResource\u003e() {\n142 | return self.allowedTypes.containsKey(item.getType())\n143 | }\n144 | \n145 | return false\n146 | }\n147 | \n148 | /// Returns details about this filter\n149 | ///\n150 | /// @return A struct containing details about this filter including this Filter's Type indexed on the `type`\n151 | /// key as well as types allowed indexed on the `allowedTypes` key\n152 | ///\n153 | access(all) view fun getDetails(): AnyStruct {\n154 | return {\n155 | \"type\": self.getType(),\n156 | \"allowedTypes\": self.allowedTypes.keys\n157 | }\n158 | }\n159 | \n160 | init() {\n161 | self.allowedTypes = {}\n162 | }\n163 | }\n | ^ Consider removing any disjunction access modifiers\n"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-failure","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 294e44e1ec6993c6.NFTProviderFactory:8:73\n |\n8 | if !con.capability.check\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e() {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 294e44e1ec6993c6.NFTProviderFactory:12:85\n |\n12 | return con.capability as! Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 294e44e1ec6993c6.NFTProviderAndCollectionFactory:8:73\n |\n8 | if !con.capability.check\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e() {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 294e44e1ec6993c6.NFTProviderAndCollectionFactory:12:85\n |\n12 | return con.capability as! Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026{NonFungibleToken.Provider, NonFungibleToken.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-failure","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator","error":"error: unsafe access modifiers on CapabilityDelegator.Delegator: the entitlements migration would grant references to this type CapabilityDelegator.Get, CapabilityDelegator.Owner, CapabilityDelegator.Add, CapabilityDelegator.Delete authorization, which is too permissive.\n --\u003e 294e44e1ec6993c6.CapabilityDelegator:55:4\n |\n 55 | access(all) resource Delegator: GetterPublic, GetterPrivate {\n 56 | access(self) let privateCapabilities: {Type: Capability}\n 57 | access(self) let publicCapabilities: {Type: Capability}\n 58 | \n 59 | // ------ Begin Getter methods\n 60 | //\n 61 | /// Returns the public Capability of the given Type if it exists\n 62 | ///\n 63 | access(all) view fun getPublicCapability(_ type: Type): Capability? {\n 64 | return self.publicCapabilities[type]\n 65 | }\n 66 | \n 67 | /// Returns the private Capability of the given Type if it exists\n 68 | ///\n 69 | ///\n 70 | /// @param type: Type of the Capability to retrieve\n 71 | /// @return Capability of the given Type if it exists, nil otherwise\n 72 | ///\n 73 | access(Get) view fun getPrivateCapability(_ type: Type): Capability? {\n 74 | return self.privateCapabilities[type]\n 75 | }\n 76 | \n 77 | /// Returns all public Capabilities\n 78 | ///\n 79 | /// @return List of all public Capabilities\n 80 | ///\n 81 | access(all) view fun getAllPublic(): [Capability] {\n 82 | return self.publicCapabilities.values\n 83 | }\n 84 | \n 85 | /// Returns all private Capabilities\n 86 | ///\n 87 | /// @return List of all private Capabilities\n 88 | ///\n 89 | access(Get) fun getAllPrivate(): [Capability] {\n 90 | return self.privateCapabilities.values\n 91 | }\n 92 | \n 93 | /// Returns the first public Type that is a subtype of the given Type\n 94 | ///\n 95 | /// @param type: Type to check for subtypes\n 96 | /// @return First public Type that is a subtype of the given Type, nil otherwise\n 97 | ///\n 98 | access(all) view fun findFirstPublicType(_ type: Type): Type? {\n 99 | for t in self.publicCapabilities.keys {\n100 | if t.isSubtype(of: type) {\n101 | return t\n102 | }\n103 | }\n104 | \n105 | return nil\n106 | }\n107 | \n108 | /// Returns the first private Type that is a subtype of the given Type\n109 | ///\n110 | /// @param type: Type to check for subtypes\n111 | /// @return First private Type that is a subtype of the given Type, nil otherwise\n112 | ///\n113 | access(all) view fun findFirstPrivateType(_ type: Type): Type? {\n114 | for t in self.privateCapabilities.keys {\n115 | if t.isSubtype(of: type) {\n116 | return t\n117 | }\n118 | }\n119 | \n120 | return nil\n121 | }\n122 | // ------- End Getter methods\n123 | \n124 | /// Adds a Capability to the Delegator\n125 | ///\n126 | /// @param cap: Capability to add\n127 | /// @param isPublic: Whether the Capability should be public or private\n128 | ///\n129 | access(Owner | Add) fun addCapability(cap: Capability, isPublic: Bool) {\n130 | pre {\n131 | cap.check\u003c\u0026AnyResource\u003e(): \"Invalid Capability provided\"\n132 | }\n133 | if isPublic {\n134 | self.publicCapabilities.insert(key: cap.getType(), cap)\n135 | } else {\n136 | self.privateCapabilities.insert(key: cap.getType(), cap)\n137 | }\n138 | emit DelegatorUpdated(id: self.uuid, capabilityType: cap.getType(), isPublic: isPublic, active: true)\n139 | }\n140 | \n141 | /// Removes a Capability from the Delegator\n142 | ///\n143 | /// @param cap: Capability to remove\n144 | ///\n145 | access(Owner | Delete) fun removeCapability(cap: Capability) {\n146 | if let removedPublic = self.publicCapabilities.remove(key: cap.getType()) {\n147 | emit DelegatorUpdated(id: self.uuid, capabilityType: cap.getType(), isPublic: true, active: false)\n148 | }\n149 | \n150 | if let removedPrivate = self.privateCapabilities.remove(key: cap.getType()) {\n151 | emit DelegatorUpdated(id: self.uuid, capabilityType: cap.getType(), isPublic: false, active: false)\n152 | }\n153 | }\n154 | \n155 | init() {\n156 | self.privateCapabilities = {}\n157 | self.publicCapabilities = {}\n158 | }\n159 | }\n | ^ Consider removing any disjunction access modifiers\n"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-failure","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody","error":"error: resource `HybridCustody.Manager` does not conform to resource interface `HybridCustody.ManagerPrivate`\n --\u003e 294e44e1ec6993c6.HybridCustody:263:25\n |\n263 | access(all) resource Manager: ManagerPrivate, ManagerPublic, ViewResolver.Resolver, Burner.Burnable {\n | ^\n ... \n |\n301 | access(Manage | Insert) fun addAccount(cap: Capability\u003cauth(Child) \u0026{AccountPrivate, AccountPublic, ViewResolver.Resolver}\u003e) {\n | ---------- mismatch here\n ... \n |\n339 | access(Manage | Remove) fun removeChild(addr: Address) {\n | ----------- mismatch here\n ... \n |\n373 | access(Manage | Insert) fun addOwnedAccount(cap: Capability\u003cauth(Owner) \u0026{OwnedAccountPrivate, OwnedAccountPublic, ViewResolver.Resolver}\u003e) {\n | --------------- mismatch here\n ... \n |\n427 | access(Manage | Remove) fun removeOwned(addr: Address) {\n | ----------- mismatch here\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{HybridCustody.ManagerPublic}\u003e` is not optional\n --\u003e 294e44e1ec6993c6.HybridCustody:986:15\n |\n986 | if parentManager?.check() == true {\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: resource `HybridCustody.OwnedAccount` does not conform to resource interface `HybridCustody.OwnedAccountPrivate`\n --\u003e 294e44e1ec6993c6.HybridCustody:791:25\n |\n791 | access(all) resource OwnedAccount: OwnedAccountPrivate, BorrowableAccount, OwnedAccountPublic, ViewResolver.Resolver, Burner.Burnable {\n | ^\n ... \n |\n957 | access(Owner | Remove) fun removeParent(parent: Address): Bool {\n | ------------ mismatch here\n"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Admin","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:242:39\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:428:84\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:428:109\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:477:88\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:499:165\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:521:143\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:623:45\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:653:64\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:669:50\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:822:37\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:894:13\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:902:16\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:282:35\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:282:11\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:450:32\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:480:23\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:502:23\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:532:48\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.Doodles:541:24\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:542:33\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:678:40\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:679:23\n\nerror: resource `Doodles.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Doodles:812:22\n\n--\u003e 1c5033ad60821c97.Doodles\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:141:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:67\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.DoodlePacks:238:17\n\nerror: resource `DoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodlePacks:138:22\n\n--\u003e 1c5033ad60821c97.DoodlePacks\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:58:43\n |\n58 | \t\taccess(all) fun registerWearableSet(_ s: Wearables.Set) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:72:48\n |\n72 | \t\taccess(all) fun registerWearablePosition(_ p: Wearables.Position) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:86:48\n |\n86 | \t\taccess(all) fun registerWearableTemplate(_ t: Wearables.Template) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:128:6\n |\n128 | \t\t): @Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:144:9\n |\n144 | \t\t\tdata: Wearables.WearableMintData,\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:195:52\n |\n195 | \t\taccess(all) fun registerDoodlesBaseCharacter(_ d: Doodles.BaseCharacter) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:209:46\n |\n209 | \t\taccess(all) fun registerDoodlesSpecies(_ d: Doodles.Species) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:223:42\n |\n223 | \t\taccess(all) fun registerDoodlesSet(_ d: Doodles.Set) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:242:6\n |\n242 | \t\t): @Doodles.NFT {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:62:3\n |\n62 | \t\t\tWearables.addSet(s)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:69:3\n |\n69 | \t\t\tWearables.retireSet(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:76:3\n |\n76 | \t\t\tWearables.addPosition(p)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:83:3\n |\n83 | \t\t\tWearables.retirePosition(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:90:3\n |\n90 | \t\t\tWearables.addTemplate(t)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:97:3\n |\n97 | \t\t\tWearables.retireTemplate(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:104:3\n |\n104 | \t\t\tWearables.updateTemplateDescription(templateId: templateId, description: description)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:117:3\n |\n117 | \t\t\tWearables.mintNFT(\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:133:22\n |\n133 | \t\t\tlet newWearable \u003c- Wearables.mintNFTDirect(\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:152:3\n |\n152 | \t\t\tWearables.mintEditionNFT(\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:199:3\n |\n199 | \t\t\tDoodles.setBaseCharacter(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:206:3\n |\n206 | \t\t\tDoodles.retireBaseCharacter(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:213:3\n |\n213 | \t\t\tDoodles.addSpecies(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:220:3\n |\n220 | \t\t\tDoodles.retireSpecies(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:227:3\n |\n227 | \t\t\tDoodles.addSet(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:234:3\n |\n234 | \t\t\tDoodles.retireSet(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:247:17\n |\n247 | \t\t\tlet doodle \u003c- Doodles.adminMintDoodle(\n | \t\t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:261:3\n |\n261 | \t\t\tRedeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:269:3\n |\n269 | \t\t\tRedeemables.updateSetActive(setId: setId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:276:3\n |\n276 | \t\t\tRedeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:283:3\n |\n283 | \t\t\tRedeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:300:3\n |\n300 | \t\t\tRedeemables.createTemplate(\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:317:3\n |\n317 | \t\t\tRedeemables.updateTemplateActive(templateId: templateId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:324:3\n |\n324 | \t\t\tRedeemables.mintNFT(recipient: recipient, templateId: templateId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:331:3\n |\n331 | \t\t\tRedeemables.burnUnredeemedSet(setId: setId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:363:3\n |\n363 | \t\t\tDoodlePacks.mintNFT(recipient: recipient, typeId: typeId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:435:3\n |\n435 | \t\t\tOpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)\n | \t\t\t^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Teleport","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :7:0\n |\n7 | pub contract DapperStorageRent {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:2\n |\n9 | pub let DapperStorageRentAdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:2\n |\n23 | pub event BlockedAddress(_ address: [Address])\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:2\n |\n25 | pub event Refuelled(_ address: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub event RefilledFailed(address: Address, reason: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub fun getStorageRentRefillThreshold(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:2\n |\n41 | pub fun getRefilledAccounts(): [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub fun getBlockedAccounts() : [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:2\n |\n57 | pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:2\n |\n65 | pub fun getRefillRequiredBlocks(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:2\n |\n70 | pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:2\n |\n75 | pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:2\n |\n85 | pub fun tryRefill(_ address: Address) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :124:106\n |\n124 | if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow\u003c\u0026FlowToken.Vault{FungibleToken.Balance}\u003e() {\n | ^^^^^^^^^^^^^\n\n--\u003e 43ee8c22fcf94ea3.DapperStorageRent\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:115:43\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:115:65\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:115:17\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:115:17\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:119:4\n |\n119 | \t\t\t\tWearables.mintNFT(recipient: wearable, template:id, context:context)\n | \t\t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:136:3\n |\n136 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:159:20\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:159:88\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:181:43\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:181:65\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:181:17\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:181:17\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:185:4\n |\n185 | \t\t\t\tWearables.mintNFT(recipient: wearable, template:id, context:context)\n | \t\t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:201:3\n |\n201 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:224:20\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:224:88\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks","error":"error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:141:37\n |\n141 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:67\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n |\n236 | \t\tlet openPack \u003c- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.DoodlePacks:238:17\n |\n238 | \t\tBurner.burn(\u003c- collection.withdraw(withdrawID: packId))\n | \t\t ^^^^^^^^^^^^^^^^^^^\n\nerror: resource `DoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodlePacks:138:22\n |\n138 | \taccess(all) resource Collection: CollectionPublic, NonFungibleToken.Collection{\n | \t ^\n ... \n |\n141 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n |\n121 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n |\n205 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n |\n233 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n |\n111 | \taccess(all) resource Collection: NonFungibleToken.Collection {\n | \t ^\n ... \n |\n121 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Wearables","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n |\n728 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n |\n718 | \taccess(all) resource Collection: NonFungibleToken.Collection {\n | \t ^\n ... \n |\n728 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n |\n246 | access(NonFungibleToken.Owner) fun redeem(id: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n |\n257 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n |\n321 | \t\taccess(NonFungibleToken.Owner) fun redeem(id: UInt64) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n |\n440 | \t\t\t\tgetAccount(address).capabilities.get\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e(Redeemables.CollectionPublicPath)?.borrow()\n | \t\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n |\n250 | \taccess(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n321 | \t\taccess(NonFungibleToken.Owner) fun redeem(id: UInt64) {\n | \t\t ------ mismatch here\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n |\n250 | \taccess(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n257 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Doodles","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n |\n234 | \t\taccess(all) var name: @{UInt64 : DoodleNames.NFT}\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:242:39\n |\n242 | \t\taccess(all) let wearables: @{UInt64: Wearables.NFT}\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:428:84\n |\n428 | \t\taccess(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026Wearables.Collection, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:428:109\n |\n428 | \t\taccess(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026Wearables.Collection, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:477:88\n |\n477 | access(all) fun editDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:499:165\n |\n499 | \t\taccess(all) fun editDoodleWithMultipleCollections(receiverWearableCollection: \u0026{NonFungibleToken.Receiver}, wearableCollections: [auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}], equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Boo... \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:521:143\n |\n521 | \t\taccess(contract) fun internalEditDoodle(wearableReceiver: \u0026{NonFungibleToken.Receiver}, wearableProviders: [auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}], equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool... \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n |\n581 | \t\taccess(account) fun addName(_ nft: @DoodleNames.NFT, owner:Address) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n |\n590 | \t\taccess(all) fun equipName(_ nft: @DoodleNames.NFT) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n |\n606 | \t\taccess(contract) fun unequipName() : @DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:623:45\n |\n623 | \t\taccess(contract) fun equipWearable(_ nft: @Wearables.NFT, index: UInt64) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:653:64\n |\n653 | \t\taccess(contract) fun unequipWearable(_ resourceId: UInt64) : @Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:669:50\n |\n669 | \t\taccess(all) fun borrowWearable(_ id: UInt64) : \u0026Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n |\n673 | \t\taccess(all) fun borrowName(_ id: UInt64) : \u0026DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:822:37\n |\n822 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:894:13\n |\n894 | \t\tbetaPass: @Wearables.NFT,\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:902:16\n |\n902 | \t\tlet template: Wearables.Template = betaPass.getTemplate()\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n |\n940 | \t\tlet name \u003c- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:282:35\n |\n282 | \t\t\treturn (\u0026self.wearables[id] as \u0026Wearables.NFT?)!\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:282:11\n |\n282 | \t\t\treturn (\u0026self.wearables[id] as \u0026Wearables.NFT?)!\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:450:32\n |\n450 | \t\t\t\tlet nft \u003c- wearableNFT as! @Wearables.NFT\n | \t\t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:480:23\n |\n480 | \t\t\t\twearableProviders: [wearableCollection],\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^ expected `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`, got `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:502:23\n |\n502 | \t\t\t\twearableProviders: wearableCollections,\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^ expected `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`, got `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:532:48\n |\n532 | wearableReceiver.deposit(token: \u003c- nft)\n | ^^^^^^ expected `{NonFungibleToken.NFT}`, got `\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.Doodles:541:24\n |\n541 | \t\t\t\t\tlet wearableNFT \u003c- wearableProvider.withdraw(withdrawID: wId)\n | \t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:542:33\n |\n542 | \t\t\t\t\tlet nft \u003c- wearableNFT as! @Wearables.NFT\n | \t\t\t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:678:40\n |\n678 | \t\t\tif let nft = \u0026self.wearables[id] as \u0026Wearables.NFT? {\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:679:23\n |\n679 | return nft\n | ^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e`\n\nerror: resource `Doodles.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Doodles:812:22\n |\n812 | \taccess(all) resource Collection: DoodlesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n822 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n |\n140 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n |\n264 | access(all) fun reveal(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{OpenDoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64, receiverAddress: Address) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n |\n313 | destroy \u003c- collection.withdraw(withdrawID: packId)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n |\n427 | let recipient = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(Wearables.CollectionPublicPath)!.borrow()\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n |\n429 | Wearables.mintNFT(\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n |\n438 | let recipient = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(Redeemables.CollectionPublicPath)!.borrow()\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n |\n440 | Redeemables.mintNFT(recipient: recipient, templateId: templateId)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n |\n133 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n140 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers","error":"error: error getting program b051bdaddb672a33.NFTStorefrontV2: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:513:70\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:458:70\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:252:90\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:580:70\n\nerror: mismatched types\n --\u003e b051bdaddb672a33.NFTStorefrontV2:486:33\n\nerror: mismatched types\n --\u003e b051bdaddb672a33.NFTStorefrontV2:616:28\n\nerror: resource `NFTStorefrontV2.Storefront` does not conform to resource interface `NFTStorefrontV2.StorefrontManager`\n --\u003e b051bdaddb672a33.NFTStorefrontV2:563:23\n\n--\u003e b051bdaddb672a33.NFTStorefrontV2\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e 0d3dc5ad70be03d1.Offers:95:20\n |\n95 | \t\t\tlet commission = NFTStorefrontV2.getFee(p: offeredAmount, t: paymentTokenType)\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e 0d3dc5ad70be03d1.Offers:159:64\n |\n159 | \t\t\tif let cap = getAccount(receiver.address).capabilities.get\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath) {\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 0d3dc5ad70be03d1.Offers:159:63\n |\n159 | \t\t\tif let cap = getAccount(receiver.address).capabilities.get\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath) {\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e 0d3dc5ad70be03d1.Offers:159:99\n |\n159 | \t\t\tif let cap = getAccount(receiver.address).capabilities.get\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath) {\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 0d3dc5ad70be03d1.Offers:159:16\n |\n159 | \t\t\tif let cap = getAccount(receiver.address).capabilities.get\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath) {\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: mismatched types\n --\u003e 0d3dc5ad70be03d1.Offers:159:16\n |\n159 | \t\t\tif let cap = getAccount(receiver.address).capabilities.get\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath) {\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability`\n\nerror: cannot infer type parameter: `T`\n --\u003e 0d3dc5ad70be03d1.Offers:160:7\n |\n160 | \t\t\t\tif cap.check() {\n | \t\t\t\t ^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 0d3dc5ad70be03d1.Offers:161:13\n |\n161 | \t\t\t\t\tlet s = cap.borrow()!\n | \t\t\t\t\t ^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e 0d3dc5ad70be03d1.Offers:302:14\n |\n302 | \t\t\tlet fees = NFTStorefrontV2.getPaymentCuts(r: receiver, n: \u0026nft as \u0026{NonFungibleToken.NFT}, p: self.details.offeredAmount, tokenType: self.details.paymentTokenType)\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e 0d3dc5ad70be03d1.Offers:303:15\n |\n303 | \t\t\tlet mpFee = NFTStorefrontV2.getFee(p: self.details.offeredAmount, t: self.details.paymentTokenType)\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e 0d3dc5ad70be03d1.Offers:311:20\n |\n311 | \t\t\tlet mpReceiver = NFTStorefrontV2.getCommissionReceiver(t: self.details.paymentTokenType)\n | \t\t\t ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-05-01T13-03-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-05-01T13-03-00Z-testnet.md new file mode 100644 index 0000000000..510fee4090 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-01T13-03-00Z-testnet.md @@ -0,0 +1,217 @@ +## Cadence 1.0 staged contracts migration results +Date: 02 May, 2024 + +Stats: 206 contracts staged, 112 successfully upgraded, 94 failed to upgrade + +Snapshot: devnet49-execution-snapshot-for-migration-5-may-1 + +Flow-go build: v0.34.0-crescendo-preview.18-atree-inlining + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xf8ba321af4bd37bb | aiSportsMinter | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8ba321af4bd37bb.aiSportsMinter:193:39
\|
193 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`aiSportsMinter.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8ba321af4bd37bb.aiSportsMinter:168:25
\|
168 \| access(all) resource Collection: NonFungibleToken.Collection, aiSportsMinterCollectionPublic {
\| ^
...
\|
193 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xef4cd3d07a7b43ce | PDS | ❌

Error:
error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:102:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:103:41

--\> d8f6346999b983f5.IPackNFT

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:67:36
\|
67 \| access(all) struct Collectible: IPackNFT.Collectible {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> ef4cd3d07a7b43ce.PDS:158:68
\|
158 \| withdrawCap: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:159:41
\|
159 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:159:61
\|
159 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:159:60
\|
159 \| operatorCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> ef4cd3d07a7b43ce.PDS:108:81
\|
108 \| access(self) let withdrawCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:112:54
\|
112 \| access(self) let operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:112:74
\|
112 \| access(self) let operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:112:73
\|
112 \| access(self) let operatorCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:136:62
\|
136 \| access(all) fun revealPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:136:61
\|
136 \| access(all) fun revealPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:143:60
\|
143 \| access(all) fun openPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, recvCap: &{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:143:59
\|
143 \| access(all) fun openPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, recvCap: &{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> ef4cd3d07a7b43ce.PDS:311:64
\|
311 \| withdrawCap: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:312:37
\|
312 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:312:57
\|
312 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:312:56
\|
312 \| operatorCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^

error: mismatched types
--\> ef4cd3d07a7b43ce.PDS:315:25
\|
315 \| withdrawCap: withdrawCap,
\| ^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: mismatched types
--\> ef4cd3d07a7b43ce.PDS:161:31
\|
161 \| self.withdrawCap = withdrawCap
\| ^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:248:23
\|
248 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:248:22
\|
248 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:270:23
\|
270 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:270:22
\|
270 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^^^^^^^^^^^^^^^
| +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:1258:78
\|
1258 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:598:78
\|
598 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:424:95
\|
424 \| access(contract) let nftProviderCapability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:1302:78
\|
1302 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> e1d43e0cfc237807.Flowty:627:41
\|
627 \| self.nftProviderCapability = nftProviderCapability
\| ^^^^^^^^^^^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: mismatched types
--\> e1d43e0cfc237807.Flowty:1335:39
\|
1335 \| nftProviderCapability: nftProviderCapability,
\| ^^^^^^^^^^^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: resource \`Flowty.FlowtyStorefront\` does not conform to resource interface \`Flowty.FlowtyStorefrontManager\`
--\> e1d43e0cfc237807.Flowty:1291:25
\|
1291 \| access(all) resource FlowtyStorefront : FlowtyStorefrontManager, FlowtyStorefrontPublic, Burner.Burnable {
\| ^
...
\|
1300 \| access(List \| Owner) fun createListing(
\| \-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here
| +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ❌

Error:
error: error getting program e1d43e0cfc237807.Flowty: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:1258:78

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:598:78

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:424:95

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.Flowty:1302:78

error: mismatched types
--\> e1d43e0cfc237807.Flowty:627:41

error: mismatched types
--\> e1d43e0cfc237807.Flowty:1335:39

error: resource \`Flowty.FlowtyStorefront\` does not conform to resource interface \`Flowty.FlowtyStorefrontManager\`
--\> e1d43e0cfc237807.Flowty:1291:25

--\> e1d43e0cfc237807.Flowty

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:308:74
\|
308 \| renterNFTProvider: Capability?
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:957:74
\|
957 \| renterNFTProvider: Capability?
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:1064:78
\|
1064 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flowty\`
--\> e1d43e0cfc237807.FlowtyRentals:1073:24
\|
1073 \| paymentCut: Flowty.PaymentCut,
\| ^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flowty\`
--\> e1d43e0cfc237807.FlowtyRentals:265:24
\|
265 \| paymentCut: Flowty.PaymentCut,
\| ^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flowty\`
--\> e1d43e0cfc237807.FlowtyRentals:226:37
\|
226 \| access(self) let paymentCut: Flowty.PaymentCut
\| ^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flowty\`
--\> e1d43e0cfc237807.FlowtyRentals:243:46
\|
243 \| access(all) view fun getPaymentCut(): Flowty.PaymentCut {
\| ^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:539:78
\|
539 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flowty\`
--\> e1d43e0cfc237807.FlowtyRentals:548:24
\|
548 \| paymentCut: Flowty.PaymentCut,
\| ^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:349:95
\|
349 \| access(contract) let nftProviderCapability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:395:74
\|
395 \| renterNFTProvider: Capability?
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:727:74
\|
727 \| renterNFTProvider: Capability?
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:709:91
\|
709 \| access(contract) let renterNFTProvider: Capability?
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:989:74
\|
989 \| renterNFTProvider: Capability?
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> e1d43e0cfc237807.FlowtyRentals:1097:78
\|
1097 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flowty\`
--\> e1d43e0cfc237807.FlowtyRentals:1106:24
\|
1106 \| paymentCut: Flowty.PaymentCut,
\| ^^^^^^ not found in this scope

error: cannot use optional chaining: type \`Capability<&{FlowtyRentals.FlowtyRentalsStorefrontPublic}>\` is not optional
--\> e1d43e0cfc237807.FlowtyRentals:1226:15
\|
1226 \| return getAccount(addr).capabilities.get<&{FlowtyRentalsStorefrontPublic}>(FlowtyRentals.FlowtyRentalsStorefrontPublicPath)?.borrow() ?? nil
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: mismatched types
--\> e1d43e0cfc237807.FlowtyRentals:559:41
\|
559 \| self.nftProviderCapability = nftProviderCapability
\| ^^^^^^^^^^^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: mismatched types
--\> e1d43e0cfc237807.FlowtyRentals:445:35
\|
445 \| renterNFTProvider: renterNFTProvider
\| ^^^^^^^^^^^^^^^^^ expected \`(Capability)?\`, got \`(Capability)?\`

error: cannot find variable in this scope: \`Flowty\`
--\> e1d43e0cfc237807.FlowtyRentals:514:47
\|
514 \| let remaining = Fix64(listedTime + Flowty.SuspendedFundingPeriod) - Fix64(currentTime)
\| ^^^^^^ not found in this scope

error: resource \`FlowtyRentals.Listing\` does not conform to resource interface \`FlowtyRentals.ListingPublic\`
--\> e1d43e0cfc237807.FlowtyRentals:332:25
\|
332 \| access(all) resource Listing: ListingPublic, FlowtyListingCallback.Listing, Burner.Burnable {
\| ^
...
\|
391 \| access(all) fun rent(
\| \-\-\-\- mismatch here

error: mismatched types
--\> e1d43e0cfc237807.FlowtyRentals:733:37
\|
733 \| self.renterNFTProvider = renterNFTProvider
\| ^^^^^^^^^^^^^^^^^ expected \`(Capability)?\`, got \`(Capability)?\`

error: mismatched types
--\> e1d43e0cfc237807.FlowtyRentals:1008:35
\|
1008 \| renterNFTProvider: renterNFTProvider
\| ^^^^^^^^^^^^^^^^^ expected \`(Capability)?\`, got \`(Capability)?\`

error: resource \`FlowtyRentals.FlowtyRentalsMarketplace\` does not conform to resource interface \`FlowtyRentals.FlowtyRentalsMarketplaceManager\`
--\> e1d43e0cfc237807.FlowtyRentals:970:25
\|
970 \| access(all) resource FlowtyRentalsMarketplace: FlowtyRentalsMarketplaceManager, FlowtyRentalsMarketplacePublic, Burner.Burnable {
\| ^
...
\|
976 \| access(contract) fun createRental(
\| \-\-\-\-\-\-\-\-\-\-\-\- mismatch here

error: mismatched types
--\> e1d43e0cfc237807.FlowtyRentals:1122:39
\|
1122 \| nftProviderCapability: nftProviderCapability,
\| ^^^^^^^^^^^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`
| +| 0xd8f6346999b983f5 | IPackNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:102:41
\|
102 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun reveal(openRequest: Bool)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:103:41
\|
103 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun open()
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0xd704ee8202a0d82d | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> d704ee8202a0d82d.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | Royalties | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:160:8
\|
160 \| ): \$&NFTStorefrontV2.SaleCut\$& {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:161:23
\|
161 \| let saleCuts: \$&NFTStorefrontV2.SaleCut\$& = \$&\$&
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:164:28
\|
164 \| saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut \* salePrice))
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowverseSocks | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseSocks:142:43
\|
142 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25
\|
111 \| access(all) resource Collection: FlowverseSocksCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
142 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowverseTreasures | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseTreasures:628:43
\|
628 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowverseTreasures.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseTreasures:596:25
\|
596 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
628 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | Ordinal | ❌

Error:
error: error getting program c7c122b5b811de8e.OrdinalVendor: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseSocks:142:43

error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

error: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseShirt:238:43

error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25

--\> c7c122b5b811de8e.FlowverseShirt

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:94

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:203:93

error: cannot find variable in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:127

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:203:47

error: cannot find type in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:88

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:210:87

error: cannot find variable in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:136

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:210:41

error: cannot find type in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:88

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:217:87

error: cannot find variable in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:122

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:217:41

--\> c7c122b5b811de8e.OrdinalVendor

error: cannot find type in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:194:33
\|
194 \| access(all) resource Minter: OrdinalVendor.IMinter {
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.Ordinal:262:43
\|
262 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:183:19
\|
183 \| assert(OrdinalVendor.checkDomainAvailability(domain: data), message: "domain already exists")
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:83:38
\|
83 \| let isOrdinalRestricted = OrdinalVendor.checkOrdinalRestricted(id: self.id)
\| ^^^^^^^^^^^^^ not found in this scope

error: resource \`Ordinal.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.Ordinal:230:25
\|
230 \| access(all) resource Collection: CollectionPublic, CollectionUpdate, NonFungibleToken.Collection {
\| ^
...
\|
262 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | OrdinalVendor | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseSocks:142:43

error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

error: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseShirt:238:43

error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25

--\> c7c122b5b811de8e.FlowverseShirt

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:94
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:203:93
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:127
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:203:47
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:88
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:210:87
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:136
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:210:41
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:88
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:217:87
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:122
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:217:41
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

--\> c7c122b5b811de8e.FlowversePrimarySale

error: cannot find type in this scope: \`FlowversePrimarySale\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:12:33
\|
12 \| access(all) resource Minter: FlowversePrimarySale.IMinter {
\| ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:19:25
\|
19 \| init(setMinter: @FlowversePass.SetMinter) {
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:13:37
\|
13 \| access(self) let setMinter: @FlowversePass.SetMinter
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:24:45
\|
24 \| access(all) fun createMinter(setMinter: @FlowversePass.SetMinter): @Minter {
\| ^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1101:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1127:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1184:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1198:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1207:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1221:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1233:41

error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25

error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25

--\> 877931736ee77cff.TopShot

error: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :40:0
\|
40 \| pub contract Market {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub resource interface SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:8
\|
62 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:8
\|
68 \| pub fun getPrice(tokenID: UInt64): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:8
\|
69 \| pub fun getIDs(): \$&UInt64\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:8
\|
70 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub resource SaleCollection: SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun listForSale(token: @TopShot.NFT, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub fun withdraw(tokenID: UInt64): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :166:8
\|
166 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :198:8
\|
198 \| pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :209:8
\|
209 \| pub fun changePercentage(\_ newPercent: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :216:8
\|
216 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :225:8
\|
225 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :227:73
\|
227 \| newBeneficiaryCapability.borrow<&DapperUtilityCoin.Vault{FungibleToken.Receiver}>() != nil:
\| ^^^^^^^^^^^^^

--\> 547f177b243b4d80.Market

error: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :46:0
\|
46 \| pub contract TopShotMarketV3 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let marketStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub let marketPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:4
\|
79 \| pub resource SaleCollection: Market.SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:8
\|
101 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub fun listForSale(tokenID: UInt64, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub fun cancelSale(tokenID: UInt64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:8
\|
196 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :247:8
\|
247 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:8
\|
259 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:8
\|
272 \| pub fun getPrice(tokenID: UInt64): UFix64? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :282:8
\|
282 \| pub fun getIDs(): \$&UInt64\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:8
\|
302 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :318:4
\|
318 \| pub fun createSaleCollection(ownerCollection: Capability<&TopShot.Collection>,
\| ^^^

--\> 547f177b243b4d80.TopShotMarketV3

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:154:70
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:154:69
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:159:73
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:159:72
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:164:73
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:164:72
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:225:22
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:225:21
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:301:25
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:301:24
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:35
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:156:34
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:70
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:155:15
\|
155 \| return getAccount(address)
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:161:35
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:161:34
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:160:15
\|
160 \| return getAccount(address)
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:166:35
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:166:34
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`TopShotMarketV3\`
--\> c7c122b5b811de8e.BulkPurchase:166:55
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:165:15
\|
165 \| return getAccount(address)
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`TopShot\`
--\> c7c122b5b811de8e.BulkPurchase:322:63
\|
322 \| let receiverCapability = nftReceiverCapabilities\$&Type<@TopShot.NFT>().identifier\$&
\| ^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:322:57
\|
322 \| let receiverCapability = nftReceiverCapabilities\$&Type<@TopShot.NFT>().identifier\$&
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`TopShot\`
--\> c7c122b5b811de8e.BulkPurchase:333:31
\|
333 \| order.setNFTType(Type<@TopShot.NFT>())
\| ^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:333:25
\|
333 \| order.setNFTType(Type<@TopShot.NFT>())
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:353:42
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:353:41
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:354:45
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:354:44
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:355:45
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:355:44
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowverseShirt | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseShirt:238:43
\|
238 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25
\|
206 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
238 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowversePrimarySale | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass
| +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowversePass | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43
\|
593 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25
\|
561 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
593 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowverseTreasures: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseTreasures:628:43

error: resource \`FlowverseTreasures.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseTreasures:596:25

--\> c7c122b5b811de8e.FlowverseTreasures

error: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

--\> c7c122b5b811de8e.FlowversePrimarySale

error: cannot find type in this scope: \`FlowversePrimarySale\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:12:33
\|
12 \| access(all) resource Minter: FlowversePrimarySale.IMinter {
\| ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:19:25
\|
19 \| init(setMinter: @FlowverseTreasures.SetMinter) {
\| ^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:13:37
\|
13 \| access(self) let setMinter: @FlowverseTreasures.SetMinter
\| ^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:24:45
\|
24 \| access(all) fun createMinter(setMinter: @FlowverseTreasures.SetMinter): @Minter {
\| ^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ❌

Error:
error: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> b668e8c9726ef26b.FanTopToken:222:25

--\> b668e8c9726ef26b.FanTopToken
| +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:229:43
\|
229 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:239:43
\|
239 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun batchWithdraw(ids: \$&UInt64\$&): @{NonFungibleToken.Collection} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> b668e8c9726ef26b.FanTopToken:222:25
\|
222 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {
\| ^
...
\|
229 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xb668e8c9726ef26b | FanTopMarket | ❌

Error:
error: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> b668e8c9726ef26b.FanTopToken:222:25

--\> b668e8c9726ef26b.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopMarket:61:67
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:61:92
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopMarket:53:84
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:53:109
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:75:42
\|
75 \| access(contract) fun withdraw(): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:80:51
\|
80 \| view access(all) fun borrowFanTopToken(): &FanTopToken.NFT? {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopMarket:207:63
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:207:88
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:284:95
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> b668e8c9726ef26b.FanTopMarket:284:94
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:76:89
\|
76 \| let token <- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT
\| ^^^^^^^^^^^ not found in this scope
| +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ❌

Error:
error: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> b668e8c9726ef26b.FanTopToken:222:25

--\> b668e8c9726ef26b.FanTopToken

error: error getting program b668e8c9726ef26b.FanTopMarket: failed to derive value: load program failed: Checking failed:
error: error getting program b668e8c9726ef26b.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> b668e8c9726ef26b.FanTopToken:222:25

--\> b668e8c9726ef26b.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopMarket:61:67

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:61:92

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopMarket:53:84

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:53:109

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:75:42

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:80:51

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopMarket:207:63

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:207:88

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:284:95

error: ambiguous intersection type
--\> b668e8c9726ef26b.FanTopMarket:284:94

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopMarket:76:89

--\> b668e8c9726ef26b.FanTopMarket

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:114:118
\|
114 \| access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:118:156
\|
118 \| access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:139:79
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> b668e8c9726ef26b.FanTopPermissionV2a:139:78
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:155:67
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:155:92
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:74:12
\|
74 \| FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:86:12
\|
86 \| FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:90:12
\|
90 \| FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:94:12
\|
94 \| FanTopToken.updateLimit(itemId: itemId, limit: limit)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:98:12
\|
98 \| FanTopToken.updateActive(itemId: itemId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:115:22
\|
115 \| return <- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:119:22
\|
119 \| return <- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:136:12
\|
136 \| FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:140:12
\|
140 \| FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:144:12
\|
144 \| FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:202:12
\|
202 \| FanTopMarket.sell(
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:218:16
\|
218 \| FanTopMarket.containsOrder(orderId): "Order is not exists"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:219:16
\|
219 \| FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): "Cancel account is not match order account"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> b668e8c9726ef26b.FanTopPermissionV2a:222:12
\|
222 \| FanTopMarket.cancel(agent: nil, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope
| +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:513:70
\|
513 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:458:70
\|
458 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:252:90
\|
252 \| access(contract) let nftProviderCapability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:580:70
\|
580 \| nftProviderCapability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> b051bdaddb672a33.NFTStorefrontV2:486:33
\|
486 \| self.nftProviderCapability = nftProviderCapability
\| ^^^^^^^^^^^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: mismatched types
--\> b051bdaddb672a33.NFTStorefrontV2:616:28
\|
616 \| nftProviderCapability: nftProviderCapability,
\| ^^^^^^^^^^^^^^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: resource \`NFTStorefrontV2.Storefront\` does not conform to resource interface \`NFTStorefrontV2.StorefrontManager\`
--\> b051bdaddb672a33.NFTStorefrontV2:563:23
\|
563 \| access(all) resource Storefront : StorefrontManager, StorefrontPublic, PrivateListingAcceptor, Burner.Burnable {
\| ^
...
\|
579 \| access(List \| Owner) fun createListing(
\| \-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here
| +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ❌

Error:
error: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> a47a2d3a3b7e9133.FanTopToken:222:25

--\> a47a2d3a3b7e9133.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopMarket:61:67
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:61:92
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopMarket:53:84
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:53:109
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:75:42
\|
75 \| access(contract) fun withdraw(): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:80:51
\|
80 \| view access(all) fun borrowFanTopToken(): &FanTopToken.NFT? {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopMarket:207:63
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:207:88
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:284:95
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a47a2d3a3b7e9133.FanTopMarket:284:94
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:76:89
\|
76 \| let token <- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT
\| ^^^^^^^^^^^ not found in this scope
| +| 0xa47a2d3a3b7e9133 | FanTopPermission | ❌

Error:
error: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> a47a2d3a3b7e9133.FanTopToken:222:25

--\> a47a2d3a3b7e9133.FanTopToken
| +| 0xa47a2d3a3b7e9133 | FanTopToken | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:229:43
\|
229 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:239:43
\|
239 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun batchWithdraw(ids: \$&UInt64\$&): @{NonFungibleToken.Collection} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> a47a2d3a3b7e9133.FanTopToken:222:25
\|
222 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {
\| ^
...
\|
229 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ❌

Error:
error: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> a47a2d3a3b7e9133.FanTopToken:222:25

--\> a47a2d3a3b7e9133.FanTopToken

error: error getting program a47a2d3a3b7e9133.FanTopMarket: failed to derive value: load program failed: Checking failed:
error: error getting program a47a2d3a3b7e9133.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:229:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopToken:239:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> a47a2d3a3b7e9133.FanTopToken:222:25

--\> a47a2d3a3b7e9133.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopMarket:61:67

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:61:92

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopMarket:53:84

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:53:109

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:75:42

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:80:51

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopMarket:207:63

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:207:88

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:284:95

error: ambiguous intersection type
--\> a47a2d3a3b7e9133.FanTopMarket:284:94

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopMarket:76:89

--\> a47a2d3a3b7e9133.FanTopMarket

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:114:118
\|
114 \| access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:118:156
\|
118 \| access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:139:79
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:139:78
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:155:67
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:155:92
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:74:12
\|
74 \| FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:86:12
\|
86 \| FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:90:12
\|
90 \| FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:94:12
\|
94 \| FanTopToken.updateLimit(itemId: itemId, limit: limit)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:98:12
\|
98 \| FanTopToken.updateActive(itemId: itemId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:115:22
\|
115 \| return <- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:119:22
\|
119 \| return <- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:136:12
\|
136 \| FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:140:12
\|
140 \| FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:144:12
\|
144 \| FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:202:12
\|
202 \| FanTopMarket.sell(
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:218:16
\|
218 \| FanTopMarket.containsOrder(orderId): "Order is not exists"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:219:16
\|
219 \| FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): "Cancel account is not match order account"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> a47a2d3a3b7e9133.FanTopPermissionV2a:222:12
\|
222 \| FanTopMarket.cancel(agent: nil, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope
| +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ❌

Error:
error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:102:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:103:41

--\> d8f6346999b983f5.IPackNFT

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:8:48
\|
8 \| access(all) contract PackNFT: NonFungibleToken, IPackNFT {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:45:42
\|
45 \| access(all) resource PackNFTOperator: IPackNFT.IOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:144:52
\|
144 \| access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:144:66
\|
144 \| access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:144:90
\|
144 \| access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:209:66
\|
209 \| access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:50:15
\|
50 \| access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:50:98
\|
50 \| access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:50:97
\|
50 \| access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {
\| ^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:61:15
\|
61 \| access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:61:64
\|
61 \| access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:61:63
\|
61 \| access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:69:15
\|
69 \| access(IPackNFT.Operate) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:69:62
\|
69 \| access(IPackNFT.Operate) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:69:61
\|
69 \| access(IPackNFT.Operate) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:97:41
\|
97 \| access(self) fun \_verify(nfts: \$&{IPackNFT.Collectible}\$&, salt: String, commitHash: String): String {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:97:40
\|
97 \| access(self) fun \_verify(nfts: \$&{IPackNFT.Collectible}\$&, salt: String, commitHash: String): String {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:112:56
\|
112 \| access(contract) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:112:55
\|
112 \| access(contract) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:120:54
\|
120 \| access(contract) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:120:53
\|
120 \| access(contract) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.PackNFT:158:41
\|
158 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun reveal(openRequest: Bool) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.PackNFT:164:40
\|
164 \| access(NonFungibleToken.Update \|NonFungibleToken.Owner) fun open() {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.PackNFT:223:43
\|
223 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:304:53
\|
304 \| access(all) fun publicReveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:304:52
\|
304 \| access(all) fun publicReveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:399:54
\|
399 \| self.account.capabilities.storage.issue<&{IPackNFT.IPackNFTCollectionPublic}>(self.CollectionStoragePath),
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:399:53
\|
399 \| self.account.capabilities.storage.issue<&{IPackNFT.IPackNFTCollectionPublic}>(self.CollectionStoragePath),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> a2526e2d9cc7f0d2.PackNFT:399:12
\|
399 \| self.account.capabilities.storage.issue<&{IPackNFT.IPackNFTCollectionPublic}>(self.CollectionStoragePath),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:405:50
\|
405 \| self.account.capabilities.storage.issue<&{IPackNFT.IOperator}>(self.OperatorStoragePath)
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:405:49
\|
405 \| self.account.capabilities.storage.issue<&{IPackNFT.IOperator}>(self.OperatorStoragePath)
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> a2526e2d9cc7f0d2.PackNFT:405:8
\|
405 \| self.account.capabilities.storage.issue<&{IPackNFT.IOperator}>(self.OperatorStoragePath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: resource \`PackNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> a2526e2d9cc7f0d2.PackNFT:209:25
\|
209 \| access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {
\| ^
...
\|
223 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xa2526e2d9cc7f0d2 | Pinnacle | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1744:43
\|
1744 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1766:43
\|
1766 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun batchWithdraw(ids: \$&UInt64\$&): @{NonFungibleToken.Collection} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1803:41
\|
1803 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun addNFTInscription(id: UInt64): Int {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1815:41
\|
1815 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun removeNFTInscription(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1828:41
\|
1828 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun updateNFTInscriptionNote(id: UInt64, note: String, adminRef: &Admin) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1840:41
\|
1840 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun toggleNFTXP(id: UInt64): UInt64? {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1846:41
\|
1846 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun batchToggleXP(\_ activateAll: Bool) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:2565:81
\|
2565 \| access(all) view fun emitNFTUpdated(\_ nftRef: auth(NonFungibleToken.Update \| NonFungibleToken.Owner) &{NonFungibleToken.NFT}) {}
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: contract \`Pinnacle\` does not conform to contract interface \`NonFungibleToken\`
--\> a2526e2d9cc7f0d2.Pinnacle:50:21
\|
50 \| access(all) contract Pinnacle: NonFungibleToken {
\| ^
...
\|
2565 \| access(all) view fun emitNFTUpdated(\_ nftRef: auth(NonFungibleToken.Update \| NonFungibleToken.Owner) &{NonFungibleToken.NFT}) {}
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here

error: resource \`Pinnacle.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> a2526e2d9cc7f0d2.Pinnacle:1712:25
\|
1712 \| access(all) resource Collection: NonFungibleToken.Collection, PinNFTCollectionPublic {
\| ^
...
\|
1744 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x99ca04281098b33d | Art | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42
\|
266 \| access(NonFungibleToken.Withdraw \|NonFungibleToken.Owner)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13
\|
246 \| resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic, ViewResolver.ResolverCollection{
\| ^
...
\|
267 \| fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT}{
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x99ca04281098b33d | Versus | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: error getting program 99ca04281098b33d.Auction: failed to derive value: load program failed: Checking failed:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:438:20

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:443:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:443:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:458:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:458:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:67:22

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:41:22

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:184:18

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:189:45

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:189:44

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:134:18

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:169:49

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:169:48

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:177:45

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:177:44

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:216:47

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:216:46

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:359:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:359:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:34

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:169

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:499:168

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:557:145

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:557:144

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:573:16

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:578:36

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:578:35

--\> 99ca04281098b33d.Auction

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:564:40
\|
564 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:564:39
\|
564 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:138:28
\|
138 \| uniqueAuction: @Auction.AuctionItem,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:139:30
\|
139 \| editionAuctions: @Auction.AuctionCollection,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:108:28
\|
108 \| let uniqueAuction: @Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:111:30
\|
111 \| let editionAuctions: @Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:128:22
\|
128 \| let metadata: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:274:44
\|
274 \| fun getAuction(auctionId: UInt64): &Auction.AuctionItem{
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:296:40
\|
296 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:296:39
\|
296 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:442:30
\|
442 \| init(\_ auctionStatus: Auction.AuctionStatus){
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:508:26
\|
508 \| uniqueStatus: Auction.AuctionStatus,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:516:22
\|
516 \| metadata: Art.Metadata,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:495:22
\|
495 \| let metadata: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:603:104
\|
603 \| init(marketplaceVault: Capability<&{FungibleToken.Receiver}>, marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>, cutPercentage: UFix64){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:603:103
\|
603 \| init(marketplaceVault: Capability<&{FungibleToken.Receiver}>, marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>, cutPercentage: UFix64){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:601:46
\|
601 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:601:45
\|
601 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:717:168
\|
717 \| fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:717:167
\|
717 \| fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:840:166
\|
840 \| fun mintArt(artist: Address, artistName: String, artName: String, content: String, description: String, type: String, artistCut: UFix64, minterCut: UFix64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:861:29
\|
861 \| fun editionArt(art: &Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:861:77
\|
861 \| fun editionArt(art: &Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:866:39
\|
866 \| fun editionAndDepositArt(art: &Art.NFT, to: \$&Address\$&){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:941:46
\|
941 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}> =
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:941:45
\|
941 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}> =
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:942:35
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:942:34
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:942:58
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:942:8
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:165:52
\|
165 \| let uniqueRef = &self.uniqueAuction as &Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:166:55
\|
166 \| let editionRef = &self.editionAuctions as &Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:339:57
\|
339 \| let auctionRef = &self.uniqueAuction as &Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:350:60
\|
350 \| let editionsRef = &self.editionAuctions as &Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:631:32
\|
631 \| let art <- nft as! @Art.NFT
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:636:37
\|
636 \| let editionedAuctions <- Auction.createAuctionCollection(marketplaceVault: self.marketplaceVault, cutPercentage: self.cutPercentage)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:639:57
\|
639 \| editionedAuctions.createAuction(token: <-Art.makeEdition(original: &art as &Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:639:92
\|
639 \| editionedAuctions.createAuction(token: <-Art.makeEdition(original: &art as &Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:644:24
\|
644 \| let item <- Auction.createStandaloneAuction(token: <-art, minimumBidIncrement: minimumBidUniqueIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:814:54
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:814:76
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:814:23
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:855:37
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:855:98
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^^^ not found in this scope

error: cannot infer type from dictionary literal: requires an explicit type annotation
--\> 99ca04281098b33d.Versus:855:25
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:856:23
\|
856 \| let art <- Art.createArtWithPointer(name: artName, artist: artistName, artistAddress: artist, description: description, type: type, contentCapability: contentCapability, contentId: contentId, royalty: royalty)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:862:21
\|
862 \| return <-Art.makeEdition(original: art, edition: edition, maxEdition: maxEdition)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:870:36
\|
870 \| let editionedArt <- Art.makeEdition(original: art, edition: i, maxEdition: maxEdition)
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:872:63
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:872:62
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:872:86
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:872:36
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:873:17
\|
873 \| (collectionCap.borrow()!).deposit(token: <-editionedArt)
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:902:87
\|
902 \| return Versus.account.storage.borrow<&{NonFungibleToken.Collection}>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope
| +| 0x99ca04281098b33d | Auction | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:438:20
\|
438 \| token: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:443:40
\|
443 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:443:39
\|
443 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:458:40
\|
458 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:458:39
\|
458 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:67:22
\|
67 \| metadata: Art.Metadata?,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:41:22
\|
41 \| let metadata: Art.Metadata?
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:184:18
\|
184 \| NFT: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:189:45
\|
189 \| ownerCollectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:189:44
\|
189 \| ownerCollectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:134:18
\|
134 \| var NFT: @Art.NFT?
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:169:49
\|
169 \| var recipientCollectionCap: Capability<&{Art.CollectionPublic}>?
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:169:48
\|
169 \| var recipientCollectionCap: Capability<&{Art.CollectionPublic}>?
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:177:45
\|
177 \| let ownerCollectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:177:44
\|
177 \| let ownerCollectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:216:47
\|
216 \| fun sendNFT(\_ capability: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:216:46
\|
216 \| fun sendNFT(\_ capability: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:359:40
\|
359 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:359:39
\|
359 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:34
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:169
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:499:168
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:557:145
\|
557 \| fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:557:144
\|
557 \| fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:573:16
\|
573 \| token: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:578:36
\|
578 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:578:35
\|
578 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^
| +| 0x99ca04281098b33d | Marketplace | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:55:39
\|
55 \| recipientCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:55:38
\|
55 \| recipientCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:89:30
\|
89 \| init(id: UInt64, art: Art.Metadata, cacheKey: String, price: UFix64){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:81:17
\|
81 \| let art: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:107:31
\|
107 \| var forSale: @{UInt64: Art.NFT}
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:150:37
\|
150 \| fun borrowArt(id: UInt64): &{Art.Public}?{
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:150:36
\|
150 \| fun borrowArt(id: UInt64): &{Art.Public}?{
\| ^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:159:40
\|
159 \| fun withdraw(tokenID: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:170:32
\|
170 \| fun listForSale(token: @Art.NFT, price: UFix64){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:194:65
\|
194 \| fun purchase(tokenID: UInt64, recipientCap: Capability<&{Art.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:194:64
\|
194 \| fun purchase(tokenID: UInt64, recipientCap: Capability<&{Art.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:152:46
\|
152 \| return (&self.forSale\$&id\$& as &Art.NFT?)!
\| ^^^ not found in this scope
| +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x877931736ee77cff | TopShot | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1101:43
\|
1101 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1127:43
\|
1127 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun batchWithdraw(ids: \$&UInt64\$&): @{NonFungibleToken.Collection} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1184:41
\|
1184 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun lock(id: UInt64, duration: UFix64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1198:41
\|
1198 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun batchLock(ids: \$&UInt64\$&, duration: UFix64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1207:41
\|
1207 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun unlock(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1221:41
\|
1221 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun batchUnlock(ids: \$&UInt64\$&) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1233:41
\|
1233 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun destroyMoments(ids: \$&UInt64\$&) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25
\|
1060 \| access(all) resource Collection: MomentCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
1063 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25
\|
1060 \| access(all) resource Collection: MomentCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
1101 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x8c5303eaa26202d6 | EVM | ❌

Error:
error: mismatched types
--\> 8c5303eaa26202d6.EVM:300:37
\|
300 \| return EVMAddress(bytes: addressBytes)
\| ^^^^^^^^^^^^ expected \`\$&UInt8; 20\$&\`, got \`AnyStruct\`
| +| 0x668df1b27a5da384 | FanTopMarket | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:61:67
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:61:92
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:53:84
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:53:109
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:75:42
\|
75 \| access(contract) fun withdraw(): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:80:51
\|
80 \| view access(all) fun borrowFanTopToken(): &FanTopToken.NFT? {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:207:63
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:207:88
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:284:95
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopMarket:284:94
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:76:89
\|
76 \| let token <- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT
\| ^^^^^^^^^^^ not found in this scope
| +| 0x668df1b27a5da384 | FanTopSerial | ✅ | +| 0x668df1b27a5da384 | FanTopToken | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43
\|
233 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43
\|
243 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun batchWithdraw(ids: \$&UInt64\$&): @{NonFungibleToken.Collection} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25
\|
226 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {
\| ^
...
\|
233 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x668df1b27a5da384 | FanTopPermissionV2a | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: error getting program 668df1b27a5da384.FanTopMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:61:67

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:61:92

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:53:84

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:53:109

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:75:42

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:80:51

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:207:63

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:207:88

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:284:95

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopMarket:284:94

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:76:89

--\> 668df1b27a5da384.FanTopMarket

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:114:118
\|
114 \| access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:118:156
\|
118 \| access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:139:79
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopPermissionV2a:139:78
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopPermissionV2a:155:67
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:155:92
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:74:12
\|
74 \| FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:86:12
\|
86 \| FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:90:12
\|
90 \| FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:94:12
\|
94 \| FanTopToken.updateLimit(itemId: itemId, limit: limit)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:98:12
\|
98 \| FanTopToken.updateActive(itemId: itemId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:115:22
\|
115 \| return <- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:119:22
\|
119 \| return <- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:136:12
\|
136 \| FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:140:12
\|
140 \| FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:144:12
\|
144 \| FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:201:12
\|
201 \| FanTopMarket.sell(
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:217:16
\|
217 \| FanTopMarket.containsOrder(orderId): "Order is not exists"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:218:16
\|
218 \| FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): "Cancel account is not match order account"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:221:12
\|
221 \| FanTopMarket.cancel(agent: nil, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope
| +| 0x668df1b27a5da384 | Signature | ✅ | +| 0x668df1b27a5da384 | FanTopPermission | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken
| +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | KaratNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.KaratNFT:179:43
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
\|
155 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
...
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:340:32
\|
340 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.GeneratedExperiences:258:43
\|
258 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:15
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:56
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:110
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:399:8
\|
399 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: use of previously moved resource
--\> 3e5b4c627064625d.GeneratedExperiences:271:43
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| ^^^^^ resource used here after move
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| \-\-\-\-\- resource previously moved here

error: resource \`GeneratedExperiences.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.GeneratedExperiences:221:25
\|
221 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
224 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`GeneratedExperiences.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.GeneratedExperiences:221:25
\|
221 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
258 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x3e5b4c627064625d | NFGv3 | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:284:32
\|
284 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.NFGv3:203:43
\|
203 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:15
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:56
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:110
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:15
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:67
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:121
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:328:8
\|
328 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: resource \`NFGv3.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.NFGv3:188:25
\|
188 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
203 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:341:32
\|
341 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.PartyFavorz:260:43
\|
260 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:15
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:56
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:110
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:15
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:67
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:121
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:396:8
\|
396 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: resource \`PartyFavorz.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.PartyFavorz:245:25
\|
245 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
260 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:380:36
\|
380 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.Flomies:242:43
\|
242 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:19
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:60
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:114
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:19
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:71
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:125
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:414:46
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 3e5b4c627064625d.Flomies:414:45
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:434:12
\|
434 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: resource \`Flomies.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 3e5b4c627064625d.Flomies:227:25
\|
227 \| access(all) resource Collection: NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
242 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | CharityNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.CharityNFT:190:43
\|
190 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`CharityNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.CharityNFT:179:25
\|
179 \| access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic , ViewResolver.ResolverCollection{
\| ^
...
\|
190 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:22:36
\|
22 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:163:71
\|
163 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:158:57
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:158:56
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:19:164
\|
19 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:106:38
\|
106 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:122:52
\|
122 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:170:47
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:170:46
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:168:60
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:168:59
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:175:41
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:175:40
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:360:57
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:360:56
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:369:83
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:369:82
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:373:133
\|
373 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:383:8
\|
383 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:384:8
\|
384 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:374:26
\|
374 \| if let tenantCap=FindMarket.getTenantCapability(marketplace) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:376:96
\|
376 \| return getAccount(user).capabilities.get<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:73:23
\|
73 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:99:19
\|
99 \| return FIND.reverseLookup(self.pointer.owner())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:123:19
\|
123 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:213:139
\|
213 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "buy item for sale"), seller: self.owner!.address, buyer: nftCap.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:224:26
\|
224 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:225:27
\|
225 \| let sellerName=FIND.reverseLookup(self.owner!.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:227:113
\|
227 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:"sold", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:234:21
\|
234 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:236:12
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:236:199
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:286:139
\|
286 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:295:115
\|
295 \| emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:311:24
\|
311 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:317:98
\|
317 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindForge | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57
\|
413 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49
\|
421 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57
\|
427 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46
\|
110 \| access(all) fun setMinterPlatform(lease: &FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49
\|
178 \| access(all) fun removeMinterPlatform(lease: &FIND.Lease, forgeType: Type) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39
\|
229 \| access(all) fun orderForge(lease: &FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34
\|
263 \| access(all) fun mint (lease: &FIND.Lease, forgeType: Type , data: AnyStruct, receiver: &{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44
\|
310 \| access(all) fun addContractData(lease: &FIND.Lease, forgeType: Type , data: AnyStruct) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19
\|
155 \| let user = FIND.lookupAddress(leaseName) ?? panic("Cannot find lease owner. Lease : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8
\|
234 \| FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8
\|
238 \| FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8
\|
242 \| FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20
\|
246 \| let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22
\|
272 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21
\|
302 \| let toName = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18
\|
303 \| let new = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22
\|
319 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24
\|
36 \| self.minter=FIND.lookupAddress(self.name)!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindForgeOrder | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND
| +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36
\|
17 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71
\|
175 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31
\|
452 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73
\|
501 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171
\|
13 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52
\|
80 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38
\|
108 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8
\|
695 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8
\|
696 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8
\|
697 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8
\|
698 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11
\|
661 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22
\|
664 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11
\|
671 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22
\|
674 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11
\|
685 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22
\|
688 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19
\|
65 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26
\|
74 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19
\|
81 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26
\|
211 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24
\|
214 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106
\|
219 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152
\|
236 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "add bid in direct offer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26
\|
246 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106
\|
251 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156
\|
269 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30
\|
282 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113
\|
287 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152
\|
302 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26
\|
325 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36
\|
330 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106
\|
332 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26
\|
354 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24
\|
357 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106
\|
362 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152
\|
384 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26
\|
402 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27
\|
403 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21
\|
415 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | Profile | ❌

Error:
error: conformances do not match in \`User\`: missing \`Owner\`
--\> 35717efbbce11c74.Profile:328:25
\|
328 \| access(all) resource User: Public, FungibleToken.Receiver {
\| ^^^^
| +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16
\|
154 \| if !cap.check() {
\| ^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22
\|
157 \| let ref = cap.borrow()!
\| ^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:189:71
\|
189 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:533:31
\|
533 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:586:73
\|
586 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:14:171
\|
14 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:74:38
\|
74 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:120:52
\|
120 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:47
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:46
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:60
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:59
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:41
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:40
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:57
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:56
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:93
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:92
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:60
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:59
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:41
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:40
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:55
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:54
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:83
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:82
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:131
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:130
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:774:8
\|
774 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:775:8
\|
775 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:776:8
\|
776 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:777:8
\|
777 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:754:11
\|
754 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:757:22
\|
757 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:764:11
\|
764 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:767:22
\|
767 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:106:19
\|
106 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:114:26
\|
114 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:121:19
\|
121 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:234:26
\|
234 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:237:24
\|
237 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:242:134
\|
242 \| emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:260:150
\|
260 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:270:26
\|
270 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:275:106
\|
275 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:293:183
\|
293 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:304:30
\|
304 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:309:113
\|
309 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:325:150
\|
325 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:348:26
\|
348 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:353:36
\|
353 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:356:106
\|
356 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:378:26
\|
378 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:381:24
\|
381 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:386:106
\|
386 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:413:150
\|
413 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:427:26
\|
427 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:432:106
\|
432 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:457:150
\|
457 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:470:26
\|
470 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:471:27
\|
471 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:486:21
\|
486 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:12
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:187
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: resource \`FindMarketDirectOfferSoft.SaleItemCollection\` does not conform to resource interface \`FindMarketDirectOfferSoft.SaleItemCollectionPublic\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:189:25
\|
189 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^
...
\|
207 \| access(all) fun isAcceptedDirectOffer(\_ id:UInt64) : Bool{
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:7:86
\|
7 \| access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:14:22
\|
14 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:16:43
\|
16 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:22:22
\|
22 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:24:43
\|
24 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:260:71
\|
260 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:657:31
\|
657 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:708:73
\|
708 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:102:52
\|
102 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:193:38
\|
193 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:47
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:46
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:60
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:59
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:41
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:40
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:57
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:56
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:93
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:92
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:60
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:59
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:41
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:40
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:55
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:54
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:83
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:82
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:131
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:130
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:864:8
\|
864 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:865:8
\|
865 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:866:8
\|
866 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:867:8
\|
867 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:844:11
\|
844 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:847:22
\|
847 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:854:11
\|
854 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:857:22
\|
857 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:85:19
\|
85 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:97:23
\|
97 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:103:19
\|
103 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:194:19
\|
194 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:290:147
\|
290 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "add bit in soft-auction"), seller: self.owner!.address ,buyer: buyer)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:333:36
\|
333 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:336:26
\|
336 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:338:110
\|
338 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:388:146
\|
388 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:416:26
\|
416 \| let buyerName=FIND.reverseLookup(callback.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:418:123
\|
418 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:452:24
\|
452 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:458:30
\|
458 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:460:114
\|
460 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:462:114
\|
462 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:518:146
\|
518 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:537:26
\|
537 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:538:27
\|
538 \| let sellerName=FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:540:110
\|
540 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:549:21
\|
549 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:12
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:146
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:592:163
\|
592 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:612:126
\|
612 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: "active\_listed", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32
\|
1156 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79
\|
307 \| init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38
\|
305 \| access(all) let verifierRef: &FindForge.Verifier
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43
\|
833 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8
\|
1220 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8
\|
1223 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25
\|
612 \| access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {
\| ^
...
\|
833 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71
\|
228 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31
\|
529 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73
\|
579 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22
\|
32 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38
\|
19 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40
\|
91 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38
\|
181 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51
\|
463 \| access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118
\|
706 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115
\|
716 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8
\|
727 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8
\|
728 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8
\|
729 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8
\|
730 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11
\|
707 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22
\|
710 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81
\|
711 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11
\|
717 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22
\|
720 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82
\|
721 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19
\|
70 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23
\|
86 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19
\|
92 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19
\|
182 \| return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26
\|
254 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36
\|
261 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30
\|
265 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30
\|
266 \| let profile = FIND.lookup(buyer!.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138
\|
267 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138
\|
269 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167
\|
280 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"add bit in soft-auction"), seller: self.owner!.address ,buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167
\|
361 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167
\|
405 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item from soft-auction"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167
\|
443 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12
\|
457 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167
\|
482 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38
\|
621 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32
\|
629 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37
\|
325 \| access(all) fun getLease() : FIND.LeaseInformation
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37
\|
352 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37
\|
401 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41
\|
666 \| access(contract) fun getNetwork() : &FIND.Network {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15
\|
30 \| return FindMarket.getTenantCapability(tenant)!.borrow()!
\| ^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29
\|
46 \| if let cap = getAccount(address).capabilities.get<&{FindLeaseMarket.SaleItemCollectionPublic}>(tenantRef.getPublicPath(type)) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\`

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15
\|
58 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20
\|
70 \| let address=FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22
\|
87 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31
\|
100 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22
\|
110 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31
\|
114 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22
\|
124 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31
\|
128 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137
\|
168 \| let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140
\|
183 \| let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15
\|
224 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31
\|
245 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25
\|
443 \| let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35
\|
449 \| let findName = FIND.reverseLookup(cut.getAddress())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8
\|
673 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8
\|
674 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8
\|
679 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8
\|
680 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8
\|
685 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8
\|
686 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8
\|
691 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8
\|
692 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26
\|
337 \| let address = FIND.lookupAddress(name) ?? panic("This lease name is not owned")
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32
\|
477 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39
\|
479 \| } else if status.status == FIND.LeaseStatus.LOCKED {
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31
\|
418 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73
\|
470 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177
\|
16 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22
\|
27 \| init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability<&{MarketBidCollectionPublic}>, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38
\|
69 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40
\|
119 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51
\|
131 \| access(contract) fun setPointer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50
\|
328 \| access(Seller) fun acceptOffer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118
\|
614 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115
\|
625 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8
\|
636 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8
\|
637 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8
\|
638 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8
\|
639 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12
\|
615 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22
\|
618 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81
\|
620 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12
\|
626 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22
\|
629 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82
\|
630 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43
\|
50 \| let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19
\|
105 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26
\|
113 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19
\|
120 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167
\|
207 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"cancel bid in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26
\|
223 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26
\|
224 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26
\|
226 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36
\|
233 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130
\|
236 \| emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167
\|
247 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27
\|
262 \| let item = FindLeaseMarket.ReadLeasePointer(name: name)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171
\|
264 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167
\|
281 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167
\|
314 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"reject offer in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167
\|
339 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167
\|
366 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12
\|
377 \| FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo: leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FindLeaseMarketDirectOfferSoft.SaleItemCollection\` does not conform to resource interface \`FindLeaseMarketDirectOfferSoft.SaleItemCollectionPublic\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:25
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^
...
\|
187 \| access(all) fun isAcceptedDirectOffer(\_ name:String) : Bool{
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38
\|
514 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32
\|
532 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:264:71
\|
264 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:707:31
\|
707 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:756:73
\|
756 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:106:52
\|
106 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:197:38
\|
197 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:47
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:46
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:60
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:59
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:41
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:40
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:57
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:56
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:93
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:92
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:60
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:59
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:41
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:40
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:55
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:54
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:83
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:82
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:131
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:130
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:900:118
\|
900 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:910:115
\|
910 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:921:8
\|
921 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:922:8
\|
922 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:923:8
\|
923 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:924:8
\|
924 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:901:11
\|
901 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:904:22
\|
904 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:905:81
\|
905 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:911:11
\|
911 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:914:22
\|
914 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:915:82
\|
915 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:89:19
\|
89 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:101:23
\|
101 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:107:19
\|
107 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:198:19
\|
198 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:292:148
\|
292 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"add bid in auction"), seller: self.owner!.address, buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:337:36
\|
337 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:342:26
\|
342 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:344:110
\|
344 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:400:148
\|
400 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid in auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:429:26
\|
429 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:431:110
\|
431 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:497:24
\|
497 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:504:30
\|
504 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:506:114
\|
506 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:508:114
\|
508 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:538:152
\|
538 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill auction"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:560:30
\|
560 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:561:33
\|
561 \| let sellerName = FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:572:25
\|
572 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:16
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:189
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:635:148
\|
635 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:662:113
\|
662 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:14:141
\|
14 \| access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: \$&String\$&, nfts:\$&FindMarket.NFTInfo\$&, tags: \$&String\$&, quoteOwner: Address?, quoteId: UInt64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:154:73
\|
154 \| emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:167:68
\|
167 \| emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:56
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:111
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:268:24
\|
268 \| let nfts : \$&FindMarket.NFTInfo\$& = \$&\$&
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:273:28
\|
273 \| nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:282:30
\|
282 \| let creatorName = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:307:23
\|
307 \| name = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:309:80
\|
309 \| emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25
\|
46 \| let senderName = FIND.reverseLookup(sender)
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29
\|
63 \| if let receiverCap = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(collectionPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{NonFungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83
\|
76 \| emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37
\|
82 \| if let collectionPublicCap = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Collection}>(collectionPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{NonFungibleToken.Collection}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79
\|
95 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32
\|
124 \| flowTokenRepayment: flowTokenRepayment
\| ^^^^^^^^^^^^^^^^^^ expected \`Capability<&FlowToken.Vault>?\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70
\|
129 \| emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77
\|
140 \| emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: "invalid capability")
\| ^^^^ not found in this scope

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8
\|
154 \| shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)
\| ^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25
\|
162 \| senderName = FIND.reverseLookup(sender!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67
\|
164 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69
\|
165 \| emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | Dandy | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:348:32
\|
348 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:63:119
\|
63 \| init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:61:39
\|
61 \| access(contract) let platform: FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:87:46
\|
87 \| access(all) fun getMinterPlatform() : FindForge.MinterPlatform {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.Dandy:240:43
\|
240 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:15
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:56
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:110
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:333:109
\|
333 \| access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: \$&AnyStruct\$&, externalUrlPrefix:String?) : @NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:360:42
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Dandy:360:41
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:388:8
\|
388 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:390:8
\|
390 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:88:27
\|
88 \| if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:89:50
\|
89 \| let platform = &self.platform as &FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope

error: resource \`Dandy.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.Dandy:225:25
\|
225 \| access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {
\| ^
...
\|
240 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119
\|
12 \| access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135
\|
13 \| access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21
\|
18 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23
\|
20 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22
\|
27 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21
\|
68 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23
\|
70 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22
\|
78 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23
\|
81 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21
\|
100 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23
\|
102 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22
\|
110 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23
\|
115 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAdmin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:26:57
\|
26 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:32:49
\|
32 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:34:57
\|
34 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:91
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:133
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:58:51
\|
58 \| access(Owner) fun getFindMarketClient(): &FindMarket.TenantClient{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:129:61
\|
129 \| access(Owner) fun getTenantRef(\_ tenant: Address) : &FindMarket.Tenant {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:139:66
\|
139 \| access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:155:64
\|
155 \| access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:171:69
\|
171 \| access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:47:20
\|
47 \| return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:55:12
\|
55 \| FindMarket.removeFindMarketTenant(tenant: tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:63:23
\|
63 \| let path = FindMarket.TenantClientStoragePath
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:63
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:94
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:64:19
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:74:12
\|
74 \| FindMarket.addSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:81:12
\|
81 \| FindMarket.addMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:88:12
\|
88 \| FindMarket.addSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:95:12
\|
95 \| FindMarket.addMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:102:12
\|
102 \| FindMarket.removeSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:109:12
\|
109 \| FindMarket.removeMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:116:12
\|
116 \| FindMarket.removeSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:123:12
\|
123 \| FindMarket.removeMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:133:25
\|
133 \| let string = FindMarket.getTenantPathForAddress(tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:135:67
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:135:22
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:228:12
\|
228 \| FindMarket.setResidualAddress(address)
\| ^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarket | ❌

Error:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25
\|
315 \| if let cap = getAccount(address).capabilities.get<&{FindMarket.MarketBidCollectionPublic}>(tenantRef.getPublicPath(type)) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FindMarket.MarketBidCollectionPublic}>\`

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29
\|
1411 \| if sbRef.getVaultTypes().contains(ftInfo.type) {
\| ^^^^^^^^^^^^^ unknown member
| +| 0x35717efbbce11c74 | NameVoucher | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.NameVoucher:168:43
\|
168 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25
\|
228 \| let status = FIND.status(name)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32
\|
231 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: resource \`NameVoucher.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.NameVoucher:158:25
\|
158 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
168 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.NameVoucher:168:43

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28

error: resource \`NameVoucher.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.NameVoucher:158:25

--\> 35717efbbce11c74.NameVoucher

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:38:57
\|
38 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:44:49
\|
44 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:46:57
\|
46 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:156:110
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:156:109
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:59:12
\|
59 \| FindForge.addPublicForgeType(forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:67:12
\|
67 \| FindForge.addPrivateForgeType(name: name, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:75:12
\|
75 \| FindForge.removeForgeType(type: type)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:83:12
\|
83 \| FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.Admin:91:12
\|
91 \| FindForgeOrder.addMintType(mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:99:12
\|
99 \| FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:106:12
\|
106 \| FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:114:19
\|
114 \| return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:161:16
\|
161 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:174:16
\|
174 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:178:23
\|
178 \| let user = FIND.lookupAddress(name) ?? panic("Cannot find lease owner. Lease : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:58
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:179:57
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:87
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:188:16
\|
188 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:192:12
\|
192 \| FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:200:12
\|
200 \| FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:295:122
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:296:12
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:359:19
\|
359 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:57
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:87
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:367:27
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:368:19
\|
368 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:21:36
\|
21 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:132:71
\|
132 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:128:59
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:128:58
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:18:170
\|
18 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:33:22
\|
33 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:26:38
\|
26 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:94:38
\|
94 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:110:40
\|
110 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:138:47
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:138:46
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:136:60
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:136:59
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:143:41
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:143:40
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:201:48
\|
201 \| access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:269:59
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:269:58
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:279:83
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:279:82
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:283:138
\|
283 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:294:8
\|
294 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:295:8
\|
295 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:284:11
\|
284 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:287:22
\|
287 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:288:101
\|
288 \| return getAccount(user).capabilities.get<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:64:23
\|
64 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:25
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:19
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:87:19
\|
87 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:111:19
\|
111 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:174:183
\|
174 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy lease for sale"), seller: self.owner!.address, buyer: to)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:189:26
\|
189 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:190:26
\|
190 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:194:12
\|
194 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:196:123
\|
196 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:"sold", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:216:183
\|
216 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list lease for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:223:124
\|
223 \| emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:237:187
\|
237 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist lease for sale"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:243:126
\|
243 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:250:126
\|
250 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:252:126
\|
252 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FIND | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66
\|
1358 \| access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59
\|
1610 \| access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability<&{Profile.Public}>, leases: Capability<&{LeaseCollectionPublic}>) {
\| ^^^^^^^^^ not found in this scope

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63
\|
2110 \| if self.account.storage.borrow<&FUSD.Vault>(from: FUSD.VaultStoragePath) == nil {
\| ^^^^^^^^^^^^^^^^ unknown member

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25
\|
2112 \| let vault <- FUSD.createEmptyVault()
\| ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56
\|
2115 \| self.account.storage.save(<-vault, to: FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21
\|
2119 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65
\|
2121 \| self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)
\| ^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92
\|
2123 \| let capb = self.account.capabilities.storage.issue<&{FungibleToken.Vault}>(FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21
\|
2129 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68
\|
2131 \| self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)
\| ^^^^^^^^^^^^^^^^^^ unknown member

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25
\|
153 \| if let cap = account.capabilities.get<&{Profile.Public}>(Profile.publicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{Profile.Public}>\`

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25
\|
627 \| access(all) resource LeaseCollection: LeaseCollectionPublic {
\| ^
...
\|
1293 \| access(all) fun move(name: String, profile: Capability<&{Profile.Public}>, to: Capability<&LeaseCollection>) {
\| \-\-\-\- mismatch here

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78
\|
1633 \| let usdcCap = account.capabilities.get<&{FungibleToken.Receiver}>(FiatToken.VaultReceiverPubPath)!
\| ^^^^^^^^^ not found in this scope
| +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ❌

Error:
error: resource \`ScopedFTProviders.ScopedFTProvider\` does not conform to resource interface \`FungibleToken.Provider\`
--\> 31ad40c07a2a9788.ScopedFTProviders:47:25
\|
47 \| access(all) resource ScopedFTProvider: FungibleToken.Provider {
\| ^
...
\|
93 \| access(FungibleToken.Withdraw \| FungibleToken.Withdraw) fun withdraw(amount: UFix64): @{FungibleToken.Vault} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 31ad40c07a2a9788.ScopedNFTProviders:94:78
\|
94 \| access(all) init(provider: Capability, filters: \$&{NFTFilter}\$&, expiration: UFix64?) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 31ad40c07a2a9788.ScopedNFTProviders:81:78
\|
81 \| access(self) let provider: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 31ad40c07a2a9788.ScopedNFTProviders:128:43
\|
128 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 31ad40c07a2a9788.ScopedNFTProviders:160:61
\|
160 \| provider: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 31ad40c07a2a9788.ScopedNFTProviders:164:53
\|
164 \| return <- create ScopedNFTProvider(provider: provider, filters: filters, expiration: expiration)
\| ^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: mismatched types
--\> 31ad40c07a2a9788.ScopedNFTProviders:95:28
\|
95 \| self.provider = provider
\| ^^^^^^^^ expected \`Capability\`, got \`Capability\`

error: resource \`ScopedNFTProviders.ScopedNFTProvider\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 31ad40c07a2a9788.ScopedNFTProviders:80:25
\|
80 \| access(all) resource ScopedNFTProvider: NonFungibleToken.Provider {
\| ^
...
\|
128 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 2d59ec5158e3adae.HeroesOfTheFlow:292:43
\|
292 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`HeroesOfTheFlow.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 2d59ec5158e3adae.HeroesOfTheFlow:260:25
\|
260 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
292 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ❌

Error:
error: error getting program 877931736ee77cff.TopShot: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1101:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1127:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1184:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1198:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1207:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1221:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 877931736ee77cff.TopShot:1233:41

error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25

error: resource \`TopShot.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 877931736ee77cff.TopShot:1060:25

--\> 877931736ee77cff.TopShot

error: error getting program a2526e2d9cc7f0d2.Pinnacle: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1744:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1766:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1803:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1815:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1828:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1840:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:1846:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> a2526e2d9cc7f0d2.Pinnacle:2565:81

error: contract \`Pinnacle\` does not conform to contract interface \`NonFungibleToken\`
--\> a2526e2d9cc7f0d2.Pinnacle:50:21

error: resource \`Pinnacle.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> a2526e2d9cc7f0d2.Pinnacle:1712:25

--\> a2526e2d9cc7f0d2.Pinnacle

error: cannot find type in this scope: \`TopShot\`
--\> 2bd8210db3a8fe8a.NFTLocking:12:20
\|
12 \| if (type == Type<@TopShot.NFT>()) {
\| ^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 2bd8210db3a8fe8a.NFTLocking:12:14
\|
12 \| if (type == Type<@TopShot.NFT>()) {
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Pinnacle\`
--\> 2bd8210db3a8fe8a.NFTLocking:17:20
\|
17 \| if (type == Type<@Pinnacle.NFT>()) {
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 2bd8210db3a8fe8a.NFTLocking:17:14
\|
17 \| if (type == Type<@Pinnacle.NFT>()) {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Pinnacle\`
--\> 2bd8210db3a8fe8a.NFTLocking:19:23
\|
19 \| return (nftRef as! &Pinnacle.NFT).isLocked()
\| ^^^^^^^^ not found in this scope
| +| 0x2bd8210db3a8fe8a | Swap | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 2bd8210db3a8fe8a.Swap:209:88
\|
209 \| collectionProviderCapabilities: {String: Capability},
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 2bd8210db3a8fe8a.Swap:203:108
\|
203 \| access(contract) let collectionProviderCapabilities: {String: Capability}
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 2bd8210db3a8fe8a.Swap:791:14
\|
791 \| let nft <- providerReference.withdraw(withdrawID: proposedNft.nftID)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: mismatched types
--\> 2bd8210db3a8fe8a.Swap:214:41
\|
214 \| self.collectionProviderCapabilities = collectionProviderCapabilities
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`{String:Capability}\`, got \`{String:Capability}\`
| +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ❌

Error:
error: unsafe access modifiers on CapabilityFactory.Manager: the entitlements migration would grant references to this type CapabilityFactory.Owner, CapabilityFactory.Add, CapabilityFactory.Delete authorization, which is too permissive.
--\> 294e44e1ec6993c6.CapabilityFactory:42:4
\|
42 \| access(all) resource Manager: Getter {
43 \| /// Mapping of Factories indexed on Type of Capability they retrieve
44 \| access(all) let factories: {Type: {CapabilityFactory.Factory}}
45 \|
46 \| /// Retrieves a list of Types supported by contained Factories
47 \| ///
48 \| /// @return List of Types supported by the Manager
49 \| ///
50 \| access(all) view fun getSupportedTypes(): \$&Type\$& {
51 \| return self.factories.keys
52 \| }
53 \|
54 \| /// Retrieves a Factory from the Manager, returning it or nil if it doesn't exist
55 \| ///
56 \| /// @param t: Type the Factory is indexed on
57 \| ///
58 \| access(all) view fun getFactory(\_ t: Type): {CapabilityFactory.Factory}? {
59 \| return self.factories\$&t\$&
60 \| }
61 \|
62 \| /// Adds a Factory to the Manager, conditioned on the Factory not already existing
63 \| ///
64 \| /// @param t: Type of Capability the Factory retrieves
65 \| /// @param f: Factory to add
66 \| ///
67 \| access(Owner \| Add) fun addFactory(\_ t: Type, \_ f: {CapabilityFactory.Factory}) {
68 \| pre {
69 \| !self.factories.containsKey(t): "Factory of given type already exists"
70 \| }
71 \| self.factories\$&t\$& = f
72 \| }
73 \|
74 \| /// Updates a Factory in the Manager, adding if it didn't already exist
75 \| ///
76 \| /// @param t: Type of Capability the Factory retrieves
77 \| /// @param f: Factory to replace existing Factory
78 \| ///
79 \| access(Owner \| Add) fun updateFactory(\_ t: Type, \_ f: {CapabilityFactory.Factory}) {
80 \| self.factories\$&t\$& = f
81 \| }
82 \|
83 \| /// Removes a Factory from the Manager, returning it or nil if it didn't exist
84 \| ///
85 \| /// @param t: Type the Factory is indexed on
86 \| ///
87 \| access(Owner \| Delete) fun removeFactory(\_ t: Type): {CapabilityFactory.Factory}? {
88 \| return self.factories.remove(key: t)
89 \| }
90 \|
91 \| init () {
92 \| self.factories = {}
93 \| }
94 \| }
\| ^ Consider removing any disjunction access modifiers
| +| 0x294e44e1ec6993c6 | CapabilityFilter | ❌

Error:
error: unsafe access modifiers on CapabilityFilter.DenylistFilter: the entitlements migration would grant references to this type CapabilityFilter.Owner, CapabilityFilter.Add, CapabilityFilter.Delete authorization, which is too permissive.
--\> 294e44e1ec6993c6.CapabilityFilter:34:4
\|
34 \| access(all) resource DenylistFilter: Filter {
35 \|
36 \| /// Represents the underlying types which should not ever be returned by a RestrictedChildAccount. The filter
37 \| /// will borrow a requested capability, and make sure that the type it gets back is not in the list of denied
38 \| /// types
39 \| access(self) let deniedTypes: {Type: Bool}
40 \|
41 \| /// Adds a type to the mapping of denied types with a value of true
42 \| ///
43 \| /// @param type: The type to add to the denied types mapping
44 \| ///
45 \| access(Owner \| Add) fun addType(\_ type: Type) {
46 \| self.deniedTypes.insert(key: type, true)
47 \| emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: true)
48 \| }
49 \|
50 \| /// Removes a type from the mapping of denied types
51 \| ///
52 \| /// @param type: The type to remove from the denied types mapping
53 \| ///
54 \| access(Owner \| Delete) fun removeType(\_ type: Type) {
55 \| if let removed = self.deniedTypes.remove(key: type) {
56 \| emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: false)
57 \| }
58 \| }
59 \|
60 \| /// Removes all types from the mapping of denied types
61 \| ///
62 \| access(Owner \| Delete) fun removeAllTypes() {
63 \| for type in self.deniedTypes.keys {
64 \| self.removeType(type)
65 \| }
66 \| }
67 \|
68 \| /// Determines if a requested capability is allowed by this \`Filter\`
69 \| ///
70 \| /// @param cap: The capability to check
71 \| /// @return: true if the capability is allowed, false otherwise
72 \| ///
73 \| access(all) view fun allowed(cap: Capability): Bool {
74 \| if let item = cap.borrow<&AnyResource>() {
75 \| return !self.deniedTypes.containsKey(item.getType())
76 \| }
77 \|
78 \| return false
79 \| }
80 \|
81 \| /// Returns details about this filter
82 \| ///
83 \| /// @return A struct containing details about this filter including this Filter's Type indexed on the \`type\`
84 \| /// key as well as types denied indexed on the \`deniedTypes\` key
85 \| ///
86 \| access(all) view fun getDetails(): AnyStruct {
87 \| return {
88 \| "type": self.getType(),
89 \| "deniedTypes": self.deniedTypes.keys
90 \| }
91 \| }
92 \|
93 \| init() {
94 \| self.deniedTypes = {}
95 \| }
96 \| }
\| ^ Consider removing any disjunction access modifiers

error: unsafe access modifiers on CapabilityFilter.AllowlistFilter: the entitlements migration would grant references to this type CapabilityFilter.Owner, CapabilityFilter.Add, CapabilityFilter.Delete authorization, which is too permissive.
--\> 294e44e1ec6993c6.CapabilityFilter:100:4
\|
100 \| access(all) resource AllowlistFilter: Filter {
101 \| // allowedTypes
102 \| // Represents the set of underlying types which are allowed to be
103 \| // returned by a RestrictedChildAccount. The filter will borrow
104 \| // a requested capability, and make sure that the type it gets back is
105 \| // in the list of allowed types
106 \| access(self) let allowedTypes: {Type: Bool}
107 \|
108 \| /// Adds a type to the mapping of allowed types with a value of true
109 \| ///
110 \| /// @param type: The type to add to the allowed types mapping
111 \| ///
112 \| access(Owner \| Add) fun addType(\_ type: Type) {
113 \| self.allowedTypes.insert(key: type, true)
114 \| emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: true)
115 \| }
116 \|
117 \| /// Removes a type from the mapping of allowed types
118 \| ///
119 \| /// @param type: The type to remove from the denied types mapping
120 \| ///
121 \| access(Owner \| Delete) fun removeType(\_ type: Type) {
122 \| if let removed = self.allowedTypes.remove(key: type) {
123 \| emit FilterUpdated(id: self.uuid, filterType: self.getType(), type: type, active: false)
124 \| }
125 \| }
126 \|
127 \| /// Removes all types from the mapping of denied types
128 \| ///
129 \| access(Owner \| Delete) fun removeAllTypes() {
130 \| for type in self.allowedTypes.keys {
131 \| self.removeType(type)
132 \| }
133 \| }
134 \|
135 \| /// Determines if a requested capability is allowed by this \`Filter\`
136 \| ///
137 \| /// @param cap: The capability to check
138 \| /// @return: true if the capability is allowed, false otherwise
139 \| ///
140 \| access(all) view fun allowed(cap: Capability): Bool {
141 \| if let item = cap.borrow<&AnyResource>() {
142 \| return self.allowedTypes.containsKey(item.getType())
143 \| }
144 \|
145 \| return false
146 \| }
147 \|
148 \| /// Returns details about this filter
149 \| ///
150 \| /// @return A struct containing details about this filter including this Filter's Type indexed on the \`type\`
151 \| /// key as well as types allowed indexed on the \`allowedTypes\` key
152 \| ///
153 \| access(all) view fun getDetails(): AnyStruct {
154 \| return {
155 \| "type": self.getType(),
156 \| "allowedTypes": self.allowedTypes.keys
157 \| }
158 \| }
159 \|
160 \| init() {
161 \| self.allowedTypes = {}
162 \| }
163 \| }
\| ^ Consider removing any disjunction access modifiers
| +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 294e44e1ec6993c6.NFTProviderFactory:8:73
\|
8 \| if !con.capability.check() {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 294e44e1ec6993c6.NFTProviderFactory:12:85
\|
12 \| return con.capability as! Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 294e44e1ec6993c6.NFTProviderAndCollectionFactory:8:73
\|
8 \| if !con.capability.check() {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 294e44e1ec6993c6.NFTProviderAndCollectionFactory:12:85
\|
12 \| return con.capability as! Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ❌

Error:
error: unsafe access modifiers on CapabilityDelegator.Delegator: the entitlements migration would grant references to this type CapabilityDelegator.Get, CapabilityDelegator.Owner, CapabilityDelegator.Add, CapabilityDelegator.Delete authorization, which is too permissive.
--\> 294e44e1ec6993c6.CapabilityDelegator:55:4
\|
55 \| access(all) resource Delegator: GetterPublic, GetterPrivate {
56 \| access(self) let privateCapabilities: {Type: Capability}
57 \| access(self) let publicCapabilities: {Type: Capability}
58 \|
59 \| // ------ Begin Getter methods
60 \| //
61 \| /// Returns the public Capability of the given Type if it exists
62 \| ///
63 \| access(all) view fun getPublicCapability(\_ type: Type): Capability? {
64 \| return self.publicCapabilities\$&type\$&
65 \| }
66 \|
67 \| /// Returns the private Capability of the given Type if it exists
68 \| ///
69 \| ///
70 \| /// @param type: Type of the Capability to retrieve
71 \| /// @return Capability of the given Type if it exists, nil otherwise
72 \| ///
73 \| access(Get) view fun getPrivateCapability(\_ type: Type): Capability? {
74 \| return self.privateCapabilities\$&type\$&
75 \| }
76 \|
77 \| /// Returns all public Capabilities
78 \| ///
79 \| /// @return List of all public Capabilities
80 \| ///
81 \| access(all) view fun getAllPublic(): \$&Capability\$& {
82 \| return self.publicCapabilities.values
83 \| }
84 \|
85 \| /// Returns all private Capabilities
86 \| ///
87 \| /// @return List of all private Capabilities
88 \| ///
89 \| access(Get) fun getAllPrivate(): \$&Capability\$& {
90 \| return self.privateCapabilities.values
91 \| }
92 \|
93 \| /// Returns the first public Type that is a subtype of the given Type
94 \| ///
95 \| /// @param type: Type to check for subtypes
96 \| /// @return First public Type that is a subtype of the given Type, nil otherwise
97 \| ///
98 \| access(all) view fun findFirstPublicType(\_ type: Type): Type? {
99 \| for t in self.publicCapabilities.keys {
100 \| if t.isSubtype(of: type) {
101 \| return t
102 \| }
103 \| }
104 \|
105 \| return nil
106 \| }
107 \|
108 \| /// Returns the first private Type that is a subtype of the given Type
109 \| ///
110 \| /// @param type: Type to check for subtypes
111 \| /// @return First private Type that is a subtype of the given Type, nil otherwise
112 \| ///
113 \| access(all) view fun findFirstPrivateType(\_ type: Type): Type? {
114 \| for t in self.privateCapabilities.keys {
115 \| if t.isSubtype(of: type) {
116 \| return t
117 \| }
118 \| }
119 \|
120 \| return nil
121 \| }
122 \| // ------- End Getter methods
123 \|
124 \| /// Adds a Capability to the Delegator
125 \| ///
126 \| /// @param cap: Capability to add
127 \| /// @param isPublic: Whether the Capability should be public or private
128 \| ///
129 \| access(Owner \| Add) fun addCapability(cap: Capability, isPublic: Bool) {
130 \| pre {
131 \| cap.check<&AnyResource>(): "Invalid Capability provided"
132 \| }
133 \| if isPublic {
134 \| self.publicCapabilities.insert(key: cap.getType(), cap)
135 \| } else {
136 \| self.privateCapabilities.insert(key: cap.getType(), cap)
137 \| }
138 \| emit DelegatorUpdated(id: self.uuid, capabilityType: cap.getType(), isPublic: isPublic, active: true)
139 \| }
140 \|
141 \| /// Removes a Capability from the Delegator
142 \| ///
143 \| /// @param cap: Capability to remove
144 \| ///
145 \| access(Owner \| Delete) fun removeCapability(cap: Capability) {
146 \| if let removedPublic = self.publicCapabilities.remove(key: cap.getType()) {
147 \| emit DelegatorUpdated(id: self.uuid, capabilityType: cap.getType(), isPublic: true, active: false)
148 \| }
149 \|
150 \| if let removedPrivate = self.privateCapabilities.remove(key: cap.getType()) {
151 \| emit DelegatorUpdated(id: self.uuid, capabilityType: cap.getType(), isPublic: false, active: false)
152 \| }
153 \| }
154 \|
155 \| init() {
156 \| self.privateCapabilities = {}
157 \| self.publicCapabilities = {}
158 \| }
159 \| }
\| ^ Consider removing any disjunction access modifiers
| +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ❌

Error:
error: resource \`HybridCustody.Manager\` does not conform to resource interface \`HybridCustody.ManagerPrivate\`
--\> 294e44e1ec6993c6.HybridCustody:263:25
\|
263 \| access(all) resource Manager: ManagerPrivate, ManagerPublic, ViewResolver.Resolver, Burner.Burnable {
\| ^
...
\|
301 \| access(Manage \| Insert) fun addAccount(cap: Capability) {
\| \-\-\-\-\-\-\-\-\-\- mismatch here
...
\|
339 \| access(Manage \| Remove) fun removeChild(addr: Address) {
\| \-\-\-\-\-\-\-\-\-\-\- mismatch here
...
\|
373 \| access(Manage \| Insert) fun addOwnedAccount(cap: Capability) {
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here
...
\|
427 \| access(Manage \| Remove) fun removeOwned(addr: Address) {
\| \-\-\-\-\-\-\-\-\-\-\- mismatch here

error: cannot use optional chaining: type \`Capability<&{HybridCustody.ManagerPublic}>\` is not optional
--\> 294e44e1ec6993c6.HybridCustody:986:15
\|
986 \| if parentManager?.check() == true {
\| ^^^^^^^^^^^^^^^^^^^^

error: resource \`HybridCustody.OwnedAccount\` does not conform to resource interface \`HybridCustody.OwnedAccountPrivate\`
--\> 294e44e1ec6993c6.HybridCustody:791:25
\|
791 \| access(all) resource OwnedAccount: OwnedAccountPrivate, BorrowableAccount, OwnedAccountPublic, ViewResolver.Resolver, Burner.Burnable {
\| ^
...
\|
957 \| access(Owner \| Remove) fun removeParent(parent: Address): Bool {
\| \-\-\-\-\-\-\-\-\-\-\-\- mismatch here
| +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Admin | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:242:39

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:428:84

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:428:109

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:477:88

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:499:165

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:521:143

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:623:45

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:653:64

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:669:50

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:822:37

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:894:13

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:902:16

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:282:35

error: mismatched types
--\> 1c5033ad60821c97.Doodles:282:11

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:450:32

error: mismatched types
--\> 1c5033ad60821c97.Doodles:480:23

error: mismatched types
--\> 1c5033ad60821c97.Doodles:502:23

error: mismatched types
--\> 1c5033ad60821c97.Doodles:532:48

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.Doodles:541:24

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:542:33

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:678:40

error: mismatched types
--\> 1c5033ad60821c97.Doodles:679:23

error: resource \`Doodles.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Doodles:812:22

--\> 1c5033ad60821c97.Doodles

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:141:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:233:67

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.DoodlePacks:238:17

error: resource \`DoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodlePacks:138:22

--\> 1c5033ad60821c97.DoodlePacks

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:58:43
\|
58 \| access(all) fun registerWearableSet(\_ s: Wearables.Set) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:72:48
\|
72 \| access(all) fun registerWearablePosition(\_ p: Wearables.Position) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:86:48
\|
86 \| access(all) fun registerWearableTemplate(\_ t: Wearables.Template) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:128:6
\|
128 \| ): @Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:144:9
\|
144 \| data: Wearables.WearableMintData,
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:195:52
\|
195 \| access(all) fun registerDoodlesBaseCharacter(\_ d: Doodles.BaseCharacter) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:209:46
\|
209 \| access(all) fun registerDoodlesSpecies(\_ d: Doodles.Species) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:223:42
\|
223 \| access(all) fun registerDoodlesSet(\_ d: Doodles.Set) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:242:6
\|
242 \| ): @Doodles.NFT {
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:62:3
\|
62 \| Wearables.addSet(s)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:69:3
\|
69 \| Wearables.retireSet(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:76:3
\|
76 \| Wearables.addPosition(p)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:83:3
\|
83 \| Wearables.retirePosition(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:90:3
\|
90 \| Wearables.addTemplate(t)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:97:3
\|
97 \| Wearables.retireTemplate(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:104:3
\|
104 \| Wearables.updateTemplateDescription(templateId: templateId, description: description)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:117:3
\|
117 \| Wearables.mintNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:133:22
\|
133 \| let newWearable <- Wearables.mintNFTDirect(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:152:3
\|
152 \| Wearables.mintEditionNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:199:3
\|
199 \| Doodles.setBaseCharacter(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:206:3
\|
206 \| Doodles.retireBaseCharacter(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:213:3
\|
213 \| Doodles.addSpecies(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:220:3
\|
220 \| Doodles.retireSpecies(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:227:3
\|
227 \| Doodles.addSet(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:234:3
\|
234 \| Doodles.retireSet(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:247:17
\|
247 \| let doodle <- Doodles.adminMintDoodle(
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:261:3
\|
261 \| Redeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:269:3
\|
269 \| Redeemables.updateSetActive(setId: setId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:276:3
\|
276 \| Redeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:283:3
\|
283 \| Redeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:300:3
\|
300 \| Redeemables.createTemplate(
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:317:3
\|
317 \| Redeemables.updateTemplateActive(templateId: templateId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:324:3
\|
324 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:331:3
\|
331 \| Redeemables.burnUnredeemedSet(setId: setId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePacks\`
--\> 1c5033ad60821c97.Admin:363:3
\|
363 \| DoodlePacks.mintNFT(recipient: recipient, typeId: typeId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.Admin:435:3
\|
435 \| OpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | Teleport | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :7:0
\|
7 \| pub contract DapperStorageRent {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:2
\|
9 \| pub let DapperStorageRentAdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:2
\|
23 \| pub event BlockedAddress(\_ address: \$&Address\$&)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:2
\|
25 \| pub event Refuelled(\_ address: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub event RefilledFailed(address: Address, reason: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub fun getStorageRentRefillThreshold(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:2
\|
41 \| pub fun getRefilledAccounts(): \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub fun getBlockedAccounts() : \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:2
\|
57 \| pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:2
\|
65 \| pub fun getRefillRequiredBlocks(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:2
\|
70 \| pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:2
\|
75 \| pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:2
\|
85 \| pub fun tryRefill(\_ address: Address) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :124:106
\|
124 \| if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow<&FlowToken.Vault{FungibleToken.Balance}>() {
\| ^^^^^^^^^^^^^

--\> 43ee8c22fcf94ea3.DapperStorageRent

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:115:43
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:115:65
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:115:17
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:115:17
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:119:4
\|
119 \| Wearables.mintNFT(recipient: wearable, template:id, context:context)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:136:3
\|
136 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:159:20
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:159:88
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:181:43
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:181:65
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:181:17
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:181:17
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:185:4
\|
185 \| Wearables.mintNFT(recipient: wearable, template:id, context:context)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:201:3
\|
201 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:224:20
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:224:88
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^
| +| 0x1c5033ad60821c97 | DoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:141:37
\|
141 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:233:67
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18
\|
236 \| let openPack <- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.DoodlePacks:238:17
\|
238 \| Burner.burn(<- collection.withdraw(withdrawID: packId))
\| ^^^^^^^^^^^^^^^^^^^

error: resource \`DoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodlePacks:138:22
\|
138 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection{
\| ^
...
\|
141 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37
\|
121 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7
\|
205 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7
\|
233 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22
\|
111 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
121 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | Wearables | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37
\|
728 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22
\|
718 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
728 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15
\|
246 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37
\|
257 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9
\|
321 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4
\|
440 \| getAccount(address).capabilities.get<&{Redeemables.RedeemablesCollectionPublic}>(Redeemables.CollectionPublicPath)?.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22
\|
250 \| access(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
321 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64) {
\| \-\-\-\-\-\- mismatch here

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22
\|
250 \| access(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
257 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Doodles | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35
\|
234 \| access(all) var name: @{UInt64 : DoodleNames.NFT}
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:242:39
\|
242 \| access(all) let wearables: @{UInt64: Wearables.NFT}
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:428:84
\|
428 \| access(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &Wearables.Collection, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:428:109
\|
428 \| access(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &Wearables.Collection, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:477:88
\|
477 \| access(all) fun editDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:499:165
\|
499 \| access(all) fun editDoodleWithMultipleCollections(receiverWearableCollection: &{NonFungibleToken.Receiver}, wearableCollections: \$&auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}\$&, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Boo...
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:521:143
\|
521 \| access(contract) fun internalEditDoodle(wearableReceiver: &{NonFungibleToken.Receiver}, wearableProviders: \$&auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}\$&, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool...
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38
\|
581 \| access(account) fun addName(\_ nft: @DoodleNames.NFT, owner:Address) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36
\|
590 \| access(all) fun equipName(\_ nft: @DoodleNames.NFT) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40
\|
606 \| access(contract) fun unequipName() : @DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:623:45
\|
623 \| access(contract) fun equipWearable(\_ nft: @Wearables.NFT, index: UInt64) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:653:64
\|
653 \| access(contract) fun unequipWearable(\_ resourceId: UInt64) : @Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:669:50
\|
669 \| access(all) fun borrowWearable(\_ id: UInt64) : &Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46
\|
673 \| access(all) fun borrowName(\_ id: UInt64) : &DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:822:37
\|
822 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:894:13
\|
894 \| betaPass: @Wearables.NFT,
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:902:16
\|
902 \| let template: Wearables.Template = betaPass.getTemplate()
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14
\|
940 \| let name <- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:282:35
\|
282 \| return (&self.wearables\$&id\$& as &Wearables.NFT?)!
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:282:11
\|
282 \| return (&self.wearables\$&id\$& as &Wearables.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:450:32
\|
450 \| let nft <- wearableNFT as! @Wearables.NFT
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:480:23
\|
480 \| wearableProviders: \$&wearableCollection\$&,
\| ^^^^^^^^^^^^^^^^^^^^ expected \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`, got \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`

error: mismatched types
--\> 1c5033ad60821c97.Doodles:502:23
\|
502 \| wearableProviders: wearableCollections,
\| ^^^^^^^^^^^^^^^^^^^ expected \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`, got \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`

error: mismatched types
--\> 1c5033ad60821c97.Doodles:532:48
\|
532 \| wearableReceiver.deposit(token: <- nft)
\| ^^^^^^ expected \`{NonFungibleToken.NFT}\`, got \`<>?\`

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.Doodles:541:24
\|
541 \| let wearableNFT <- wearableProvider.withdraw(withdrawID: wId)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:542:33
\|
542 \| let nft <- wearableNFT as! @Wearables.NFT
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:678:40
\|
678 \| if let nft = &self.wearables\$&id\$& as &Wearables.NFT? {
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:679:23
\|
679 \| return nft
\| ^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>\`

error: resource \`Doodles.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Doodles:812:22
\|
812 \| access(all) resource Collection: DoodlesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
822 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | OpenDoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43
\|
140 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72
\|
264 \| access(all) fun reveal(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{OpenDoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64, receiverAddress: Address) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19
\|
313 \| destroy <- collection.withdraw(withdrawID: packId)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107
\|
427 \| let recipient = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(Wearables.CollectionPublicPath)!.borrow()
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16
\|
429 \| Wearables.mintNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107
\|
438 \| let recipient = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(Redeemables.CollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16
\|
440 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25
\|
133 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
140 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x0d3dc5ad70be03d1 | Offers | ❌

Error:
error: error getting program b051bdaddb672a33.NFTStorefrontV2: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:513:70

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:458:70

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:252:90

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> b051bdaddb672a33.NFTStorefrontV2:580:70

error: mismatched types
--\> b051bdaddb672a33.NFTStorefrontV2:486:33

error: mismatched types
--\> b051bdaddb672a33.NFTStorefrontV2:616:28

error: resource \`NFTStorefrontV2.Storefront\` does not conform to resource interface \`NFTStorefrontV2.StorefrontManager\`
--\> b051bdaddb672a33.NFTStorefrontV2:563:23

--\> b051bdaddb672a33.NFTStorefrontV2

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> 0d3dc5ad70be03d1.Offers:95:20
\|
95 \| let commission = NFTStorefrontV2.getFee(p: offeredAmount, t: paymentTokenType)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> 0d3dc5ad70be03d1.Offers:159:64
\|
159 \| if let cap = getAccount(receiver.address).capabilities.get<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 0d3dc5ad70be03d1.Offers:159:63
\|
159 \| if let cap = getAccount(receiver.address).capabilities.get<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> 0d3dc5ad70be03d1.Offers:159:99
\|
159 \| if let cap = getAccount(receiver.address).capabilities.get<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 0d3dc5ad70be03d1.Offers:159:16
\|
159 \| if let cap = getAccount(receiver.address).capabilities.get<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: mismatched types
--\> 0d3dc5ad70be03d1.Offers:159:16
\|
159 \| if let cap = getAccount(receiver.address).capabilities.get<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability\`

error: cannot infer type parameter: \`T\`
--\> 0d3dc5ad70be03d1.Offers:160:7
\|
160 \| if cap.check() {
\| ^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 0d3dc5ad70be03d1.Offers:161:13
\|
161 \| let s = cap.borrow()!
\| ^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> 0d3dc5ad70be03d1.Offers:302:14
\|
302 \| let fees = NFTStorefrontV2.getPaymentCuts(r: receiver, n: &nft as &{NonFungibleToken.NFT}, p: self.details.offeredAmount, tokenType: self.details.paymentTokenType)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> 0d3dc5ad70be03d1.Offers:303:15
\|
303 \| let mpFee = NFTStorefrontV2.getFee(p: self.details.offeredAmount, t: self.details.paymentTokenType)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> 0d3dc5ad70be03d1.Offers:311:20
\|
311 \| let mpReceiver = NFTStorefrontV2.getCommissionReceiver(t: self.details.paymentTokenType)
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-05-08T10-13-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-05-08T10-13-00Z-testnet.json new file mode 100644 index 0000000000..73801101e0 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-08T10-13-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8ba321af4bd37bb.aiSportsMinter:193:39\n |\n193 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `aiSportsMinter.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8ba321af4bd37bb.aiSportsMinter:168:25\n |\n168 | access(all) resource Collection: NonFungibleToken.Collection, aiSportsMinterCollectionPublic {\n | ^\n ... \n |\n193 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"IPackNFT"},{"kind":"contract-update-failure","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS","error":"error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:102:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:103:41\n\n--\u003e d8f6346999b983f5.IPackNFT\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:67:36\n |\n67 | access(all) struct Collectible: IPackNFT.Collectible {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:159:41\n |\n159 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:159:61\n |\n159 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:159:60\n |\n159 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:112:54\n |\n112 | access(self) let operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:112:74\n |\n112 | access(self) let operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:112:73\n |\n112 | access(self) let operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:136:62\n |\n136 | access(all) fun revealPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:136:61\n |\n136 | access(all) fun revealPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:143:60\n |\n143 | access(all) fun openPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], recvCap: \u0026{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:143:59\n |\n143 | access(all) fun openPackNFT(packId: UInt64, nfts: [{IPackNFT.Collectible}], recvCap: \u0026{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:312:37\n |\n312 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:312:57\n |\n312 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:312:56\n |\n312 | operatorCap: Capability\u003cauth(IPackNFT.Operate) \u0026{IPackNFT.IOperator}\u003e\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:248:23\n |\n248 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:248:22\n |\n248 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e ef4cd3d07a7b43ce.PDS:270:23\n |\n270 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e ef4cd3d07a7b43ce.PDS:270:22\n |\n270 | let arr: [{IPackNFT.Collectible}] = []\n | ^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-failure","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:102:41\n |\n102 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun reveal(openRequest: Bool)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:103:41\n |\n103 | access(NonFungibleToken.Update | NonFungibleToken.Owner) fun open()\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e d704ee8202a0d82d.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseSocks:142:43\n |\n142 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n |\n111 | access(all) resource Collection: FlowverseSocksCollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n142 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:628:43\n |\n628 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowverseTreasures.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:596:25\n |\n596 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n628 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal","error":"error: error getting program c7c122b5b811de8e.OrdinalVendor: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseSocks:142:43\n\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\nerror: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseShirt:238:43\n\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n\n--\u003e c7c122b5b811de8e.FlowverseShirt\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:94\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:93\n\nerror: cannot find variable in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:127\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:47\n\nerror: cannot find type in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:88\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:87\n\nerror: cannot find variable in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:136\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:41\n\nerror: cannot find type in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:88\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:87\n\nerror: cannot find variable in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:122\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:41\n\n--\u003e c7c122b5b811de8e.OrdinalVendor\n\nerror: cannot find type in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:194:33\n |\n194 | access(all) resource Minter: OrdinalVendor.IMinter {\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.Ordinal:262:43\n |\n262 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:183:19\n |\n183 | assert(OrdinalVendor.checkDomainAvailability(domain: data), message: \"domain already exists\")\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OrdinalVendor`\n --\u003e c7c122b5b811de8e.Ordinal:83:38\n |\n83 | let isOrdinalRestricted = OrdinalVendor.checkOrdinalRestricted(id: self.id)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Ordinal.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.Ordinal:230:25\n |\n230 | access(all) resource Collection: CollectionPublic, CollectionUpdate, NonFungibleToken.Collection {\n | ^\n ... \n |\n262 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseSocks:142:43\n\nerror: resource `FlowverseSocks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseSocks:111:25\n\n--\u003e c7c122b5b811de8e.FlowverseSocks\n\nerror: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseShirt:238:43\n\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n\n--\u003e c7c122b5b811de8e.FlowverseShirt\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:94\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:93\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:127\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:203:47\n |\n203 | let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowversePass.CollectionPublic}\u003e(FlowversePass.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:88\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:87\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowverseSocks`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:136\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:210:41\n |\n210 | let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseSocks.FlowverseSocksCollectionPublic}\u003e(FlowverseSocks.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:88\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:87\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlowverseShirt`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:122\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.OrdinalVendor:217:41\n |\n217 | let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow\u003c\u0026{FlowverseShirt.CollectionPublic}\u003e(FlowverseShirt.CollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:160:8\n |\n160 | ): [NFTStorefrontV2.SaleCut] {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:161:23\n |\n161 | let saleCuts: [NFTStorefrontV2.SaleCut] = []\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:164:28\n |\n164 | saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut * salePrice))\n | ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\nerror: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\n--\u003e c7c122b5b811de8e.FlowversePrimarySale\n\nerror: cannot find type in this scope: `FlowversePrimarySale`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:12:33\n |\n12 | access(all) resource Minter: FlowversePrimarySale.IMinter {\n | ^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:19:25\n |\n19 | init(setMinter: @FlowversePass.SetMinter) {\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:13:37\n |\n13 | access(self) let setMinter: @FlowversePass.SetMinter\n | ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowversePass`\n --\u003e c7c122b5b811de8e.FlowversePassPrimarySaleMinter:24:45\n |\n24 | access(all) fun createMinter(setMinter: @FlowversePass.SetMinter): @Minter {\n | ^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n |\n593 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n |\n561 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n593 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter","error":"error: error getting program c7c122b5b811de8e.FlowverseTreasures: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:628:43\n\nerror: resource `FlowverseTreasures.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseTreasures:596:25\n\n--\u003e c7c122b5b811de8e.FlowverseTreasures\n\nerror: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:\nerror: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n\n--\u003e c7c122b5b811de8e.FlowversePrimarySale\n\nerror: cannot find type in this scope: `FlowversePrimarySale`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:12:33\n |\n12 | access(all) resource Minter: FlowversePrimarySale.IMinter {\n | ^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:19:25\n |\n19 | init(setMinter: @FlowverseTreasures.SetMinter) {\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:13:37\n |\n13 | access(self) let setMinter: @FlowverseTreasures.SetMinter\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlowverseTreasures`\n --\u003e c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:24:45\n |\n24 | access(all) fun createMinter(setMinter: @FlowverseTreasures.SetMinter): @Minter {\n | ^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale","error":"error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowversePass:593:43\n\nerror: resource `FlowversePass.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowversePass:561:25\n\n--\u003e c7c122b5b811de8e.FlowversePass\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e c7c122b5b811de8e.FlowverseShirt:238:43\n |\n238 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FlowverseShirt.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e c7c122b5b811de8e.FlowverseShirt:206:25\n |\n206 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n238 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:0\n |\n40 | pub contract Market {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub resource interface SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:8\n |\n62 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:8\n |\n68 | pub fun getPrice(tokenID: UInt64): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:8\n |\n69 | pub fun getIDs(): [UInt64]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:8\n |\n70 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub resource SaleCollection: SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun listForSale(token: @TopShot.NFT, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub fun withdraw(tokenID: UInt64): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :166:8\n |\n166 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :198:8\n |\n198 | pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :209:8\n |\n209 | pub fun changePercentage(_ newPercent: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :216:8\n |\n216 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :225:8\n |\n225 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :227:73\n |\n227 | newBeneficiaryCapability.borrow\u003c\u0026DapperUtilityCoin.Vault{FungibleToken.Receiver}\u003e() != nil:\n | ^^^^^^^^^^^^^\n\n--\u003e 547f177b243b4d80.Market\n\nerror: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:0\n |\n46 | pub contract TopShotMarketV3 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let marketStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub let marketPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:4\n |\n79 | pub resource SaleCollection: Market.SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:8\n |\n101 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub fun listForSale(tokenID: UInt64, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub fun cancelSale(tokenID: UInt64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:8\n |\n196 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :247:8\n |\n247 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:8\n |\n259 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:8\n |\n272 | pub fun getPrice(tokenID: UInt64): UFix64? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :282:8\n |\n282 | pub fun getIDs(): [UInt64] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:8\n |\n302 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :318:4\n |\n318 | pub fun createSaleCollection(ownerCollection: Capability\u003c\u0026TopShot.Collection\u003e,\n | ^^^\n\n--\u003e 547f177b243b4d80.TopShotMarketV3\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:154:70\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:154:69\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:159:73\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:159:72\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:164:73\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:164:72\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:225:22\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:225:21\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:301:25\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:301:24\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:35\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:156:34\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:70\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:155:15\n |\n155 | return getAccount(address)\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:161:35\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:161:34\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:160:15\n |\n160 | return getAccount(address)\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:35\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:166:34\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `TopShotMarketV3`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:55\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:165:15\n |\n165 | return getAccount(address)\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:353:42\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:353:41\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:354:45\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:354:44\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:355:45\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:355:44\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLPack","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:22:48\n |\n22 | access(contract) let adminRef : Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:164:55\n |\n164 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:164:72\n |\n164 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:164:24\n |\n164 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:110:35\n |\n110 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/fakePublicPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:109:38\n |\n109 | let recipientCollection = receiptAccount\n110 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/fakePublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:109:38\n |\n109 | let recipientCollection = receiptAccount\n110 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/fakePublicPath)\n111 | .borrow()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBadges"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnExchange"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMetadataHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLNFT"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLAdmin","error":"error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:22:48\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:164:55\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:164:72\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:164:24\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:110:35\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:109:38\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:109:38\n\n--\u003e b39a42479c1c2c77.AFLPack\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"PackRestrictions"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMarketplace","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:73:33\n |\n73 | init (vault: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:71:52\n |\n71 | access(account) let ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:251:70\n |\n251 | access(all) fun changeMarketplaceWallet(_ newCap: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:9:56\n |\n9 | access(contract) var marketplaceWallet: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:234:65\n |\n234 | access(all) fun createSaleCollection(ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e): @SaleCollection {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:269:64\n |\n269 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLMarketplace:269:33\n |\n269 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:154:36\n |\n154 | let saleOwnerVaultRef: \u0026FiatToken.Vault = self.ownerVault.borrow() ?? panic(\"could not borrow reference to the owner vault\")\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:161:36\n |\n161 | let marketplaceWallet: \u0026FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic(\"Couldn't borrow Vault reference\")\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"StorageHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnRegistry"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLIndex"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-failure","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT","error":"error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:102:41\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d8f6346999b983f5.IPackNFT:103:41\n\n--\u003e d8f6346999b983f5.IPackNFT\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:8:48\n |\n8 | access(all) contract PackNFT: NonFungibleToken, IPackNFT {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:45:42\n |\n45 | access(all) resource PackNFTOperator: IPackNFT.IOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:144:52\n |\n144 | access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:144:66\n |\n144 | access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:144:90\n |\n144 | access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:209:66\n |\n209 | access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:50:15\n |\n50 | access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:50:98\n |\n50 | access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:50:97\n |\n50 | access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {\n | ^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:61:15\n |\n61 | access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:61:64\n |\n61 | access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:61:63\n |\n61 | access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:69:15\n |\n69 | access(IPackNFT.Operate) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:69:62\n |\n69 | access(IPackNFT.Operate) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:69:61\n |\n69 | access(IPackNFT.Operate) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:97:41\n |\n97 | access(self) fun _verify(nfts: [{IPackNFT.Collectible}], salt: String, commitHash: String): String {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:97:40\n |\n97 | access(self) fun _verify(nfts: [{IPackNFT.Collectible}], salt: String, commitHash: String): String {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:112:56\n |\n112 | access(contract) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:112:55\n |\n112 | access(contract) fun reveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:120:54\n |\n120 | access(contract) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:120:53\n |\n120 | access(contract) fun open(id: UInt64, nfts: [{IPackNFT.Collectible}]) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:304:53\n |\n304 | access(all) fun publicReveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:304:52\n |\n304 | access(all) fun publicReveal(id: UInt64, nfts: [{IPackNFT.Collectible}], salt: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:399:54\n |\n399 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IPackNFTCollectionPublic}\u003e(self.CollectionStoragePath),\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:399:53\n |\n399 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IPackNFTCollectionPublic}\u003e(self.CollectionStoragePath),\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e a2526e2d9cc7f0d2.PackNFT:399:12\n |\n399 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IPackNFTCollectionPublic}\u003e(self.CollectionStoragePath),\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `IPackNFT`\n --\u003e a2526e2d9cc7f0d2.PackNFT:405:50\n |\n405 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IOperator}\u003e(self.OperatorStoragePath)\n | ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e a2526e2d9cc7f0d2.PackNFT:405:49\n |\n405 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IOperator}\u003e(self.OperatorStoragePath)\n | ^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e a2526e2d9cc7f0d2.PackNFT:405:8\n |\n405 | self.account.capabilities.storage.issue\u003c\u0026{IPackNFT.IOperator}\u003e(self.OperatorStoragePath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Art","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n |\n266 | access(NonFungibleToken.Withdraw |NonFungibleToken.Owner)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n |\n246 | resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic, ViewResolver.ResolverCollection{ \n | ^\n ... \n |\n267 | fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT}{ \n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Versus","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: error getting program 99ca04281098b33d.Auction: failed to derive value: load program failed: Checking failed:\nerror: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:438:20\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:443:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:443:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:458:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:458:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:67:22\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:41:22\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:184:18\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:189:45\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:189:44\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:134:18\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:169:49\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:169:48\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:177:45\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:177:44\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:216:47\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:216:46\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:359:40\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:359:39\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:34\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:169\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:499:168\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:557:145\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:557:144\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:573:16\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:578:36\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:578:35\n\n--\u003e 99ca04281098b33d.Auction\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:564:40\n |\n564 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:564:39\n |\n564 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:138:28\n |\n138 | uniqueAuction: @Auction.AuctionItem,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:139:30\n |\n139 | editionAuctions: @Auction.AuctionCollection,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:108:28\n |\n108 | let uniqueAuction: @Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:111:30\n |\n111 | let editionAuctions: @Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:128:22\n |\n128 | let metadata: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:274:44\n |\n274 | fun getAuction(auctionId: UInt64): \u0026Auction.AuctionItem{ \n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:296:40\n |\n296 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:296:39\n |\n296 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:442:30\n |\n442 | init(_ auctionStatus: Auction.AuctionStatus){ \n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:508:26\n |\n508 | uniqueStatus: Auction.AuctionStatus,\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:516:22\n |\n516 | metadata: Art.Metadata,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:495:22\n |\n495 | let metadata: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:603:104\n |\n603 | init(marketplaceVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e, cutPercentage: UFix64){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:603:103\n |\n603 | init(marketplaceVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e, cutPercentage: UFix64){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:601:46\n |\n601 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:601:45\n |\n601 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:717:168\n |\n717 | fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:717:167\n |\n717 | fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:840:166\n |\n840 | fun mintArt(artist: Address, artistName: String, artName: String, content: String, description: String, type: String, artistCut: UFix64, minterCut: UFix64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:861:29\n |\n861 | fun editionArt(art: \u0026Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:861:77\n |\n861 | fun editionArt(art: \u0026Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:866:39\n |\n866 | fun editionAndDepositArt(art: \u0026Art.NFT, to: [Address]){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:941:46\n |\n941 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e =\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:941:45\n |\n941 | let marketplaceNFTTrash: Capability\u003c\u0026{Art.CollectionPublic}\u003e =\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:942:35\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:942:34\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:942:58\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:942:8\n |\n942 | account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:165:52\n |\n165 | let uniqueRef = \u0026self.uniqueAuction as \u0026Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:166:55\n |\n166 | let editionRef = \u0026self.editionAuctions as \u0026Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:339:57\n |\n339 | let auctionRef = \u0026self.uniqueAuction as \u0026Auction.AuctionItem\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:350:60\n |\n350 | let editionsRef = \u0026self.editionAuctions as \u0026Auction.AuctionCollection\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:631:32\n |\n631 | let art \u003c- nft as! @Art.NFT\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:636:37\n |\n636 | let editionedAuctions \u003c- Auction.createAuctionCollection(marketplaceVault: self.marketplaceVault, cutPercentage: self.cutPercentage)\n | ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:639:57\n |\n639 | editionedAuctions.createAuction(token: \u003c-Art.makeEdition(original: \u0026art as \u0026Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:639:92\n |\n639 | editionedAuctions.createAuction(token: \u003c-Art.makeEdition(original: \u0026art as \u0026Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Auction`\n --\u003e 99ca04281098b33d.Versus:644:24\n |\n644 | let item \u003c- Auction.createStandaloneAuction(token: \u003c-art, minimumBidIncrement: minimumBidUniqueIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)\n | ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:814:54\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:814:76\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:814:23\n |\n814 | let artC = Versus.account.storage.borrow\u003c\u0026Art.Collection\u003e(from: Art.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:855:37\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:855:98\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^^^ not found in this scope\n\nerror: cannot infer type from dictionary literal: requires an explicit type annotation\n --\u003e 99ca04281098b33d.Versus:855:25\n |\n855 | let royalty ={ \"artist\": Art.Royalty(wallet: artistWallet, cut: artistCut), \"minter\": Art.Royalty(wallet: minterWallet, cut: minterCut)}\n | ^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:856:23\n |\n856 | let art \u003c- Art.createArtWithPointer(name: artName, artist: artistName, artistAddress: artist, description: description, type: type, contentCapability: contentCapability, contentId: contentId, royalty: royalty)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:862:21\n |\n862 | return \u003c-Art.makeEdition(original: art, edition: edition, maxEdition: maxEdition)\n | ^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:870:36\n |\n870 | let editionedArt \u003c- Art.makeEdition(original: art, edition: i, maxEdition: maxEdition)\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:872:63\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Versus:872:62\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:872:86\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:872:36\n |\n872 | var collectionCap = account.capabilities.get\u003c\u0026{Art.CollectionPublic}\u003e(Art.CollectionPublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 99ca04281098b33d.Versus:873:17\n |\n873 | (collectionCap.borrow()!).deposit(token: \u003c-editionedArt)\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Art`\n --\u003e 99ca04281098b33d.Versus:902:87\n |\n902 | return Versus.account.storage.borrow\u003c\u0026{NonFungibleToken.Collection}\u003e(from: Art.CollectionStoragePath)!\n | ^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Marketplace","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:55:39\n |\n55 | recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:55:38\n |\n55 | recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:89:30\n |\n89 | init(id: UInt64, art: Art.Metadata, cacheKey: String, price: UFix64){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:81:17\n |\n81 | let art: Art.Metadata\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:107:31\n |\n107 | var forSale: @{UInt64: Art.NFT}\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:150:37\n |\n150 | fun borrowArt(id: UInt64): \u0026{Art.Public}?{ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:150:36\n |\n150 | fun borrowArt(id: UInt64): \u0026{Art.Public}?{ \n | ^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:159:40\n |\n159 | fun withdraw(tokenID: UInt64): @Art.NFT{ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:170:32\n |\n170 | fun listForSale(token: @Art.NFT, price: UFix64){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:194:65\n |\n194 | fun purchase(tokenID: UInt64, recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Marketplace:194:64\n |\n194 | fun purchase(tokenID: UInt64, recipientCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Marketplace:152:46\n |\n152 | return (\u0026self.forSale[id] as \u0026Art.NFT?)!\n | ^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x99ca04281098b33d","contract_name":"Auction","error":"error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 99ca04281098b33d.Art:266:42\n\nerror: resource `Art.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 99ca04281098b33d.Art:246:13\n\n--\u003e 99ca04281098b33d.Art\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:438:20\n |\n438 | token: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:443:40\n |\n443 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:443:39\n |\n443 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:458:40\n |\n458 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:458:39\n |\n458 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:67:22\n |\n67 | metadata: Art.Metadata?,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:41:22\n |\n41 | let metadata: Art.Metadata?\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:184:18\n |\n184 | NFT: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:189:45\n |\n189 | ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:189:44\n |\n189 | ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:134:18\n |\n134 | var NFT: @Art.NFT?\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:169:49\n |\n169 | var recipientCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e?\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:169:48\n |\n169 | var recipientCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e?\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:177:45\n |\n177 | let ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:177:44\n |\n177 | let ownerCollectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:216:47\n |\n216 | fun sendNFT(_ capability: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:216:46\n |\n216 | fun sendNFT(_ capability: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:359:40\n |\n359 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:359:39\n |\n359 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:34\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:499:169\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:499:168\n |\n499 | fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:557:145\n |\n557 | fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:557:144\n |\n557 | fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e){ \n | ^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:573:16\n |\n573 | token: @Art.NFT,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `Art`\n --\u003e 99ca04281098b33d.Auction:578:36\n |\n578 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 99ca04281098b33d.Auction:578:35\n |\n578 | collectionCap: Capability\u003c\u0026{Art.CollectionPublic}\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopToken","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n |\n233 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n |\n243 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun batchWithdraw(ids: [UInt64]): @{NonFungibleToken.Collection} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n |\n226 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {\n | ^\n ... \n |\n233 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopSerial"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermissionV2a","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: error getting program 668df1b27a5da384.FanTopMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:61:67\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:61:92\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:53:84\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:53:109\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:75:42\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:80:51\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:207:63\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:207:88\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:284:95\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopMarket:284:94\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:76:89\n\n--\u003e 668df1b27a5da384.FanTopMarket\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:114:118\n |\n114 | access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:118:156\n |\n118 | access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:139:79\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:139:78\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:155:67\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:155:92\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:74:12\n |\n74 | FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:86:12\n |\n86 | FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:90:12\n |\n90 | FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:94:12\n |\n94 | FanTopToken.updateLimit(itemId: itemId, limit: limit)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:98:12\n |\n98 | FanTopToken.updateActive(itemId: itemId, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:115:22\n |\n115 | return \u003c- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:119:22\n |\n119 | return \u003c- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:136:12\n |\n136 | FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:140:12\n |\n140 | FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:144:12\n |\n144 | FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:201:12\n |\n201 | FanTopMarket.sell(\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:217:16\n |\n217 | FanTopMarket.containsOrder(orderId): \"Order is not exists\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:218:16\n |\n218 | FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): \"Cancel account is not match order account\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:221:12\n |\n221 | FanTopMarket.cancel(agent: nil, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermission","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopMarket","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:61:67\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:61:92\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:53:84\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:53:109\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:75:42\n |\n75 | access(contract) fun withdraw(): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:80:51\n |\n80 | view access(all) fun borrowFanTopToken(): \u0026FanTopToken.NFT? {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:207:63\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:207:88\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:284:95\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopMarket:284:94\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:76:89\n |\n76 | let token \u003c- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"Signature"},{"kind":"contract-update-failure","account_address":"0x8c5303eaa26202d6","contract_name":"EVM","error":"error: mismatched types\n --\u003e 8c5303eaa26202d6.EVM:300:37\n |\n300 | return EVMAddress(bytes: addressBytes)\n | ^^^^^^^^^^^^ expected `[UInt8; 20]`, got `AnyStruct`\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KaratNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.KaratNFT:179:43\n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n |\n155 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n ... \n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:340:32\n |\n340 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:258:43\n |\n258 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:15\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:56\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:110\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:399:8\n |\n399 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: use of previously moved resource\n --\u003e 3e5b4c627064625d.GeneratedExperiences:271:43\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ^^^^^ resource used here after move\n |\n271 | let oldToken \u003c- self.ownedNFTs[token.getID()] \u003c- token\n | ----- resource previously moved here\n\nerror: resource `GeneratedExperiences.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:221:25\n |\n221 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n224 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `GeneratedExperiences.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:221:25\n |\n221 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n258 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:284:32\n |\n284 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.NFGv3:203:43\n |\n203 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:15\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:56\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:110\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:15\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:67\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:121\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:328:8\n |\n328 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: resource `NFGv3.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.NFGv3:188:25\n |\n188 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n203 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:341:32\n |\n341 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.PartyFavorz:260:43\n |\n260 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:15\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:56\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:110\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:15\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:67\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:121\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:396:8\n |\n396 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: resource `PartyFavorz.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 3e5b4c627064625d.PartyFavorz:245:25\n |\n245 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n260 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:380:36\n |\n380 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 3e5b4c627064625d.Flomies:242:43\n |\n242 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:19\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:60\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:114\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:19\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:71\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:125\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:414:46\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 3e5b4c627064625d.Flomies:414:45\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:434:12\n |\n434 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n\nerror: resource `Flomies.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 3e5b4c627064625d.Flomies:227:25\n |\n227 | access(all) resource Collection: NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n242 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.CharityNFT:190:43\n |\n190 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `CharityNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.CharityNFT:179:25\n |\n179 | access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic , ViewResolver.ResolverCollection{\n | ^\n ... \n |\n190 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:22:36\n |\n22 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:163:71\n |\n163 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:158:57\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:158:56\n |\n158 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}?\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:19:164\n |\n19 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:106:38\n |\n106 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:122:52\n |\n122 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:170:47\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:170:46\n |\n170 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:168:60\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:168:59\n |\n168 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:175:41\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:175:40\n |\n175 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:360:57\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:360:56\n |\n360 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem}? {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:369:83\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketSale:369:82\n |\n369 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:373:133\n |\n373 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:383:8\n |\n383 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:384:8\n |\n384 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:374:26\n |\n374 | if let tenantCap=FindMarket.getTenantCapability(marketplace) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:376:96\n |\n376 | return getAccount(user).capabilities.get\u003c\u0026{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:73:23\n |\n73 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:99:19\n |\n99 | return FIND.reverseLookup(self.pointer.owner())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:123:19\n |\n123 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:213:139\n |\n213 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"buy item for sale\"), seller: self.owner!.address, buyer: nftCap.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:224:26\n |\n224 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:225:27\n |\n225 | let sellerName=FIND.reverseLookup(self.owner!.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:227:113\n |\n227 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:\"sold\", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:234:21\n |\n234 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:236:12\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:236:199\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:286:139\n |\n286 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketSale.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:295:115\n |\n295 | emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketSale:311:24\n |\n311 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:317:98\n |\n317 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForge","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n |\n413 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n |\n421 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n |\n427 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n |\n110 | access(all) fun setMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n |\n178 | access(all) fun removeMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n |\n229 | access(all) fun orderForge(lease: \u0026FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n |\n263 | access(all) fun mint (lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct, receiver: \u0026{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n |\n310 | access(all) fun addContractData(lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n |\n155 | let user = FIND.lookupAddress(leaseName) ?? panic(\"Cannot find lease owner. Lease : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n |\n234 | FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n |\n238 | FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n |\n242 | FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n |\n246 | let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n |\n272 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n |\n302 | let toName = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n |\n303 | let new = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n |\n319 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n |\n36 | self.minter=FIND.lookupAddress(self.name)!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36\n |\n17 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71\n |\n175 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31\n |\n452 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73\n |\n501 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171\n |\n13 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52\n |\n80 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38\n |\n108 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46\n |\n181 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59\n |\n179 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40\n |\n186 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56\n |\n444 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92\n |\n508 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59\n |\n505 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40\n |\n514 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54\n |\n639 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84\n |\n652 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e): @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130\n |\n656 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8\n |\n695 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8\n |\n696 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8\n |\n697 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8\n |\n698 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11\n |\n661 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22\n |\n664 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11\n |\n671 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22\n |\n674 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40\n |\n675 | if let saleItemCollection = getAccount(user).capabilities.get\u003c\u0026{FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!.borrow() {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11\n |\n685 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22\n |\n688 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19\n |\n65 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26\n |\n74 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19\n |\n81 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26\n |\n211 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24\n |\n214 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106\n |\n219 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152\n |\n236 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"add bid in direct offer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26\n |\n246 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106\n |\n251 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156\n |\n269 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30\n |\n282 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113\n |\n287 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152\n |\n302 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26\n |\n325 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36\n |\n330 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106\n |\n332 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26\n |\n354 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24\n |\n357 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106\n |\n362 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152\n |\n384 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26\n |\n402 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27\n |\n403 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21\n |\n415 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Profile","error":"error: conformances do not match in `User`: missing `Owner`\n --\u003e 35717efbbce11c74.Profile:328:25\n |\n328 | access(all) resource User: Public, FungibleToken.Receiver {\n | ^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.get\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)!.borrow() \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n |\n154 | if !cap.check() {\n | ^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n |\n157 | let ref = cap.borrow()!\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:189:71\n |\n189 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:533:31\n |\n533 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:586:73\n |\n586 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:14:171\n |\n14 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:74:38\n |\n74 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:120:52\n |\n120 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:47\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:195:46\n |\n195 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:60\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:193:59\n |\n193 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:41\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:200:40\n |\n200 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:57\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:519:56\n |\n519 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:93\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:593:92\n |\n593 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:60\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:590:59\n |\n590 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:41\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:599:40\n |\n599 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:55\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:730:54\n |\n730 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:83\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:745:82\n |\n745 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:131\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:749:130\n |\n749 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:774:8\n |\n774 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:775:8\n |\n775 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:776:8\n |\n776 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:777:8\n |\n777 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:754:11\n |\n754 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:757:22\n |\n757 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:764:11\n |\n764 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:767:22\n |\n767 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:106:19\n |\n106 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:114:26\n |\n114 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:121:19\n |\n121 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:234:26\n |\n234 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:237:24\n |\n237 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:242:134\n |\n242 | emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:260:150\n |\n260 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:270:26\n |\n270 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:275:106\n |\n275 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:293:183\n |\n293 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:304:30\n |\n304 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:309:113\n |\n309 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:325:150\n |\n325 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:348:26\n |\n348 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:353:36\n |\n353 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:356:106\n |\n356 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:378:26\n |\n378 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:381:24\n |\n381 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:386:106\n |\n386 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:413:150\n |\n413 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:427:26\n |\n427 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:432:106\n |\n432 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:457:150\n |\n457 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketDirectOfferSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:470:26\n |\n470 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:471:27\n |\n471 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:486:21\n |\n486 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:12\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:187\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: resource `FindMarketDirectOfferSoft.SaleItemCollection` does not conform to resource interface `FindMarketDirectOfferSoft.SaleItemCollectionPublic`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:189:25\n |\n189 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^\n ... \n |\n207 | access(all) fun isAcceptedDirectOffer(_ id:UInt64) : Bool{\n | --------------------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:7:86\n |\n7 | access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:14:22\n |\n14 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:16:43\n |\n16 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindFurnace:22:22\n |\n22 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:24:43\n |\n24 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:260:71\n |\n260 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:657:31\n |\n657 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:708:73\n |\n708 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:102:52\n |\n102 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:193:38\n |\n193 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:47\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:266:46\n |\n266 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:60\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:264:59\n |\n264 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:41\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:271:40\n |\n271 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:57\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:649:56\n |\n649 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:93\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:715:92\n |\n715 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:60\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:712:59\n |\n712 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:41\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:721:40\n |\n721 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:55\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:818:54\n |\n818 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:83\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:835:82\n |\n835 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:131\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:839:130\n |\n839 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:864:8\n |\n864 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:865:8\n |\n865 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:866:8\n |\n866 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:867:8\n |\n867 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:844:11\n |\n844 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:847:22\n |\n847 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:854:11\n |\n854 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:857:22\n |\n857 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:85:19\n |\n85 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:97:23\n |\n97 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:103:19\n |\n103 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:194:19\n |\n194 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:290:147\n |\n290 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"add bit in soft-auction\"), seller: self.owner!.address ,buyer: buyer)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:333:36\n |\n333 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:336:26\n |\n336 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:338:110\n |\n338 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:388:146\n |\n388 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:416:26\n |\n416 | let buyerName=FIND.reverseLookup(callback.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:418:123\n |\n418 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:452:24\n |\n452 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:458:30\n |\n458 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:460:114\n |\n460 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:462:114\n |\n462 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:518:146\n |\n518 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:537:26\n |\n537 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:538:27\n |\n538 | let sellerName=FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:540:110\n |\n540 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:549:21\n |\n549 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:12\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:146\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:592:163\n |\n592 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionSoft.SaleItem\u003e(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:612:126\n |\n612 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: \"active_listed\", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n |\n1156 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n |\n307 | init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n |\n305 | access(all) let verifierRef: \u0026FindForge.Verifier\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n |\n833 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n |\n1220 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n |\n1223 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n |\n612 | access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n833 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71\n |\n228 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31\n |\n529 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73\n |\n579 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22\n |\n32 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38\n |\n19 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40\n |\n91 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38\n |\n181 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46\n |\n234 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59\n |\n232 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40\n |\n239 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51\n |\n463 | access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92\n |\n585 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59\n |\n582 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40\n |\n591 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82\n |\n698 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130\n |\n702 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118\n |\n706 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115\n |\n716 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8\n |\n727 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8\n |\n728 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8\n |\n729 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8\n |\n730 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11\n |\n707 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22\n |\n710 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81\n |\n711 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11\n |\n717 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22\n |\n720 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82\n |\n721 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19\n |\n70 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23\n |\n86 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19\n |\n92 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19\n |\n182 | return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26\n |\n254 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36\n |\n261 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30\n |\n265 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30\n |\n266 | let profile = FIND.lookup(buyer!.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138\n |\n267 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138\n |\n269 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167\n |\n280 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"add bit in soft-auction\"), seller: self.owner!.address ,buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167\n |\n361 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"bid item in soft-auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167\n |\n405 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item from soft-auction\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167\n |\n443 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy item for soft-auction\"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12\n |\n457 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167\n |\n482 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list item for soft-auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38\n |\n621 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32\n |\n629 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n |\n325 | access(all) fun getLease() : FIND.LeaseInformation\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n |\n327 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n |\n331 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n |\n348 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n |\n352 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n |\n382 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n |\n377 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n |\n397 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n |\n401 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n |\n29 | access(all) fun getTenant(_ tenant: Address) : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n |\n42 | access(all) fun getSaleItemCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n |\n56 | access(all) fun getSaleItemCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n |\n137 | access(contract) fun checkSaleInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n |\n211 | access(all) fun getMarketBidCollectionCapabilities(tenantRef: \u0026{FindMarket.TenantPublic}, address: Address) : [Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e] {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n |\n222 | access(all) fun getMarketBidCollectionCapability(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability\u003c\u0026{FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n |\n254 | access(contract) fun checkBidInformation(tenantRef: \u0026{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n |\n666 | access(contract) fun getNetwork() : \u0026FIND.Network {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n |\n30 | return FindMarket.getTenantCapability(tenant)!.borrow()!\n | ^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n |\n46 | if let cap = getAccount(address).capabilities.get\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenantRef.getPublicPath(type)) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FindLeaseMarket.SaleItemCollectionPublic}\u003e`\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n |\n58 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n |\n70 | let address=FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n |\n87 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n |\n100 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n |\n110 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n |\n114 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n |\n124 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n |\n128 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n |\n168 | let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n |\n183 | let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"delist item for sale\"), seller: address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n |\n224 | if FindMarket.getMarketOptionFromType(type) == marketOption{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n |\n245 | let marketOption = FindMarket.getMarketOptionFromType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n |\n443 | let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n |\n449 | let findName = FIND.reverseLookup(cut.getAddress())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n |\n673 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n |\n674 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n |\n679 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n |\n680 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n |\n685 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n |\n686 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n |\n691 | FindMarket.addPathMap(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n |\n692 | FindMarket.addListingName(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n |\n337 | let address = FIND.lookupAddress(name) ?? panic(\"This lease name is not owned\")\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n |\n338 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n |\n426 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n |\n477 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n |\n479 | } else if status.status == FIND.LeaseStatus.LOCKED {\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31\n |\n418 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73\n |\n470 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177\n |\n16 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22\n |\n27 | init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability\u003c\u0026{MarketBidCollectionPublic}\u003e, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38\n |\n69 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40\n |\n119 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51\n |\n131 | access(contract) fun setPointer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46\n |\n175 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59\n |\n173 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40\n |\n180 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50\n |\n328 | access(Seller) fun acceptOffer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92\n |\n477 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59\n |\n474 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40\n |\n483 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82\n |\n606 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130\n |\n610 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118\n |\n614 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115\n |\n625 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8\n |\n636 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8\n |\n637 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8\n |\n638 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8\n |\n639 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12\n |\n615 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22\n |\n618 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81\n |\n620 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12\n |\n626 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22\n |\n629 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82\n |\n630 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43\n |\n50 | let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19\n |\n105 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26\n |\n113 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19\n |\n120 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167\n |\n207 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"cancel bid in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26\n |\n223 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26\n |\n224 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26\n |\n226 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36\n |\n233 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130\n |\n236 | emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167\n |\n247 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"increase bid in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27\n |\n262 | let item = FindLeaseMarket.ReadLeasePointer(name: name)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171\n |\n264 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167\n |\n281 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"bid in direct offer soft\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167\n |\n314 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"reject offer in direct offer soft\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167\n |\n339 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"accept offer in direct offer soft\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167\n |\n366 | let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"fulfill directOffer\"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12\n |\n377 | FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo: leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FindLeaseMarketDirectOfferSoft.SaleItemCollection` does not conform to resource interface `FindLeaseMarketDirectOfferSoft.SaleItemCollectionPublic`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:25\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^\n ... \n |\n187 | access(all) fun isAcceptedDirectOffer(_ name:String) : Bool{\n | --------------------- mismatch here\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38\n |\n514 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32\n |\n532 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:18:36\n |\n18 | access(all) resource SaleItem : FindMarket.SaleItem {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:264:71\n |\n264 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:707:31\n |\n707 | access(all) resource Bid : FindMarket.Bid {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:756:73\n |\n756 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:16:201\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:106:52\n |\n106 | access(all) fun toNFTInfo(_ detail: Bool) : FindMarket.NFTInfo{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:197:38\n |\n197 | access(all) fun getAuction(): FindMarket.AuctionItem? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:47\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:270:46\n |\n270 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:60\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:268:59\n |\n268 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:41\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:275:40\n |\n275 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:57\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:699:56\n |\n699 | access(all) fun borrowSaleItem(_ id: UInt64) : \u0026{FindMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:93\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:763:92\n |\n763 | init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:60\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:760:59\n |\n760 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:41\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:769:40\n |\n769 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:55\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:878:54\n |\n878 | access(all) fun borrowBidItem(_ id: UInt64): \u0026{FindMarket.Bid} {\n | ^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:83\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:892:82\n |\n892 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:131\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:896:130\n |\n896 | access(all) fun createEmptyMarketBidCollection(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @MarketBidCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:900:118\n |\n900 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:910:115\n |\n910 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:921:8\n |\n921 | FindMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:922:8\n |\n922 | FindMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:923:8\n |\n923 | FindMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:924:8\n |\n924 | FindMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:901:11\n |\n901 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:904:22\n |\n904 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:905:81\n |\n905 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:911:11\n |\n911 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:914:22\n |\n914 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:915:82\n |\n915 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:89:19\n |\n89 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:101:23\n |\n101 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:107:19\n |\n107 | return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:198:19\n |\n198 | return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:292:148\n |\n292 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:\"add bid in auction\"), seller: self.owner!.address, buyer: newOffer.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:337:36\n |\n337 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:342:26\n |\n342 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:344:110\n |\n344 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:400:148\n |\n400 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"bid in auction\"), seller: self.owner!.address, buyer: callback.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:429:26\n |\n429 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:431:110\n |\n431 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:497:24\n |\n497 | var nftInfo:FindMarket.NFTInfo?=nil\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:504:30\n |\n504 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:506:114\n |\n506 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:508:114\n |\n508 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:538:152\n |\n538 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: \"fulfill auction\"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:560:30\n |\n560 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:561:33\n |\n561 | let sellerName = FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:572:25\n |\n572 | resolved[FindMarket.tenantNameAddress[tenant.name]!] = tenant.name\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:16\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:189\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:635:148\n |\n635 | let actionResult=tenant.allowedAction(listingType: Type\u003c@FindMarketAuctionEscrow.SaleItem\u003e(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: \"list item for auction\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:662:113\n |\n662 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts","error":"error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:14:141\n |\n14 | access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: [String], nfts:[FindMarket.NFTInfo], tags: [String], quoteOwner: Address?, quoteId: UInt64?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:154:73\n |\n154 | emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:167:68\n |\n167 | emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:56\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:111\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:268:24\n |\n268 | let nfts : [FindMarket.NFTInfo] = []\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindThoughts:273:28\n |\n273 | nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:282:30\n |\n282 | let creatorName = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:307:23\n |\n307 | name = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:309:80\n |\n309 | emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n |\n46 | let senderName = FIND.reverseLookup(sender)\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n |\n63 | if let receiverCap = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(collectionPublicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n |\n76 | emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n |\n82 | if let collectionPublicCap = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Collection}\u003e(collectionPublicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{NonFungibleToken.Collection}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n |\n95 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n |\n124 | flowTokenRepayment: flowTokenRepayment\n | ^^^^^^^^^^^^^^^^^^ expected `Capability\u003c\u0026FlowToken.Vault\u003e?`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n |\n129 | emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n |\n140 | emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: \"invalid capability\")\n | ^^^^ not found in this scope\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n |\n154 | shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)\n | ^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n |\n162 | senderName = FIND.reverseLookup(sender!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n |\n164 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n |\n165 | emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n |\n271 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Dandy","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:348:32\n |\n348 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:63:119\n |\n63 | init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:61:39\n |\n61 | access(contract) let platform: FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:87:46\n |\n87 | access(all) fun getMinterPlatform() : FindForge.MinterPlatform {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.Dandy:240:43\n |\n240 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:15\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:56\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:349:110\n |\n349 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:333:109\n |\n333 | access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: [AnyStruct], externalUrlPrefix:String?) : @NFT {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:360:42\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Dandy:360:41\n |\n360 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:388:8\n |\n388 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:390:8\n |\n390 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:88:27\n |\n88 | if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:89:50\n |\n89 | let platform = \u0026self.platform as \u0026FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n\nerror: resource `Dandy.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.Dandy:225:25\n |\n225 | access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n240 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n |\n12 | access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n |\n13 | access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n |\n18 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n |\n20 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n |\n27 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n |\n68 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n |\n70 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n |\n78 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n |\n81 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n |\n100 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n |\n102 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n |\n110 | let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n |\n115 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:26:57\n |\n26 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:32:49\n |\n32 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:34:57\n |\n34 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:91\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:42:133\n |\n42 | access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability\u003c\u0026FindMarket.Tenant\u003e {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:58:51\n |\n58 | access(Owner) fun getFindMarketClient(): \u0026FindMarket.TenantClient{\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:129:61\n |\n129 | access(Owner) fun getTenantRef(_ tenant: Address) : \u0026FindMarket.Tenant {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:139:66\n |\n139 | access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:155:64\n |\n155 | access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:171:69\n |\n171 | access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:47:20\n |\n47 | return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:55:12\n |\n55 | FindMarket.removeFindMarketTenant(tenant: tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:63:23\n |\n63 | let path = FindMarket.TenantClientStoragePath\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:63\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:94\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:64:19\n |\n64 | return FindMarketAdmin.account.storage.borrow\u003cauth(FindMarket.TenantClientOwner) \u0026FindMarket.TenantClient\u003e(from: path) ?? panic(\"Cannot borrow Find market tenant client Reference.\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:74:12\n |\n74 | FindMarket.addSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:81:12\n |\n81 | FindMarket.addMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:88:12\n |\n88 | FindMarket.addSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:95:12\n |\n95 | FindMarket.addMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:102:12\n |\n102 | FindMarket.removeSaleItemType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:109:12\n |\n109 | FindMarket.removeMarketBidType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:116:12\n |\n116 | FindMarket.removeSaleItemCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:123:12\n |\n123 | FindMarket.removeMarketBidCollectionType(type)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:133:25\n |\n133 | let string = FindMarket.getTenantPathForAddress(tenant)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:67\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindMarketAdmin:135:22\n |\n135 | let cap = FindMarketAdmin.account.capabilities.borrow\u003c\u0026FindMarket.Tenant\u003e(pp) ?? panic(\"Cannot borrow tenant reference from path. Path : \".concat(pp.toString()) )\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindMarketAdmin:228:12\n |\n228 | FindMarket.setResidualAddress(address)\n | ^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarket","error":"error: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n |\n315 | if let cap = getAccount(address).capabilities.get\u003c\u0026{FindMarket.MarketBidCollectionPublic}\u003e(tenantRef.getPublicPath(type)) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FindMarket.MarketBidCollectionPublic}\u003e`\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n |\n1411 | if sbRef.getVaultTypes().contains(ftInfo.type) {\n | ^^^^^^^^^^^^^ unknown member\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.NameVoucher:168:43\n |\n168 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n |\n228 | let status = FIND.status(name)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n |\n231 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: resource `NameVoucher.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.NameVoucher:158:25\n |\n158 | access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {\n | ^\n ... \n |\n168 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:0\n |\n37 | pub contract FLOAT: NonFungibleToken {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :56:4\n |\n56 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:4\n |\n63 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:8\n |\n83 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :84:8\n |\n84 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:8\n |\n85 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:8\n |\n95 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:8\n |\n96 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:4\n |\n105 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:8\n |\n112 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :113:8\n |\n113 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:8\n |\n114 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :116:8\n |\n116 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :119:8\n |\n119 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :126:51\n |\n126 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 0afe396ebc8eee65.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:59\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:77\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.FindPack:833:43\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\nerror: resource `FindPack.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.FindPack:612:25\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:63:29\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:83\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:82:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:95:79\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:124:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:129:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:140:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:154:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:164:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:165:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:271:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:12:119\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:13:135\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:27:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:70:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:78:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:81:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:102:23\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindAirdropper:110:22\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:115:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 35717efbbce11c74.NameVoucher:168:43\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n\nerror: resource `NameVoucher.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 35717efbbce11c74.NameVoucher:158:25\n\n--\u003e 35717efbbce11c74.NameVoucher\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:38:57\n |\n38 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:44:49\n |\n44 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:46:57\n |\n46 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:156:110\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:156:109\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:59:12\n |\n59 | FindForge.addPublicForgeType(forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:67:12\n |\n67 | FindForge.addPrivateForgeType(name: name, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:75:12\n |\n75 | FindForge.removeForgeType(type: type)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:83:12\n |\n83 | FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.Admin:91:12\n |\n91 | FindForgeOrder.addMintType(mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:99:12\n |\n99 | FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:106:12\n |\n106 | FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:114:19\n |\n114 | return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:161:16\n |\n161 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:174:16\n |\n174 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:178:23\n |\n178 | let user = FIND.lookupAddress(name) ?? panic(\"Cannot find lease owner. Lease : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:58\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:179:57\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:87\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:188:16\n |\n188 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:192:12\n |\n192 | FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:200:12\n |\n200 | FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:295:122\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:296:12\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:359:19\n |\n359 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:57\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:87\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:367:27\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:368:19\n |\n368 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:325:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:327:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:331:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:348:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:352:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:382:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:377:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:397:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:401:37\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:53\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:29:52\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:67\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:42:66\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:65\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:56:64\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:137:58\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:68\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:211:67\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:222:65\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:254:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:30:15\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLeaseMarket:46:29\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:58:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:70:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:87:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:100:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:110:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:114:31\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:124:22\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:128:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:168:137\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:183:140\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:224:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:245:31\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:443:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:449:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:673:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:674:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:679:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:680:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:685:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:686:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:691:8\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarket:692:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:338:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:426:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:477:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:479:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindMarket:315:25\n\nerror: value of type `\u0026{FungibleTokenSwitchboard.SwitchboardPublic}` has no member `getVaultTypes`\n --\u003e 35717efbbce11c74.FindMarket:1411:29\n\n--\u003e 35717efbbce11c74.FindMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:21:36\n |\n21 | access(all) resource SaleItem : FindLeaseMarket.SaleItem{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:132:71\n |\n132 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:59\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:58\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:18:170\n |\n18 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:33:22\n |\n33 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:26:38\n |\n26 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:94:38\n |\n94 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:110:40\n |\n110 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:47\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:138:46\n |\n138 | init (_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:60\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:136:59\n |\n136 | access(contract) let tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:41\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:143:40\n |\n143 | access(self) fun getTenant() : \u0026{FindMarket.TenantPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:201:48\n |\n201 | access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:59\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:58\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:83\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:279:82\n |\n279 | access(all) fun createEmptySaleItemCollection(_ tenantCapability: Capability\u003c\u0026{FindMarket.TenantPublic}\u003e) : @SaleItemCollection {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:283:138\n |\n283 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:294:8\n |\n294 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:295:8\n |\n295 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:284:11\n |\n284 | if FindMarket.getTenantCapability(marketplace) == nil {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:287:22\n |\n287 | if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:288:101\n |\n288 | return getAccount(user).capabilities.get\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:64:23\n |\n64 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:25\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:19\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:87:19\n |\n87 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:111:19\n |\n111 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:174:183\n |\n174 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"buy lease for sale\"), seller: self.owner!.address, buyer: to)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:189:26\n |\n189 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:190:26\n |\n190 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:194:12\n |\n194 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:196:123\n |\n196 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:\"sold\", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:216:183\n |\n216 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:\"list lease for sale\"), seller: self.owner!.address, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:223:124\n |\n223 | emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:237:187\n |\n237 | let actionResult=self.getTenant().allowedAction(listingType: Type\u003c@FindLeaseMarketSale.SaleItem\u003e(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:\"delist lease for sale\"), seller: nil, buyer: nil)\n | ^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:243:126\n |\n243 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:250:126\n |\n250 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:252:126\n |\n252 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FIND","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n |\n1358 | access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n |\n1610 | access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{LeaseCollectionPublic}\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n |\n2110 | if self.account.storage.borrow\u003c\u0026FUSD.Vault\u003e(from: FUSD.VaultStoragePath) == nil {\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n |\n2112 | let vault \u003c- FUSD.createEmptyVault()\n | ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n |\n2115 | self.account.storage.save(\u003c-vault, to: FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n |\n2119 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n |\n2121 | self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)\n | ^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n |\n2123 | let capb = self.account.capabilities.storage.issue\u003c\u0026{FungibleToken.Vault}\u003e(FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n |\n2129 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n |\n2131 | self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)\n | ^^^^^^^^^^^^^^^^^^ unknown member\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n |\n153 | if let cap = account.capabilities.get\u003c\u0026{Profile.Public}\u003e(Profile.publicPath) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{Profile.Public}\u003e`\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n |\n627 | access(all) resource LeaseCollection: LeaseCollectionPublic {\n | ^\n ... \n |\n1293 | access(all) fun move(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, to: Capability\u003c\u0026LeaseCollection\u003e) {\n | ---- mismatch here\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n |\n1633 | let usdcCap = account.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FiatToken.VaultReceiverPubPath)!\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-failure","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 2d59ec5158e3adae.HeroesOfTheFlow:292:43\n |\n292 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `HeroesOfTheFlow.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 2d59ec5158e3adae.HeroesOfTheFlow:260:25\n |\n260 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n292 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Teleport","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :7:0\n |\n7 | pub contract DapperStorageRent {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:2\n |\n9 | pub let DapperStorageRentAdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:2\n |\n23 | pub event BlockedAddress(_ address: [Address])\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:2\n |\n25 | pub event Refuelled(_ address: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub event RefilledFailed(address: Address, reason: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub fun getStorageRentRefillThreshold(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:2\n |\n41 | pub fun getRefilledAccounts(): [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub fun getBlockedAccounts() : [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:2\n |\n57 | pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:2\n |\n65 | pub fun getRefillRequiredBlocks(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:2\n |\n70 | pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:2\n |\n75 | pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:2\n |\n85 | pub fun tryRefill(_ address: Address) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :124:106\n |\n124 | if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow\u003c\u0026FlowToken.Vault{FungibleToken.Balance}\u003e() {\n | ^^^^^^^^^^^^^\n\n--\u003e 43ee8c22fcf94ea3.DapperStorageRent\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:115:43\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:115:65\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:115:17\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:115:17\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:119:4\n |\n119 | \t\t\t\tWearables.mintNFT(recipient: wearable, template:id, context:context)\n | \t\t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:136:3\n |\n136 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:159:20\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:159:88\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:181:43\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:181:65\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:181:17\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:181:17\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:185:4\n |\n185 | \t\t\t\tWearables.mintNFT(recipient: wearable, template:id, context:context)\n | \t\t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:201:3\n |\n201 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:224:20\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:224:88\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Admin","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:242:39\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:428:84\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:428:109\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:477:88\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:499:165\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:521:143\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:623:45\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:653:64\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:669:50\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:822:37\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:894:13\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:902:16\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:282:35\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:282:11\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:450:32\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:480:23\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:502:23\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:532:48\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.Doodles:541:24\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:542:33\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:678:40\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:679:23\n\nerror: resource `Doodles.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Doodles:812:22\n\n--\u003e 1c5033ad60821c97.Doodles\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:141:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:67\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.DoodlePacks:238:17\n\nerror: resource `DoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodlePacks:138:22\n\n--\u003e 1c5033ad60821c97.DoodlePacks\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:58:43\n |\n58 | \t\taccess(all) fun registerWearableSet(_ s: Wearables.Set) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:72:48\n |\n72 | \t\taccess(all) fun registerWearablePosition(_ p: Wearables.Position) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:86:48\n |\n86 | \t\taccess(all) fun registerWearableTemplate(_ t: Wearables.Template) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:128:6\n |\n128 | \t\t): @Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:144:9\n |\n144 | \t\t\tdata: Wearables.WearableMintData,\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:195:52\n |\n195 | \t\taccess(all) fun registerDoodlesBaseCharacter(_ d: Doodles.BaseCharacter) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:209:46\n |\n209 | \t\taccess(all) fun registerDoodlesSpecies(_ d: Doodles.Species) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:223:42\n |\n223 | \t\taccess(all) fun registerDoodlesSet(_ d: Doodles.Set) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:242:6\n |\n242 | \t\t): @Doodles.NFT {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:62:3\n |\n62 | \t\t\tWearables.addSet(s)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:69:3\n |\n69 | \t\t\tWearables.retireSet(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:76:3\n |\n76 | \t\t\tWearables.addPosition(p)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:83:3\n |\n83 | \t\t\tWearables.retirePosition(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:90:3\n |\n90 | \t\t\tWearables.addTemplate(t)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:97:3\n |\n97 | \t\t\tWearables.retireTemplate(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:104:3\n |\n104 | \t\t\tWearables.updateTemplateDescription(templateId: templateId, description: description)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:117:3\n |\n117 | \t\t\tWearables.mintNFT(\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:133:22\n |\n133 | \t\t\tlet newWearable \u003c- Wearables.mintNFTDirect(\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:152:3\n |\n152 | \t\t\tWearables.mintEditionNFT(\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:199:3\n |\n199 | \t\t\tDoodles.setBaseCharacter(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:206:3\n |\n206 | \t\t\tDoodles.retireBaseCharacter(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:213:3\n |\n213 | \t\t\tDoodles.addSpecies(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:220:3\n |\n220 | \t\t\tDoodles.retireSpecies(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:227:3\n |\n227 | \t\t\tDoodles.addSet(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:234:3\n |\n234 | \t\t\tDoodles.retireSet(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:247:17\n |\n247 | \t\t\tlet doodle \u003c- Doodles.adminMintDoodle(\n | \t\t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:261:3\n |\n261 | \t\t\tRedeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:269:3\n |\n269 | \t\t\tRedeemables.updateSetActive(setId: setId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:276:3\n |\n276 | \t\t\tRedeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:283:3\n |\n283 | \t\t\tRedeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:300:3\n |\n300 | \t\t\tRedeemables.createTemplate(\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:317:3\n |\n317 | \t\t\tRedeemables.updateTemplateActive(templateId: templateId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:324:3\n |\n324 | \t\t\tRedeemables.mintNFT(recipient: recipient, templateId: templateId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:331:3\n |\n331 | \t\t\tRedeemables.burnUnredeemedSet(setId: setId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:363:3\n |\n363 | \t\t\tDoodlePacks.mintNFT(recipient: recipient, typeId: typeId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:435:3\n |\n435 | \t\t\tOpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)\n | \t\t\t^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks","error":"error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:141:37\n |\n141 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:67\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n |\n236 | \t\tlet openPack \u003c- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.DoodlePacks:238:17\n |\n238 | \t\tBurner.burn(\u003c- collection.withdraw(withdrawID: packId))\n | \t\t ^^^^^^^^^^^^^^^^^^^\n\nerror: resource `DoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodlePacks:138:22\n |\n138 | \taccess(all) resource Collection: CollectionPublic, NonFungibleToken.Collection{\n | \t ^\n ... \n |\n141 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n |\n121 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n |\n205 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n |\n233 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n |\n111 | \taccess(all) resource Collection: NonFungibleToken.Collection {\n | \t ^\n ... \n |\n121 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n |\n140 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n |\n264 | access(all) fun reveal(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{OpenDoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64, receiverAddress: Address) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n |\n313 | destroy \u003c- collection.withdraw(withdrawID: packId)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n |\n427 | let recipient = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(Wearables.CollectionPublicPath)!.borrow()\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n |\n429 | Wearables.mintNFT(\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n |\n438 | let recipient = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(Redeemables.CollectionPublicPath)!.borrow()\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n |\n440 | Redeemables.mintNFT(recipient: recipient, templateId: templateId)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n |\n133 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n140 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Wearables","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n |\n728 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n |\n718 | \taccess(all) resource Collection: NonFungibleToken.Collection {\n | \t ^\n ... \n |\n728 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n |\n246 | access(NonFungibleToken.Owner) fun redeem(id: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n |\n257 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n |\n321 | \t\taccess(NonFungibleToken.Owner) fun redeem(id: UInt64) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n |\n440 | \t\t\t\tgetAccount(address).capabilities.get\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e(Redeemables.CollectionPublicPath)?.borrow()\n | \t\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n |\n250 | \taccess(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n321 | \t\taccess(NonFungibleToken.Owner) fun redeem(id: UInt64) {\n | \t\t ------ mismatch here\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n |\n250 | \taccess(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n257 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Doodles","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1358:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1610:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2110:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2112:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2115:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2119:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2121:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2123:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2129:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2131:68\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FIND:153:25\n\nerror: resource `FIND.LeaseCollection` does not conform to resource interface `FIND.LeaseCollectionPublic`\n --\u003e 35717efbbce11c74.FIND:627:25\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1633:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n |\n234 | \t\taccess(all) var name: @{UInt64 : DoodleNames.NFT}\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:242:39\n |\n242 | \t\taccess(all) let wearables: @{UInt64: Wearables.NFT}\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:428:84\n |\n428 | \t\taccess(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026Wearables.Collection, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:428:109\n |\n428 | \t\taccess(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026Wearables.Collection, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:477:88\n |\n477 | access(all) fun editDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:499:165\n |\n499 | \t\taccess(all) fun editDoodleWithMultipleCollections(receiverWearableCollection: \u0026{NonFungibleToken.Receiver}, wearableCollections: [auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}], equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Boo... \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:521:143\n |\n521 | \t\taccess(contract) fun internalEditDoodle(wearableReceiver: \u0026{NonFungibleToken.Receiver}, wearableProviders: [auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}], equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool... \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n |\n581 | \t\taccess(account) fun addName(_ nft: @DoodleNames.NFT, owner:Address) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n |\n590 | \t\taccess(all) fun equipName(_ nft: @DoodleNames.NFT) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n |\n606 | \t\taccess(contract) fun unequipName() : @DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:623:45\n |\n623 | \t\taccess(contract) fun equipWearable(_ nft: @Wearables.NFT, index: UInt64) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:653:64\n |\n653 | \t\taccess(contract) fun unequipWearable(_ resourceId: UInt64) : @Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:669:50\n |\n669 | \t\taccess(all) fun borrowWearable(_ id: UInt64) : \u0026Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n |\n673 | \t\taccess(all) fun borrowName(_ id: UInt64) : \u0026DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:822:37\n |\n822 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:894:13\n |\n894 | \t\tbetaPass: @Wearables.NFT,\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:902:16\n |\n902 | \t\tlet template: Wearables.Template = betaPass.getTemplate()\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n |\n940 | \t\tlet name \u003c- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:282:35\n |\n282 | \t\t\treturn (\u0026self.wearables[id] as \u0026Wearables.NFT?)!\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:282:11\n |\n282 | \t\t\treturn (\u0026self.wearables[id] as \u0026Wearables.NFT?)!\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:450:32\n |\n450 | \t\t\t\tlet nft \u003c- wearableNFT as! @Wearables.NFT\n | \t\t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:480:23\n |\n480 | \t\t\t\twearableProviders: [wearableCollection],\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^ expected `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`, got `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:502:23\n |\n502 | \t\t\t\twearableProviders: wearableCollections,\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^ expected `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`, got `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:532:48\n |\n532 | wearableReceiver.deposit(token: \u003c- nft)\n | ^^^^^^ expected `{NonFungibleToken.NFT}`, got `\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.Doodles:541:24\n |\n541 | \t\t\t\t\tlet wearableNFT \u003c- wearableProvider.withdraw(withdrawID: wId)\n | \t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:542:33\n |\n542 | \t\t\t\t\tlet nft \u003c- wearableNFT as! @Wearables.NFT\n | \t\t\t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:678:40\n |\n678 | \t\t\tif let nft = \u0026self.wearables[id] as \u0026Wearables.NFT? {\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:679:23\n |\n679 | return nft\n | ^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e`\n\nerror: resource `Doodles.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Doodles:812:22\n |\n812 | \taccess(all) resource Collection: DoodlesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n822 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-05-08T10-13-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-05-08T10-13-00Z-testnet.md new file mode 100644 index 0000000000..55ef9b66d3 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-08T10-13-00Z-testnet.md @@ -0,0 +1,232 @@ +## Cadence 1.0 staged contracts migration results +Date: 09 May, 2024 + +Stats: 221 contracts staged, 148 successfully upgraded, 73 failed to upgrade + +Snapshot: devnet49-execution-snapshot-for-migration-6-may-8 + +Flow-go build: crescendo-preview.20-atree-inlining + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xf8ba321af4bd37bb | aiSportsMinter | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8ba321af4bd37bb.aiSportsMinter:193:39
\|
193 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`aiSportsMinter.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8ba321af4bd37bb.aiSportsMinter:168:25
\|
168 \| access(all) resource Collection: NonFungibleToken.Collection, aiSportsMinterCollectionPublic {
\| ^
...
\|
193 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xef4cd3d07a7b43ce | IPackNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ❌

Error:
error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:102:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:103:41

--\> d8f6346999b983f5.IPackNFT

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:67:36
\|
67 \| access(all) struct Collectible: IPackNFT.Collectible {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:159:41
\|
159 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:159:61
\|
159 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:159:60
\|
159 \| operatorCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:112:54
\|
112 \| access(self) let operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:112:74
\|
112 \| access(self) let operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:112:73
\|
112 \| access(self) let operatorCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:136:62
\|
136 \| access(all) fun revealPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:136:61
\|
136 \| access(all) fun revealPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:143:60
\|
143 \| access(all) fun openPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, recvCap: &{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:143:59
\|
143 \| access(all) fun openPackNFT(packId: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, recvCap: &{NonFungibleToken.CollectionPublic}, collectionStoragePath: StoragePath) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:312:37
\|
312 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:312:57
\|
312 \| operatorCap: Capability
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:312:56
\|
312 \| operatorCap: Capability
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:248:23
\|
248 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:248:22
\|
248 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> ef4cd3d07a7b43ce.PDS:270:23
\|
270 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> ef4cd3d07a7b43ce.PDS:270:22
\|
270 \| let arr: \$&{IPackNFT.Collectible}\$& = \$&\$&
\| ^^^^^^^^^^^^^^^^^^^^^^
| +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:102:41
\|
102 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun reveal(openRequest: Bool)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:103:41
\|
103 \| access(NonFungibleToken.Update \| NonFungibleToken.Owner) fun open()
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0xd704ee8202a0d82d | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> d704ee8202a0d82d.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowverseSocks | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseSocks:142:43
\|
142 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25
\|
111 \| access(all) resource Collection: FlowverseSocksCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
142 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowverseTreasures | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseTreasures:628:43
\|
628 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowverseTreasures.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseTreasures:596:25
\|
596 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
628 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | Ordinal | ❌

Error:
error: error getting program c7c122b5b811de8e.OrdinalVendor: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseSocks:142:43

error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

error: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseShirt:238:43

error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25

--\> c7c122b5b811de8e.FlowverseShirt

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:94

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:203:93

error: cannot find variable in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:127

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:203:47

error: cannot find type in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:88

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:210:87

error: cannot find variable in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:136

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:210:41

error: cannot find type in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:88

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:217:87

error: cannot find variable in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:122

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:217:41

--\> c7c122b5b811de8e.OrdinalVendor

error: cannot find type in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:194:33
\|
194 \| access(all) resource Minter: OrdinalVendor.IMinter {
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.Ordinal:262:43
\|
262 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:183:19
\|
183 \| assert(OrdinalVendor.checkDomainAvailability(domain: data), message: "domain already exists")
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OrdinalVendor\`
--\> c7c122b5b811de8e.Ordinal:83:38
\|
83 \| let isOrdinalRestricted = OrdinalVendor.checkOrdinalRestricted(id: self.id)
\| ^^^^^^^^^^^^^ not found in this scope

error: resource \`Ordinal.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.Ordinal:230:25
\|
230 \| access(all) resource Collection: CollectionPublic, CollectionUpdate, NonFungibleToken.Collection {
\| ^
...
\|
262 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | OrdinalVendor | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowverseSocks: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseSocks:142:43

error: resource \`FlowverseSocks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseSocks:111:25

--\> c7c122b5b811de8e.FlowverseSocks

error: error getting program c7c122b5b811de8e.FlowverseShirt: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseShirt:238:43

error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25

--\> c7c122b5b811de8e.FlowverseShirt

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:94
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:203:93
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.OrdinalVendor:203:127
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:203:47
\|
203 \| let mysteryPassCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowversePass.CollectionPublic}>(FlowversePass.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:88
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:210:87
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowverseSocks\`
--\> c7c122b5b811de8e.OrdinalVendor:210:136
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:210:41
\|
210 \| let socksCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseSocks.FlowverseSocksCollectionPublic}>(FlowverseSocks.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:88
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.OrdinalVendor:217:87
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlowverseShirt\`
--\> c7c122b5b811de8e.OrdinalVendor:217:122
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.OrdinalVendor:217:41
\|
217 \| let shirtCollectionRef = getAccount(ownerAddress).capabilities.borrow<&{FlowverseShirt.CollectionPublic}>(FlowverseShirt.CollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | Royalties | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:160:8
\|
160 \| ): \$&NFTStorefrontV2.SaleCut\$& {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:161:23
\|
161 \| let saleCuts: \$&NFTStorefrontV2.SaleCut\$& = \$&\$&
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:164:28
\|
164 \| saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut \* salePrice))
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

error: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

--\> c7c122b5b811de8e.FlowversePrimarySale

error: cannot find type in this scope: \`FlowversePrimarySale\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:12:33
\|
12 \| access(all) resource Minter: FlowversePrimarySale.IMinter {
\| ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:19:25
\|
19 \| init(setMinter: @FlowversePass.SetMinter) {
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:13:37
\|
13 \| access(self) let setMinter: @FlowversePass.SetMinter
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowversePass\`
--\> c7c122b5b811de8e.FlowversePassPrimarySaleMinter:24:45
\|
24 \| access(all) fun createMinter(setMinter: @FlowversePass.SetMinter): @Minter {
\| ^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowversePass | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43
\|
593 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25
\|
561 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
593 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowverseTreasures: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseTreasures:628:43

error: resource \`FlowverseTreasures.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseTreasures:596:25

--\> c7c122b5b811de8e.FlowverseTreasures

error: error getting program c7c122b5b811de8e.FlowversePrimarySale: failed to derive value: load program failed: Checking failed:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass

--\> c7c122b5b811de8e.FlowversePrimarySale

error: cannot find type in this scope: \`FlowversePrimarySale\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:12:33
\|
12 \| access(all) resource Minter: FlowversePrimarySale.IMinter {
\| ^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:19:25
\|
19 \| init(setMinter: @FlowverseTreasures.SetMinter) {
\| ^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:13:37
\|
13 \| access(self) let setMinter: @FlowverseTreasures.SetMinter
\| ^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlowverseTreasures\`
--\> c7c122b5b811de8e.FlowverseTreasuresPrimarySaleMinter:24:45
\|
24 \| access(all) fun createMinter(setMinter: @FlowverseTreasures.SetMinter): @Minter {
\| ^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowversePrimarySale | ❌

Error:
error: error getting program c7c122b5b811de8e.FlowversePass: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowversePass:593:43

error: resource \`FlowversePass.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowversePass:561:25

--\> c7c122b5b811de8e.FlowversePass
| +| 0xc7c122b5b811de8e | FlowverseShirt | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> c7c122b5b811de8e.FlowverseShirt:238:43
\|
238 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FlowverseShirt.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> c7c122b5b811de8e.FlowverseShirt:206:25
\|
206 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
238 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :40:0
\|
40 \| pub contract Market {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub resource interface SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:8
\|
62 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:8
\|
68 \| pub fun getPrice(tokenID: UInt64): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:8
\|
69 \| pub fun getIDs(): \$&UInt64\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:8
\|
70 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub resource SaleCollection: SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun listForSale(token: @TopShot.NFT, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub fun withdraw(tokenID: UInt64): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :166:8
\|
166 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :198:8
\|
198 \| pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :209:8
\|
209 \| pub fun changePercentage(\_ newPercent: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :216:8
\|
216 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :225:8
\|
225 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :227:73
\|
227 \| newBeneficiaryCapability.borrow<&DapperUtilityCoin.Vault{FungibleToken.Receiver}>() != nil:
\| ^^^^^^^^^^^^^

--\> 547f177b243b4d80.Market

error: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :46:0
\|
46 \| pub contract TopShotMarketV3 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let marketStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub let marketPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:4
\|
79 \| pub resource SaleCollection: Market.SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:8
\|
101 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub fun listForSale(tokenID: UInt64, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub fun cancelSale(tokenID: UInt64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:8
\|
196 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :247:8
\|
247 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:8
\|
259 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:8
\|
272 \| pub fun getPrice(tokenID: UInt64): UFix64? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :282:8
\|
282 \| pub fun getIDs(): \$&UInt64\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:8
\|
302 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :318:4
\|
318 \| pub fun createSaleCollection(ownerCollection: Capability<&TopShot.Collection>,
\| ^^^

--\> 547f177b243b4d80.TopShotMarketV3

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:154:70
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:154:69
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:159:73
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:159:72
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:164:73
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:164:72
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:225:22
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:225:21
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:301:25
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:301:24
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:35
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:156:34
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:70
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:155:15
\|
155 \| return getAccount(address)
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:161:35
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:161:34
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:160:15
\|
160 \| return getAccount(address)
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:166:35
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:166:34
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`TopShotMarketV3\`
--\> c7c122b5b811de8e.BulkPurchase:166:55
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:165:15
\|
165 \| return getAccount(address)
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:353:42
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:353:41
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:354:45
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:354:44
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:355:45
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:355:44
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^
| +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb39a42479c1c2c77 | AFLPack | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:22:48
\|
22 \| access(contract) let adminRef : Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:164:55
\|
164 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:164:72
\|
164 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:164:24
\|
164 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:110:35
\|
110 \| .capabilities.get<&FiatToken.Vault>(/public/fakePublicPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:109:38
\|
109 \| let recipientCollection = receiptAccount
110 \| .capabilities.get<&FiatToken.Vault>(/public/fakePublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:109:38
\|
109 \| let recipientCollection = receiptAccount
110 \| .capabilities.get<&FiatToken.Vault>(/public/fakePublicPath)
111 \| .borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xb39a42479c1c2c77 | AFLBadges | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnExchange | ✅ | +| 0xb39a42479c1c2c77 | AFLMetadataHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLNFT | ✅ | +| 0xb39a42479c1c2c77 | AFLAdmin | ❌

Error:
error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:22:48

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:164:55

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:164:72

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:164:24

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:110:35

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:109:38

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:109:38

--\> b39a42479c1c2c77.AFLPack
| +| 0xb39a42479c1c2c77 | PackRestrictions | ✅ | +| 0xb39a42479c1c2c77 | AFLMarketplace | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:73:33
\|
73 \| init (vault: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:71:52
\|
71 \| access(account) let ownerVault: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:251:70
\|
251 \| access(all) fun changeMarketplaceWallet(\_ newCap: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:9:56
\|
9 \| access(contract) var marketplaceWallet: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:234:65
\|
234 \| access(all) fun createSaleCollection(ownerVault: Capability<&FiatToken.Vault>): @SaleCollection {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:269:64
\|
269 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLMarketplace:269:33
\|
269 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:154:36
\|
154 \| let saleOwnerVaultRef: &FiatToken.Vault = self.ownerVault.borrow() ?? panic("could not borrow reference to the owner vault")
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:161:36
\|
161 \| let marketplaceWallet: &FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic("Couldn't borrow Vault reference")
\| ^^^^^^^^^ not found in this scope
| +| 0xb39a42479c1c2c77 | StorageHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnRegistry | ✅ | +| 0xb39a42479c1c2c77 | AFLIndex | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ❌

Error:
error: error getting program d8f6346999b983f5.IPackNFT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:102:41

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d8f6346999b983f5.IPackNFT:103:41

--\> d8f6346999b983f5.IPackNFT

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:8:48
\|
8 \| access(all) contract PackNFT: NonFungibleToken, IPackNFT {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:45:42
\|
45 \| access(all) resource PackNFTOperator: IPackNFT.IOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:144:52
\|
144 \| access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:144:66
\|
144 \| access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:144:90
\|
144 \| access(all) resource NFT: NonFungibleToken.NFT, IPackNFT.NFT, IPackNFT.IPackNFTToken, IPackNFT.IPackNFTOwnerOperator {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:209:66
\|
209 \| access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:50:15
\|
50 \| access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:50:98
\|
50 \| access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:50:97
\|
50 \| access(IPackNFT.Operate) fun mint(distId: UInt64, commitHash: String, issuer: Address): @{IPackNFT.NFT} {
\| ^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:61:15
\|
61 \| access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:61:64
\|
61 \| access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:61:63
\|
61 \| access(IPackNFT.Operate) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:69:15
\|
69 \| access(IPackNFT.Operate) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:69:62
\|
69 \| access(IPackNFT.Operate) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:69:61
\|
69 \| access(IPackNFT.Operate) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:97:41
\|
97 \| access(self) fun \_verify(nfts: \$&{IPackNFT.Collectible}\$&, salt: String, commitHash: String): String {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:97:40
\|
97 \| access(self) fun \_verify(nfts: \$&{IPackNFT.Collectible}\$&, salt: String, commitHash: String): String {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:112:56
\|
112 \| access(contract) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:112:55
\|
112 \| access(contract) fun reveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:120:54
\|
120 \| access(contract) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:120:53
\|
120 \| access(contract) fun open(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:304:53
\|
304 \| access(all) fun publicReveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:304:52
\|
304 \| access(all) fun publicReveal(id: UInt64, nfts: \$&{IPackNFT.Collectible}\$&, salt: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:399:54
\|
399 \| self.account.capabilities.storage.issue<&{IPackNFT.IPackNFTCollectionPublic}>(self.CollectionStoragePath),
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:399:53
\|
399 \| self.account.capabilities.storage.issue<&{IPackNFT.IPackNFTCollectionPublic}>(self.CollectionStoragePath),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> a2526e2d9cc7f0d2.PackNFT:399:12
\|
399 \| self.account.capabilities.storage.issue<&{IPackNFT.IPackNFTCollectionPublic}>(self.CollectionStoragePath),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`IPackNFT\`
--\> a2526e2d9cc7f0d2.PackNFT:405:50
\|
405 \| self.account.capabilities.storage.issue<&{IPackNFT.IOperator}>(self.OperatorStoragePath)
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> a2526e2d9cc7f0d2.PackNFT:405:49
\|
405 \| self.account.capabilities.storage.issue<&{IPackNFT.IOperator}>(self.OperatorStoragePath)
\| ^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> a2526e2d9cc7f0d2.PackNFT:405:8
\|
405 \| self.account.capabilities.storage.issue<&{IPackNFT.IOperator}>(self.OperatorStoragePath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x99ca04281098b33d | Art | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42
\|
266 \| access(NonFungibleToken.Withdraw \|NonFungibleToken.Owner)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13
\|
246 \| resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic, ViewResolver.ResolverCollection{
\| ^
...
\|
267 \| fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT}{
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x99ca04281098b33d | Versus | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: error getting program 99ca04281098b33d.Auction: failed to derive value: load program failed: Checking failed:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:438:20

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:443:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:443:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:458:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:458:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:67:22

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:41:22

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:184:18

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:189:45

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:189:44

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:134:18

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:169:49

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:169:48

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:177:45

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:177:44

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:216:47

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:216:46

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:359:40

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:359:39

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:34

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:169

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:499:168

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:557:145

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:557:144

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:573:16

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:578:36

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:578:35

--\> 99ca04281098b33d.Auction

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:564:40
\|
564 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:564:39
\|
564 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:138:28
\|
138 \| uniqueAuction: @Auction.AuctionItem,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:139:30
\|
139 \| editionAuctions: @Auction.AuctionCollection,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:108:28
\|
108 \| let uniqueAuction: @Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:111:30
\|
111 \| let editionAuctions: @Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:128:22
\|
128 \| let metadata: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:274:44
\|
274 \| fun getAuction(auctionId: UInt64): &Auction.AuctionItem{
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:296:40
\|
296 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:296:39
\|
296 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:442:30
\|
442 \| init(\_ auctionStatus: Auction.AuctionStatus){
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:508:26
\|
508 \| uniqueStatus: Auction.AuctionStatus,
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:516:22
\|
516 \| metadata: Art.Metadata,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:495:22
\|
495 \| let metadata: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:603:104
\|
603 \| init(marketplaceVault: Capability<&{FungibleToken.Receiver}>, marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>, cutPercentage: UFix64){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:603:103
\|
603 \| init(marketplaceVault: Capability<&{FungibleToken.Receiver}>, marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>, cutPercentage: UFix64){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:601:46
\|
601 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:601:45
\|
601 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:717:168
\|
717 \| fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:717:167
\|
717 \| fun placeBid(dropId: UInt64, auctionId: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:840:166
\|
840 \| fun mintArt(artist: Address, artistName: String, artName: String, content: String, description: String, type: String, artistCut: UFix64, minterCut: UFix64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:861:29
\|
861 \| fun editionArt(art: &Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:861:77
\|
861 \| fun editionArt(art: &Art.NFT, edition: UInt64, maxEdition: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:866:39
\|
866 \| fun editionAndDepositArt(art: &Art.NFT, to: \$&Address\$&){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:941:46
\|
941 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}> =
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:941:45
\|
941 \| let marketplaceNFTTrash: Capability<&{Art.CollectionPublic}> =
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:942:35
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:942:34
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:942:58
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:942:8
\|
942 \| account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:165:52
\|
165 \| let uniqueRef = &self.uniqueAuction as &Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:166:55
\|
166 \| let editionRef = &self.editionAuctions as &Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:339:57
\|
339 \| let auctionRef = &self.uniqueAuction as &Auction.AuctionItem
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:350:60
\|
350 \| let editionsRef = &self.editionAuctions as &Auction.AuctionCollection
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:631:32
\|
631 \| let art <- nft as! @Art.NFT
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:636:37
\|
636 \| let editionedAuctions <- Auction.createAuctionCollection(marketplaceVault: self.marketplaceVault, cutPercentage: self.cutPercentage)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:639:57
\|
639 \| editionedAuctions.createAuction(token: <-Art.makeEdition(original: &art as &Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:639:92
\|
639 \| editionedAuctions.createAuction(token: <-Art.makeEdition(original: &art as &Art.NFT, edition: currentEdition, maxEdition: editions), minimumBidIncrement: minimumBidIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Auction\`
--\> 99ca04281098b33d.Versus:644:24
\|
644 \| let item <- Auction.createStandaloneAuction(token: <-art, minimumBidIncrement: minimumBidUniqueIncrement, auctionLength: duration, auctionStartTime: startTime, startPrice: startPrice, collectionCap: self.marketplaceNFTTrash, vaultCap: vaultCap)
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:814:54
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:814:76
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:814:23
\|
814 \| let artC = Versus.account.storage.borrow<&Art.Collection>(from: Art.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:855:37
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:855:98
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^^^ not found in this scope

error: cannot infer type from dictionary literal: requires an explicit type annotation
--\> 99ca04281098b33d.Versus:855:25
\|
855 \| let royalty ={ "artist": Art.Royalty(wallet: artistWallet, cut: artistCut), "minter": Art.Royalty(wallet: minterWallet, cut: minterCut)}
\| ^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:856:23
\|
856 \| let art <- Art.createArtWithPointer(name: artName, artist: artistName, artistAddress: artist, description: description, type: type, contentCapability: contentCapability, contentId: contentId, royalty: royalty)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:862:21
\|
862 \| return <-Art.makeEdition(original: art, edition: edition, maxEdition: maxEdition)
\| ^^^ not found in this scope

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:870:36
\|
870 \| let editionedArt <- Art.makeEdition(original: art, edition: i, maxEdition: maxEdition)
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:872:63
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Versus:872:62
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:872:86
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:872:36
\|
872 \| var collectionCap = account.capabilities.get<&{Art.CollectionPublic}>(Art.CollectionPublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 99ca04281098b33d.Versus:873:17
\|
873 \| (collectionCap.borrow()!).deposit(token: <-editionedArt)
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Art\`
--\> 99ca04281098b33d.Versus:902:87
\|
902 \| return Versus.account.storage.borrow<&{NonFungibleToken.Collection}>(from: Art.CollectionStoragePath)!
\| ^^^ not found in this scope
| +| 0x99ca04281098b33d | Marketplace | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:55:39
\|
55 \| recipientCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:55:38
\|
55 \| recipientCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:89:30
\|
89 \| init(id: UInt64, art: Art.Metadata, cacheKey: String, price: UFix64){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:81:17
\|
81 \| let art: Art.Metadata
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:107:31
\|
107 \| var forSale: @{UInt64: Art.NFT}
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:150:37
\|
150 \| fun borrowArt(id: UInt64): &{Art.Public}?{
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:150:36
\|
150 \| fun borrowArt(id: UInt64): &{Art.Public}?{
\| ^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:159:40
\|
159 \| fun withdraw(tokenID: UInt64): @Art.NFT{
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:170:32
\|
170 \| fun listForSale(token: @Art.NFT, price: UFix64){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:194:65
\|
194 \| fun purchase(tokenID: UInt64, recipientCap: Capability<&{Art.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Marketplace:194:64
\|
194 \| fun purchase(tokenID: UInt64, recipientCap: Capability<&{Art.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Marketplace:152:46
\|
152 \| return (&self.forSale\$&id\$& as &Art.NFT?)!
\| ^^^ not found in this scope
| +| 0x99ca04281098b33d | Auction | ❌

Error:
error: error getting program 99ca04281098b33d.Art: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 99ca04281098b33d.Art:266:42

error: resource \`Art.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 99ca04281098b33d.Art:246:13

--\> 99ca04281098b33d.Art

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:438:20
\|
438 \| token: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:443:40
\|
443 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:443:39
\|
443 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:458:40
\|
458 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:458:39
\|
458 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:67:22
\|
67 \| metadata: Art.Metadata?,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:41:22
\|
41 \| let metadata: Art.Metadata?
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:184:18
\|
184 \| NFT: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:189:45
\|
189 \| ownerCollectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:189:44
\|
189 \| ownerCollectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:134:18
\|
134 \| var NFT: @Art.NFT?
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:169:49
\|
169 \| var recipientCollectionCap: Capability<&{Art.CollectionPublic}>?
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:169:48
\|
169 \| var recipientCollectionCap: Capability<&{Art.CollectionPublic}>?
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:177:45
\|
177 \| let ownerCollectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:177:44
\|
177 \| let ownerCollectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:216:47
\|
216 \| fun sendNFT(\_ capability: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:216:46
\|
216 \| fun sendNFT(\_ capability: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:359:40
\|
359 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:359:39
\|
359 \| collectionCap: Capability<&{Art.CollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:34
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:499:169
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:499:168
\|
499 \| fun createAuction(token: @Art.NFT, minimumBidIncrement: UFix64, auctionLength: UFix64, auctionStartTime: UFix64, startPrice: UFix64, collectionCap: Capability<&{Art.CollectionPublic}>, vaultCap: Capability<&{FungibleToken.Receiver}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:557:145
\|
557 \| fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:557:144
\|
557 \| fun placeBid(id: UInt64, bidTokens: @{FungibleToken.Vault}, vaultCap: Capability<&{FungibleToken.Receiver}>, collectionCap: Capability<&{Art.CollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:573:16
\|
573 \| token: @Art.NFT,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`Art\`
--\> 99ca04281098b33d.Auction:578:36
\|
578 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^ not found in this scope

error: ambiguous intersection type
--\> 99ca04281098b33d.Auction:578:35
\|
578 \| collectionCap: Capability<&{Art.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^
| +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x877931736ee77cff | TopShot | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0x668df1b27a5da384 | FanTopToken | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43
\|
233 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43
\|
243 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun batchWithdraw(ids: \$&UInt64\$&): @{NonFungibleToken.Collection} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25
\|
226 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {
\| ^
...
\|
233 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x668df1b27a5da384 | FanTopSerial | ✅ | +| 0x668df1b27a5da384 | FanTopPermissionV2a | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: error getting program 668df1b27a5da384.FanTopMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:61:67

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:61:92

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:53:84

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:53:109

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:75:42

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:80:51

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:207:63

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:207:88

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:284:95

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopMarket:284:94

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:76:89

--\> 668df1b27a5da384.FanTopMarket

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:114:118
\|
114 \| access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:118:156
\|
118 \| access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:139:79
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopPermissionV2a:139:78
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopPermissionV2a:155:67
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:155:92
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:74:12
\|
74 \| FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:86:12
\|
86 \| FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:90:12
\|
90 \| FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:94:12
\|
94 \| FanTopToken.updateLimit(itemId: itemId, limit: limit)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:98:12
\|
98 \| FanTopToken.updateActive(itemId: itemId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:115:22
\|
115 \| return <- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:119:22
\|
119 \| return <- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:136:12
\|
136 \| FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:140:12
\|
140 \| FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:144:12
\|
144 \| FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:201:12
\|
201 \| FanTopMarket.sell(
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:217:16
\|
217 \| FanTopMarket.containsOrder(orderId): "Order is not exists"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:218:16
\|
218 \| FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): "Cancel account is not match order account"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:221:12
\|
221 \| FanTopMarket.cancel(agent: nil, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope
| +| 0x668df1b27a5da384 | FanTopPermission | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken
| +| 0x668df1b27a5da384 | FanTopMarket | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:61:67
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:61:92
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:53:84
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:53:109
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:75:42
\|
75 \| access(contract) fun withdraw(): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:80:51
\|
80 \| view access(all) fun borrowFanTopToken(): &FanTopToken.NFT? {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:207:63
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:207:88
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:284:95
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopMarket:284:94
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:76:89
\|
76 \| let token <- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT
\| ^^^^^^^^^^^ not found in this scope
| +| 0x668df1b27a5da384 | Signature | ✅ | +| 0x8c5303eaa26202d6 | EVM | ❌

Error:
error: mismatched types
--\> 8c5303eaa26202d6.EVM:300:37
\|
300 \| return EVMAddress(bytes: addressBytes)
\| ^^^^^^^^^^^^ expected \`\$&UInt8; 20\$&\`, got \`AnyStruct\`
| +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | KaratNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.KaratNFT:179:43
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
\|
155 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
...
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:340:32
\|
340 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.GeneratedExperiences:258:43
\|
258 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:15
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:56
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:110
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:399:8
\|
399 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: use of previously moved resource
--\> 3e5b4c627064625d.GeneratedExperiences:271:43
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| ^^^^^ resource used here after move
\|
271 \| let oldToken <- self.ownedNFTs\$&token.getID()\$& <- token
\| \-\-\-\-\- resource previously moved here

error: resource \`GeneratedExperiences.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.GeneratedExperiences:221:25
\|
221 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
224 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`GeneratedExperiences.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.GeneratedExperiences:221:25
\|
221 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
258 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x3e5b4c627064625d | NFGv3 | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:284:32
\|
284 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.NFGv3:203:43
\|
203 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:15
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:56
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:110
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:15
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:67
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:121
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:328:8
\|
328 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: resource \`NFGv3.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.NFGv3:188:25
\|
188 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
203 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:341:32
\|
341 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.PartyFavorz:260:43
\|
260 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:15
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:56
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:110
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:15
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:67
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:121
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:396:8
\|
396 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: resource \`PartyFavorz.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 3e5b4c627064625d.PartyFavorz:245:25
\|
245 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
260 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:380:36
\|
380 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 3e5b4c627064625d.Flomies:242:43
\|
242 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:19
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:60
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:114
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:19
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:71
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:125
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:414:46
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 3e5b4c627064625d.Flomies:414:45
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:434:12
\|
434 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope

error: resource \`Flomies.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 3e5b4c627064625d.Flomies:227:25
\|
227 \| access(all) resource Collection: NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
242 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | CharityNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.CharityNFT:190:43
\|
190 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`CharityNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.CharityNFT:179:25
\|
179 \| access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic , ViewResolver.ResolverCollection{
\| ^
...
\|
190 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:22:36
\|
22 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:163:71
\|
163 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:158:57
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:158:56
\|
158 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}?
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:19:164
\|
19 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:106:38
\|
106 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:122:52
\|
122 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:170:47
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:170:46
\|
170 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:168:60
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:168:59
\|
168 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:175:41
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:175:40
\|
175 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:360:57
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:360:56
\|
360 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem}? {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:369:83
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketSale:369:82
\|
369 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:373:133
\|
373 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:383:8
\|
383 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:384:8
\|
384 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:374:26
\|
374 \| if let tenantCap=FindMarket.getTenantCapability(marketplace) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:376:96
\|
376 \| return getAccount(user).capabilities.get<&{FindMarketSale.SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:73:23
\|
73 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:99:19
\|
99 \| return FIND.reverseLookup(self.pointer.owner())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:123:19
\|
123 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:213:139
\|
213 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "buy item for sale"), seller: self.owner!.address, buyer: nftCap.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:224:26
\|
224 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:225:27
\|
225 \| let sellerName=FIND.reverseLookup(self.owner!.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:227:113
\|
227 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:"sold", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:234:21
\|
234 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:236:12
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:236:199
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:286:139
\|
286 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketSale.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:295:115
\|
295 \| emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketSale:311:24
\|
311 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:317:98
\|
317 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindForge | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57
\|
413 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49
\|
421 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57
\|
427 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46
\|
110 \| access(all) fun setMinterPlatform(lease: &FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49
\|
178 \| access(all) fun removeMinterPlatform(lease: &FIND.Lease, forgeType: Type) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39
\|
229 \| access(all) fun orderForge(lease: &FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34
\|
263 \| access(all) fun mint (lease: &FIND.Lease, forgeType: Type , data: AnyStruct, receiver: &{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44
\|
310 \| access(all) fun addContractData(lease: &FIND.Lease, forgeType: Type , data: AnyStruct) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19
\|
155 \| let user = FIND.lookupAddress(leaseName) ?? panic("Cannot find lease owner. Lease : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8
\|
234 \| FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8
\|
238 \| FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8
\|
242 \| FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20
\|
246 \| let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22
\|
272 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21
\|
302 \| let toName = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18
\|
303 \| let new = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22
\|
319 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24
\|
36 \| self.minter=FIND.lookupAddress(self.name)!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindForgeOrder | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND
| +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:17:36
\|
17 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:175:71
\|
175 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:452:31
\|
452 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:501:73
\|
501 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:13:171
\|
13 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:80:52
\|
80 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:108:38
\|
108 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:47
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:181:46
\|
181 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:60
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:179:59
\|
179 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:41
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:186:40
\|
186 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:57
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:444:56
\|
444 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:93
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:508:92
\|
508 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:60
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:505:59
\|
505 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:41
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:514:40
\|
514 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:55
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:639:54
\|
639 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:85
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:652:84
\|
652 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>): @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:131
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:656:130
\|
656 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:695:8
\|
695 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:696:8
\|
696 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:697:8
\|
697 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:698:8
\|
698 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:661:11
\|
661 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:664:22
\|
664 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:671:11
\|
671 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:674:22
\|
674 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:76
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:75
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:675:40
\|
675 \| if let saleItemCollection = getAccount(user).capabilities.get<&{FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!.borrow() {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:685:11
\|
685 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:688:22
\|
688 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19
\|
65 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26
\|
74 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:81:19
\|
81 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26
\|
211 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:214:24
\|
214 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106
\|
219 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:236:152
\|
236 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "add bid in direct offer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26
\|
246 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106
\|
251 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:269:156
\|
269 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30
\|
282 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113
\|
287 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:302:152
\|
302 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26
\|
325 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36
\|
330 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106
\|
332 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26
\|
354 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:357:24
\|
357 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106
\|
362 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:384:152
\|
384 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26
\|
402 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27
\|
403 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:415:21
\|
415 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:12
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Profile | ❌

Error:
error: conformances do not match in \`User\`: missing \`Owner\`
--\> 35717efbbce11c74.Profile:328:25
\|
328 \| access(all) resource User: Public, FungibleToken.Receiver {
\| ^^^^
| +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.get<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16
\|
154 \| if !cap.check() {
\| ^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22
\|
157 \| let ref = cap.borrow()!
\| ^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:189:71
\|
189 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:533:31
\|
533 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:586:73
\|
586 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:14:171
\|
14 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, nft: FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:74:38
\|
74 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:120:52
\|
120 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:47
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:195:46
\|
195 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:60
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:193:59
\|
193 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:41
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:200:40
\|
200 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:57
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:519:56
\|
519 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:93
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:593:92
\|
593 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:60
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:590:59
\|
590 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:41
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:599:40
\|
599 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:55
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:730:54
\|
730 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:83
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:745:82
\|
745 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:131
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:749:130
\|
749 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:774:8
\|
774 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:775:8
\|
775 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:776:8
\|
776 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:777:8
\|
777 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:754:11
\|
754 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:757:22
\|
757 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:764:11
\|
764 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:767:22
\|
767 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:106:19
\|
106 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:114:26
\|
114 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:121:19
\|
121 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:234:26
\|
234 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:237:24
\|
237 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:242:134
\|
242 \| emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:260:150
\|
260 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:270:26
\|
270 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:275:106
\|
275 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:293:183
\|
293 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:304:30
\|
304 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:309:113
\|
309 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:325:150
\|
325 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:348:26
\|
348 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:353:36
\|
353 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:356:106
\|
356 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:378:26
\|
378 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:381:24
\|
381 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:386:106
\|
386 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:413:150
\|
413 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:427:26
\|
427 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:432:106
\|
432 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:457:150
\|
457 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketDirectOfferSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:470:26
\|
470 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:471:27
\|
471 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:486:21
\|
486 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:12
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:187
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: resource \`FindMarketDirectOfferSoft.SaleItemCollection\` does not conform to resource interface \`FindMarketDirectOfferSoft.SaleItemCollectionPublic\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:189:25
\|
189 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^
...
\|
207 \| access(all) fun isAcceptedDirectOffer(\_ id:UInt64) : Bool{
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindFurnace | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:7:86
\|
7 \| access(all) event Burned(from: Address, fromName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String})
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:14:22
\|
14 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:16:43
\|
16 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindFurnace:22:22
\|
22 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:24:43
\|
24 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:260:71
\|
260 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:657:31
\|
657 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:708:73
\|
708 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:102:52
\|
102 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:193:38
\|
193 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:47
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:266:46
\|
266 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:60
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:264:59
\|
264 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:41
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:271:40
\|
271 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:57
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:649:56
\|
649 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:93
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:715:92
\|
715 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:60
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:712:59
\|
712 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:41
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:721:40
\|
721 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:55
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:818:54
\|
818 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:83
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:835:82
\|
835 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:131
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionSoft:839:130
\|
839 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:864:8
\|
864 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:865:8
\|
865 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:866:8
\|
866 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:867:8
\|
867 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:844:11
\|
844 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:847:22
\|
847 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:854:11
\|
854 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:857:22
\|
857 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:85:19
\|
85 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:97:23
\|
97 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:103:19
\|
103 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:194:19
\|
194 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:290:147
\|
290 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType , ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "add bit in soft-auction"), seller: self.owner!.address ,buyer: buyer)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:333:36
\|
333 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:336:26
\|
336 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:338:110
\|
338 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:388:146
\|
388 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:416:26
\|
416 \| let buyerName=FIND.reverseLookup(callback.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:418:123
\|
418 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:452:24
\|
452 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:458:30
\|
458 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:460:114
\|
460 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:462:114
\|
462 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:518:146
\|
518 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:537:26
\|
537 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:538:27
\|
538 \| let sellerName=FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:540:110
\|
540 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:549:21
\|
549 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:12
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:146
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:592:163
\|
592 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionSoft.SaleItem>(), nftType: pointer.getItemType(), ftType: vaultType, action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:612:126
\|
612 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: "active\_listed", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32
\|
1156 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79
\|
307 \| init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38
\|
305 \| access(all) let verifierRef: &FindForge.Verifier
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43
\|
833 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8
\|
1220 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8
\|
1223 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25
\|
612 \| access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {
\| ^
...
\|
833 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71
\|
228 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31
\|
529 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73
\|
579 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22
\|
32 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38
\|
19 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40
\|
91 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38
\|
181 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:47
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:234:46
\|
234 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:60
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:232:59
\|
232 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:41
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:239:40
\|
239 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51
\|
463 \| access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:93
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:585:92
\|
585 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:60
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:582:59
\|
582 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:41
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:591:40
\|
591 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:83
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:698:82
\|
698 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:131
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:702:130
\|
702 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118
\|
706 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115
\|
716 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8
\|
727 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8
\|
728 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8
\|
729 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8
\|
730 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:707:11
\|
707 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:710:22
\|
710 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81
\|
711 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:717:11
\|
717 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:720:22
\|
720 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82
\|
721 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19
\|
70 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23
\|
86 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19
\|
92 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19
\|
182 \| return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26
\|
254 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36
\|
261 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30
\|
265 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30
\|
266 \| let profile = FIND.lookup(buyer!.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138
\|
267 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138
\|
269 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:280:167
\|
280 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"add bit in soft-auction"), seller: self.owner!.address ,buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:361:167
\|
361 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"bid item in soft-auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:405:167
\|
405 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item from soft-auction"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:443:167
\|
443 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy item for soft-auction"), seller: self.owner!.address,buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12
\|
457 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:482:167
\|
482 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list item for soft-auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38
\|
621 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32
\|
629 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37
\|
325 \| access(all) fun getLease() : FIND.LeaseInformation
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41
\|
327 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42
\|
331 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41
\|
348 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37
\|
352 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47
\|
382 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60
\|
377 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41
\|
397 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37
\|
401 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52
\|
29 \| access(all) fun getTenant(\_ tenant: Address) : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66
\|
42 \| access(all) fun getSaleItemCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64
\|
56 \| access(all) fun getSaleItemCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58
\|
137 \| access(contract) fun checkSaleInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost: Bool, getLeaseInfo: Bool) : FindLeaseMarket.SaleItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67
\|
211 \| access(all) fun getMarketBidCollectionCapabilities(tenantRef: &{FindMarket.TenantPublic}, address: Address) : \$&Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>\$& {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65
\|
222 \| access(all) fun getMarketBidCollectionCapability(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address) : Capability<&{FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57
\|
254 \| access(contract) fun checkBidInformation(tenantRef: &{FindMarket.TenantPublic}, marketOption: String, address: Address, name: String?, getGhost:Bool, getLeaseInfo: Bool) : FindLeaseMarket.BidItemCollectionReport {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41
\|
666 \| access(contract) fun getNetwork() : &FIND.Network {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15
\|
30 \| return FindMarket.getTenantCapability(tenant)!.borrow()!
\| ^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29
\|
46 \| if let cap = getAccount(address).capabilities.get<&{FindLeaseMarket.SaleItemCollectionPublic}>(tenantRef.getPublicPath(type)) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FindLeaseMarket.SaleItemCollectionPublic}>\`

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15
\|
58 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20
\|
70 \| let address=FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22
\|
87 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31
\|
100 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22
\|
110 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31
\|
114 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22
\|
124 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31
\|
128 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137
\|
168 \| let stopped=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140
\|
183 \| let deprecated=tenantRef.allowedAction(listingType: listingType, nftType: item.getItemType(), ftType: item.getFtType(), action: FindMarket.MarketAction(listing:true, name:"delist item for sale"), seller: address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15
\|
224 \| if FindMarket.getMarketOptionFromType(type) == marketOption{
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31
\|
245 \| let marketOption = FindMarket.getMarketOptionFromType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25
\|
443 \| let oldProfile = FindMarket.getPaymentWallet(oldProfileCap, ftInfo, panicOnFailCheck: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35
\|
449 \| let findName = FIND.reverseLookup(cut.getAddress())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8
\|
673 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8
\|
674 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8
\|
679 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8
\|
680 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8
\|
685 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8
\|
686 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8
\|
691 \| FindMarket.addPathMap(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8
\|
692 \| FindMarket.addListingName(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26
\|
337 \| let address = FIND.lookupAddress(name) ?? panic("This lease name is not owned")
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21
\|
338 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25
\|
426 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32
\|
477 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39
\|
479 \| } else if status.status == FIND.LeaseStatus.LOCKED {
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31
\|
418 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73
\|
470 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177
\|
16 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22
\|
27 \| init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability<&{MarketBidCollectionPublic}>, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38
\|
69 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40
\|
119 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51
\|
131 \| access(contract) fun setPointer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:47
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:175:46
\|
175 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:60
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:173:59
\|
173 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:41
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:180:40
\|
180 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50
\|
328 \| access(Seller) fun acceptOffer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:93
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:477:92
\|
477 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:60
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:474:59
\|
474 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:41
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:483:40
\|
483 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:83
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:606:82
\|
606 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:131
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:610:130
\|
610 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118
\|
614 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115
\|
625 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8
\|
636 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8
\|
637 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8
\|
638 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8
\|
639 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:615:12
\|
615 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:618:22
\|
618 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81
\|
620 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:626:12
\|
626 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:629:22
\|
629 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82
\|
630 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43
\|
50 \| let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19
\|
105 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26
\|
113 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19
\|
120 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:207:167
\|
207 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"cancel bid in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26
\|
223 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26
\|
224 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26
\|
226 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36
\|
233 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130
\|
236 \| emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:247:167
\|
247 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"increase bid in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27
\|
262 \| let item = FindLeaseMarket.ReadLeasePointer(name: name)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:264:171
\|
264 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:281:167
\|
281 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"bid in direct offer soft"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:314:167
\|
314 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"reject offer in direct offer soft"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:339:167
\|
339 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"accept offer in direct offer soft"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:366:167
\|
366 \| let actionResult=self.getTenant().allowedAction(listingType: self.getListingType(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"fulfill directOffer"), seller: self.owner!.address, buyer: saleItem.offerCallback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12
\|
377 \| FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo: leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FindLeaseMarketDirectOfferSoft.SaleItemCollection\` does not conform to resource interface \`FindLeaseMarketDirectOfferSoft.SaleItemCollectionPublic\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:25
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^
...
\|
187 \| access(all) fun isAcceptedDirectOffer(\_ name:String) : Bool{
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38
\|
514 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32
\|
532 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:18:36
\|
18 \| access(all) resource SaleItem : FindMarket.SaleItem {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:264:71
\|
264 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:707:31
\|
707 \| access(all) resource Bid : FindMarket.Bid {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:756:73
\|
756 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:16:201
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, nft:FindMarket.NFTInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, startsAt: UFix64?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:106:52
\|
106 \| access(all) fun toNFTInfo(\_ detail: Bool) : FindMarket.NFTInfo{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:197:38
\|
197 \| access(all) fun getAuction(): FindMarket.AuctionItem? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:47
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:270:46
\|
270 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:60
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:268:59
\|
268 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:41
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:275:40
\|
275 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:57
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:699:56
\|
699 \| access(all) fun borrowSaleItem(\_ id: UInt64) : &{FindMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:93
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:763:92
\|
763 \| init(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:60
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:760:59
\|
760 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:41
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:769:40
\|
769 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:55
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:878:54
\|
878 \| access(all) fun borrowBidItem(\_ id: UInt64): &{FindMarket.Bid} {
\| ^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:83
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:892:82
\|
892 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:131
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindMarketAuctionEscrow:896:130
\|
896 \| access(all) fun createEmptyMarketBidCollection(receiver: Capability<&{FungibleToken.Receiver}>, tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @MarketBidCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:900:118
\|
900 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:910:115
\|
910 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:921:8
\|
921 \| FindMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:922:8
\|
922 \| FindMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:923:8
\|
923 \| FindMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:924:8
\|
924 \| FindMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:901:11
\|
901 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:904:22
\|
904 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:905:81
\|
905 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:911:11
\|
911 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:914:22
\|
914 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:915:82
\|
915 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:89:19
\|
89 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:101:23
\|
101 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:107:19
\|
107 \| return FindMarket.NFTInfo(self.pointer.getViewResolver(), id: self.pointer.id, detail:detail)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:198:19
\|
198 \| return FindMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:292:148
\|
292 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name:"add bid in auction"), seller: self.owner!.address, buyer: newOffer.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:337:36
\|
337 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:342:26
\|
342 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:344:110
\|
344 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:400:148
\|
400 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "bid in auction"), seller: self.owner!.address, buyer: callback.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:429:26
\|
429 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:431:110
\|
431 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:497:24
\|
497 \| var nftInfo:FindMarket.NFTInfo?=nil
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:504:30
\|
504 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:506:114
\|
506 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:508:114
\|
508 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:538:152
\|
538 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:false, name: "fulfill auction"), seller: self.owner!.address, buyer: saleItem.offerCallback!.address)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:560:30
\|
560 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:561:33
\|
561 \| let sellerName = FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:572:25
\|
572 \| resolved\$&FindMarket.tenantNameAddress\$&tenant.name\$&!\$& = tenant.name
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:16
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:189
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:635:148
\|
635 \| let actionResult=tenant.allowedAction(listingType: Type<@FindMarketAuctionEscrow.SaleItem>(), nftType: nftType, ftType: ftType, action: FindMarket.MarketAction(listing:true, name: "list item for auction"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:662:113
\|
662 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ❌

Error:
error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:14:141
\|
14 \| access(all) event Published(id: UInt64, creator: Address, creatorName: String?, header: String, message: String, medias: \$&String\$&, nfts:\$&FindMarket.NFTInfo\$&, tags: \$&String\$&, quoteOwner: Address?, quoteId: UInt64?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:154:73
\|
154 \| emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:167:68
\|
167 \| emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:56
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:111
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:268:24
\|
268 \| let nfts : \$&FindMarket.NFTInfo\$& = \$&\$&
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindThoughts:273:28
\|
273 \| nfts.append(FindMarket.NFTInfo(rv, id: nftPointer!.id, detail: true))
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:282:30
\|
282 \| let creatorName = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:307:23
\|
307 \| name = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:309:80
\|
309 \| emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25
\|
46 \| let senderName = FIND.reverseLookup(sender)
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29
\|
63 \| if let receiverCap = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(collectionPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{NonFungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83
\|
76 \| emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37
\|
82 \| if let collectionPublicCap = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Collection}>(collectionPublicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{NonFungibleToken.Collection}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79
\|
95 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32
\|
124 \| flowTokenRepayment: flowTokenRepayment
\| ^^^^^^^^^^^^^^^^^^ expected \`Capability<&FlowToken.Vault>?\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70
\|
129 \| emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77
\|
140 \| emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: "invalid capability")
\| ^^^^ not found in this scope

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8
\|
154 \| shelf.redeem(type: type, ticketID: ticketID, receiver: cap!)
\| ^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25
\|
162 \| senderName = FIND.reverseLookup(sender!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67
\|
164 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69
\|
165 \| emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127
\|
271 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | Dandy | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:348:32
\|
348 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:63:119
\|
63 \| init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:61:39
\|
61 \| access(contract) let platform: FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:87:46
\|
87 \| access(all) fun getMinterPlatform() : FindForge.MinterPlatform {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.Dandy:240:43
\|
240 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:15
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:56
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:349:110
\|
349 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:333:109
\|
333 \| access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: \$&AnyStruct\$&, externalUrlPrefix:String?) : @NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:360:42
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Dandy:360:41
\|
360 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:388:8
\|
388 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:390:8
\|
390 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:88:27
\|
88 \| if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:89:50
\|
89 \| let platform = &self.platform as &FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope

error: resource \`Dandy.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.Dandy:225:25
\|
225 \| access(all) resource Collection: NonFungibleToken.Collection, CollectionPublic, ViewResolver.ResolverCollection {
\| ^
...
\|
240 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119
\|
12 \| access(all) event Airdropped(from: Address ,fromName: String?, to: Address, toName: String?,uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135
\|
13 \| access(all) event AirdroppedToLostAndFound(from: Address, fromName: String? , to: Address, toName: String?, uuid: UInt64, nftInfo: FindMarket.NFTInfo, context: {String : String}, remark: String?, ticketID: UInt64)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21
\|
18 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23
\|
20 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22
\|
27 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21
\|
68 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23
\|
70 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22
\|
78 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23
\|
81 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21
\|
100 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23
\|
102 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22
\|
110 \| let nftInfo = FindMarket.NFTInfo(vr, id: pointer.id, detail: true)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23
\|
115 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAdmin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:26:57
\|
26 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:32:49
\|
32 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:34:57
\|
34 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:91
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:42:133
\|
42 \| access(Owner) fun createFindMarket(name: String, address:Address, findCutSaleItem: FindMarket.TenantSaleItem?) : Capability<&FindMarket.Tenant> {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:58:51
\|
58 \| access(Owner) fun getFindMarketClient(): &FindMarket.TenantClient{
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:129:61
\|
129 \| access(Owner) fun getTenantRef(\_ tenant: Address) : &FindMarket.Tenant {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:139:66
\|
139 \| access(Owner) fun addFindBlockItem(tenant: Address, item: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:155:64
\|
155 \| access(Owner) fun setFindCut(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:171:69
\|
171 \| access(Owner) fun setMarketOption(tenant: Address, saleItem: FindMarket.TenantSaleItem) {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:47:20
\|
47 \| return FindMarket.createFindMarket(name:name, address:address, findCutSaleItem: findCutSaleItem)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:55:12
\|
55 \| FindMarket.removeFindMarketTenant(tenant: tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:63:23
\|
63 \| let path = FindMarket.TenantClientStoragePath
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:63
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:64:94
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:64:19
\|
64 \| return FindMarketAdmin.account.storage.borrow(from: path) ?? panic("Cannot borrow Find market tenant client Reference.")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:74:12
\|
74 \| FindMarket.addSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:81:12
\|
81 \| FindMarket.addMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:88:12
\|
88 \| FindMarket.addSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:95:12
\|
95 \| FindMarket.addMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:102:12
\|
102 \| FindMarket.removeSaleItemType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:109:12
\|
109 \| FindMarket.removeMarketBidType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:116:12
\|
116 \| FindMarket.removeSaleItemCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:123:12
\|
123 \| FindMarket.removeMarketBidCollectionType(type)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:133:25
\|
133 \| let string = FindMarket.getTenantPathForAddress(tenant)
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:135:67
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindMarketAdmin:135:22
\|
135 \| let cap = FindMarketAdmin.account.capabilities.borrow<&FindMarket.Tenant>(pp) ?? panic("Cannot borrow tenant reference from path. Path : ".concat(pp.toString()) )
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindMarketAdmin:228:12
\|
228 \| FindMarket.setResidualAddress(address)
\| ^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarket | ❌

Error:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25
\|
315 \| if let cap = getAccount(address).capabilities.get<&{FindMarket.MarketBidCollectionPublic}>(tenantRef.getPublicPath(type)) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FindMarket.MarketBidCollectionPublic}>\`

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29
\|
1411 \| if sbRef.getVaultTypes().contains(ftInfo.type) {
\| ^^^^^^^^^^^^^ unknown member
| +| 0x35717efbbce11c74 | NameVoucher | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.NameVoucher:168:43
\|
168 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25
\|
228 \| let status = FIND.status(name)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32
\|
231 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: resource \`NameVoucher.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.NameVoucher:158:25
\|
158 \| access(all) resource Collection: NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
168 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 0afe396ebc8eee65.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :37:0
\|
37 \| pub contract FLOAT: NonFungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :56:4
\|
56 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:4
\|
63 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:8
\|
83 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :84:8
\|
84 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:8
\|
85 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:8
\|
95 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:8
\|
96 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:4
\|
105 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:8
\|
112 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :113:8
\|
113 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:8
\|
114 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :116:8
\|
116 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :119:8
\|
119 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :126:51
\|
126 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 0afe396ebc8eee65.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:59

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:77

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.FindPack:833:43

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

error: resource \`FindPack.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.FindPack:612:25

--\> 35717efbbce11c74.FindPack

error: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:63:29

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:83

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:82:37

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:95:79

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:124:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:129:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:140:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:154:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:164:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:165:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:271:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:12:119

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:13:135

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:27:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:70:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:78:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:81:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:102:23

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindAirdropper:110:22

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:115:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 35717efbbce11c74.NameVoucher:168:43

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28

error: resource \`NameVoucher.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 35717efbbce11c74.NameVoucher:158:25

--\> 35717efbbce11c74.NameVoucher

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:38:57
\|
38 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:44:49
\|
44 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:46:57
\|
46 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:156:110
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:156:109
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:59:12
\|
59 \| FindForge.addPublicForgeType(forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:67:12
\|
67 \| FindForge.addPrivateForgeType(name: name, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:75:12
\|
75 \| FindForge.removeForgeType(type: type)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:83:12
\|
83 \| FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.Admin:91:12
\|
91 \| FindForgeOrder.addMintType(mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:99:12
\|
99 \| FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:106:12
\|
106 \| FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:114:19
\|
114 \| return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:161:16
\|
161 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:174:16
\|
174 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:178:23
\|
178 \| let user = FIND.lookupAddress(name) ?? panic("Cannot find lease owner. Lease : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:58
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:179:57
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:87
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:188:16
\|
188 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:192:12
\|
192 \| FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:200:12
\|
200 \| FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:295:122
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:296:12
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:359:19
\|
359 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:57
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:87
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:367:27
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:368:19
\|
368 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLeaseMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:325:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:327:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:327:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:331:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:331:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:348:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:348:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:352:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:382:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:377:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:397:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:397:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:401:37

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:29:53

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:29:52

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:42:67

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:42:66

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:56:65

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:56:64

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:137:59

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:137:58

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:211:68

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:211:67

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:222:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:222:65

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:254:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:254:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:30:15

error: mismatched types
--\> 35717efbbce11c74.FindLeaseMarket:46:29

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:58:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:70:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:87:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:100:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:110:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:114:31

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:124:22

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:128:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:168:137

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:183:140

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:224:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:245:31

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:443:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:449:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:673:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:674:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:679:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:680:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:685:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:686:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:691:8

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarket:692:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:338:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:338:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:338:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:426:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:426:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:477:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:479:39

--\> 35717efbbce11c74.FindLeaseMarket

error: error getting program 35717efbbce11c74.FindMarket: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindMarket:315:25

error: value of type \`&{FungibleTokenSwitchboard.SwitchboardPublic}\` has no member \`getVaultTypes\`
--\> 35717efbbce11c74.FindMarket:1411:29

--\> 35717efbbce11c74.FindMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:21:36
\|
21 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:132:71
\|
132 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:128:59
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:128:58
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:18:170
\|
18 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:33:22
\|
33 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:26:38
\|
26 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:94:38
\|
94 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:110:40
\|
110 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:138:47
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:138:46
\|
138 \| init (\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:136:60
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:136:59
\|
136 \| access(contract) let tenantCapability: Capability<&{FindMarket.TenantPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:143:41
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:143:40
\|
143 \| access(self) fun getTenant() : &{FindMarket.TenantPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:201:48
\|
201 \| access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:269:59
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:269:58
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:279:83
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:279:82
\|
279 \| access(all) fun createEmptySaleItemCollection(\_ tenantCapability: Capability<&{FindMarket.TenantPublic}>) : @SaleItemCollection {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:283:138
\|
283 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:294:8
\|
294 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:295:8
\|
295 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:284:11
\|
284 \| if FindMarket.getTenantCapability(marketplace) == nil {
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:287:22
\|
287 \| if let tenant=FindMarket.getTenantCapability(marketplace)!.borrow() {
\| ^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:288:101
\|
288 \| return getAccount(user).capabilities.get<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:64:23
\|
64 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:25
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:19
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:87:19
\|
87 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:111:19
\|
111 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:174:183
\|
174 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"buy lease for sale"), seller: self.owner!.address, buyer: to)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:189:26
\|
189 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:190:26
\|
190 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:194:12
\|
194 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:196:123
\|
196 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:"sold", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:216:183
\|
216 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:true, name:"list lease for sale"), seller: self.owner!.address, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:223:124
\|
223 \| emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:237:187
\|
237 \| let actionResult=self.getTenant().allowedAction(listingType: Type<@FindLeaseMarketSale.SaleItem>(), nftType: saleItem.getItemType(), ftType: saleItem.getFtType(), action: FindMarket.MarketAction(listing:false, name:"delist lease for sale"), seller: nil, buyer: nil)
\| ^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:243:126
\|
243 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:250:126
\|
250 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:252:126
\|
252 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | FIND | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66
\|
1358 \| access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59
\|
1610 \| access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability<&{Profile.Public}>, leases: Capability<&{LeaseCollectionPublic}>) {
\| ^^^^^^^^^ not found in this scope

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63
\|
2110 \| if self.account.storage.borrow<&FUSD.Vault>(from: FUSD.VaultStoragePath) == nil {
\| ^^^^^^^^^^^^^^^^ unknown member

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25
\|
2112 \| let vault <- FUSD.createEmptyVault()
\| ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56
\|
2115 \| self.account.storage.save(<-vault, to: FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21
\|
2119 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65
\|
2121 \| self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)
\| ^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92
\|
2123 \| let capb = self.account.capabilities.storage.issue<&{FungibleToken.Vault}>(FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21
\|
2129 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68
\|
2131 \| self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)
\| ^^^^^^^^^^^^^^^^^^ unknown member

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25
\|
153 \| if let cap = account.capabilities.get<&{Profile.Public}>(Profile.publicPath) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{Profile.Public}>\`

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25
\|
627 \| access(all) resource LeaseCollection: LeaseCollectionPublic {
\| ^
...
\|
1293 \| access(all) fun move(name: String, profile: Capability<&{Profile.Public}>, to: Capability<&LeaseCollection>) {
\| \-\-\-\- mismatch here

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78
\|
1633 \| let usdcCap = account.capabilities.get<&{FungibleToken.Receiver}>(FiatToken.VaultReceiverPubPath)!
\| ^^^^^^^^^ not found in this scope
| +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 2d59ec5158e3adae.HeroesOfTheFlow:292:43
\|
292 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`HeroesOfTheFlow.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 2d59ec5158e3adae.HeroesOfTheFlow:260:25
\|
260 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
292 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Teleport | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :7:0
\|
7 \| pub contract DapperStorageRent {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:2
\|
9 \| pub let DapperStorageRentAdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:2
\|
23 \| pub event BlockedAddress(\_ address: \$&Address\$&)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:2
\|
25 \| pub event Refuelled(\_ address: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub event RefilledFailed(address: Address, reason: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub fun getStorageRentRefillThreshold(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:2
\|
41 \| pub fun getRefilledAccounts(): \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub fun getBlockedAccounts() : \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:2
\|
57 \| pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:2
\|
65 \| pub fun getRefillRequiredBlocks(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:2
\|
70 \| pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:2
\|
75 \| pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:2
\|
85 \| pub fun tryRefill(\_ address: Address) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :124:106
\|
124 \| if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow<&FlowToken.Vault{FungibleToken.Balance}>() {
\| ^^^^^^^^^^^^^

--\> 43ee8c22fcf94ea3.DapperStorageRent

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:115:43
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:115:65
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:115:17
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:115:17
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:119:4
\|
119 \| Wearables.mintNFT(recipient: wearable, template:id, context:context)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:136:3
\|
136 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:159:20
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:159:88
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:181:43
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:181:65
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:181:17
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:181:17
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:185:4
\|
185 \| Wearables.mintNFT(recipient: wearable, template:id, context:context)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:201:3
\|
201 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:224:20
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:224:88
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^
| +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | Admin | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:242:39

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:428:84

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:428:109

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:477:88

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:499:165

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:521:143

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:623:45

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:653:64

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:669:50

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:822:37

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:894:13

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:902:16

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:282:35

error: mismatched types
--\> 1c5033ad60821c97.Doodles:282:11

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:450:32

error: mismatched types
--\> 1c5033ad60821c97.Doodles:480:23

error: mismatched types
--\> 1c5033ad60821c97.Doodles:502:23

error: mismatched types
--\> 1c5033ad60821c97.Doodles:532:48

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.Doodles:541:24

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:542:33

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:678:40

error: mismatched types
--\> 1c5033ad60821c97.Doodles:679:23

error: resource \`Doodles.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Doodles:812:22

--\> 1c5033ad60821c97.Doodles

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:141:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:233:67

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.DoodlePacks:238:17

error: resource \`DoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodlePacks:138:22

--\> 1c5033ad60821c97.DoodlePacks

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:58:43
\|
58 \| access(all) fun registerWearableSet(\_ s: Wearables.Set) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:72:48
\|
72 \| access(all) fun registerWearablePosition(\_ p: Wearables.Position) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:86:48
\|
86 \| access(all) fun registerWearableTemplate(\_ t: Wearables.Template) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:128:6
\|
128 \| ): @Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:144:9
\|
144 \| data: Wearables.WearableMintData,
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:195:52
\|
195 \| access(all) fun registerDoodlesBaseCharacter(\_ d: Doodles.BaseCharacter) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:209:46
\|
209 \| access(all) fun registerDoodlesSpecies(\_ d: Doodles.Species) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:223:42
\|
223 \| access(all) fun registerDoodlesSet(\_ d: Doodles.Set) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:242:6
\|
242 \| ): @Doodles.NFT {
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:62:3
\|
62 \| Wearables.addSet(s)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:69:3
\|
69 \| Wearables.retireSet(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:76:3
\|
76 \| Wearables.addPosition(p)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:83:3
\|
83 \| Wearables.retirePosition(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:90:3
\|
90 \| Wearables.addTemplate(t)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:97:3
\|
97 \| Wearables.retireTemplate(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:104:3
\|
104 \| Wearables.updateTemplateDescription(templateId: templateId, description: description)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:117:3
\|
117 \| Wearables.mintNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:133:22
\|
133 \| let newWearable <- Wearables.mintNFTDirect(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:152:3
\|
152 \| Wearables.mintEditionNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:199:3
\|
199 \| Doodles.setBaseCharacter(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:206:3
\|
206 \| Doodles.retireBaseCharacter(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:213:3
\|
213 \| Doodles.addSpecies(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:220:3
\|
220 \| Doodles.retireSpecies(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:227:3
\|
227 \| Doodles.addSet(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:234:3
\|
234 \| Doodles.retireSet(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:247:17
\|
247 \| let doodle <- Doodles.adminMintDoodle(
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:261:3
\|
261 \| Redeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:269:3
\|
269 \| Redeemables.updateSetActive(setId: setId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:276:3
\|
276 \| Redeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:283:3
\|
283 \| Redeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:300:3
\|
300 \| Redeemables.createTemplate(
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:317:3
\|
317 \| Redeemables.updateTemplateActive(templateId: templateId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:324:3
\|
324 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:331:3
\|
331 \| Redeemables.burnUnredeemedSet(setId: setId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePacks\`
--\> 1c5033ad60821c97.Admin:363:3
\|
363 \| DoodlePacks.mintNFT(recipient: recipient, typeId: typeId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.Admin:435:3
\|
435 \| OpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | DoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:141:37
\|
141 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:233:67
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18
\|
236 \| let openPack <- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.DoodlePacks:238:17
\|
238 \| Burner.burn(<- collection.withdraw(withdrawID: packId))
\| ^^^^^^^^^^^^^^^^^^^

error: resource \`DoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodlePacks:138:22
\|
138 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection{
\| ^
...
\|
141 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37
\|
121 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7
\|
205 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7
\|
233 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22
\|
111 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
121 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | OpenDoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43
\|
140 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72
\|
264 \| access(all) fun reveal(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{OpenDoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64, receiverAddress: Address) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19
\|
313 \| destroy <- collection.withdraw(withdrawID: packId)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107
\|
427 \| let recipient = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(Wearables.CollectionPublicPath)!.borrow()
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16
\|
429 \| Wearables.mintNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107
\|
438 \| let recipient = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(Redeemables.CollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16
\|
440 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25
\|
133 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
140 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | Wearables | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37
\|
728 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22
\|
718 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
728 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15
\|
246 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37
\|
257 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9
\|
321 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4
\|
440 \| getAccount(address).capabilities.get<&{Redeemables.RedeemablesCollectionPublic}>(Redeemables.CollectionPublicPath)?.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22
\|
250 \| access(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
321 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64) {
\| \-\-\-\-\-\- mismatch here

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22
\|
250 \| access(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
257 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Doodles | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1358:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1610:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2110:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2112:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2115:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2119:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2121:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2123:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2129:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2131:68

error: mismatched types
--\> 35717efbbce11c74.FIND:153:25

error: resource \`FIND.LeaseCollection\` does not conform to resource interface \`FIND.LeaseCollectionPublic\`
--\> 35717efbbce11c74.FIND:627:25

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1633:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35
\|
234 \| access(all) var name: @{UInt64 : DoodleNames.NFT}
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:242:39
\|
242 \| access(all) let wearables: @{UInt64: Wearables.NFT}
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:428:84
\|
428 \| access(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &Wearables.Collection, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:428:109
\|
428 \| access(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &Wearables.Collection, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:477:88
\|
477 \| access(all) fun editDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:499:165
\|
499 \| access(all) fun editDoodleWithMultipleCollections(receiverWearableCollection: &{NonFungibleToken.Receiver}, wearableCollections: \$&auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}\$&, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Boo...
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:521:143
\|
521 \| access(contract) fun internalEditDoodle(wearableReceiver: &{NonFungibleToken.Receiver}, wearableProviders: \$&auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}\$&, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool...
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38
\|
581 \| access(account) fun addName(\_ nft: @DoodleNames.NFT, owner:Address) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36
\|
590 \| access(all) fun equipName(\_ nft: @DoodleNames.NFT) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40
\|
606 \| access(contract) fun unequipName() : @DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:623:45
\|
623 \| access(contract) fun equipWearable(\_ nft: @Wearables.NFT, index: UInt64) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:653:64
\|
653 \| access(contract) fun unequipWearable(\_ resourceId: UInt64) : @Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:669:50
\|
669 \| access(all) fun borrowWearable(\_ id: UInt64) : &Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46
\|
673 \| access(all) fun borrowName(\_ id: UInt64) : &DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:822:37
\|
822 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:894:13
\|
894 \| betaPass: @Wearables.NFT,
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:902:16
\|
902 \| let template: Wearables.Template = betaPass.getTemplate()
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14
\|
940 \| let name <- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:282:35
\|
282 \| return (&self.wearables\$&id\$& as &Wearables.NFT?)!
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:282:11
\|
282 \| return (&self.wearables\$&id\$& as &Wearables.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:450:32
\|
450 \| let nft <- wearableNFT as! @Wearables.NFT
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:480:23
\|
480 \| wearableProviders: \$&wearableCollection\$&,
\| ^^^^^^^^^^^^^^^^^^^^ expected \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`, got \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`

error: mismatched types
--\> 1c5033ad60821c97.Doodles:502:23
\|
502 \| wearableProviders: wearableCollections,
\| ^^^^^^^^^^^^^^^^^^^ expected \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`, got \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`

error: mismatched types
--\> 1c5033ad60821c97.Doodles:532:48
\|
532 \| wearableReceiver.deposit(token: <- nft)
\| ^^^^^^ expected \`{NonFungibleToken.NFT}\`, got \`<>?\`

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.Doodles:541:24
\|
541 \| let wearableNFT <- wearableProvider.withdraw(withdrawID: wId)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:542:33
\|
542 \| let nft <- wearableNFT as! @Wearables.NFT
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:678:40
\|
678 \| if let nft = &self.wearables\$&id\$& as &Wearables.NFT? {
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:679:23
\|
679 \| return nft
\| ^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>\`

error: resource \`Doodles.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Doodles:812:22
\|
812 \| access(all) resource Collection: DoodlesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
822 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-05-15T10-00-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-05-15T10-00-00Z-testnet.json new file mode 100644 index 0000000000..568da230e3 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-15T10-00-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-failure","account_address":"0x8c5303eaa26202d6","contract_name":"EVM","error":"error: mismatched types\n --\u003e 8c5303eaa26202d6.EVM:300:37\n |\n300 | return EVMAddress(bytes: addressBytes)\n | ^^^^^^^^^^^^ expected `[UInt8; 20]`, got `AnyStruct`\n"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"FTViewUtils"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"TokenList"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"ViewResolvers"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x7745157792470296","contract_name":"LendingOracle"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x24650d6246d4176c","contract_name":"PriceOracle"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"A","error":"error: cannot find declaration `B` in `250e0b90c1b7711b.B`\n --\u003e 250e0b90c1b7711b.A:1:7\n |\n1 | import B from 0x250e0b90c1b7711b\n | ^ available exported declarations are:\n - `Bad`\n\n"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"W","error":"error: mismatching field `foo` in `W`\n --\u003e 250e0b90c1b7711b.W:3:25\n |\n3 | access(all) let foo: String\n | ^^^^^^ incompatible type annotations. expected `Int`, found `String`\n"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Foo"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"F"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"L"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Bar"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"O"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KaratNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.KaratNFT:179:43\n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n |\n155 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n ... \n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermission","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"Signature"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopToken","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n |\n233 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n |\n243 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun batchWithdraw(ids: [UInt64]): @{NonFungibleToken.Collection} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n |\n226 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {\n | ^\n ... \n |\n233 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopPermissionV2a","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: error getting program 668df1b27a5da384.FanTopMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:61:67\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:61:92\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:53:84\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:53:109\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:75:42\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:80:51\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:207:63\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:207:88\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:284:95\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopMarket:284:94\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:76:89\n\n--\u003e 668df1b27a5da384.FanTopMarket\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:114:118\n |\n114 | access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:118:156\n |\n118 | access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:139:79\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:139:78\n |\n139 | access(all) fun fulfill(orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:155:67\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:155:92\n |\n155 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:74:12\n |\n74 | FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:86:12\n |\n86 | FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:90:12\n |\n90 | FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:94:12\n |\n94 | FanTopToken.updateLimit(itemId: itemId, limit: limit)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:98:12\n |\n98 | FanTopToken.updateActive(itemId: itemId, active: active)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:115:22\n |\n115 | return \u003c- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:119:22\n |\n119 | return \u003c- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:136:12\n |\n136 | FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:140:12\n |\n140 | FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:144:12\n |\n144 | FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:201:12\n |\n201 | FanTopMarket.sell(\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:217:16\n |\n217 | FanTopMarket.containsOrder(orderId): \"Order is not exists\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:218:16\n |\n218 | FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): \"Cancel account is not match order account\"\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FanTopMarket`\n --\u003e 668df1b27a5da384.FanTopPermissionV2a:221:12\n |\n221 | FanTopMarket.cancel(agent: nil, orderId: orderId)\n | ^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x668df1b27a5da384","contract_name":"FanTopMarket","error":"error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:233:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopToken:243:43\n\nerror: resource `FanTopToken.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 668df1b27a5da384.FanTopToken:226:25\n\n--\u003e 668df1b27a5da384.FanTopToken\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:61:67\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:61:92\n |\n61 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:53:84\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:53:109\n |\n53 | access(contract) let capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:75:42\n |\n75 | access(contract) fun withdraw(): @FanTopToken.NFT {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:80:51\n |\n80 | view access(all) fun borrowFanTopToken(): \u0026FanTopToken.NFT? {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 668df1b27a5da384.FanTopMarket:207:63\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:207:88\n |\n207 | capability: Capability\u003cauth(NonFungibleToken.Withdraw, NonFungibleToken.Owner) \u0026FanTopToken.Collection\u003e,\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:284:95\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 668df1b27a5da384.FanTopMarket:284:94\n |\n284 | access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: \u0026{FanTopToken.CollectionPublic}) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FanTopToken`\n --\u003e 668df1b27a5da384.FanTopMarket:76:89\n |\n76 | let token \u003c- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x668df1b27a5da384","contract_name":"FanTopSerial"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOAT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n |\n350 | access(NonFungibleToken.Owner) fun delete(id: UInt64) {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n |\n270 | self.eventsCap = getAccount(_eventHost).capabilities.get\u003c\u0026FLOATEvents\u003e(FLOAT.FLOATEventsPublicPath)\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026FLOAT.FLOATEvents\u003e`\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n |\n198 | \t\t\t\t\t\t\treceiver: getAccount(0x5643fd47a29770e7).capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(/public/flowTokenReceiver) ?? panic(\"Beneficiary does not have receiver.\"),\r\n | \t\t\t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n300 | access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\r\n | --------- mismatch here\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOATVerifiers","error":"error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:0\n |\n28 | pub contract FLOAT: NonFungibleToken, ViewResolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :38:4\n |\n38 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :48:4\n |\n48 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:8\n |\n74 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:8\n |\n75 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:8\n |\n76 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :86:8\n |\n86 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:8\n |\n87 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :98:8\n |\n98 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:8\n |\n103 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:8\n |\n104 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:8\n |\n105 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :106:8\n |\n106 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:8\n |\n108 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:8\n |\n110 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :117:51\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 4d47bf3ce5e4393f.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:38:33\n |\n38 | access(all) struct Timelock: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:66:31\n |\n66 | access(all) struct Secret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:90:32\n |\n90 | access(all) struct Limited: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:113:39\n |\n113 | access(all) struct MultipleSecret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:137:33\n |\n137 | access(all) struct SecretV2: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:162:39\n |\n162 | access(all) struct MinimumBalance: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:226:30\n |\n226 | access(all) struct Email: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:94:51\n |\n94 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:230:51\n |\n230 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x8232ce4a3aff4e94","contract_name":"PublicPriceOracle"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0x6d692450d591524c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingError"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingConfig"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingInterfaces"},{"kind":"contract-update-success","account_address":"0xc911d6ddfae70ce8","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-success","account_address":"0xc15e75b5f6b95e54","contract_name":"LendingComptroller"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xdfc20aee650fcbdf","contract_name":"FlowEVMBridgeHandlerInterfaces","error":"error: error getting program 8c5303eaa26202d6.EVM: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 8c5303eaa26202d6.EVM:300:37\n\n--\u003e 8c5303eaa26202d6.EVM\n\nerror: cannot find type in this scope: `EVM`\n --\u003e dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:44:52\n |\n44 | access(all) view fun getTargetEVMAddress(): EVM.EVMAddress?\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `EVM`\n --\u003e dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:62:57\n |\n62 | access(Admin) fun setTargetEVMAddress(_ address: EVM.EVMAddress) {\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `EVM`\n --\u003e dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:118:16\n |\n118 | to: EVM.EVMAddress\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `EVM`\n --\u003e dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:127:19\n |\n127 | owner: EVM.EVMAddress,\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `EVM`\n --\u003e dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:130:43\n |\n130 | protectedTransferCall: fun (): EVM.Result\n | ^^^ not found in this scope\n\nerror: cannot find type in this scope: `EVM`\n --\u003e dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:30:92\n |\n30 | access(all) event HandlerEnabled(handlerType: Type, targetType: Type, targetEVMAddress: EVM.EVMAddress)\n | ^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"StableSwapFactory"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"SwapFactory"},{"kind":"contract-update-success","account_address":"0x97d2f3b55c6a6a75","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"StorageHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnRegistry"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMarketplace","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:79:33\n |\n79 | init (vault: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:77:49\n |\n77 | access(self) let ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:259:70\n |\n259 | access(all) fun changeMarketplaceWallet(_ newCap: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:12:56\n |\n12 | access(contract) var marketplaceWallet: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:242:65\n |\n242 | access(all) fun createSaleCollection(ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e): @SaleCollection {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:64\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:33\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:119:36\n |\n119 | let saleOwnerVaultRef: \u0026FiatToken.Vault = self.ownerVault.borrow() ?? panic(\"could not borrow reference to the owner vault\")\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:126:36\n |\n126 | let marketplaceWallet: \u0026FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic(\"Couldn't borrow Vault reference\")\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLIndex"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLAdmin","error":"error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\n--\u003e b39a42479c1c2c77.AFLPack\n"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLPack","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n |\n23 | access(contract) let adminRef : Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n |\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n113 | .borrow()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMetadataHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"PackRestrictions"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLNFT"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBadges"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnExchange"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Teleport","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :7:0\n |\n7 | pub contract DapperStorageRent {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :9:2\n |\n9 | pub let DapperStorageRentAdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:2\n |\n23 | pub event BlockedAddress(_ address: [Address])\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:2\n |\n25 | pub event Refuelled(_ address: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub event RefilledFailed(address: Address, reason: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub fun getStorageRentRefillThreshold(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:2\n |\n41 | pub fun getRefilledAccounts(): [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub fun getBlockedAccounts() : [Address] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:2\n |\n57 | pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:2\n |\n65 | pub fun getRefillRequiredBlocks(): UInt64 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:2\n |\n70 | pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:2\n |\n75 | pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:2\n |\n85 | pub fun tryRefill(_ address: Address) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :124:106\n |\n124 | if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow\u003c\u0026FlowToken.Vault{FungibleToken.Balance}\u003e() {\n | ^^^^^^^^^^^^^\n\n--\u003e 43ee8c22fcf94ea3.DapperStorageRent\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:115:43\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:115:65\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:115:17\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:115:17\n |\n115 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:119:4\n |\n119 | \t\t\t\tWearables.mintNFT(recipient: wearable, template:id, context:context)\n | \t\t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:136:3\n |\n136 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:159:20\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:159:88\n |\n159 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:181:43\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:181:65\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:181:17\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 1c5033ad60821c97.Teleport:181:17\n |\n181 | \t\t\tlet wearable= account.capabilities.get\u003c\u0026Wearables.Collection\u003e(Wearables.CollectionPublicPath)!.borrow() ?? panic(\"cannot borrow werable cap\")\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Teleport:185:4\n |\n185 | \t\t\t\tWearables.mintNFT(recipient: wearable, template:id, context:context)\n | \t\t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:201:3\n |\n201 | \t\t\tDapperStorageRent.tryRefill(data.receiver)\n | \t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DapperStorageRent`\n --\u003e 1c5033ad60821c97.Teleport:224:20\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 1c5033ad60821c97.Teleport:224:88\n |\n224 | \t\t\t\tlet newVault \u003c- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: \u003c- vaultRef.withdraw(amount: amount))\n | \t\t\t\t ^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks","error":"error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:141:37\n |\n141 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:67\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n |\n233 | \taccess(all) fun open(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {\n | \t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n |\n236 | \t\tlet openPack \u003c- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)\n | \t\t ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.DoodlePacks:238:17\n |\n238 | \t\tBurner.burn(\u003c- collection.withdraw(withdrawID: packId))\n | \t\t ^^^^^^^^^^^^^^^^^^^\n\nerror: resource `DoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodlePacks:138:22\n |\n138 | \taccess(all) resource Collection: CollectionPublic, NonFungibleToken.Collection{\n | \t ^\n ... \n |\n141 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n |\n246 | access(NonFungibleToken.Owner) fun redeem(id: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n |\n257 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n |\n321 | \t\taccess(NonFungibleToken.Owner) fun redeem(id: UInt64) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n |\n440 | \t\t\t\tgetAccount(address).capabilities.get\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e(Redeemables.CollectionPublicPath)?.borrow()\n | \t\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n |\n250 | \taccess(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n321 | \t\taccess(NonFungibleToken.Owner) fun redeem(id: UInt64) {\n | \t\t ------ mismatch here\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n |\n250 | \taccess(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n257 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Doodles","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n |\n234 | \t\taccess(all) var name: @{UInt64 : DoodleNames.NFT}\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:242:39\n |\n242 | \t\taccess(all) let wearables: @{UInt64: Wearables.NFT}\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:428:84\n |\n428 | \t\taccess(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026Wearables.Collection, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:428:109\n |\n428 | \t\taccess(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026Wearables.Collection, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:477:88\n |\n477 | access(all) fun editDoodle(wearableCollection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}, equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:499:165\n |\n499 | \t\taccess(all) fun editDoodleWithMultipleCollections(receiverWearableCollection: \u0026{NonFungibleToken.Receiver}, wearableCollections: [auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}], equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Boo... \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:521:143\n |\n521 | \t\taccess(contract) fun internalEditDoodle(wearableReceiver: \u0026{NonFungibleToken.Receiver}, wearableProviders: [auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{NonFungibleToken.Collection, NonFungibleToken.Provider}], equipped: [UInt64],quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool... \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n |\n581 | \t\taccess(account) fun addName(_ nft: @DoodleNames.NFT, owner:Address) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n |\n590 | \t\taccess(all) fun equipName(_ nft: @DoodleNames.NFT) {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n |\n606 | \t\taccess(contract) fun unequipName() : @DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:623:45\n |\n623 | \t\taccess(contract) fun equipWearable(_ nft: @Wearables.NFT, index: UInt64) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:653:64\n |\n653 | \t\taccess(contract) fun unequipWearable(_ resourceId: UInt64) : @Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:669:50\n |\n669 | \t\taccess(all) fun borrowWearable(_ id: UInt64) : \u0026Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n |\n673 | \t\taccess(all) fun borrowName(_ id: UInt64) : \u0026DoodleNames.NFT {\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:822:37\n |\n822 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:894:13\n |\n894 | \t\tbetaPass: @Wearables.NFT,\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:902:16\n |\n902 | \t\tlet template: Wearables.Template = betaPass.getTemplate()\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n |\n940 | \t\tlet name \u003c- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)\n | \t\t ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n |\n280 | \t\t\t\treturn (\u0026self.name[id] as \u0026DoodleNames.NFT?)!\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:282:35\n |\n282 | \t\t\treturn (\u0026self.wearables[id] as \u0026Wearables.NFT?)!\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:282:11\n |\n282 | \t\t\treturn (\u0026self.wearables[id] as \u0026Wearables.NFT?)!\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:450:32\n |\n450 | \t\t\t\tlet nft \u003c- wearableNFT as! @Wearables.NFT\n | \t\t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:480:23\n |\n480 | \t\t\t\twearableProviders: [wearableCollection],\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^ expected `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`, got `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:502:23\n |\n502 | \t\t\t\twearableProviders: wearableCollections,\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^ expected `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`, got `[auth(A.1c5033ad60821c97.NonFungibleToken|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)\u0026{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}]`\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:532:48\n |\n532 | wearableReceiver.deposit(token: \u003c- nft)\n | ^^^^^^ expected `{NonFungibleToken.NFT}`, got `\u003c\u003cinvalid\u003e\u003e?`\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.Doodles:541:24\n |\n541 | \t\t\t\t\tlet wearableNFT \u003c- wearableProvider.withdraw(withdrawID: wId)\n | \t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:542:33\n |\n542 | \t\t\t\t\tlet nft \u003c- wearableNFT as! @Wearables.NFT\n | \t\t\t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:678:40\n |\n678 | \t\t\tif let nft = \u0026self.wearables[id] as \u0026Wearables.NFT? {\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:679:23\n |\n679 | return nft\n | ^^^ expected `\u0026{ViewResolver.Resolver}?`, got `\u0026\u003c\u003cinvalid\u003e\u003e`\n\nerror: resource `Doodles.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Doodles:812:22\n |\n812 | \taccess(all) resource Collection: DoodlesCollectionPublic, NonFungibleToken.Collection {\n | \t ^\n ... \n |\n822 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Admin","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n\n--\u003e 1c5033ad60821c97.DoodleNames\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:234:35\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:242:39\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:428:84\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:428:109\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:477:88\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:499:165\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:521:143\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:581:38\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:590:36\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:606:40\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:623:45\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:653:64\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:669:50\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:673:46\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Doodles:822:37\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:894:13\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:902:16\n\nerror: cannot find variable in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:940:14\n\nerror: cannot find type in this scope: `DoodleNames`\n --\u003e 1c5033ad60821c97.Doodles:280:31\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:280:12\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:282:35\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:282:11\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:450:32\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:480:23\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:502:23\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:532:48\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.Doodles:541:24\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:542:33\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Doodles:678:40\n\nerror: mismatched types\n --\u003e 1c5033ad60821c97.Doodles:679:23\n\nerror: resource `Doodles.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Doodles:812:22\n\n--\u003e 1c5033ad60821c97.Doodles\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:141:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:67\n\nerror: cannot find type in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:233:169\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.DoodlePacks:236:18\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.DoodlePacks:238:17\n\nerror: resource `DoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodlePacks:138:22\n\n--\u003e 1c5033ad60821c97.DoodlePacks\n\nerror: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:\nerror: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n\n--\u003e 1c5033ad60821c97.OpenDoodlePacks\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:58:43\n |\n58 | \t\taccess(all) fun registerWearableSet(_ s: Wearables.Set) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:72:48\n |\n72 | \t\taccess(all) fun registerWearablePosition(_ p: Wearables.Position) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:86:48\n |\n86 | \t\taccess(all) fun registerWearableTemplate(_ t: Wearables.Template) {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:128:6\n |\n128 | \t\t): @Wearables.NFT {\n | \t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:144:9\n |\n144 | \t\t\tdata: Wearables.WearableMintData,\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:195:52\n |\n195 | \t\taccess(all) fun registerDoodlesBaseCharacter(_ d: Doodles.BaseCharacter) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:209:46\n |\n209 | \t\taccess(all) fun registerDoodlesSpecies(_ d: Doodles.Species) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:223:42\n |\n223 | \t\taccess(all) fun registerDoodlesSet(_ d: Doodles.Set) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:242:6\n |\n242 | \t\t): @Doodles.NFT {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:62:3\n |\n62 | \t\t\tWearables.addSet(s)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:69:3\n |\n69 | \t\t\tWearables.retireSet(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:76:3\n |\n76 | \t\t\tWearables.addPosition(p)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:83:3\n |\n83 | \t\t\tWearables.retirePosition(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:90:3\n |\n90 | \t\t\tWearables.addTemplate(t)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:97:3\n |\n97 | \t\t\tWearables.retireTemplate(id)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:104:3\n |\n104 | \t\t\tWearables.updateTemplateDescription(templateId: templateId, description: description)\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:117:3\n |\n117 | \t\t\tWearables.mintNFT(\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:133:22\n |\n133 | \t\t\tlet newWearable \u003c- Wearables.mintNFTDirect(\n | \t\t\t ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.Admin:152:3\n |\n152 | \t\t\tWearables.mintEditionNFT(\n | \t\t\t^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:199:3\n |\n199 | \t\t\tDoodles.setBaseCharacter(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:206:3\n |\n206 | \t\t\tDoodles.retireBaseCharacter(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:213:3\n |\n213 | \t\t\tDoodles.addSpecies(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:220:3\n |\n220 | \t\t\tDoodles.retireSpecies(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:227:3\n |\n227 | \t\t\tDoodles.addSet(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:234:3\n |\n234 | \t\t\tDoodles.retireSet(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:247:17\n |\n247 | \t\t\tlet doodle \u003c- Doodles.adminMintDoodle(\n | \t\t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:261:3\n |\n261 | \t\t\tRedeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:269:3\n |\n269 | \t\t\tRedeemables.updateSetActive(setId: setId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:276:3\n |\n276 | \t\t\tRedeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:283:3\n |\n283 | \t\t\tRedeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:300:3\n |\n300 | \t\t\tRedeemables.createTemplate(\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:317:3\n |\n317 | \t\t\tRedeemables.updateTemplateActive(templateId: templateId, active: active)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:324:3\n |\n324 | \t\t\tRedeemables.mintNFT(recipient: recipient, templateId: templateId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.Admin:331:3\n |\n331 | \t\t\tRedeemables.burnUnredeemedSet(setId: setId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `DoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:363:3\n |\n363 | \t\t\tDoodlePacks.mintNFT(recipient: recipient, typeId: typeId)\n | \t\t\t^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `OpenDoodlePacks`\n --\u003e 1c5033ad60821c97.Admin:435:3\n |\n435 | \t\t\tOpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)\n | \t\t\t^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.DoodleNames:121:37\n |\n121 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:205:7\n |\n205 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 1c5033ad60821c97.DoodleNames:233:7\n |\n233 | \t\tif (!FIND.validateFindName(name)){\n | \t\t ^^^^ not found in this scope\n\nerror: resource `DoodleNames.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.DoodleNames:111:22\n |\n111 | \taccess(all) resource Collection: NonFungibleToken.Collection {\n | \t ^\n ... \n |\n121 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Wearables","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n |\n728 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n |\n718 | \taccess(all) resource Collection: NonFungibleToken.Collection {\n | \t ^\n ... \n |\n728 | \t\taccess(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | \t\t -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks","error":"error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Wearables:728:37\n\nerror: resource `Wearables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Wearables:718:22\n\n--\u003e 1c5033ad60821c97.Wearables\n\nerror: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:246:15\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:257:37\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.Redeemables:321:9\n\nerror: cannot use optional chaining: type `Capability\u003c\u0026{Redeemables.RedeemablesCollectionPublic}\u003e` is not optional\n --\u003e 1c5033ad60821c97.Redeemables:440:4\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `Redeemables.RedeemablesCollectionPublic`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\nerror: resource `Redeemables.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.Redeemables:250:22\n\n--\u003e 1c5033ad60821c97.Redeemables\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:140:43\n |\n140 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:264:72\n |\n264 | access(all) fun reveal(collection: auth(NonFungibleToken.Withdraw | NonFungibleToken.Owner) \u0026{OpenDoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64, receiverAddress: Address) {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot access `withdraw`: function requires `Withdraw` authorization, but reference only has `Withdraw | NonFungibleToken` authorization\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:313:19\n |\n313 | destroy \u003c- collection.withdraw(withdrawID: packId)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:427:107\n |\n427 | let recipient = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(Wearables.CollectionPublicPath)!.borrow()\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Wearables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:429:16\n |\n429 | Wearables.mintNFT(\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:438:107\n |\n438 | let recipient = getAccount(receiverAddress).capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(Redeemables.CollectionPublicPath)!.borrow()\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Redeemables`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:440:16\n |\n440 | Redeemables.mintNFT(recipient: recipient, templateId: templateId)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: resource `OpenDoodlePacks.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1c5033ad60821c97.OpenDoodlePacks:133:25\n |\n133 | access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {\n | ^\n ... \n |\n140 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapInterfaces"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapError"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapConfig"},{"kind":"contract-update-failure","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e d704ee8202a0d82d.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x23031fd14bb0f21b","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0xcc4e949596cf8ced","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDC"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"wFlow"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"BUSD"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDT"},{"kind":"contract-update-success","account_address":"0x8aaca41f09eb1e3d","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x3b220a3372190656","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleConfig"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleInterface"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingNFT"},{"kind":"contract-update-success","account_address":"0xcbdb5a7b89c3c844","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0xa1296b1e2e90ca5b","contract_name":"HelloWorld"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-success","account_address":"0xdad0aaa285a25413","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-failure","account_address":"0xe8124d8428980aa6","contract_name":"Bl0x","error":"error: found new field `storagePath` in `Collection`\n --\u003e e8124d8428980aa6.Bl0x:305:25\n |\n305 | access(self) var storagePath: StoragePath\n | ^^^^^^^^^^^\n\nerror: found new field `publicPath` in `Collection`\n --\u003e e8124d8428980aa6.Bl0x:306:25\n |\n306 | access(self) var publicPath: PublicPath\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:0\n |\n40 | pub contract Market {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub resource interface SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:8\n |\n62 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:8\n |\n68 | pub fun getPrice(tokenID: UInt64): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:8\n |\n69 | pub fun getIDs(): [UInt64]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:8\n |\n70 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub resource SaleCollection: SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun listForSale(token: @TopShot.NFT, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub fun withdraw(tokenID: UInt64): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :166:8\n |\n166 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :198:8\n |\n198 | pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :209:8\n |\n209 | pub fun changePercentage(_ newPercent: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :216:8\n |\n216 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :225:8\n |\n225 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :227:73\n |\n227 | newBeneficiaryCapability.borrow\u003c\u0026DapperUtilityCoin.Vault{FungibleToken.Receiver}\u003e() != nil:\n | ^^^^^^^^^^^^^\n\n--\u003e 547f177b243b4d80.Market\n\nerror: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:0\n |\n46 | pub contract TopShotMarketV3 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let marketStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub let marketPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:4\n |\n79 | pub resource SaleCollection: Market.SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:8\n |\n101 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub fun listForSale(tokenID: UInt64, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub fun cancelSale(tokenID: UInt64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:8\n |\n196 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :247:8\n |\n247 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:8\n |\n259 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:8\n |\n272 | pub fun getPrice(tokenID: UInt64): UFix64? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :282:8\n |\n282 | pub fun getIDs(): [UInt64] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:8\n |\n302 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :318:4\n |\n318 | pub fun createSaleCollection(ownerCollection: Capability\u003c\u0026TopShot.Collection\u003e,\n | ^^^\n\n--\u003e 547f177b243b4d80.TopShotMarketV3\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:154:70\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:154:69\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:159:73\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:159:72\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:164:73\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:164:72\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:225:22\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:225:21\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:301:25\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:301:24\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:35\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:156:34\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:70\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:155:15\n |\n155 | return getAccount(address)\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:161:35\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:161:34\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:160:15\n |\n160 | return getAccount(address)\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:35\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:166:34\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `TopShotMarketV3`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:55\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:165:15\n |\n165 | return getAccount(address)\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:353:42\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:353:41\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:354:45\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:354:44\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:355:45\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:355:44\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:160:8\n |\n160 | ): [NFTStorefrontV2.SaleCut] {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:161:23\n |\n161 | let saleCuts: [NFTStorefrontV2.SaleCut] = []\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:164:28\n |\n164 | saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut * salePrice))\n | ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0x2f8af5ed05bbde0d","contract_name":"SwapRouter"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:341:32\n |\n341 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:15\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:56\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:342:110\n |\n342 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:15\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:67\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:362:121\n |\n362 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.PartyFavorz:396:8\n |\n396 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:284:32\n |\n284 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:15\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:56\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:285:110\n |\n285 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:15\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:67\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:303:121\n |\n303 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.NFGv3:328:8\n |\n328 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:380:36\n |\n380 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:19\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:60\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:381:114\n |\n381 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:19\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:71\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:395:125\n |\n395 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:414:46\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 3e5b4c627064625d.Flomies:414:45\n |\n414 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.Flomies:434:12\n |\n434 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:340:32\n |\n340 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:15\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:56\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:341:110\n |\n341 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:15\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:67\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:354:121\n |\n354 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:399:8\n |\n399 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xd9c02cdacccb25ab","contract_name":"FlowtyTestNFT"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-failure","account_address":"0x8c55fba7d7090fee","contract_name":"Magnetiq","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 8c55fba7d7090fee.Magnetiq:1253:43\n |\n1253 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Magnetiq.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 8c55fba7d7090fee.Magnetiq:1211:25\n |\n1211 | access(all) resource Collection: TokenCollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection { \n | ^\n ... \n |\n1253 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"MagnetiqLocking"},{"kind":"contract-update-success","account_address":"0x9e324d8ae3cbd0f0","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:79\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:94:75\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:122:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:127:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:138:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:160:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:163:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n |\n18 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n |\n20 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:66:21\n |\n66 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:23\n |\n68 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:79:23\n |\n79 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:98:21\n |\n98 | let toName = FIND.reverseLookup(receiver)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:23\n |\n100 | let fromName = FIND.reverseLookup(from)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:113:23\n |\n113 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:26:57\n |\n26 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:32:49\n |\n32 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAdmin:34:57\n |\n34 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:324:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:351:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:45\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:59\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:400:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:69:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:86:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:109:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:123:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:448:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:336:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:476:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:478:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71\n |\n228 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31\n |\n529 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73\n |\n579 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207\n |\n16 | access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22\n |\n32 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38\n |\n19 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40\n |\n91 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38\n |\n181 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51\n |\n463 | access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58\n |\n520 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56\n |\n681 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118\n |\n706 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115\n |\n716 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8\n |\n727 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8\n |\n728 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8\n |\n729 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8\n |\n730 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81\n |\n711 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82\n |\n721 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19\n |\n70 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23\n |\n86 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19\n |\n92 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19\n |\n178 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19\n |\n182 | return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26\n |\n254 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36\n |\n261 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30\n |\n265 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30\n |\n266 | let profile = FIND.lookup(buyer!.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138\n |\n267 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138\n |\n269 | emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12\n |\n457 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38\n |\n621 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32\n |\n629 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n |\n46 | let senderName = FIND.reverseLookup(sender)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:79\n |\n76 | emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:94:75\n |\n94 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:122:32\n |\n122 | flowTokenRepayment: flowTokenRepayment\n | ^^^^^^^^^^^^^^^^^^ expected `Capability\u003c\u0026FlowToken.Vault\u003e?`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:127:70\n |\n127 | emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:138:77\n |\n138 | emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: \"invalid capability\")\n | ^^^^ not found in this scope\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n |\n152 | shelf.redeem(type: type, ticketID: ticketID, receiver: cap)\n | ^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:160:25\n |\n160 | senderName = FIND.reverseLookup(sender!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:67\n |\n162 | emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:163:69\n |\n163 | emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:69\n |\n267 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:127\n |\n267 | emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n |\n1156 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n |\n307 | init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n |\n305 | access(all) let verifierRef: \u0026FindForge.Verifier\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n |\n1157 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n |\n1168 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n |\n1185 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n |\n1220 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n |\n1223 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1156:32\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:307:79\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:305:38\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:56\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1157:110\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:15\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:67\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1168:121\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1185:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:1185:41\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1220:8\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.FindPack:1223:8\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:79\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:94:75\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:122:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:127:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:138:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:160:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:163:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:66:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:23\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:79:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:98:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:23\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:113:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n\n--\u003e 35717efbbce11c74.NameVoucher\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:38:57\n |\n38 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:44:49\n |\n44 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:46:57\n |\n46 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:156:110\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:156:109\n |\n156 | access(Owner) fun register(name: String, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e){\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:59:12\n |\n59 | FindForge.addPublicForgeType(forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:67:12\n |\n67 | FindForge.addPrivateForgeType(name: name, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:75:12\n |\n75 | FindForge.removeForgeType(type: type)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:83:12\n |\n83 | FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.Admin:91:12\n |\n91 | FindForgeOrder.addMintType(mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:99:12\n |\n99 | FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:106:12\n |\n106 | FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:114:19\n |\n114 | return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:161:16\n |\n161 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:174:16\n |\n174 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:178:23\n |\n178 | let user = FIND.lookupAddress(name) ?? panic(\"Cannot find lease owner. Lease : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:58\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Admin:179:57\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:179:87\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:179:22\n |\n179 | let ref = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(name))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.Admin:188:16\n |\n188 | if !FIND.validateFindName(name) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:192:12\n |\n192 | FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:200:12\n |\n200 | FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:295:122\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Admin:296:12\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:359:19\n |\n359 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:57\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:87\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:367:27\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:368:19\n |\n368 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindForge","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n |\n413 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n |\n421 | access(self) var capability: Capability\u003c\u0026FIND.Network\u003e?\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n |\n427 | access(all) fun addCapability(_ cap: Capability\u003c\u0026FIND.Network\u003e) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n |\n110 | access(all) fun setMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n |\n178 | access(all) fun removeMinterPlatform(lease: \u0026FIND.Lease, forgeType: Type) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n |\n229 | access(all) fun orderForge(lease: \u0026FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n |\n263 | access(all) fun mint (lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct, receiver: \u0026{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n |\n310 | access(all) fun addContractData(lease: \u0026FIND.Lease, forgeType: Type , data: AnyStruct) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n |\n155 | let user = FIND.lookupAddress(leaseName) ?? panic(\"Cannot find lease owner. Lease : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n |\n156 | let leaseCollection = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow reference to lease collection of user : \".concat(leaseName))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n |\n234 | FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n |\n238 | FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n |\n242 | FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n |\n246 | let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)\n | ^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n |\n272 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n |\n273 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n |\n302 | let toName = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n |\n303 | let new = FIND.reverseLookup(to)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n |\n319 | let address = FIND.lookupAddress(lease) ?? panic(\"This name is not owned by anyone. Name : \".concat(lease))\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n |\n320 | let leaseCol = getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!.borrow() ?? panic(\"Cannot borrow lease collection to lease owner. Owner : \".concat(address.toString()))\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n |\n36 | self.minter=FIND.lookupAddress(self.name)!\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FIND","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n |\n1351 | access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n |\n1600 | access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability\u003c\u0026{Profile.Public}\u003e, leases: Capability\u003c\u0026{LeaseCollectionPublic}\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n |\n2098 | if self.account.storage.borrow\u003c\u0026FUSD.Vault\u003e(from: FUSD.VaultStoragePath) == nil {\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n |\n2100 | let vault \u003c- FUSD.createEmptyVault()\n | ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n |\n2103 | self.account.storage.save(\u003c-vault, to: FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n |\n2107 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n |\n2109 | self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)\n | ^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n |\n2111 | let capb = self.account.capabilities.storage.issue\u003c\u0026{FungibleToken.Vault}\u003e(FUSD.VaultStoragePath)\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n |\n2117 | FUSD.VaultStoragePath\n | ^^^^^^^^^^^^^^^^ unknown member\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n |\n2119 | self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)\n | ^^^^^^^^^^^^^^^^^^ unknown member\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n |\n1623 | let usdcCap = account.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xc20df20fabe06457","contract_name":"SwapPair"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:16:43\n |\n16 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindFurnace:24:43\n |\n24 | emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:46:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:76:79\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:94:75\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:122:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:127:70\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:138:77\n\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:160:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:162:67\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:163:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:69\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:267:127\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:18:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:20:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:66:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:68:23\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:79:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:98:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindAirdropper:100:23\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:113:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:62\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:227:82\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:227:26\n |\n227 | let network = NameVoucher.account.storage.borrow\u003c\u0026FIND.Network\u003e(from: FIND.NetworkStoragePath) ?? panic(\"Cannot borrow find network for registration\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:228:25\n |\n228 | let status = FIND.status(name)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:231:32\n |\n231 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:59\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.NameVoucher:233:58\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.NameVoucher:233:88\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.NameVoucher:233:28\n |\n233 | let lease = self.owner!.capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:85:19\n |\n85 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:97:23\n |\n97 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:333:36\n |\n333 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:336:26\n |\n336 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:338:110\n |\n338 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:416:26\n |\n416 | let buyerName=FIND.reverseLookup(callback.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:418:123\n |\n418 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:458:30\n |\n458 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:460:114\n |\n460 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:462:114\n |\n462 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:537:26\n |\n537 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:538:27\n |\n538 | let sellerName=FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:540:110\n |\n540 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:552:146\n |\n552 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionSoft:612:126\n |\n612 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: \"active_listed\", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarket"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:106:19\n |\n106 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:114:26\n |\n114 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:234:26\n |\n234 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:242:134\n |\n242 | emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:270:26\n |\n270 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:275:106\n |\n275 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:304:30\n |\n304 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:309:113\n |\n309 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:348:26\n |\n348 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:353:36\n |\n353 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:356:106\n |\n356 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:378:26\n |\n378 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:386:106\n |\n386 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:427:26\n |\n427 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:432:106\n |\n432 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:470:26\n |\n470 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:471:27\n |\n471 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferSoft:488:187\n |\n488 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:154:73\n |\n154 | emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:167:68\n |\n167 | emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:56\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:189:111\n |\n189 | emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:282:30\n |\n282 | let creatorName = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:307:23\n |\n307 | name = FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindThoughts:309:80\n |\n309 | emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:324:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:351:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:45\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:59\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:400:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:69:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:86:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:109:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:123:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:448:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:336:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:476:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:478:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:21:36\n |\n21 | access(all) resource SaleItem : FindLeaseMarket.SaleItem{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:132:71\n |\n132 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:59\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:128:58\n |\n128 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:18:170\n |\n18 | access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:33:22\n |\n33 | init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:26:38\n |\n26 | access(contract) var pointer: FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:94:38\n |\n94 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:110:40\n |\n110 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:201:48\n |\n201 | access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:59\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:269:58\n |\n269 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:283:138\n |\n283 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:294:8\n |\n294 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:295:8\n |\n295 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:288:101\n |\n288 | return getAccount(user).capabilities.get\u003c\u0026{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))!\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:64:23\n |\n64 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:25\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:74:19\n |\n74 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:87:19\n |\n87 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:111:19\n |\n111 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:189:26\n |\n189 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:190:26\n |\n190 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:194:12\n |\n194 | FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo:leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:196:123\n |\n196 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:\"sold\", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:223:124\n |\n223 | emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:243:126\n |\n243 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:250:126\n |\n250 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketSale:252:126\n |\n252 | emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"cancel\", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:73:23\n |\n73 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:99:19\n |\n99 | return FIND.reverseLookup(self.pointer.owner())\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:224:26\n |\n224 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:225:27\n |\n225 | let sellerName=FIND.reverseLookup(self.owner!.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:227:113\n |\n227 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:\"sold\", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:236:199\n |\n236 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:295:115\n |\n295 | emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: \"active_listed\", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketSale:317:98\n |\n317 | emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:89:19\n |\n89 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:101:23\n |\n101 | return FIND.reverseLookup(cb.address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:337:36\n |\n337 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:342:26\n |\n342 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:344:110\n |\n344 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:429:26\n |\n429 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:431:110\n |\n431 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:504:30\n |\n504 | let buyerName=FIND.reverseLookup(buyer!)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:506:114\n |\n506 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:508:114\n |\n508 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:560:30\n |\n560 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:561:33\n |\n561 | let sellerName = FIND.reverseLookup(seller)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:574:189\n |\n574 | FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketAuctionEscrow:662:113\n |\n662 | emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Dandy","error":"error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\n--\u003e 35717efbbce11c74.FindForgeOrder\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:413:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:421:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:427:57\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:110:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:178:49\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:229:39\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:263:34\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:310:44\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:155:19\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:66\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:156:65\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:156:95\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:156:30\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:234:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:238:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:242:8\n\nerror: cannot find variable in this scope: `FindForgeOrder`\n --\u003e 35717efbbce11c74.FindForge:246:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:272:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:273:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:273:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:273:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:302:21\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:303:18\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:319:22\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:62\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindForge:320:61\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:320:91\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindForge:320:23\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindForge:36:24\n\n--\u003e 35717efbbce11c74.FindForge\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:345:32\n |\n345 | access(all) resource Forge: FindForge.Forge {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:63:119\n |\n63 | init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:61:39\n |\n61 | access(contract) let platform: FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:87:46\n |\n87 | access(all) fun getMinterPlatform() : FindForge.MinterPlatform {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:346:15\n |\n346 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:346:56\n |\n346 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:346:110\n |\n346 | access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) : @{NonFungibleToken.NFT} {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:351:15\n |\n351 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:351:67\n |\n351 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:351:121\n |\n351 | access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: \u0026FindForge.Verifier) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:330:109\n |\n330 | access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: [AnyStruct], externalUrlPrefix:String?) : @NFT {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:357:42\n |\n357 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.Dandy:357:41\n |\n357 | access(account) fun createForge() : @{FindForge.Forge} {\n | ^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:386:8\n |\n386 | FindForge.addForgeType(\u003c- create Forge())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:388:8\n |\n388 | FindForge.addPublicForgeType(forgeType: Type\u003c@Forge\u003e())\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:88:27\n |\n88 | if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindForge`\n --\u003e 35717efbbce11c74.Dandy:89:50\n |\n89 | let platform = \u0026self.platform as \u0026FindForge.MinterPlatform\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:58\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindVerifier:153:57\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindVerifier:153:87\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:153:22\n |\n153 | let cap = getAccount(user).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:154:16\n |\n154 | if !cap.check() {\n | ^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:157:22\n |\n157 | let ref = cap.borrow()!\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19\n |\n65 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26\n |\n74 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26\n |\n211 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106\n |\n219 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26\n |\n246 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106\n |\n251 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30\n |\n282 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113\n |\n287 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26\n |\n325 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36\n |\n330 | let previousBuyerName = FIND.reverseLookup(previousBuyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106\n |\n332 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26\n |\n354 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106\n |\n362 | emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26\n |\n402 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27\n |\n403 | let sellerName=FIND.reverseLookup(owner)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186\n |\n417 | FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: \u003c- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:324:37\n |\n324 | access(all) fun getLease() : FIND.LeaseInformation\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:42\n |\n326 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:41\n |\n326 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:43\n |\n330 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:42\n |\n330 | access(self) let cap: Capability\u003c\u0026{FIND.LeaseCollectionPublic}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:42\n |\n347 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:41\n |\n347 | access(contract) fun borrow() : \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:351:37\n |\n351 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:33\n |\n381 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:47\n |\n381 | init(cap:Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e, name: String) {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:46\n |\n376 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:60\n |\n376 | access(self) let cap: Capability\u003cauth(FIND.Leasee) \u0026FIND.LeaseCollection\u003e\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:45\n |\n396 | access(contract) fun borrow() : auth(FIND.Leasee) \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:60\n |\n396 | access(contract) fun borrow() : auth(FIND.Leasee) \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:59\n |\n396 | access(contract) fun borrow() : auth(FIND.Leasee) \u0026{FIND.LeaseCollectionPublic} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:400:37\n |\n400 | access(all) fun getLease() : FIND.LeaseInformation {\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n |\n666 | access(contract) fun getNetwork() : \u0026FIND.Network {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:69:20\n |\n69 | let address=FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:86:22\n |\n86 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:109:22\n |\n109 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:123:22\n |\n123 | let address = FIND.lookupAddress(name) ?? panic(\"Name is not owned by anyone. Name : \".concat(name))\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:448:35\n |\n448 | let findName = FIND.reverseLookup(cut.getAddress())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n |\n667 | return FindLeaseMarket.account.storage.borrow\u003c\u0026FIND.Network\u003e(from : FIND.NetworkStoragePath) ?? panic(\"Network is not up\")\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:336:26\n |\n336 | let address = FIND.lookupAddress(name) ?? panic(\"This lease name is not owned\")\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:60\n |\n337 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:59\n |\n337 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:89\n |\n337 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:21\n |\n337 | self.cap=getAccount(address).capabilities.get\u003c\u0026{FIND.LeaseCollectionPublic}\u003e(FIND.LeasePublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:52\n |\n425 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:74\n |\n425 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:25\n |\n425 | let leases = receiver.capabilities.get\u003c\u0026FIND.LeaseCollection\u003e(FIND.LeasePublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:476:32\n |\n476 | if status.status == FIND.LeaseStatus.FREE {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:478:39\n |\n478 | } else if status.status == FIND.LeaseStatus.LOCKED {\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft","error":"error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1351:66\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1600:59\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2098:63\n\nerror: too few arguments\n --\u003e 35717efbbce11c74.FIND:2100:25\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2103:56\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2107:21\n\nerror: value of type `FUSD` has no member `VaultPublicPath`\n --\u003e 35717efbbce11c74.FIND:2109:65\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2111:92\n\nerror: value of type `FUSD` has no member `VaultStoragePath`\n --\u003e 35717efbbce11c74.FIND:2117:21\n\nerror: value of type `FUSD` has no member `ReceiverPublicPath`\n --\u003e 35717efbbce11c74.FIND:2119:68\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e 35717efbbce11c74.FIND:1623:78\n\n--\u003e 35717efbbce11c74.FIND\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:324:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:326:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:43\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:330:42\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:42\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:347:41\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:351:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:33\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:381:47\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:46\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:376:60\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:45\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:396:59\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:400:37\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:666:41\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:69:20\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:86:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:109:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:123:22\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:448:35\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:55\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:76\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:667:15\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:336:26\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:60\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:59\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:89\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:337:21\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:52\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:74\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarket:425:25\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:476:32\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarket:478:39\n\n--\u003e 35717efbbce11c74.FindLeaseMarket\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36\n |\n18 | access(all) resource SaleItem : FindLeaseMarket.SaleItem {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71\n |\n169 | access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31\n |\n418 | access(all) resource Bid : FindLeaseMarket.Bid {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73\n |\n470 | access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177\n |\n16 | access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22\n |\n27 | init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability\u003c\u0026{MarketBidCollectionPublic}\u003e, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38\n |\n20 | access(contract) var pointer: {FindLeaseMarket.LeasePointer}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38\n |\n69 | access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40\n |\n119 | access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51\n |\n131 | access(contract) fun setPointer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50\n |\n328 | access(Seller) fun acceptOffer(_ pointer: FindLeaseMarket.AuthLeasePointer) {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58\n |\n404 | access(all) fun borrowSaleItem(_ name: String) : \u0026{FindLeaseMarket.SaleItem} {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56\n |\n592 | access(all) fun borrowBidItem(_ name: String): \u0026{FindLeaseMarket.Bid} {\n | ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118\n |\n614 | access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115\n |\n625 | access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8\n |\n636 | FindLeaseMarket.addSaleItemType(Type\u003c@SaleItem\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8\n |\n637 | FindLeaseMarket.addSaleItemCollectionType(Type\u003c@SaleItemCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8\n |\n638 | FindLeaseMarket.addMarketBidType(Type\u003c@Bid\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8\n |\n639 | FindLeaseMarket.addMarketBidCollectionType(Type\u003c@MarketBidCollection\u003e())\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81\n |\n620 | return getAccount(user).capabilities.get\u003c\u0026{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82\n |\n630 | return getAccount(user).capabilities.get\u003c\u0026{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}\u003e(tenant.getPublicPath(Type\u003c@MarketBidCollection\u003e()))\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43\n |\n50 | let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19\n |\n66 | return Type\u003c@FIND.Lease\u003e()\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19\n |\n105 | return FIND.reverseLookup(address)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26\n |\n113 | if let name = FIND.reverseLookup(self.offerCallback.address) {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19\n |\n120 | return FindLeaseMarket.LeaseInfo(self.pointer)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26\n |\n223 | let buyerName=FIND.reverseLookup(buyer)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26\n |\n224 | let profile = FIND.lookup(buyer.toString())\n | ^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26\n |\n226 | var leaseInfo:FindLeaseMarket.LeaseInfo?=nil\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36\n |\n233 | previousBuyerName = FIND.reverseLookup(pb)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130\n |\n236 | emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27\n |\n262 | let item = FindLeaseMarket.ReadLeasePointer(name: name)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLeaseMarket`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12\n |\n377 | FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: \u003c- vault, leaseInfo: leaseInfo, cuts:cuts)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38\n |\n514 | if self.owner!.address == FIND.status(name).owner! {\n | ^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FIND`\n --\u003e 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32\n |\n532 | let from=getAccount(FIND.status(name).owner!).capabilities.get\u003c\u0026{SaleItemCollectionPublic}\u003e(self.getTenant().getPublicPath(Type\u003c@SaleItemCollection\u003e()))\n | ^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0x2d766f00eb1d0c37","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Marketplace"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Art"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Auction"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Versus"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV2_0"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"DelegatorManager"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingError"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStaking"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingConfig"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"stFlowToken"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"Staking"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-05-15T10-00-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-05-15T10-00-00Z-testnet.md new file mode 100644 index 0000000000..1bcbc2eb02 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-15T10-00-00Z-testnet.md @@ -0,0 +1,294 @@ +## Cadence 1.0 staged contracts migration results +Date: 18 May, 2024 + +Stats: 281 contracts staged, 222 successfully upgraded, 59 failed to upgrade (32/59 failed to upgrade due to dependency on FiatToken contract) + +Snapshot: devnet49-execution-snapshot-for-migration-7-may-15 + +Flow-go build: v0.35.7-crescendo-preview.23-atree-inlining + +View contracts staged on Testnet: https://f.dnz.dev/0x2ceae959ed1a7e7a/ + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0x8c5303eaa26202d6 | EVM | ❌

Error:
error: mismatched types
--\> 8c5303eaa26202d6.EVM:300:37
\|
300 \| return EVMAddress(bytes: addressBytes)
\| ^^^^^^^^^^^^ expected \`\$&UInt8; 20\$&\`, got \`AnyStruct\`
| +| 0xb86f928a1fa7798e | FTViewUtils | ✅ | +| 0xb86f928a1fa7798e | TokenList | ✅ | +| 0xb86f928a1fa7798e | ViewResolvers | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x7745157792470296 | LendingOracle | ✅ | +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x24650d6246d4176c | PriceOracle | ✅ | +| 0x250e0b90c1b7711b | A | ❌

Error:
error: cannot find declaration \`B\` in \`250e0b90c1b7711b.B\`
--\> 250e0b90c1b7711b.A:1:7
\|
1 \| import B from 0x250e0b90c1b7711b
\| ^ available exported declarations are:
\- \`Bad\`

| +| 0x250e0b90c1b7711b | W | ❌

Error:
error: mismatching field \`foo\` in \`W\`
--\> 250e0b90c1b7711b.W:3:25
\|
3 \| access(all) let foo: String
\| ^^^^^^ incompatible type annotations. expected \`Int\`, found \`String\`
| +| 0x250e0b90c1b7711b | B | ✅ | +| 0x250e0b90c1b7711b | Foo | ✅ | +| 0x250e0b90c1b7711b | F | ✅ | +| 0x250e0b90c1b7711b | L | ✅ | +| 0x250e0b90c1b7711b | Bar | ✅ | +| 0x250e0b90c1b7711b | O | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | KaratNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.KaratNFT:179:43
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
\|
155 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
...
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x668df1b27a5da384 | FanTopPermission | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken
| +| 0x668df1b27a5da384 | Signature | ✅ | +| 0x668df1b27a5da384 | FanTopToken | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43
\|
233 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43
\|
243 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun batchWithdraw(ids: \$&UInt64\$&): @{NonFungibleToken.Collection} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25
\|
226 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, NonFungibleToken.CollectionPublic {
\| ^
...
\|
233 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x668df1b27a5da384 | FanTopPermissionV2a | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: error getting program 668df1b27a5da384.FanTopMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:61:67

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:61:92

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:53:84

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:53:109

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:75:42

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:80:51

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:207:63

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:207:88

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:284:95

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopMarket:284:94

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:76:89

--\> 668df1b27a5da384.FanTopMarket

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:114:118
\|
114 \| access(all) fun mintToken(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:118:156
\|
118 \| access(all) fun mintTokenWithSerialNumber(refId: String, itemId: String, itemVersion: UInt32, metadata: { String: String }, serialNumber: UInt32): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:139:79
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopPermissionV2a:139:78
\|
139 \| access(all) fun fulfill(orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopPermissionV2a:155:67
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:155:92
\|
155 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:74:12
\|
74 \| FanTopMarket.extendCapacity(by: self.owner!.address, capacity: capacity)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:86:12
\|
86 \| FanTopToken.createItem(itemId: itemId, version: version, limit: limit, metadata: metadata, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:90:12
\|
90 \| FanTopToken.updateMetadata(itemId: itemId, version: version, metadata: metadata)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:94:12
\|
94 \| FanTopToken.updateLimit(itemId: itemId, limit: limit)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:98:12
\|
98 \| FanTopToken.updateActive(itemId: itemId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:115:22
\|
115 \| return <- FanTopToken.mintToken(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopPermissionV2a:119:22
\|
119 \| return <- FanTopToken.mintTokenWithSerialNumber(refId: refId, itemId: itemId, itemVersion: itemVersion, metadata: metadata, serialNumber: serialNumber, minter: self.owner!.address)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:136:12
\|
136 \| FanTopMarket.update(agent: self.owner!.address, orderId: orderId, version: version, metadata: metadata)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:140:12
\|
140 \| FanTopMarket.fulfill(agent: self.owner!.address, orderId: orderId, version: version, recipient: recipient)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:144:12
\|
144 \| FanTopMarket.cancel(agent: self.owner!.address, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:201:12
\|
201 \| FanTopMarket.sell(
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:217:16
\|
217 \| FanTopMarket.containsOrder(orderId): "Order is not exists"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:218:16
\|
218 \| FanTopMarket.isOwnerAddress(orderId: orderId, address: account.address): "Cancel account is not match order account"
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FanTopMarket\`
--\> 668df1b27a5da384.FanTopPermissionV2a:221:12
\|
221 \| FanTopMarket.cancel(agent: nil, orderId: orderId)
\| ^^^^^^^^^^^^ not found in this scope
| +| 0x668df1b27a5da384 | FanTopMarket | ❌

Error:
error: error getting program 668df1b27a5da384.FanTopToken: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:233:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopToken:243:43

error: resource \`FanTopToken.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 668df1b27a5da384.FanTopToken:226:25

--\> 668df1b27a5da384.FanTopToken

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:61:67
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:61:92
\|
61 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:53:84
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:53:109
\|
53 \| access(contract) let capability: Capability
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:75:42
\|
75 \| access(contract) fun withdraw(): @FanTopToken.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:80:51
\|
80 \| view access(all) fun borrowFanTopToken(): &FanTopToken.NFT? {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 668df1b27a5da384.FanTopMarket:207:63
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:207:88
\|
207 \| capability: Capability,
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:284:95
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 668df1b27a5da384.FanTopMarket:284:94
\|
284 \| access(account) fun fulfill(agent: Address, orderId: String, version: UInt32, recipient: &{FanTopToken.CollectionPublic}) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FanTopToken\`
--\> 668df1b27a5da384.FanTopMarket:76:89
\|
76 \| let token <- self.capability.borrow()!.withdraw(withdrawID: self.nftId) as! @FanTopToken.NFT
\| ^^^^^^^^^^^ not found in this scope
| +| 0x668df1b27a5da384 | FanTopSerial | ✅ | +| 0x857dc34d5e1631d3 | FLOAT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15
\|
350 \| access(NonFungibleToken.Owner) fun delete(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29
\|
270 \| self.eventsCap = getAccount(\_eventHost).capabilities.get<&FLOATEvents>(FLOAT.FLOATEventsPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&FLOAT.FLOATEvents>\`

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17
\|
198 \| receiver: getAccount(0x5643fd47a29770e7).capabilities.get<&{FungibleToken.Receiver}>(/public/flowTokenReceiver) ?? panic("Beneficiary does not have receiver."),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
300 \| access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x857dc34d5e1631d3 | FLOATVerifiers | ❌

Error:
error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :28:0
\|
28 \| pub contract FLOAT: NonFungibleToken, ViewResolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :38:4
\|
38 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :48:4
\|
48 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:8
\|
74 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:8
\|
75 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:8
\|
76 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :86:8
\|
86 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:8
\|
87 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :98:8
\|
98 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:8
\|
103 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:8
\|
104 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:8
\|
105 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :106:8
\|
106 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:8
\|
108 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:8
\|
110 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :117:51
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 4d47bf3ce5e4393f.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:38:33
\|
38 \| access(all) struct Timelock: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:66:31
\|
66 \| access(all) struct Secret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:90:32
\|
90 \| access(all) struct Limited: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:113:39
\|
113 \| access(all) struct MultipleSecret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:137:33
\|
137 \| access(all) struct SecretV2: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:162:39
\|
162 \| access(all) struct MinimumBalance: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:226:30
\|
226 \| access(all) struct Email: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:94:51
\|
94 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:230:51
\|
230 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope
| +| 0x8232ce4a3aff4e94 | PublicPriceOracle | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0x6d692450d591524c | PriceOracle | ✅ | +| 0x8bc9e24c307d249b | LendingError | ✅ | +| 0x8bc9e24c307d249b | LendingConfig | ✅ | +| 0x8bc9e24c307d249b | LendingInterfaces | ✅ | +| 0xc911d6ddfae70ce8 | PriceOracle | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xc15e75b5f6b95e54 | LendingComptroller | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xdfc20aee650fcbdf | FlowEVMBridgeHandlerInterfaces | ❌

Error:
error: error getting program 8c5303eaa26202d6.EVM: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 8c5303eaa26202d6.EVM:300:37

--\> 8c5303eaa26202d6.EVM

error: cannot find type in this scope: \`EVM\`
--\> dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:44:52
\|
44 \| access(all) view fun getTargetEVMAddress(): EVM.EVMAddress?
\| ^^^ not found in this scope

error: cannot find type in this scope: \`EVM\`
--\> dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:62:57
\|
62 \| access(Admin) fun setTargetEVMAddress(\_ address: EVM.EVMAddress) {
\| ^^^ not found in this scope

error: cannot find type in this scope: \`EVM\`
--\> dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:118:16
\|
118 \| to: EVM.EVMAddress
\| ^^^ not found in this scope

error: cannot find type in this scope: \`EVM\`
--\> dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:127:19
\|
127 \| owner: EVM.EVMAddress,
\| ^^^ not found in this scope

error: cannot find type in this scope: \`EVM\`
--\> dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:130:43
\|
130 \| protectedTransferCall: fun (): EVM.Result
\| ^^^ not found in this scope

error: cannot find type in this scope: \`EVM\`
--\> dfc20aee650fcbdf.FlowEVMBridgeHandlerInterfaces:30:92
\|
30 \| access(all) event HandlerEnabled(handlerType: Type, targetType: Type, targetEVMAddress: EVM.EVMAddress)
\| ^^^ not found in this scope
| +| 0x072127280188a611 | TestRootContract | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xcbed4c301441ded2 | StableSwapFactory | ✅ | +| 0xcbed4c301441ded2 | SwapFactory | ✅ | +| 0x97d2f3b55c6a6a75 | LendingPool | ✅ | +| 0xb39a42479c1c2c77 | StorageHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnRegistry | ✅ | +| 0xb39a42479c1c2c77 | AFLMarketplace | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:79:33
\|
79 \| init (vault: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:77:49
\|
77 \| access(self) let ownerVault: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:259:70
\|
259 \| access(all) fun changeMarketplaceWallet(\_ newCap: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:12:56
\|
12 \| access(contract) var marketplaceWallet: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:242:65
\|
242 \| access(all) fun createSaleCollection(ownerVault: Capability<&FiatToken.Vault>): @SaleCollection {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:277:64
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLMarketplace:277:33
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:119:36
\|
119 \| let saleOwnerVaultRef: &FiatToken.Vault = self.ownerVault.borrow() ?? panic("could not borrow reference to the owner vault")
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:126:36
\|
126 \| let marketplaceWallet: &FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic("Couldn't borrow Vault reference")
\| ^^^^^^^^^ not found in this scope
| +| 0xb39a42479c1c2c77 | AFLIndex | ✅ | +| 0xb39a42479c1c2c77 | AFLAdmin | ❌

Error:
error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

--\> b39a42479c1c2c77.AFLPack
| +| 0xb39a42479c1c2c77 | AFLPack | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48
\|
23 \| access(contract) let adminRef : Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35
\|
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
113 \| .borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xb39a42479c1c2c77 | AFLMetadataHelper | ✅ | +| 0xb39a42479c1c2c77 | PackRestrictions | ✅ | +| 0xb39a42479c1c2c77 | AFLNFT | ✅ | +| 0xb39a42479c1c2c77 | AFLBadges | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnExchange | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x1c5033ad60821c97 | Teleport | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 43ee8c22fcf94ea3.DapperStorageRent: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :7:0
\|
7 \| pub contract DapperStorageRent {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :9:2
\|
9 \| pub let DapperStorageRentAdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:2
\|
23 \| pub event BlockedAddress(\_ address: \$&Address\$&)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:2
\|
25 \| pub event Refuelled(\_ address: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub event RefilledFailed(address: Address, reason: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub fun getStorageRentRefillThreshold(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:2
\|
41 \| pub fun getRefilledAccounts(): \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub fun getBlockedAccounts() : \$&Address\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:2
\|
57 \| pub fun getRefilledAccountInfos(): {Address: RefilledAccountInfo} {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:2
\|
65 \| pub fun getRefillRequiredBlocks(): UInt64 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:2
\|
70 \| pub fun fundedRefill(address: Address, tokens: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:2
\|
75 \| pub fun fundedRefillV2(address: Address, tokens: @FungibleToken.Vault): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:2
\|
85 \| pub fun tryRefill(\_ address: Address) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :124:106
\|
124 \| if let vaultBalanceRef = self.account.getCapability(/public/flowTokenBalance).borrow<&FlowToken.Vault{FungibleToken.Balance}>() {
\| ^^^^^^^^^^^^^

--\> 43ee8c22fcf94ea3.DapperStorageRent

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:115:43
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:115:65
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:115:17
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:115:17
\|
115 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:119:4
\|
119 \| Wearables.mintNFT(recipient: wearable, template:id, context:context)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:136:3
\|
136 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:159:20
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:159:88
\|
159 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:181:43
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:181:65
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:181:17
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 1c5033ad60821c97.Teleport:181:17
\|
181 \| let wearable= account.capabilities.get<&Wearables.Collection>(Wearables.CollectionPublicPath)!.borrow() ?? panic("cannot borrow werable cap")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Teleport:185:4
\|
185 \| Wearables.mintNFT(recipient: wearable, template:id, context:context)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:201:3
\|
201 \| DapperStorageRent.tryRefill(data.receiver)
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DapperStorageRent\`
--\> 1c5033ad60821c97.Teleport:224:20
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 1c5033ad60821c97.Teleport:224:88
\|
224 \| let newVault <- DapperStorageRent.fundedRefillV2(address: data.receiver, tokens: <- vaultRef.withdraw(amount: amount))
\| ^^^^^^^^^^^^^^^^^
| +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | DoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:141:37
\|
141 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:233:67
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169
\|
233 \| access(all) fun open(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{DoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64): @OpenDoodlePacks.NFT {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18
\|
236 \| let openPack <- OpenDoodlePacks.mintNFT(id: pack.id, serialNumber: pack.serialNumber, typeId: pack.typeId)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.DoodlePacks:238:17
\|
238 \| Burner.burn(<- collection.withdraw(withdrawID: packId))
\| ^^^^^^^^^^^^^^^^^^^

error: resource \`DoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodlePacks:138:22
\|
138 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection{
\| ^
...
\|
141 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15
\|
246 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37
\|
257 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9
\|
321 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4
\|
440 \| getAccount(address).capabilities.get<&{Redeemables.RedeemablesCollectionPublic}>(Redeemables.CollectionPublicPath)?.borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22
\|
250 \| access(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
321 \| access(NonFungibleToken.Owner) fun redeem(id: UInt64) {
\| \-\-\-\-\-\- mismatch here

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22
\|
250 \| access(all) resource Collection: RedeemablesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
257 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Doodles | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35
\|
234 \| access(all) var name: @{UInt64 : DoodleNames.NFT}
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:242:39
\|
242 \| access(all) let wearables: @{UInt64: Wearables.NFT}
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:428:84
\|
428 \| access(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &Wearables.Collection, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:428:109
\|
428 \| access(all) fun updateDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &Wearables.Collection, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:477:88
\|
477 \| access(all) fun editDoodle(wearableCollection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:499:165
\|
499 \| access(all) fun editDoodleWithMultipleCollections(receiverWearableCollection: &{NonFungibleToken.Receiver}, wearableCollections: \$&auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}\$&, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Boo...
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:521:143
\|
521 \| access(contract) fun internalEditDoodle(wearableReceiver: &{NonFungibleToken.Receiver}, wearableProviders: \$&auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{NonFungibleToken.Collection, NonFungibleToken.Provider}\$&, equipped: \$&UInt64\$&,quote: String, expression: String, mood: String, background: String, hairStyle: String, hairColor: String, facialHair: String, facialHairColor: String, skinTone: String, pose: String, stage: String, location: String, hairPinched:Bool, hideExpression:Bool...
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38
\|
581 \| access(account) fun addName(\_ nft: @DoodleNames.NFT, owner:Address) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36
\|
590 \| access(all) fun equipName(\_ nft: @DoodleNames.NFT) {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40
\|
606 \| access(contract) fun unequipName() : @DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:623:45
\|
623 \| access(contract) fun equipWearable(\_ nft: @Wearables.NFT, index: UInt64) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:653:64
\|
653 \| access(contract) fun unequipWearable(\_ resourceId: UInt64) : @Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:669:50
\|
669 \| access(all) fun borrowWearable(\_ id: UInt64) : &Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46
\|
673 \| access(all) fun borrowName(\_ id: UInt64) : &DoodleNames.NFT {
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:822:37
\|
822 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:894:13
\|
894 \| betaPass: @Wearables.NFT,
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:902:16
\|
902 \| let template: Wearables.Template = betaPass.getTemplate()
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14
\|
940 \| let name <- DoodleNames.mintName(name:doodleName, context:context, address: recipientAddress)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12
\|
280 \| return (&self.name\$&id\$& as &DoodleNames.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:282:35
\|
282 \| return (&self.wearables\$&id\$& as &Wearables.NFT?)!
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:282:11
\|
282 \| return (&self.wearables\$&id\$& as &Wearables.NFT?)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>?\`

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:450:32
\|
450 \| let nft <- wearableNFT as! @Wearables.NFT
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:480:23
\|
480 \| wearableProviders: \$&wearableCollection\$&,
\| ^^^^^^^^^^^^^^^^^^^^ expected \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`, got \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`

error: mismatched types
--\> 1c5033ad60821c97.Doodles:502:23
\|
502 \| wearableProviders: wearableCollections,
\| ^^^^^^^^^^^^^^^^^^^ expected \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`, got \`\$&auth(A.1c5033ad60821c97.NonFungibleToken\|A.631e88ae7f1d7c20.NonFungibleToken.Withdraw)&{A.631e88ae7f1d7c20.NonFungibleToken.Collection,A.631e88ae7f1d7c20.NonFungibleToken.Provider}\$&\`

error: mismatched types
--\> 1c5033ad60821c97.Doodles:532:48
\|
532 \| wearableReceiver.deposit(token: <- nft)
\| ^^^^^^ expected \`{NonFungibleToken.NFT}\`, got \`<>?\`

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.Doodles:541:24
\|
541 \| let wearableNFT <- wearableProvider.withdraw(withdrawID: wId)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:542:33
\|
542 \| let nft <- wearableNFT as! @Wearables.NFT
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:678:40
\|
678 \| if let nft = &self.wearables\$&id\$& as &Wearables.NFT? {
\| ^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1c5033ad60821c97.Doodles:679:23
\|
679 \| return nft
\| ^^^ expected \`&{ViewResolver.Resolver}?\`, got \`&<>\`

error: resource \`Doodles.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Doodles:812:22
\|
812 \| access(all) resource Collection: DoodlesCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
822 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | Admin | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.DoodleNames: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22

--\> 1c5033ad60821c97.DoodleNames

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:234:35

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:242:39

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:428:84

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:428:109

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:477:88

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:499:165

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:521:143

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:581:38

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:590:36

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:606:40

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:623:45

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:653:64

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:669:50

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:673:46

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Doodles:822:37

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:894:13

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:902:16

error: cannot find variable in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:940:14

error: cannot find type in this scope: \`DoodleNames\`
--\> 1c5033ad60821c97.Doodles:280:31

error: mismatched types
--\> 1c5033ad60821c97.Doodles:280:12

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:282:35

error: mismatched types
--\> 1c5033ad60821c97.Doodles:282:11

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:450:32

error: mismatched types
--\> 1c5033ad60821c97.Doodles:480:23

error: mismatched types
--\> 1c5033ad60821c97.Doodles:502:23

error: mismatched types
--\> 1c5033ad60821c97.Doodles:532:48

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.Doodles:541:24

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:542:33

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Doodles:678:40

error: mismatched types
--\> 1c5033ad60821c97.Doodles:679:23

error: resource \`Doodles.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Doodles:812:22

--\> 1c5033ad60821c97.Doodles

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: error getting program 1c5033ad60821c97.DoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:141:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodlePacks:233:67

error: cannot find type in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:233:169

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.DoodlePacks:236:18

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.DoodlePacks:238:17

error: resource \`DoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodlePacks:138:22

--\> 1c5033ad60821c97.DoodlePacks

error: error getting program 1c5033ad60821c97.OpenDoodlePacks: failed to derive value: load program failed: Checking failed:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25

--\> 1c5033ad60821c97.OpenDoodlePacks

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:58:43
\|
58 \| access(all) fun registerWearableSet(\_ s: Wearables.Set) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:72:48
\|
72 \| access(all) fun registerWearablePosition(\_ p: Wearables.Position) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:86:48
\|
86 \| access(all) fun registerWearableTemplate(\_ t: Wearables.Template) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:128:6
\|
128 \| ): @Wearables.NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:144:9
\|
144 \| data: Wearables.WearableMintData,
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:195:52
\|
195 \| access(all) fun registerDoodlesBaseCharacter(\_ d: Doodles.BaseCharacter) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:209:46
\|
209 \| access(all) fun registerDoodlesSpecies(\_ d: Doodles.Species) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:223:42
\|
223 \| access(all) fun registerDoodlesSet(\_ d: Doodles.Set) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:242:6
\|
242 \| ): @Doodles.NFT {
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:62:3
\|
62 \| Wearables.addSet(s)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:69:3
\|
69 \| Wearables.retireSet(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:76:3
\|
76 \| Wearables.addPosition(p)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:83:3
\|
83 \| Wearables.retirePosition(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:90:3
\|
90 \| Wearables.addTemplate(t)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:97:3
\|
97 \| Wearables.retireTemplate(id)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:104:3
\|
104 \| Wearables.updateTemplateDescription(templateId: templateId, description: description)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:117:3
\|
117 \| Wearables.mintNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:133:22
\|
133 \| let newWearable <- Wearables.mintNFTDirect(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.Admin:152:3
\|
152 \| Wearables.mintEditionNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:199:3
\|
199 \| Doodles.setBaseCharacter(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:206:3
\|
206 \| Doodles.retireBaseCharacter(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:213:3
\|
213 \| Doodles.addSpecies(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:220:3
\|
220 \| Doodles.retireSpecies(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:227:3
\|
227 \| Doodles.addSet(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:234:3
\|
234 \| Doodles.retireSet(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:247:17
\|
247 \| let doodle <- Doodles.adminMintDoodle(
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:261:3
\|
261 \| Redeemables.createSet(name: name, canRedeem: canRedeem, redeemLimitTimestamp: redeemLimitTimestamp, active: active
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:269:3
\|
269 \| Redeemables.updateSetActive(setId: setId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:276:3
\|
276 \| Redeemables.updateSetCanRedeem(setId: setId, canRedeem: canRedeem)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:283:3
\|
283 \| Redeemables.updateSetRedeemLimitTimestamp(setId: setId, redeemLimitTimestamp: redeemLimitTimestamp)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:300:3
\|
300 \| Redeemables.createTemplate(
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:317:3
\|
317 \| Redeemables.updateTemplateActive(templateId: templateId, active: active)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:324:3
\|
324 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.Admin:331:3
\|
331 \| Redeemables.burnUnredeemedSet(setId: setId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`DoodlePacks\`
--\> 1c5033ad60821c97.Admin:363:3
\|
363 \| DoodlePacks.mintNFT(recipient: recipient, typeId: typeId)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`OpenDoodlePacks\`
--\> 1c5033ad60821c97.Admin:435:3
\|
435 \| OpenDoodlePacks.updateRevealBlocks(revealBlocks: revealBlocks)
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.DoodleNames:121:37
\|
121 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:205:7
\|
205 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 1c5033ad60821c97.DoodleNames:233:7
\|
233 \| if (!FIND.validateFindName(name)){
\| ^^^^ not found in this scope

error: resource \`DoodleNames.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.DoodleNames:111:22
\|
111 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
121 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Wearables | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37
\|
728 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22
\|
718 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
728 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | OpenDoodlePacks | ❌

Error:
error: error getting program 1c5033ad60821c97.Wearables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Wearables:728:37

error: resource \`Wearables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Wearables:718:22

--\> 1c5033ad60821c97.Wearables

error: error getting program 1c5033ad60821c97.Redeemables: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:246:15

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:257:37

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.Redeemables:321:9

error: cannot use optional chaining: type \`Capability<&{Redeemables.RedeemablesCollectionPublic}>\` is not optional
--\> 1c5033ad60821c97.Redeemables:440:4

error: resource \`Redeemables.Collection\` does not conform to resource interface \`Redeemables.RedeemablesCollectionPublic\`
--\> 1c5033ad60821c97.Redeemables:250:22

error: resource \`Redeemables.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.Redeemables:250:22

--\> 1c5033ad60821c97.Redeemables

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:140:43
\|
140 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1c5033ad60821c97.OpenDoodlePacks:264:72
\|
264 \| access(all) fun reveal(collection: auth(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) &{OpenDoodlePacks.CollectionPublic, NonFungibleToken.Provider}, packId: UInt64, receiverAddress: Address) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot access \`withdraw\`: function requires \`Withdraw\` authorization, but reference only has \`Withdraw \| NonFungibleToken\` authorization
--\> 1c5033ad60821c97.OpenDoodlePacks:313:19
\|
313 \| destroy <- collection.withdraw(withdrawID: packId)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:427:107
\|
427 \| let recipient = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(Wearables.CollectionPublicPath)!.borrow()
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Wearables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:429:16
\|
429 \| Wearables.mintNFT(
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:438:107
\|
438 \| let recipient = getAccount(receiverAddress).capabilities.get<&{NonFungibleToken.Receiver}>(Redeemables.CollectionPublicPath)!.borrow()
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Redeemables\`
--\> 1c5033ad60821c97.OpenDoodlePacks:440:16
\|
440 \| Redeemables.mintNFT(recipient: recipient, templateId: templateId)
\| ^^^^^^^^^^^ not found in this scope

error: resource \`OpenDoodlePacks.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1c5033ad60821c97.OpenDoodlePacks:133:25
\|
133 \| access(all) resource Collection: CollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
140 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0xddb929038d45d4b3 | SwapInterfaces | ✅ | +| 0xddb929038d45d4b3 | SwapError | ✅ | +| 0xddb929038d45d4b3 | SwapConfig | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> d704ee8202a0d82d.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x23031fd14bb0f21b | TwoSegmentsInterestRateModel | ✅ | +| 0xcc4e949596cf8ced | TwoSegmentsInterestRateModel | ✅ | +| 0xf9dad0d4c14a92b5 | USDC | ✅ | +| 0xf9dad0d4c14a92b5 | wFlow | ✅ | +| 0xf9dad0d4c14a92b5 | BUSD | ✅ | +| 0xf9dad0d4c14a92b5 | USDT | ✅ | +| 0x8aaca41f09eb1e3d | LendingPool | ✅ | +| 0x3b220a3372190656 | PriceOracle | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleConfig | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleInterface | ✅ | +| 0x44ef9309713e2061 | StakingError | ✅ | +| 0x44ef9309713e2061 | StakingNFT | ✅ | +| 0xcbdb5a7b89c3c844 | PriceOracle | ✅ | +| 0xa1296b1e2e90ca5b | HelloWorld | ✅ | +| 0xef4cd3d07a7b43ce | IPackNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0xdad0aaa285a25413 | PriceOracle | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0xe8124d8428980aa6 | Bl0x | ❌

Error:
error: found new field \`storagePath\` in \`Collection\`
--\> e8124d8428980aa6.Bl0x:305:25
\|
305 \| access(self) var storagePath: StoragePath
\| ^^^^^^^^^^^

error: found new field \`publicPath\` in \`Collection\`
--\> e8124d8428980aa6.Bl0x:306:25
\|
306 \| access(self) var publicPath: PublicPath
\| ^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowverseTreasures | ✅ | +| 0xc7c122b5b811de8e | Ordinal | ✅ | +| 0xc7c122b5b811de8e | FlowversePass | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySale | ✅ | +| 0xc7c122b5b811de8e | FlowverseShirt | ✅ | +| 0xc7c122b5b811de8e | OrdinalVendor | ✅ | +| 0xc7c122b5b811de8e | FlowverseSocks | ✅ | +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :40:0
\|
40 \| pub contract Market {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub resource interface SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:8
\|
62 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:8
\|
68 \| pub fun getPrice(tokenID: UInt64): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:8
\|
69 \| pub fun getIDs(): \$&UInt64\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:8
\|
70 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub resource SaleCollection: SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun listForSale(token: @TopShot.NFT, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub fun withdraw(tokenID: UInt64): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :166:8
\|
166 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :198:8
\|
198 \| pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :209:8
\|
209 \| pub fun changePercentage(\_ newPercent: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :216:8
\|
216 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :225:8
\|
225 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :227:73
\|
227 \| newBeneficiaryCapability.borrow<&DapperUtilityCoin.Vault{FungibleToken.Receiver}>() != nil:
\| ^^^^^^^^^^^^^

--\> 547f177b243b4d80.Market

error: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :46:0
\|
46 \| pub contract TopShotMarketV3 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let marketStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub let marketPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:4
\|
79 \| pub resource SaleCollection: Market.SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:8
\|
101 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub fun listForSale(tokenID: UInt64, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub fun cancelSale(tokenID: UInt64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:8
\|
196 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :247:8
\|
247 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:8
\|
259 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:8
\|
272 \| pub fun getPrice(tokenID: UInt64): UFix64? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :282:8
\|
282 \| pub fun getIDs(): \$&UInt64\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:8
\|
302 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :318:4
\|
318 \| pub fun createSaleCollection(ownerCollection: Capability<&TopShot.Collection>,
\| ^^^

--\> 547f177b243b4d80.TopShotMarketV3

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:154:70
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:154:69
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:159:73
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:159:72
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:164:73
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:164:72
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:225:22
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:225:21
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:301:25
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:301:24
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:35
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:156:34
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:70
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:155:15
\|
155 \| return getAccount(address)
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:161:35
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:161:34
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:160:15
\|
160 \| return getAccount(address)
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:166:35
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:166:34
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`TopShotMarketV3\`
--\> c7c122b5b811de8e.BulkPurchase:166:55
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:165:15
\|
165 \| return getAccount(address)
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:353:42
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:353:41
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:354:45
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:354:44
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:355:45
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:355:44
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | Royalties | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:160:8
\|
160 \| ): \$&NFTStorefrontV2.SaleCut\$& {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:161:23
\|
161 \| let saleCuts: \$&NFTStorefrontV2.SaleCut\$& = \$&\$&
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:164:28
\|
164 \| saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut \* salePrice))
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ✅ | +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0x2f8af5ed05bbde0d | SwapRouter | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:341:32
\|
341 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:15
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:56
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:342:110
\|
342 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:15
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:67
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:362:121
\|
362 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.PartyFavorz:396:8
\|
396 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | NFGv3 | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:284:32
\|
284 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:15
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:56
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:285:110
\|
285 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:15
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:67
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:303:121
\|
303 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.NFGv3:328:8
\|
328 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:380:36
\|
380 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:19
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:60
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:381:114
\|
381 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:19
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:71
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:395:125
\|
395 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:414:46
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 3e5b4c627064625d.Flomies:414:45
\|
414 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.Flomies:434:12
\|
434 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:340:32
\|
340 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:15
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:56
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:341:110
\|
341 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:15
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:67
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:354:121
\|
354 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 3e5b4c627064625d.GeneratedExperiences:399:8
\|
399 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0xd9c02cdacccb25ab | FlowtyTestNFT | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0x8c55fba7d7090fee | Magnetiq | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 8c55fba7d7090fee.Magnetiq:1253:43
\|
1253 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`Magnetiq.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 8c55fba7d7090fee.Magnetiq:1211:25
\|
1211 \| access(all) resource Collection: TokenCollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
1253 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x8c55fba7d7090fee | MagnetiqLocking | ✅ | +| 0x9e324d8ae3cbd0f0 | LendingPool | ✅ | +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:79

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:94:75

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:122:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:127:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:138:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:160:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:163:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21
\|
18 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23
\|
20 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:66:21
\|
66 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:23
\|
68 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:79:23
\|
79 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:98:21
\|
98 \| let toName = FIND.reverseLookup(receiver)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:23
\|
100 \| let fromName = FIND.reverseLookup(from)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:113:23
\|
113 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAdmin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:26:57
\|
26 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:32:49
\|
32 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAdmin:34:57
\|
34 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:324:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:326:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:326:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:330:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:330:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:347:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:347:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:351:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:45

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:396:59

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:400:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:69:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:86:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:109:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:123:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:448:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:336:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:337:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:337:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:425:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:476:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:478:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:228:71
\|
228 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:529:31
\|
529 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:579:73
\|
579 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:16:207
\|
16 \| access(all) event EnglishAuction(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName:String?, amount: UFix64, auctionReservePrice: UFix64, status: String, vaultType:String, leaseInfo:FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:32:22
\|
32 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice:UFix64, auctionReservePrice:UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:19:38
\|
19 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:91:40
\|
91 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:181:38
\|
181 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:463:51
\|
463 \| access(Seller) fun listForAuction(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, auctionStartPrice: UFix64, auctionReservePrice: UFix64, auctionDuration: UFix64, auctionExtensionOnLateBid: UFix64, minimumBidIncrement: UFix64, auctionValidUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:59
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:520:58
\|
520 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:57
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:681:56
\|
681 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:706:118
\|
706 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:716:115
\|
716 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:727:8
\|
727 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:728:8
\|
728 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:729:8
\|
729 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:730:8
\|
730 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:711:81
\|
711 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:721:82
\|
721 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:70:19
\|
70 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:86:23
\|
86 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:92:19
\|
92 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:25
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:178:19
\|
178 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:182:19
\|
182 \| return FindLeaseMarket.AuctionItem(startPrice: self.auctionStartPrice,
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:254:26
\|
254 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:261:36
\|
261 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:265:30
\|
265 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:266:30
\|
266 \| let profile = FIND.lookup(buyer!.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:267:138
\|
267 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:269:138
\|
269 \| emit EnglishAuction(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, leaseInfo: leaseInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:457:12
\|
457 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:621:38
\|
621 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketAuctionSoft:629:32
\|
629 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25
\|
46 \| let senderName = FIND.reverseLookup(sender)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:79
\|
76 \| emit NFTDeposited(receiver: receiverCap.address, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:94:75
\|
94 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:122:32
\|
122 \| flowTokenRepayment: flowTokenRepayment
\| ^^^^^^^^^^^^^^^^^^ expected \`Capability<&FlowToken.Vault>?\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:127:70
\|
127 \| emit TicketDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, ticketID: ticketID, type: type.identifier, id: id, uuid: uuid, memo: memo, name: display.name, description: display.description, thumbnail: display.thumbnail.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri(), flowStorageFee: flowStorageFee)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:138:77
\|
138 \| emit TicketRedeemFailed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier, remark: "invalid capability")
\| ^^^^ not found in this scope

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8
\|
152 \| shelf.redeem(type: type, ticketID: ticketID, receiver: cap)
\| ^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:160:25
\|
160 \| senderName = FIND.reverseLookup(sender!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:67
\|
162 \| emit NFTDeposited(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), sender: sender, senderName: senderName, type: type.identifier, id: nftID, uuid: viewResolver.uuid, memo: memo, name: display?.name, description: display?.description, thumbnail: display?.thumbnail?.uri(), collectionName: collectionDisplay?.name, collectionImage: collectionDisplay?.squareImage?.file?.uri())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:163:69
\|
163 \| emit TicketRedeemed(receiver: receiverAddress, receiverName: FIND.reverseLookup(receiverAddress), ticketID: ticketID, type: type.identifier)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:69
\|
267 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:127
\|
267 \| emit UserStorageSubsidized(receiver: receiver, receiverName: FIND.reverseLookup(receiver), sender: sender, senderName: FIND.reverseLookup(sender), forUUID: uuid, storageFee: subsidizeAmount)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32
\|
1156 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79
\|
307 \| init(packTypeName: String, typeId: UInt64, hash: String, verifierRef: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38
\|
305 \| access(all) let verifierRef: &FindForge.Verifier
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110
\|
1157 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121
\|
1168 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41
\|
1185 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8
\|
1220 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8
\|
1223 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindForgeOrder | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND
| +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1156:32

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:307:79

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:305:38

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:56

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1157:110

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:15

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:67

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1168:121

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1185:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:1185:41

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1220:8

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.FindPack:1223:8

--\> 35717efbbce11c74.FindPack

error: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:79

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:94:75

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:122:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:127:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:138:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:160:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:163:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:66:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:23

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:79:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:98:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:23

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:113:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28

--\> 35717efbbce11c74.NameVoucher

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:38:57
\|
38 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:44:49
\|
44 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:46:57
\|
46 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:156:110
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:156:109
\|
156 \| access(Owner) fun register(name: String, profile: Capability<&{Profile.Public}>, leases: Capability<&{FIND.LeaseCollectionPublic}>){
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:59:12
\|
59 \| FindForge.addPublicForgeType(forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:67:12
\|
67 \| FindForge.addPrivateForgeType(name: name, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:75:12
\|
75 \| FindForge.removeForgeType(type: type)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:83:12
\|
83 \| FindForge.adminAddContractData(lease: lease, forgeType: forgeType , data: data)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.Admin:91:12
\|
91 \| FindForgeOrder.addMintType(mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:99:12
\|
99 \| FindForge.adminOrderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:106:12
\|
106 \| FindForge.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:114:19
\|
114 \| return FindForge.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:161:16
\|
161 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:174:16
\|
174 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:178:23
\|
178 \| let user = FIND.lookupAddress(name) ?? panic("Cannot find lease owner. Lease : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:58
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Admin:179:57
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:179:87
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:179:22
\|
179 \| let ref = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(name))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.Admin:188:16
\|
188 \| if !FIND.validateFindName(name) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:192:12
\|
192 \| FindForge.adminSetMinterPlatform(leaseName: name, forgeType: forgeType, minterCut: minterCut, description: description, externalURL: externalURL, squareImage: squareImage, bannerImage: bannerImage, socials: socials)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:200:12
\|
200 \| FindForge.mintAdmin(leaseName: name, forgeType: forgeType, data: data, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:295:122
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Admin:296:12
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:359:19
\|
359 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:57
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:87
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:367:27
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:368:19
\|
368 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindForge | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57
\|
413 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49
\|
421 \| access(self) var capability: Capability<&FIND.Network>?
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57
\|
427 \| access(all) fun addCapability(\_ cap: Capability<&FIND.Network>) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46
\|
110 \| access(all) fun setMinterPlatform(lease: &FIND.Lease, forgeType: Type, minterCut: UFix64?, description: String, externalURL: String, squareImage: String, bannerImage: String, socials: {String : String}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49
\|
178 \| access(all) fun removeMinterPlatform(lease: &FIND.Lease, forgeType: Type) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39
\|
229 \| access(all) fun orderForge(lease: &FIND.Lease, mintType: String, minterCut: UFix64?, collectionDisplay: MetadataViews.NFTCollectionDisplay){
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34
\|
263 \| access(all) fun mint (lease: &FIND.Lease, forgeType: Type , data: AnyStruct, receiver: &{NonFungibleToken.Receiver, ViewResolver.ResolverCollection}) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44
\|
310 \| access(all) fun addContractData(lease: &FIND.Lease, forgeType: Type , data: AnyStruct) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19
\|
155 \| let user = FIND.lookupAddress(leaseName) ?? panic("Cannot find lease owner. Lease : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30
\|
156 \| let leaseCollection = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow reference to lease collection of user : ".concat(leaseName))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8
\|
234 \| FindForgeOrder.orderForge(leaseName: lease.getName(), mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8
\|
238 \| FindForgeOrder.orderForge(leaseName: leaseName, mintType: mintType, minterCut: minterCut, collectionDisplay: collectionDisplay)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8
\|
242 \| FindForgeOrder.cancelForgeOrder(leaseName: leaseName, mintType: mintType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20
\|
246 \| let order = FindForgeOrder.fulfillForgeOrder(contractName, forgeType: forgeType)
\| ^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22
\|
272 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23
\|
273 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21
\|
302 \| let toName = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18
\|
303 \| let new = FIND.reverseLookup(to)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22
\|
319 \| let address = FIND.lookupAddress(lease) ?? panic("This name is not owned by anyone. Name : ".concat(lease))
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23
\|
320 \| let leaseCol = getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!.borrow() ?? panic("Cannot borrow lease collection to lease owner. Owner : ".concat(address.toString()))
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24
\|
36 \| self.minter=FIND.lookupAddress(self.name)!
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | FIND | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66
\|
1351 \| access(LeaseOwner) fun registerUSDC(name: String, vault: @FiatToken.Vault){
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59
\|
1600 \| access(all) fun registerUSDC(name: String, vault: @FiatToken.Vault, profile: Capability<&{Profile.Public}>, leases: Capability<&{LeaseCollectionPublic}>) {
\| ^^^^^^^^^ not found in this scope

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63
\|
2098 \| if self.account.storage.borrow<&FUSD.Vault>(from: FUSD.VaultStoragePath) == nil {
\| ^^^^^^^^^^^^^^^^ unknown member

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25
\|
2100 \| let vault <- FUSD.createEmptyVault()
\| ^^^^^^^^^^^^^^^^^^^^^^^ expected at least 1, got 0

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56
\|
2103 \| self.account.storage.save(<-vault, to: FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21
\|
2107 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65
\|
2109 \| self.account.capabilities.publish(vaultCap, at: FUSD.VaultPublicPath)
\| ^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92
\|
2111 \| let capb = self.account.capabilities.storage.issue<&{FungibleToken.Vault}>(FUSD.VaultStoragePath)
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21
\|
2117 \| FUSD.VaultStoragePath
\| ^^^^^^^^^^^^^^^^ unknown member

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68
\|
2119 \| self.account.capabilities.publish(receiverCap, at: FUSD.ReceiverPublicPath)
\| ^^^^^^^^^^^^^^^^^^ unknown member

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78
\|
1623 \| let usdcCap = account.capabilities.get<&{FungibleToken.Receiver}>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope
| +| 0xc20df20fabe06457 | SwapPair | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:16:43
\|
16 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindFurnace:24:43
\|
24 \| emit Burned(from: owner, fromName: FIND.reverseLookup(owner) , uuid: pointer.uuid, nftInfo: nftInfo, context: context)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | NameVoucher | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:46:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:76:79

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:94:75

error: mismatched types
--\> 35717efbbce11c74.FindLostAndFoundWrapper:122:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:127:70

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:138:77

error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:160:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:162:67

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:163:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:69

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLostAndFoundWrapper:267:127

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:18:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:20:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:66:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:68:23

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:79:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:98:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindAirdropper:100:23

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:113:23

--\> 35717efbbce11c74.FindAirdropper

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:62
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:227:82
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:227:26
\|
227 \| let network = NameVoucher.account.storage.borrow<&FIND.Network>(from: FIND.NetworkStoragePath) ?? panic("Cannot borrow find network for registration")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:228:25
\|
228 \| let status = FIND.status(name)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:231:32
\|
231 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:59
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.NameVoucher:233:58
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.NameVoucher:233:88
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.NameVoucher:233:28
\|
233 \| let lease = self.owner!.capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:85:19
\|
85 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:97:23
\|
97 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:333:36
\|
333 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:336:26
\|
336 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:338:110
\|
338 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:416:26
\|
416 \| let buyerName=FIND.reverseLookup(callback.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:418:123
\|
418 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: callback.address, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:458:30
\|
458 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:460:114
\|
460 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:462:114
\|
462 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:537:26
\|
537 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:538:27
\|
538 \| let sellerName=FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:540:110
\|
540 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.auctionEndsAt, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:552:146
\|
552 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: FIND.reverseLookupFN(), resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionSoft:612:126
\|
612 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: auctionStartPrice, auctionReservePrice: saleItemRef.auctionReservePrice, status: "active\_listed", vaultType:vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar: nil, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | Profile | ✅ | +| 0x35717efbbce11c74 | FindMarket | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:106:19
\|
106 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:114:26
\|
114 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:234:26
\|
234 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:242:134
\|
242 \| emit DirectOffer(tenant:tenant.name, id: saleItem.getId(), saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:270:26
\|
270 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:275:106
\|
275 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:304:30
\|
304 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:309:113
\|
309 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:348:26
\|
348 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:353:36
\|
353 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:356:106
\|
356 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:378:26
\|
378 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:386:106
\|
386 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:427:26
\|
427 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:432:106
\|
432 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:470:26
\|
470 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:471:27
\|
471 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferSoft:488:187
\|
488 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo: nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:154:73
\|
154 \| emit Edited(id: self.id, creator: self.creator, creatorName: FIND.reverseLookup(self.creator), header: self.header, message: self.body, medias: medias, hide: hide, tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:167:68
\|
167 \| emit Edited(id: self.id, creator: address, creatorName: FIND.reverseLookup(address), header: self.header, message: self.body, medias: medias, hide: self.getHide(), tags: self.tags)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:56
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:189:111
\|
189 \| emit Reacted(id: self.id, by: user, byName: FIND.reverseLookup(user), creator: owner, creatorName: FIND.reverseLookup(owner), header: self.header, reaction: reaction, totalCount: self.reactions)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:282:30
\|
282 \| let creatorName = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:307:23
\|
307 \| name = FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindThoughts:309:80
\|
309 \| emit Deleted(id: thought.id, creator: thought.creator, creatorName: FIND.reverseLookup(thought.creator), header: thought.header, message: thought.body, medias: medias, tags: thought.tags)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindLeaseMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:324:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:326:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:326:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:330:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:330:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:347:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:347:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:351:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:45

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:396:59

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:400:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:69:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:86:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:109:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:123:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:448:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:336:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:337:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:337:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:425:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:476:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:478:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:21:36
\|
21 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:132:71
\|
132 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:128:59
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:128:58
\|
128 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:18:170
\|
18 \| access(all) event Sale(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar: String?, endsAt:UFix64?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:33:22
\|
33 \| init(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, price:UFix64, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:26:38
\|
26 \| access(contract) var pointer: FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:94:38
\|
94 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:110:40
\|
110 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:201:48
\|
201 \| access(Seller) fun listForSale(pointer: FindLeaseMarket.AuthLeasePointer, vaultType: Type, directSellPrice:UFix64, validUntil: UFix64?, extraField: {String:AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:269:59
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketSale:269:58
\|
269 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:283:138
\|
283 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:294:8
\|
294 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:295:8
\|
295 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:288:101
\|
288 \| return getAccount(user).capabilities.get<&{FindLeaseMarketSale.SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))!
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:64:23
\|
64 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:25
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketSale:74:19
\|
74 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:87:19
\|
87 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:111:19
\|
111 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:189:26
\|
189 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:190:26
\|
190 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketSale:194:12
\|
194 \| FindLeaseMarket.pay(tenant:self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo:leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:196:123
\|
196 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: soldFor, status:"sold", vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:223:124
\|
223 \| emit Sale(tenant: self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, leaseInfo:saleItem.toLeaseInfo(), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:243:126
\|
243 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:250:126
\|
250 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: nil, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketSale:252:126
\|
252 \| emit Sale(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "cancel", vaultType: saleItem.vaultType.identifier,leaseInfo: saleItem.toLeaseInfo(), buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketSale | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:73:23
\|
73 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:99:19
\|
99 \| return FIND.reverseLookup(self.pointer.owner())
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:224:26
\|
224 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:225:27
\|
225 \| let sellerName=FIND.reverseLookup(self.owner!.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:227:113
\|
227 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:self.owner!.address, sellerName: FIND.reverseLookup(self.owner!.address), amount: saleItem.getBalance(), status:"sold", vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: Profile.find(nftCap.address).getAvatar() ,endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:236:199
\|
236 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:saleItem.getRoyalty(), nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:295:115
\|
295 \| emit Sale(tenant: tenant.name, id: pointer.getUUID(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: saleItem.salePrice, status: "active\_listed", vaultType: vaultType.identifier, nft:saleItem.toNFTInfo(true), buyer: nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketSale:317:98
\|
317 \| emit Sale(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName:FIND.reverseLookup(owner), amount: saleItem.salePrice, status: status, vaultType: saleItem.vaultType.identifier,nft: nftInfo, buyer:nil, buyerName:nil, buyerAvatar:nil, endsAt:saleItem.validUntil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:89:19
\|
89 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:101:23
\|
101 \| return FIND.reverseLookup(cb.address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:337:36
\|
337 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:342:26
\|
342 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:344:110
\|
344 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: newOfferBalance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:429:26
\|
429 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:431:110
\|
431 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:504:30
\|
504 \| let buyerName=FIND.reverseLookup(buyer!)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:506:114
\|
506 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(),startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer: nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:508:114
\|
508 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItem.auctionReservePrice, status: status, vaultType:saleItem.vaultType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil,startsAt: saleItem.auctionStartedAt, endsAt: saleItem.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:560:30
\|
560 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:561:33
\|
561 \| let sellerName = FIND.reverseLookup(seller)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:574:189
\|
574 \| FindMarket.pay(tenant:tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketAuctionEscrow:662:113
\|
662 \| emit EnglishAuction(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:seller, sellerName: FIND.reverseLookup(seller), amount: balance, auctionReservePrice: saleItemRef.auctionReservePrice, status: status, vaultType:ftType.identifier, nft: nftInfo, buyer: nil, buyerName: nil, buyerAvatar:nil, startsAt: saleItemRef.auctionStartedAt, endsAt: saleItemRef.auctionEndsAt, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | Dandy | ❌

Error:
error: error getting program 35717efbbce11c74.FindForge: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindForgeOrder: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

--\> 35717efbbce11c74.FindForgeOrder

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:413:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:421:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:427:57

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:110:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:178:49

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:229:39

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:263:34

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:310:44

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:155:19

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:66

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:156:65

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:156:95

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:156:30

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:234:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:238:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:242:8

error: cannot find variable in this scope: \`FindForgeOrder\`
--\> 35717efbbce11c74.FindForge:246:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:272:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:273:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:273:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:273:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:302:21

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:303:18

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:319:22

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:62

error: ambiguous intersection type
--\> 35717efbbce11c74.FindForge:320:61

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:320:91

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindForge:320:23

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindForge:36:24

--\> 35717efbbce11c74.FindForge

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:345:32
\|
345 \| access(all) resource Forge: FindForge.Forge {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:63:119
\|
63 \| init(name: String, description: String, thumbnail: MetadataViews.Media, schemas: {String: ViewInfo}, platform: FindForge.MinterPlatform, externalUrlPrefix: String?) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:61:39
\|
61 \| access(contract) let platform: FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:87:46
\|
87 \| access(all) fun getMinterPlatform() : FindForge.MinterPlatform {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:346:15
\|
346 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:346:56
\|
346 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:346:110
\|
346 \| access(FindForge.ForgeOwner) fun mint(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) : @{NonFungibleToken.NFT} {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:351:15
\|
351 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:351:67
\|
351 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:351:121
\|
351 \| access(FindForge.ForgeOwner) fun addContractData(platform: FindForge.MinterPlatform, data: AnyStruct, verifier: &FindForge.Verifier) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:330:109
\|
330 \| access(account) fun mintNFT(name: String, description: String, thumbnail: MetadataViews.Media, platform:FindForge.MinterPlatform, schemas: \$&AnyStruct\$&, externalUrlPrefix:String?) : @NFT {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:357:42
\|
357 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.Dandy:357:41
\|
357 \| access(account) fun createForge() : @{FindForge.Forge} {
\| ^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:386:8
\|
386 \| FindForge.addForgeType(<- create Forge())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:388:8
\|
388 \| FindForge.addPublicForgeType(forgeType: Type<@Forge>())
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:88:27
\|
88 \| if let fetch = FindForge.getMinterPlatform(name: self.platform.name, forgeType: Dandy.getForgeType()) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindForge\`
--\> 35717efbbce11c74.Dandy:89:50
\|
89 \| let platform = &self.platform as &FindForge.MinterPlatform
\| ^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:58
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindVerifier:153:57
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindVerifier:153:87
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:153:22
\|
153 \| let cap = getAccount(user).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:154:16
\|
154 \| if !cap.check() {
\| ^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:157:22
\|
157 \| let ref = cap.borrow()!
\| ^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:65:19
\|
65 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:74:26
\|
74 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:211:26
\|
211 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:219:106
\|
219 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:246:26
\|
246 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:251:106
\|
251 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:282:30
\|
282 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:287:113
\|
287 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItemRef.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItemRef.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:325:26
\|
325 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:330:36
\|
330 \| let previousBuyerName = FIND.reverseLookup(previousBuyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:332:106
\|
332 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:354:26
\|
354 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:362:106
\|
362 \| emit DirectOffer(tenant:tenant.name, id: id, saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, nft:nftInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:nil, previousBuyerName:nil)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:402:26
\|
402 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:403:27
\|
403 \| let sellerName=FIND.reverseLookup(owner)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindMarketDirectOfferEscrow:417:186
\|
417 \| FindMarket.pay(tenant: tenant.name, id:id, saleItem: saleItem, vault: <- vault, royalty:royalty, nftInfo:nftInfo, cuts:cuts, resolver: fun(address:Address): String? { return FIND.reverseLookup(address) }, resolvedAddress: resolved)
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:324:37
\|
324 \| access(all) fun getLease() : FIND.LeaseInformation
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:326:42
\|
326 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:326:41
\|
326 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:330:43
\|
330 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:330:42
\|
330 \| access(self) let cap: Capability<&{FIND.LeaseCollectionPublic}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:347:42
\|
347 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:347:41
\|
347 \| access(contract) fun borrow() : &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:351:37
\|
351 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:33
\|
381 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:47
\|
381 \| init(cap:Capability, name: String) {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:46
\|
376 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:60
\|
376 \| access(self) let cap: Capability
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:45
\|
396 \| access(contract) fun borrow() : auth(FIND.Leasee) &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:60
\|
396 \| access(contract) fun borrow() : auth(FIND.Leasee) &{FIND.LeaseCollectionPublic} {
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:396:59
\|
396 \| access(contract) fun borrow() : auth(FIND.Leasee) &{FIND.LeaseCollectionPublic} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:400:37
\|
400 \| access(all) fun getLease() : FIND.LeaseInformation {
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41
\|
666 \| access(contract) fun getNetwork() : &FIND.Network {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:69:20
\|
69 \| let address=FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:86:22
\|
86 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:109:22
\|
109 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:123:22
\|
123 \| let address = FIND.lookupAddress(name) ?? panic("Name is not owned by anyone. Name : ".concat(name))
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:448:35
\|
448 \| let findName = FIND.reverseLookup(cut.getAddress())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15
\|
667 \| return FindLeaseMarket.account.storage.borrow<&FIND.Network>(from : FIND.NetworkStoragePath) ?? panic("Network is not up")
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:336:26
\|
336 \| let address = FIND.lookupAddress(name) ?? panic("This lease name is not owned")
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:60
\|
337 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:337:59
\|
337 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:89
\|
337 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:337:21
\|
337 \| self.cap=getAccount(address).capabilities.get<&{FIND.LeaseCollectionPublic}>(FIND.LeasePublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:52
\|
425 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:74
\|
425 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:425:25
\|
425 \| let leases = receiver.capabilities.get<&FIND.LeaseCollection>(FIND.LeasePublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:476:32
\|
476 \| if status.status == FIND.LeaseStatus.FREE {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:478:39
\|
478 \| } else if status.status == FIND.LeaseStatus.LOCKED {
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ❌

Error:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: error getting program 35717efbbce11c74.FindLeaseMarket: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FIND: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1351:66

error: cannot find type in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1600:59

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2098:63

error: too few arguments
--\> 35717efbbce11c74.FIND:2100:25

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2103:56

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2107:21

error: value of type \`FUSD\` has no member \`VaultPublicPath\`
--\> 35717efbbce11c74.FIND:2109:65

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2111:92

error: value of type \`FUSD\` has no member \`VaultStoragePath\`
--\> 35717efbbce11c74.FIND:2117:21

error: value of type \`FUSD\` has no member \`ReceiverPublicPath\`
--\> 35717efbbce11c74.FIND:2119:68

error: cannot find variable in this scope: \`FiatToken\`
--\> 35717efbbce11c74.FIND:1623:78

--\> 35717efbbce11c74.FIND

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:324:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:326:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:326:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:330:43

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:330:42

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:347:42

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:347:41

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:351:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:33

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:381:47

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:46

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:376:60

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:45

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:396:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:396:59

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:400:37

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:666:41

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:69:20

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:86:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:109:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:123:22

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:448:35

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:55

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:667:76

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:667:15

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:336:26

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:60

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarket:337:59

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:337:89

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:337:21

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:52

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:425:74

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarket:425:25

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:476:32

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarket:478:39

--\> 35717efbbce11c74.FindLeaseMarket

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:18:36
\|
18 \| access(all) resource SaleItem : FindLeaseMarket.SaleItem {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:169:71
\|
169 \| access(all) resource SaleItemCollection: SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:418:31
\|
418 \| access(all) resource Bid : FindLeaseMarket.Bid {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:470:73
\|
470 \| access(all) resource MarketBidCollection: MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:16:177
\|
16 \| access(all) event DirectOffer(tenant: String, id: UInt64, saleID: UInt64, seller: Address, sellerName: String?, amount: UFix64, status: String, vaultType:String, leaseInfo: FindLeaseMarket.LeaseInfo?, buyer:Address?, buyerName:String?, buyerAvatar:String?, endsAt: UFix64?, previousBuyer:Address?, previousBuyerName:String?)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:27:22
\|
27 \| init(pointer: FindLeaseMarket.ReadLeasePointer, callback: Capability<&{MarketBidCollectionPublic}>, validUntil: UFix64?, saleItemExtraField: {String : AnyStruct}) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:39
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:20:38
\|
20 \| access(contract) var pointer: {FindLeaseMarket.LeasePointer}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:69:38
\|
69 \| access(all) fun getAuction(): FindLeaseMarket.AuctionItem? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:119:40
\|
119 \| access(all) fun toLeaseInfo() : FindLeaseMarket.LeaseInfo{
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:131:51
\|
131 \| access(contract) fun setPointer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:328:50
\|
328 \| access(Seller) fun acceptOffer(\_ pointer: FindLeaseMarket.AuthLeasePointer) {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:59
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:404:58
\|
404 \| access(all) fun borrowSaleItem(\_ name: String) : &{FindLeaseMarket.SaleItem} {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:57
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:592:56
\|
592 \| access(all) fun borrowBidItem(\_ name: String): &{FindLeaseMarket.Bid} {
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:614:118
\|
614 \| access(all) fun getSaleItemCapability(marketplace:Address, user:Address) : Capability<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:625:115
\|
625 \| access(all) fun getBidCapability( marketplace:Address, user:Address) : Capability<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:636:8
\|
636 \| FindLeaseMarket.addSaleItemType(Type<@SaleItem>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:637:8
\|
637 \| FindLeaseMarket.addSaleItemCollectionType(Type<@SaleItemCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:638:8
\|
638 \| FindLeaseMarket.addMarketBidType(Type<@Bid>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:639:8
\|
639 \| FindLeaseMarket.addMarketBidCollectionType(Type<@MarketBidCollection>())
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:620:81
\|
620 \| return getAccount(user).capabilities.get<&{SaleItemCollectionPublic, FindLeaseMarket.SaleItemCollectionPublic}>(tenant.getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:630:82
\|
630 \| return getAccount(user).capabilities.get<&{MarketBidCollectionPublic, FindLeaseMarket.MarketBidCollectionPublic}>(tenant.getPublicPath(Type<@MarketBidCollection>()))
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:50:43
\|
50 \| let pointer = self.pointer as! FindLeaseMarket.AuthLeasePointer
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:25
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:66:19
\|
66 \| return Type<@FIND.Lease>()
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:105:19
\|
105 \| return FIND.reverseLookup(address)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:113:26
\|
113 \| if let name = FIND.reverseLookup(self.offerCallback.address) {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:120:19
\|
120 \| return FindLeaseMarket.LeaseInfo(self.pointer)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:223:26
\|
223 \| let buyerName=FIND.reverseLookup(buyer)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:224:26
\|
224 \| let profile = FIND.lookup(buyer.toString())
\| ^^^^ not found in this scope

error: cannot find type in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:226:26
\|
226 \| var leaseInfo:FindLeaseMarket.LeaseInfo?=nil
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:233:36
\|
233 \| previousBuyerName = FIND.reverseLookup(pb)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:236:130
\|
236 \| emit DirectOffer(tenant:self.getTenant().name, id: saleItem.getId(), saleID: saleItem.uuid, seller:owner, sellerName: FIND.reverseLookup(owner), amount: balance, status:status, vaultType: ftType.identifier, leaseInfo:leaseInfo, buyer: buyer, buyerName: buyerName, buyerAvatar: profile?.getAvatar(), endsAt: saleItem.validUntil, previousBuyer:previousBuyer, previousBuyerName:previousBuyerName)
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:262:27
\|
262 \| let item = FindLeaseMarket.ReadLeasePointer(name: name)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLeaseMarket\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:377:12
\|
377 \| FindLeaseMarket.pay(tenant: self.getTenant().name, leaseName:name, saleItem: saleItem, vault: <- vault, leaseInfo: leaseInfo, cuts:cuts)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:514:38
\|
514 \| if self.owner!.address == FIND.status(name).owner! {
\| ^^^^ not found in this scope

error: cannot find variable in this scope: \`FIND\`
--\> 35717efbbce11c74.FindLeaseMarketDirectOfferSoft:532:32
\|
532 \| let from=getAccount(FIND.status(name).owner!).capabilities.get<&{SaleItemCollectionPublic}>(self.getTenant().getPublicPath(Type<@SaleItemCollection>()))
\| ^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0x2d766f00eb1d0c37 | PriceOracle | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x877931736ee77cff | TopShot | ✅ | +| 0xab2d22248a619d77 | TrmAssetMSV2_0 | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xe45c64ecfe31e465 | DelegatorManager | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingError | ✅ | +| 0xe45c64ecfe31e465 | LiquidStaking | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingConfig | ✅ | +| 0xe45c64ecfe31e465 | stFlowToken | ✅ | +| 0x26a1e94319e81a3c | Staking | ✅ | +| 0x26a1e94319e81a3c | StakingError | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-05-22T10-00-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-05-22T10-00-00Z-testnet.json new file mode 100644 index 0000000000..e481fe7dac --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-22T10-00-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-success","account_address":"0x6d692450d591524c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Wearables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Teleport"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Doodles","error":"error: resource `Doodles.NFT` does not conform to resource interface `NonFungibleToken.NFT`\n --\u003e 1c5033ad60821c97.Doodles:230:22\n |\n230 | \taccess(all) resource NFT: NonFungibleToken.NFT, ViewResolver.Resolver, Burner.Burnable, ViewResolver.ResolverCollection {\n | \t ^\n ... \n |\n802 | access(all) view fun getAvailableSubNFTS(): {Type: UInt64} {\n | ------------------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-failure","account_address":"0x1c5033ad60821c97","contract_name":"Admin","error":"error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:\nerror: resource `Doodles.NFT` does not conform to resource interface `NonFungibleToken.NFT`\n --\u003e 1c5033ad60821c97.Doodles:230:22\n\n--\u003e 1c5033ad60821c97.Doodles\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:195:52\n |\n195 | \t\taccess(all) fun registerDoodlesBaseCharacter(_ d: Doodles.BaseCharacter) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:209:46\n |\n209 | \t\taccess(all) fun registerDoodlesSpecies(_ d: Doodles.Species) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:223:42\n |\n223 | \t\taccess(all) fun registerDoodlesSet(_ d: Doodles.Set) {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:242:6\n |\n242 | \t\t): @Doodles.NFT {\n | \t\t ^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:199:3\n |\n199 | \t\t\tDoodles.setBaseCharacter(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:206:3\n |\n206 | \t\t\tDoodles.retireBaseCharacter(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:213:3\n |\n213 | \t\t\tDoodles.addSpecies(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:220:3\n |\n220 | \t\t\tDoodles.retireSpecies(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:227:3\n |\n227 | \t\t\tDoodles.addSet(d)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:234:3\n |\n234 | \t\t\tDoodles.retireSet(id)\n | \t\t\t^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Doodles`\n --\u003e 1c5033ad60821c97.Admin:247:17\n |\n247 | \t\t\tlet doodle \u003c- Doodles.adminMintDoodle(\n | \t\t\t ^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"NFL"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"LNVCT"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Bar"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"O"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"A","error":"error: cannot find declaration `B` in `250e0b90c1b7711b.B`\n --\u003e 250e0b90c1b7711b.A:1:7\n |\n1 | import B from 0x250e0b90c1b7711b\n | ^ available exported declarations are:\n - `Bad`\n\n"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"W","error":"error: mismatching field `foo` in `W`\n --\u003e 250e0b90c1b7711b.W:3:25\n |\n3 | access(all) let foo: String\n | ^^^^^^ incompatible type annotations. expected `Int`, found `String`\n"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Foo"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"F"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"L"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-success","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingConfig"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"stFlowToken"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"DelegatorManager"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingError"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStaking"},{"kind":"contract-update-success","account_address":"0xc15e75b5f6b95e54","contract_name":"LendingComptroller"},{"kind":"contract-update-success","account_address":"0xdad0aaa285a25413","contract_name":"PriceOracle"},{"kind":"contract-update-failure","account_address":"0xbd327ae7428784b5","contract_name":"FlowEVMBridgeHandlerInterfaces","error":"error: trying to convert contract interface `FlowEVMBridgeHandlerInterfaces` to a contract\n --\u003e bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21\n |\n12 | access(all) contract FlowEVMBridgeHandlerInterfaces {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xd9c02cdacccb25ab","contract_name":"FlowtyTestNFT"},{"kind":"contract-update-success","account_address":"0xcc4e949596cf8ced","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"FTViewUtils"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"TokenList"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"ViewResolvers"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0x2f8af5ed05bbde0d","contract_name":"SwapRouter"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleConfig"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleInterface"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0x97d2f3b55c6a6a75","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"StableSwapFactory"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"SwapFactory"},{"kind":"contract-update-success","account_address":"0xc20df20fabe06457","contract_name":"SwapPair"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV2_0"},{"kind":"contract-update-success","account_address":"0x8232ce4a3aff4e94","contract_name":"PublicPriceOracle"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"Staking"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-success","account_address":"0xcbdb5a7b89c3c844","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOAT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n |\n350 | access(NonFungibleToken.Owner) fun delete(id: UInt64) {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n |\n270 | self.eventsCap = getAccount(_eventHost).capabilities.get\u003c\u0026FLOATEvents\u003e(FLOAT.FLOATEventsPublicPath)\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026FLOAT.FLOATEvents\u003e`\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n |\n198 | \t\t\t\t\t\t\treceiver: getAccount(0x5643fd47a29770e7).capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(/public/flowTokenReceiver) ?? panic(\"Beneficiary does not have receiver.\"),\r\n | \t\t\t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n300 | access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\r\n | --------- mismatch here\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOATVerifiers","error":"error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:0\n |\n28 | pub contract FLOAT: NonFungibleToken, ViewResolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :38:4\n |\n38 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :48:4\n |\n48 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:8\n |\n74 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:8\n |\n75 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:8\n |\n76 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :86:8\n |\n86 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:8\n |\n87 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :98:8\n |\n98 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:8\n |\n103 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:8\n |\n104 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:8\n |\n105 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :106:8\n |\n106 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:8\n |\n108 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:8\n |\n110 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :117:51\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 4d47bf3ce5e4393f.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:38:33\n |\n38 | access(all) struct Timelock: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:66:31\n |\n66 | access(all) struct Secret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:90:32\n |\n90 | access(all) struct Limited: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:113:39\n |\n113 | access(all) struct MultipleSecret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:137:33\n |\n137 | access(all) struct SecretV2: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:162:39\n |\n162 | access(all) struct MinimumBalance: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:226:30\n |\n226 | access(all) struct Email: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:94:51\n |\n94 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:230:51\n |\n230 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x2d766f00eb1d0c37","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x2ceae959ed1a7e7a","contract_name":"MigrationContractStaging"},{"kind":"contract-update-failure","account_address":"0xe8124d8428980aa6","contract_name":"Bl0x","error":"error: found new field `storagePath` in `Collection`\n --\u003e e8124d8428980aa6.Bl0x:305:25\n |\n305 | access(self) var storagePath: StoragePath\n | ^^^^^^^^^^^\n\nerror: found new field `publicPath` in `Collection`\n --\u003e e8124d8428980aa6.Bl0x:306:25\n |\n306 | access(self) var publicPath: PublicPath\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xad26718c4b6b921b","contract_name":"BlackHole"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapInterfaces"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapError"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapConfig"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS"},{"kind":"contract-update-success","account_address":"0x7745157792470296","contract_name":"LendingOracle"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:160:8\n |\n160 | ): [NFTStorefrontV2.SaleCut] {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:161:23\n |\n161 | let saleCuts: [NFTStorefrontV2.SaleCut] = []\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.Royalties:164:28\n |\n164 | saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut * salePrice))\n | ^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:0\n |\n29 | pub contract NFTStorefrontV2 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event StorefrontInitialized(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event StorefrontDestroyed(storefrontResourceID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :58:4\n |\n58 | pub event ListingAvailable(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub event ListingCompleted(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :93:4\n |\n93 | pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let StorefrontStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let StorefrontPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:4\n |\n108 | pub struct SaleCut {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :115:8\n |\n115 | pub let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :118:8\n |\n118 | pub let amount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :132:4\n |\n132 | pub struct ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:8\n |\n137 | pub var storefrontID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub var purchased: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:8\n |\n141 | pub let nftType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :143:8\n |\n143 | pub let nftUUID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub let nftID: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :147:8\n |\n147 | pub let salePaymentVaultType: Type\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :149:8\n |\n149 | pub let salePrice: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :151:8\n |\n151 | pub let saleCuts: [SaleCut]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:8\n |\n154 | pub var customID: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:8\n |\n156 | pub let commissionAmount: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub let expiry: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :223:4\n |\n223 | pub resource interface ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :228:8\n |\n228 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:8\n |\n234 | pub fun purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :241:8\n |\n241 | pub fun getDetails(): ListingDetails\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :246:8\n |\n246 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :251:8\n |\n251 | pub fun hasListingBecomeGhosted(): Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub resource Listing: ListingPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:8\n |\n279 | pub fun borrowNFT(): \u0026NonFungibleToken.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:8\n |\n290 | pub fun getDetails(): ListingDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:8\n |\n297 | pub fun getAllowedCommissionReceivers(): [Capability\u003c\u0026{FungibleToken.Receiver}\u003e]? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:8\n |\n304 | pub fun hasListingBecomeGhosted(): Bool {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :316:8\n |\n316 | pub fun purchase(\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :367:92\n |\n367 | let storeFrontPublicRef = self.owner!.getCapability\u003c\u0026NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^\n\n--\u003e 2d55b98eb200daef.NFTStorefrontV2\n\nerror: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:0\n |\n40 | pub contract Market {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub resource interface SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:8\n |\n62 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:8\n |\n68 | pub fun getPrice(tokenID: UInt64): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:8\n |\n69 | pub fun getIDs(): [UInt64]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:8\n |\n70 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub resource SaleCollection: SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun listForSale(token: @TopShot.NFT, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub fun withdraw(tokenID: UInt64): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :166:8\n |\n166 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :198:8\n |\n198 | pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :209:8\n |\n209 | pub fun changePercentage(_ newPercent: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :216:8\n |\n216 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :225:8\n |\n225 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :227:73\n |\n227 | newBeneficiaryCapability.borrow\u003c\u0026DapperUtilityCoin.Vault{FungibleToken.Receiver}\u003e() != nil:\n | ^^^^^^^^^^^^^\n\n--\u003e 547f177b243b4d80.Market\n\nerror: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:0\n |\n46 | pub contract TopShotMarketV3 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let marketStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub let marketPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:4\n |\n79 | pub resource SaleCollection: Market.SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:8\n |\n101 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub fun listForSale(tokenID: UInt64, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub fun cancelSale(tokenID: UInt64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:8\n |\n196 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :247:8\n |\n247 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:8\n |\n259 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:8\n |\n272 | pub fun getPrice(tokenID: UInt64): UFix64? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :282:8\n |\n282 | pub fun getIDs(): [UInt64] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:8\n |\n302 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :318:4\n |\n318 | pub fun createSaleCollection(ownerCollection: Capability\u003c\u0026TopShot.Collection\u003e,\n | ^^^\n\n--\u003e 547f177b243b4d80.TopShotMarketV3\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:154:70\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:154:69\n |\n154 | access(contract) view fun getStorefrontV2Ref(address: Address): \u0026{NFTStorefrontV2.StorefrontPublic}? {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:159:73\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:159:72\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:164:73\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:164:72\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:225:22\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:225:21\n |\n225 | storefront: \u0026{NFTStorefrontV2.StorefrontPublic},\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:301:25\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:301:24\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:35\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:156:34\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:156:70\n |\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:155:15\n |\n155 | return getAccount(address)\n156 | .capabilities.borrow\u003c\u0026{NFTStorefrontV2.StorefrontPublic}\u003e(NFTStorefrontV2.StorefrontPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:161:35\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:161:34\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:160:15\n |\n160 | return getAccount(address)\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:35\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:166:34\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `TopShotMarketV3`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:55\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:165:15\n |\n165 | return getAccount(address)\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `NFTStorefrontV2`\n --\u003e c7c122b5b811de8e.BulkPurchase:353:42\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:353:41\n |\n353 | let storefrontV2Refs: {Address: \u0026{NFTStorefrontV2.StorefrontPublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:354:45\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:354:44\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:355:45\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:355:44\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnRegistry"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLIndex"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLAdmin","error":"error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\n--\u003e b39a42479c1c2c77.AFLPack\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMetadataHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBadges"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"PackRestrictions"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMarketplace","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:79:33\n |\n79 | init (vault: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:77:49\n |\n77 | access(self) let ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:259:70\n |\n259 | access(all) fun changeMarketplaceWallet(_ newCap: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:12:56\n |\n12 | access(contract) var marketplaceWallet: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:242:65\n |\n242 | access(all) fun createSaleCollection(ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e): @SaleCollection {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:64\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:33\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:119:36\n |\n119 | let saleOwnerVaultRef: \u0026FiatToken.Vault = self.ownerVault.borrow() ?? panic(\"could not borrow reference to the owner vault\")\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:126:36\n |\n126 | let marketplaceWallet: \u0026FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic(\"Couldn't borrow Vault reference\")\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLPack","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n |\n23 | access(contract) let adminRef : Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n |\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n113 | .borrow()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnExchange"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"StorageHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLNFT"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingError"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingConfig"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingInterfaces"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:79:23\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:113:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\n--\u003e 35717efbbce11c74.NameVoucher\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:359:19\n |\n359 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:57\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:87\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:367:27\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:368:19\n |\n368 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper","error":"error: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n |\n152 | shelf.redeem(type: type, ticketID: ticketID, receiver: cap)\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher","error":"error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:79:23\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:113:23\n\n--\u003e 35717efbbce11c74.FindAirdropper\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForge"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Dandy"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper","error":"error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:\nerror: cannot access `redeem`: function requires `Withdraw` authorization, but reference is unauthorized\n --\u003e 35717efbbce11c74.FindLostAndFoundWrapper:152:8\n\n--\u003e 35717efbbce11c74.FindLostAndFoundWrapper\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:79:23\n |\n79 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindLostAndFoundWrapper`\n --\u003e 35717efbbce11c74.FindAirdropper:113:23\n |\n113 | let ticketID = FindLostAndFoundWrapper.depositNFT(\n | ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FIND"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Marketplace"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Art"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Auction"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Versus"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-failure","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e d704ee8202a0d82d.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x3b220a3372190656","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x9e324d8ae3cbd0f0","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingNFT"},{"kind":"contract-update-success","account_address":"0x74daa6f9c7ef24b1","contract_name":"FCLCrypto"},{"kind":"contract-update-success","account_address":"0xa1296b1e2e90ca5b","contract_name":"HelloWorld"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"wFlow"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"BUSD"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDT"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDC"},{"kind":"contract-update-success","account_address":"0x23031fd14bb0f21b","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-success","account_address":"0xdfc20aee650fcbdf","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x8c55fba7d7090fee","contract_name":"Magnetiq","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 8c55fba7d7090fee.Magnetiq:1253:43\n |\n1253 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `Magnetiq.Collection` does not conform to resource interface `NonFungibleToken.Provider`\n --\u003e 8c55fba7d7090fee.Magnetiq:1211:25\n |\n1211 | access(all) resource Collection: TokenCollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection { \n | ^\n ... \n |\n1253 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"MagnetiqLocking"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-failure","account_address":"0x566c813b3632783e","contract_name":"KaratNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 566c813b3632783e.KaratNFT:179:43\n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n |\n155 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `KaratNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 566c813b3632783e.KaratNFT:154:25\n |\n154 | access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {\n | ^\n ... \n |\n179 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0x24650d6246d4176c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow"},{"kind":"contract-update-success","account_address":"0x2299f74679d9c88a","contract_name":"A"},{"kind":"contract-update-success","account_address":"0xc911d6ddfae70ce8","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x3870b3d38f83ae4c","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x8aaca41f09eb1e3d","contract_name":"LendingPool"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-05-22T10-00-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-05-22T10-00-00Z-testnet.md new file mode 100644 index 0000000000..7086adb0ed --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-22T10-00-00Z-testnet.md @@ -0,0 +1,306 @@ +## Cadence 1.0 staged contracts migration results +Date: 23 May, 2024 + +Stats: 289 contracts staged, 258 successfully upgraded, 31 failed to upgrade + +Snapshot: devnet50-execution-snapshot-for-migration-8-may-22 + +Flow-go build: v0.35.7-crescendo-preview.23-atree-inlining (same as last week) + +Developers can use Crescendo migration environment to test your migrated dapp! We notify the community in [Discord Developer UPdates channel](https://discord.com/channels/613813861610684416/811693600403357706) when the environment is available for testing after migration. The Access node endpoint for the migration environment is: `access-001.migrationtestnet1.nodes.onflow.org:9000`. + +View contracts staged on Testnet: https://f.dnz.dev/0x2ceae959ed1a7e7a/ + +Great community tool to view up-to-date staging status: https://staging.dnz.dev/ + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0x6d692450d591524c | PriceOracle | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | DoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ✅ | +| 0x1c5033ad60821c97 | Wearables | ✅ | +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | Teleport | ✅ | +| 0x1c5033ad60821c97 | Doodles | ❌

Error:
error: resource \`Doodles.NFT\` does not conform to resource interface \`NonFungibleToken.NFT\`
--\> 1c5033ad60821c97.Doodles:230:22
\|
230 \| access(all) resource NFT: NonFungibleToken.NFT, ViewResolver.Resolver, Burner.Burnable, ViewResolver.ResolverCollection {
\| ^
...
\|
802 \| access(all) view fun getAvailableSubNFTS(): {Type: UInt64} {
\| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- mismatch here
| +| 0x1c5033ad60821c97 | Redeemables | ✅ | +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | OpenDoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | Admin | ❌

Error:
error: error getting program 1c5033ad60821c97.Doodles: failed to derive value: load program failed: Checking failed:
error: resource \`Doodles.NFT\` does not conform to resource interface \`NonFungibleToken.NFT\`
--\> 1c5033ad60821c97.Doodles:230:22

--\> 1c5033ad60821c97.Doodles

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:195:52
\|
195 \| access(all) fun registerDoodlesBaseCharacter(\_ d: Doodles.BaseCharacter) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:209:46
\|
209 \| access(all) fun registerDoodlesSpecies(\_ d: Doodles.Species) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:223:42
\|
223 \| access(all) fun registerDoodlesSet(\_ d: Doodles.Set) {
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:242:6
\|
242 \| ): @Doodles.NFT {
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:199:3
\|
199 \| Doodles.setBaseCharacter(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:206:3
\|
206 \| Doodles.retireBaseCharacter(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:213:3
\|
213 \| Doodles.addSpecies(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:220:3
\|
220 \| Doodles.retireSpecies(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:227:3
\|
227 \| Doodles.addSet(d)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:234:3
\|
234 \| Doodles.retireSet(id)
\| ^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Doodles\`
--\> 1c5033ad60821c97.Admin:247:17
\|
247 \| let doodle <- Doodles.adminMintDoodle(
\| ^^^^^^^ not found in this scope
| +| 0x3a52faafb43951c0 | NFL | ✅ | +| 0x3a52faafb43951c0 | LNVCT | ✅ | +| 0xe3faea00c5bb8d7d | TrmRentV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmMarketV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmAssetV2_2 | ✅ | +| 0x250e0b90c1b7711b | Bar | ✅ | +| 0x250e0b90c1b7711b | O | ✅ | +| 0x250e0b90c1b7711b | A | ❌

Error:
error: cannot find declaration \`B\` in \`250e0b90c1b7711b.B\`
--\> 250e0b90c1b7711b.A:1:7
\|
1 \| import B from 0x250e0b90c1b7711b
\| ^ available exported declarations are:
\- \`Bad\`

| +| 0x250e0b90c1b7711b | W | ❌

Error:
error: mismatching field \`foo\` in \`W\`
--\> 250e0b90c1b7711b.W:3:25
\|
3 \| access(all) let foo: String
\| ^^^^^^ incompatible type annotations. expected \`Int\`, found \`String\`
| +| 0x250e0b90c1b7711b | B | ✅ | +| 0x250e0b90c1b7711b | Foo | ✅ | +| 0x250e0b90c1b7711b | F | ✅ | +| 0x250e0b90c1b7711b | L | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingConfig | ✅ | +| 0xe45c64ecfe31e465 | stFlowToken | ✅ | +| 0xe45c64ecfe31e465 | DelegatorManager | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingError | ✅ | +| 0xe45c64ecfe31e465 | LiquidStaking | ✅ | +| 0xc15e75b5f6b95e54 | LendingComptroller | ✅ | +| 0xdad0aaa285a25413 | PriceOracle | ✅ | +| 0xbd327ae7428784b5 | FlowEVMBridgeHandlerInterfaces | ❌

Error:
error: trying to convert contract interface \`FlowEVMBridgeHandlerInterfaces\` to a contract
--\> bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21
\|
12 \| access(all) contract FlowEVMBridgeHandlerInterfaces {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xd9c02cdacccb25ab | FlowtyTestNFT | ✅ | +| 0xcc4e949596cf8ced | TwoSegmentsInterestRateModel | ✅ | +| 0xb86f928a1fa7798e | FTViewUtils | ✅ | +| 0xb86f928a1fa7798e | TokenList | ✅ | +| 0xb86f928a1fa7798e | ViewResolvers | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0x2f8af5ed05bbde0d | SwapRouter | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleConfig | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleInterface | ✅ | +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0x97d2f3b55c6a6a75 | LendingPool | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0xcbed4c301441ded2 | StableSwapFactory | ✅ | +| 0xcbed4c301441ded2 | SwapFactory | ✅ | +| 0xc20df20fabe06457 | SwapPair | ✅ | +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xab2d22248a619d77 | TrmAssetMSV1_0 | ✅ | +| 0xab2d22248a619d77 | TrmAssetMSV2_0 | ✅ | +| 0x8232ce4a3aff4e94 | PublicPriceOracle | ✅ | +| 0x26a1e94319e81a3c | Staking | ✅ | +| 0x26a1e94319e81a3c | StakingError | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0xcbdb5a7b89c3c844 | PriceOracle | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0x857dc34d5e1631d3 | FLOAT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15
\|
350 \| access(NonFungibleToken.Owner) fun delete(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29
\|
270 \| self.eventsCap = getAccount(\_eventHost).capabilities.get<&FLOATEvents>(FLOAT.FLOATEventsPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&FLOAT.FLOATEvents>\`

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17
\|
198 \| receiver: getAccount(0x5643fd47a29770e7).capabilities.get<&{FungibleToken.Receiver}>(/public/flowTokenReceiver) ?? panic("Beneficiary does not have receiver."),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
300 \| access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x857dc34d5e1631d3 | FLOATVerifiers | ❌

Error:
error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :28:0
\|
28 \| pub contract FLOAT: NonFungibleToken, ViewResolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :38:4
\|
38 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :48:4
\|
48 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:8
\|
74 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:8
\|
75 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:8
\|
76 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :86:8
\|
86 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:8
\|
87 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :98:8
\|
98 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:8
\|
103 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:8
\|
104 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:8
\|
105 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :106:8
\|
106 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:8
\|
108 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:8
\|
110 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :117:51
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 4d47bf3ce5e4393f.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:38:33
\|
38 \| access(all) struct Timelock: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:66:31
\|
66 \| access(all) struct Secret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:90:32
\|
90 \| access(all) struct Limited: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:113:39
\|
113 \| access(all) struct MultipleSecret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:137:33
\|
137 \| access(all) struct SecretV2: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:162:39
\|
162 \| access(all) struct MinimumBalance: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:226:30
\|
226 \| access(all) struct Email: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:94:51
\|
94 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:230:51
\|
230 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope
| +| 0x2d766f00eb1d0c37 | PriceOracle | ✅ | +| 0x2ceae959ed1a7e7a | MigrationContractStaging | ✅ | +| 0xe8124d8428980aa6 | Bl0x | ❌

Error:
error: found new field \`storagePath\` in \`Collection\`
--\> e8124d8428980aa6.Bl0x:305:25
\|
305 \| access(self) var storagePath: StoragePath
\| ^^^^^^^^^^^

error: found new field \`publicPath\` in \`Collection\`
--\> e8124d8428980aa6.Bl0x:306:25
\|
306 \| access(self) var publicPath: PublicPath
\| ^^^^^^^^^^
| +| 0xad26718c4b6b921b | BlackHole | ✅ | +| 0xddb929038d45d4b3 | SwapInterfaces | ✅ | +| 0xddb929038d45d4b3 | SwapError | ✅ | +| 0xddb929038d45d4b3 | SwapConfig | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | +| 0xef4cd3d07a7b43ce | IPackNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ✅ | +| 0x7745157792470296 | LendingOracle | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasures | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | Royalties | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:160:8
\|
160 \| ): \$&NFTStorefrontV2.SaleCut\$& {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:161:23
\|
161 \| let saleCuts: \$&NFTStorefrontV2.SaleCut\$& = \$&\$&
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.Royalties:164:28
\|
164 \| saleCuts.append(NFTStorefrontV2.SaleCut(receiver: royalty.receiver, amount: royalty.cut \* salePrice))
\| ^^^^^^^^^^^^^^^ not found in this scope
| +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | OrdinalVendor | ✅ | +| 0xc7c122b5b811de8e | FlowverseSocks | ✅ | +| 0xc7c122b5b811de8e | Ordinal | ✅ | +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: error getting program 2d55b98eb200daef.NFTStorefrontV2: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :29:0
\|
29 \| pub contract NFTStorefrontV2 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event StorefrontInitialized(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event StorefrontDestroyed(storefrontResourceID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :58:4
\|
58 \| pub event ListingAvailable(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub event ListingCompleted(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :93:4
\|
93 \| pub event UnpaidReceiver(receiver: Address, entitledSaleCut: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let StorefrontStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let StorefrontPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:4
\|
108 \| pub struct SaleCut {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :115:8
\|
115 \| pub let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :118:8
\|
118 \| pub let amount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :132:4
\|
132 \| pub struct ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:8
\|
137 \| pub var storefrontID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub var purchased: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:8
\|
141 \| pub let nftType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :143:8
\|
143 \| pub let nftUUID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub let nftID: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :147:8
\|
147 \| pub let salePaymentVaultType: Type
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :149:8
\|
149 \| pub let salePrice: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :151:8
\|
151 \| pub let saleCuts: \$&SaleCut\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:8
\|
154 \| pub var customID: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:8
\|
156 \| pub let commissionAmount: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub let expiry: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :223:4
\|
223 \| pub resource interface ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :228:8
\|
228 \| pub fun borrowNFT(): &NonFungibleToken.NFT?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:8
\|
234 \| pub fun purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :241:8
\|
241 \| pub fun getDetails(): ListingDetails
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :246:8
\|
246 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :251:8
\|
251 \| pub fun hasListingBecomeGhosted(): Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub resource Listing: ListingPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:8
\|
279 \| pub fun borrowNFT(): &NonFungibleToken.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:8
\|
290 \| pub fun getDetails(): ListingDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:8
\|
297 \| pub fun getAllowedCommissionReceivers(): \$&Capability<&{FungibleToken.Receiver}>\$&? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:8
\|
304 \| pub fun hasListingBecomeGhosted(): Bool {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :316:8
\|
316 \| pub fun purchase(
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :367:92
\|
367 \| let storeFrontPublicRef = self.owner!.getCapability<&NFTStorefrontV2.Storefront{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^

--\> 2d55b98eb200daef.NFTStorefrontV2

error: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :40:0
\|
40 \| pub contract Market {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub resource interface SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:8
\|
62 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:8
\|
68 \| pub fun getPrice(tokenID: UInt64): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:8
\|
69 \| pub fun getIDs(): \$&UInt64\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:8
\|
70 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub resource SaleCollection: SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun listForSale(token: @TopShot.NFT, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub fun withdraw(tokenID: UInt64): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :166:8
\|
166 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :198:8
\|
198 \| pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :209:8
\|
209 \| pub fun changePercentage(\_ newPercent: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :216:8
\|
216 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :225:8
\|
225 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :227:73
\|
227 \| newBeneficiaryCapability.borrow<&DapperUtilityCoin.Vault{FungibleToken.Receiver}>() != nil:
\| ^^^^^^^^^^^^^

--\> 547f177b243b4d80.Market

error: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :46:0
\|
46 \| pub contract TopShotMarketV3 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let marketStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub let marketPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:4
\|
79 \| pub resource SaleCollection: Market.SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:8
\|
101 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub fun listForSale(tokenID: UInt64, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub fun cancelSale(tokenID: UInt64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:8
\|
196 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :247:8
\|
247 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:8
\|
259 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:8
\|
272 \| pub fun getPrice(tokenID: UInt64): UFix64? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :282:8
\|
282 \| pub fun getIDs(): \$&UInt64\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:8
\|
302 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :318:4
\|
318 \| pub fun createSaleCollection(ownerCollection: Capability<&TopShot.Collection>,
\| ^^^

--\> 547f177b243b4d80.TopShotMarketV3

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:154:70
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:154:69
\|
154 \| access(contract) view fun getStorefrontV2Ref(address: Address): &{NFTStorefrontV2.StorefrontPublic}? {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:159:73
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:159:72
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:164:73
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:164:72
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:225:22
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:225:21
\|
225 \| storefront: &{NFTStorefrontV2.StorefrontPublic},
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:301:25
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:301:24
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:35
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:156:34
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:156:70
\|
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:155:15
\|
155 \| return getAccount(address)
156 \| .capabilities.borrow<&{NFTStorefrontV2.StorefrontPublic}>(NFTStorefrontV2.StorefrontPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:161:35
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:161:34
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:160:15
\|
160 \| return getAccount(address)
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:166:35
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:166:34
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`TopShotMarketV3\`
--\> c7c122b5b811de8e.BulkPurchase:166:55
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:165:15
\|
165 \| return getAccount(address)
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`NFTStorefrontV2\`
--\> c7c122b5b811de8e.BulkPurchase:353:42
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:353:41
\|
353 \| let storefrontV2Refs: {Address: &{NFTStorefrontV2.StorefrontPublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:354:45
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:354:44
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:355:45
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:355:44
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePass | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySale | ✅ | +| 0xc7c122b5b811de8e | FlowverseShirt | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnRegistry | ✅ | +| 0xb39a42479c1c2c77 | AFLIndex | ✅ | +| 0xb39a42479c1c2c77 | AFLAdmin | ❌

Error:
error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

--\> b39a42479c1c2c77.AFLPack
| +| 0xb39a42479c1c2c77 | AFLMetadataHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLBadges | ✅ | +| 0xb39a42479c1c2c77 | PackRestrictions | ✅ | +| 0xb39a42479c1c2c77 | AFLMarketplace | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:79:33
\|
79 \| init (vault: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:77:49
\|
77 \| access(self) let ownerVault: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:259:70
\|
259 \| access(all) fun changeMarketplaceWallet(\_ newCap: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:12:56
\|
12 \| access(contract) var marketplaceWallet: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:242:65
\|
242 \| access(all) fun createSaleCollection(ownerVault: Capability<&FiatToken.Vault>): @SaleCollection {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:277:64
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLMarketplace:277:33
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:119:36
\|
119 \| let saleOwnerVaultRef: &FiatToken.Vault = self.ownerVault.borrow() ?? panic("could not borrow reference to the owner vault")
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:126:36
\|
126 \| let marketplaceWallet: &FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic("Couldn't borrow Vault reference")
\| ^^^^^^^^^ not found in this scope
| +| 0xb39a42479c1c2c77 | AFLPack | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48
\|
23 \| access(contract) let adminRef : Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35
\|
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
113 \| .borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xb39a42479c1c2c77 | AFLBurnExchange | ✅ | +| 0xb39a42479c1c2c77 | StorageHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLNFT | ✅ | +| 0x8bc9e24c307d249b | LendingError | ✅ | +| 0x8bc9e24c307d249b | LendingConfig | ✅ | +| 0x8bc9e24c307d249b | LendingInterfaces | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0x877931736ee77cff | TopShot | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x35717efbbce11c74 | FindMarketSale | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ✅ | +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:79:23

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:113:23

--\> 35717efbbce11c74.FindAirdropper

--\> 35717efbbce11c74.NameVoucher

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:359:19
\|
359 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:57
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:87
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:367:27
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:368:19
\|
368 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ❌

Error:
error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8
\|
152 \| shelf.redeem(type: type, ticketID: ticketID, receiver: cap)
\| ^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | NameVoucher | ❌

Error:
error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:79:23

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:113:23

--\> 35717efbbce11c74.FindAirdropper
| +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindForge | ✅ | +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketSale | ✅ | +| 0x35717efbbce11c74 | FindMarket | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | Dandy | ✅ | +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | Profile | ✅ | +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ❌

Error:
error: error getting program 35717efbbce11c74.FindLostAndFoundWrapper: failed to derive value: load program failed: Checking failed:
error: cannot access \`redeem\`: function requires \`Withdraw\` authorization, but reference is unauthorized
--\> 35717efbbce11c74.FindLostAndFoundWrapper:152:8

--\> 35717efbbce11c74.FindLostAndFoundWrapper

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:79:23
\|
79 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindLostAndFoundWrapper\`
--\> 35717efbbce11c74.FindAirdropper:113:23
\|
113 \| let ticketID = FindLostAndFoundWrapper.depositNFT(
\| ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | FindMarketAdmin | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ✅ | +| 0x35717efbbce11c74 | FIND | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindForgeOrder | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> d704ee8202a0d82d.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x3b220a3372190656 | PriceOracle | ✅ | +| 0x9e324d8ae3cbd0f0 | LendingPool | ✅ | +| 0x44ef9309713e2061 | StakingError | ✅ | +| 0x44ef9309713e2061 | StakingNFT | ✅ | +| 0x74daa6f9c7ef24b1 | FCLCrypto | ✅ | +| 0xa1296b1e2e90ca5b | HelloWorld | ✅ | +| 0xf9dad0d4c14a92b5 | wFlow | ✅ | +| 0xf9dad0d4c14a92b5 | BUSD | ✅ | +| 0xf9dad0d4c14a92b5 | USDT | ✅ | +| 0xf9dad0d4c14a92b5 | USDC | ✅ | +| 0x23031fd14bb0f21b | TwoSegmentsInterestRateModel | ✅ | +| 0x3e5b4c627064625d | NFGv3 | ✅ | +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0xdfc20aee650fcbdf | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x8c55fba7d7090fee | Magnetiq | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 8c55fba7d7090fee.Magnetiq:1253:43
\|
1253 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`Magnetiq.Collection\` does not conform to resource interface \`NonFungibleToken.Provider\`
--\> 8c55fba7d7090fee.Magnetiq:1211:25
\|
1211 \| access(all) resource Collection: TokenCollectionPublic, NonFungibleToken.Provider, NonFungibleToken.Receiver, NonFungibleToken.Collection, ViewResolver.ResolverCollection {
\| ^
...
\|
1253 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x8c55fba7d7090fee | MagnetiqLocking | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | KaratNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 566c813b3632783e.KaratNFT:179:43
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
\|
155 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`KaratNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 566c813b3632783e.KaratNFT:154:25
\|
154 \| access(all) resource Collection: NonFungibleToken.Collection, KaratNFTCollectionPublic {
\| ^
...
\|
179 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x24650d6246d4176c | PriceOracle | ✅ | +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ✅ | +| 0x2299f74679d9c88a | A | ✅ | +| 0xc911d6ddfae70ce8 | PriceOracle | ✅ | +| 0x92362a384f409a52 | TrmMarketV2_2 | ✅ | +| 0x92362a384f409a52 | TrmRentV2_2 | ✅ | +| 0x92362a384f409a52 | TrmAssetV2_2 | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x3870b3d38f83ae4c | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x8aaca41f09eb1e3d | LendingPool | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-05-29T10-00-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-05-29T10-00-00Z-testnet.json new file mode 100644 index 0000000000..24b9655652 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-29T10-00-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0x4dfd62c88d1b6462","contract_name":"AllDay"},{"kind":"contract-update-success","account_address":"0x4dfd62c88d1b6462","contract_name":"PackNFT"},{"kind":"contract-update-failure","account_address":"0x2d0d952e760d1770","contract_name":"CricketMoments","error":"error: unexpected token: decimal integer\n --\u003e 2d0d952e760d1770.CricketMoments:1:0\n |\n1 | 2f2f20535044582d4c6963656e73652d4964656e7469666965723a20554e4c4943454e5345440a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2a2a0a0a2320437269636b65744d6f6d656e74730a0a546865206d61696e20636f6e7472616374206d616e6167696e672074686520637269636b6574206d6f6d656e74732f4e46547320637265617465642062792046617a652e0a0a232320604e465460205265736f757263650a0a45616368204e46542063726561746564207573696e67207468697320636f6e747261637420636f6e7369737473206f6620... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x2d0d952e760d1770","contract_name":"FazeUtilityCoin","error":"error: unexpected token: decimal integer\n --\u003e 2d0d952e760d1770.FazeUtilityCoin:1:0\n |\n1 | 2f2f20535044582d4c6963656e73652d4964656e7469666965723a20554e4c4943454e5345440a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e74726163742046617a655574696c697479436f696e3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468617420697320656d6974746564207768656e2074686520636f6e747261637420697320637265617465640a2020202061636365737328616c6c2920... \n | ^\n"},{"kind":"contract-update-failure","account_address":"0x8770564d92180608","contract_name":"MetadataViews","error":"error: cannot find declaration `FungibleToken` in `631e88ae7f1d7c20.FungibleToken`\n --\u003e 8770564d92180608.MetadataViews:3:7\n |\n3 | import FungibleToken from 0x631e88ae7f1d7c20\n | ^^^^^^^^^^^^^ available exported declarations are:\n\n\nerror: ambiguous intersection type\n --\u003e 8770564d92180608.MetadataViews:280:40\n |\n280 | view init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, cut: UFix64, description: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: ambiguous intersection type\n --\u003e 8770564d92180608.MetadataViews:262:46\n |\n262 | access(all) let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleConfig"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleInterface"},{"kind":"contract-update-success","account_address":"0xad26718c4b6b921b","contract_name":"BlackHole"},{"kind":"contract-update-success","account_address":"0x7745157792470296","contract_name":"LendingOracle"},{"kind":"contract-update-success","account_address":"0x2a9011074c827145","contract_name":"FungibleTokenCatalog"},{"kind":"contract-update-success","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow"},{"kind":"contract-update-success","account_address":"0xdfc20aee650fcbdf","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0xcc4e949596cf8ced","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"Staking"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0xa1296b1e2e90ca5b","contract_name":"HelloWorld"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLAdmin","error":"error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\n--\u003e b39a42479c1c2c77.AFLPack\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBadges"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnExchange"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnRegistry"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLIndex"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMarketplace","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:79:33\n |\n79 | init (vault: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:77:49\n |\n77 | access(self) let ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:259:70\n |\n259 | access(all) fun changeMarketplaceWallet(_ newCap: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:12:56\n |\n12 | access(contract) var marketplaceWallet: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:242:65\n |\n242 | access(all) fun createSaleCollection(ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e): @SaleCollection {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:64\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:33\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:119:36\n |\n119 | let saleOwnerVaultRef: \u0026FiatToken.Vault = self.ownerVault.borrow() ?? panic(\"could not borrow reference to the owner vault\")\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:126:36\n |\n126 | let marketplaceWallet: \u0026FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic(\"Couldn't borrow Vault reference\")\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMetadataHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLNFT"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLPack","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n |\n23 | access(contract) let adminRef : Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n |\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n113 | .borrow()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"PackRestrictions"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"StorageHelper"},{"kind":"contract-update-success","account_address":"0x97d2f3b55c6a6a75","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x668b91e2995c2eba","contract_name":"PrivateReceiverForwarder"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOAT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n |\n350 | access(NonFungibleToken.Owner) fun delete(id: UInt64) {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n |\n270 | self.eventsCap = getAccount(_eventHost).capabilities.get\u003c\u0026FLOATEvents\u003e(FLOAT.FLOATEventsPublicPath)\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026FLOAT.FLOATEvents\u003e`\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n |\n198 | \t\t\t\t\t\t\treceiver: getAccount(0x5643fd47a29770e7).capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(/public/flowTokenReceiver) ?? panic(\"Beneficiary does not have receiver.\"),\r\n | \t\t\t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n300 | access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\r\n | --------- mismatch here\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOATVerifiers","error":"error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:0\n |\n28 | pub contract FLOAT: NonFungibleToken, ViewResolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :38:4\n |\n38 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :48:4\n |\n48 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:8\n |\n74 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:8\n |\n75 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:8\n |\n76 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :86:8\n |\n86 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:8\n |\n87 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :98:8\n |\n98 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:8\n |\n103 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:8\n |\n104 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:8\n |\n105 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :106:8\n |\n106 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:8\n |\n108 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:8\n |\n110 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :117:51\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 4d47bf3ce5e4393f.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:38:33\n |\n38 | access(all) struct Timelock: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:66:31\n |\n66 | access(all) struct Secret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:90:32\n |\n90 | access(all) struct Limited: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:113:39\n |\n113 | access(all) struct MultipleSecret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:137:33\n |\n137 | access(all) struct SecretV2: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:162:39\n |\n162 | access(all) struct MinimumBalance: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:226:30\n |\n226 | access(all) struct Email: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:94:51\n |\n94 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:230:51\n |\n230 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"FTViewUtils"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"TokenList"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"ViewResolvers"},{"kind":"contract-update-success","account_address":"0xcbdb5a7b89c3c844","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0xc20df20fabe06457","contract_name":"SwapPair"},{"kind":"contract-update-success","account_address":"0x23031fd14bb0f21b","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0x74daa6f9c7ef24b1","contract_name":"FCLCrypto"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0xc15e75b5f6b95e54","contract_name":"LendingComptroller"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0x24650d6246d4176c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"DelegatorManager"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStaking"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingConfig"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingError"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"stFlowToken"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-failure","account_address":"0xe8124d8428980aa6","contract_name":"Bl0x","error":"error: found new field `storagePath` in `Collection`\n --\u003e e8124d8428980aa6.Bl0x:305:25\n |\n305 | access(self) var storagePath: StoragePath\n | ^^^^^^^^^^^\n\nerror: found new field `publicPath` in `Collection`\n --\u003e e8124d8428980aa6.Bl0x:306:25\n |\n306 | access(self) var publicPath: PublicPath\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KaratNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karatv2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEGAMI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-success","account_address":"0x9e324d8ae3cbd0f0","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"DropFactory"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyAddressVerifiers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyDrops"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyPricers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtySwitchers"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindAirdropper:85:32\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindAirdropper:119:32\n\n--\u003e 35717efbbce11c74.FindAirdropper\n\n--\u003e 35717efbbce11c74.NameVoucher\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:359:19\n |\n359 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:57\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:367:87\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:367:27\n |\n367 | let receiver = Admin.account.storage.borrow\u003c\u0026NameVoucher.Collection\u003e(from: NameVoucher.CollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `NameVoucher`\n --\u003e 35717efbbce11c74.Admin:368:19\n |\n368 | return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)\n | ^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Dandy"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FIND"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper","error":"error: mismatched types\n --\u003e 35717efbbce11c74.FindAirdropper:85:32\n |\n85 | flowTokenRepayment: flowTokenRepayment,\n | ^^^^^^^^^^^^^^^^^^ expected `Capability\u003c\u0026FlowToken.Vault\u003e`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindAirdropper:119:32\n |\n119 | flowTokenRepayment: flowTokenRepayment,\n | ^^^^^^^^^^^^^^^^^^ expected `Capability\u003c\u0026FlowToken.Vault\u003e`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForge"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher","error":"error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindAirdropper:85:32\n\nerror: mismatched types\n --\u003e 35717efbbce11c74.FindAirdropper:119:32\n\n--\u003e 35717efbbce11c74.FindAirdropper\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Admin"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Doodles"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Teleport"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Wearables"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0x43ee8c22fcf94ea3","contract_name":"DapperStorageRent"},{"kind":"contract-update-success","account_address":"0x8232ce4a3aff4e94","contract_name":"PublicPriceOracle"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapConfig"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapError"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapInterfaces"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Art"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Auction"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Marketplace"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Versus"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingConfig"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingError"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingInterfaces"},{"kind":"contract-update-success","account_address":"0x3870b3d38f83ae4c","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-failure","account_address":"0x8c55fba7d7090fee","contract_name":"Magnetiq","error":"error: resource `Magnetiq.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 8c55fba7d7090fee.Magnetiq:1211:25\n |\n1211 | access(all) resource Collection: TokenCollectionPublic, NonFungibleToken.Collection { \n | ^\n ... \n |\n1214 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"MagnetiqLocking"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"BUSD"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDC"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Gamisodes"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Pickem"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDT"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"wFlow"},{"kind":"contract-update-failure","account_address":"0xbd327ae7428784b5","contract_name":"FlowEVMBridgeHandlerInterfaces","error":"error: trying to convert contract interface `FlowEVMBridgeHandlerInterfaces` to a contract\n --\u003e bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21\n |\n12 | access(all) contract FlowEVMBridgeHandlerInterfaces {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x8b47f4dd22afee8d","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0x9680721e43087f43","contract_name":"DropTypes"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-success","account_address":"0x6d692450d591524c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0xdad0aaa285a25413","contract_name":"PriceOracle"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-success","account_address":"0x3b220a3372190656","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"},{"kind":"contract-update-success","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:0\n |\n40 | pub contract Market {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub resource interface SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:8\n |\n62 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :63:8\n |\n63 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:8\n |\n68 | pub fun getPrice(tokenID: UInt64): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:8\n |\n69 | pub fun getIDs(): [UInt64]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :70:8\n |\n70 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub resource SaleCollection: SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun listForSale(token: @TopShot.NFT, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:8\n |\n145 | pub fun withdraw(tokenID: UInt64): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :166:8\n |\n166 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :198:8\n |\n198 | pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :209:8\n |\n209 | pub fun changePercentage(_ newPercent: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :216:8\n |\n216 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :225:8\n |\n225 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :227:73\n |\n227 | newBeneficiaryCapability.borrow\u003c\u0026DapperUtilityCoin.Vault{FungibleToken.Receiver}\u003e() != nil:\n | ^^^^^^^^^^^^^\n\n--\u003e 547f177b243b4d80.Market\n\nerror: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:0\n |\n46 | pub contract TopShotMarketV3 {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :55:4\n |\n55 | pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :57:4\n |\n57 | pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub event MomentWithdrawn(id: UInt64, owner: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let marketStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub let marketPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :79:4\n |\n79 | pub resource SaleCollection: Market.SalePublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:8\n |\n101 | pub var cutPercentage: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :139:8\n |\n139 | pub fun listForSale(tokenID: UInt64, price: UFix64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:8\n |\n158 | pub fun cancelSale(tokenID: UInt64) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:8\n |\n196 | pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :247:8\n |\n247 | pub fun changeOwnerReceiver(_ newOwnerCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:8\n |\n259 | pub fun changeBeneficiaryReceiver(_ newBeneficiaryCapability: Capability\u003c\u0026{FungibleToken.Receiver}\u003e) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:8\n |\n272 | pub fun getPrice(tokenID: UInt64): UFix64? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :282:8\n |\n282 | pub fun getIDs(): [UInt64] {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:8\n |\n302 | pub fun borrowMoment(id: UInt64): \u0026TopShot.NFT? {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :318:4\n |\n318 | pub fun createSaleCollection(ownerCollection: Capability\u003c\u0026TopShot.Collection\u003e,\n | ^^^\n\n--\u003e 547f177b243b4d80.TopShotMarketV3\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:159:73\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:159:72\n |\n159 | access(contract) view fun getTopshotV1MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:164:73\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:164:72\n |\n164 | access(contract) view fun getTopshotV3MarketRef(address: Address): \u0026{Market.SalePublic}? {\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:301:25\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:301:24\n |\n301 | topShotMarket: \u0026{Market.SalePublic},\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:161:35\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:161:34\n |\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:160:15\n |\n160 | return getAccount(address)\n161 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(/public/topshotSaleCollection)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:35\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:166:34\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `TopShotMarketV3`\n --\u003e c7c122b5b811de8e.BulkPurchase:166:55\n |\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e c7c122b5b811de8e.BulkPurchase:165:15\n |\n165 | return getAccount(address)\n166 | .capabilities.borrow\u003c\u0026{Market.SalePublic}\u003e(TopShotMarketV3.marketPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:354:45\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:354:44\n |\n354 | let topShotV1MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Market`\n --\u003e c7c122b5b811de8e.BulkPurchase:355:45\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e c7c122b5b811de8e.BulkPurchase:355:44\n |\n355 | let topShotV3MarketRefs: {Address: \u0026{Market.SalePublic}} = {}\n | ^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS"},{"kind":"contract-update-failure","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d704ee8202a0d82d.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e d704ee8202a0d82d.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d704ee8202a0d82d.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"A","error":"error: cannot find declaration `B` in `250e0b90c1b7711b.B`\n --\u003e 250e0b90c1b7711b.A:1:7\n |\n1 | import B from 0x250e0b90c1b7711b\n | ^ available exported declarations are:\n - `Bad`\n\n"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Bar"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"F"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Foo"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"L"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"O"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"W","error":"error: mismatching field `foo` in `W`\n --\u003e 250e0b90c1b7711b.W:3:25\n |\n3 | access(all) let foo: String\n | ^^^^^^ incompatible type annotations. expected `Int`, found `String`\n"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"StableSwapFactory"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"SwapFactory"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x2299f74679d9c88a","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x628992a07cb07272","contract_name":"MatrixWorldVoucher"},{"kind":"contract-update-failure","account_address":"0xab2d22248a619d77","contract_name":"MetadataViews","error":"error: missing DeclarationKindResourceInterface declaration `Resolver`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n\nerror: missing DeclarationKindResourceInterface declaration `ResolverCollection`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV2_0"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-success","account_address":"0xc911d6ddfae70ce8","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-failure","account_address":"0xe3faea00c5bb8d7d","contract_name":"MetadataViews","error":"error: cannot find declaration `FungibleToken` in `631e88ae7f1d7c20.FungibleToken`\n --\u003e e3faea00c5bb8d7d.MetadataViews:3:7\n |\n3 | import FungibleToken from 0x631e88ae7f1d7c20\n | ^^^^^^^^^^^^^ available exported declarations are:\n\n\nerror: ambiguous intersection type\n --\u003e e3faea00c5bb8d7d.MetadataViews:280:40\n |\n280 | view init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, cut: UFix64, description: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: ambiguous intersection type\n --\u003e e3faea00c5bb8d7d.MetadataViews:262:46\n |\n262 | access(all) let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmRentV2_2"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x2d766f00eb1d0c37","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLAdmin"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLClub"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPack"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPackTemplate"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPlayer"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLViews"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"ETHUtils"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"EVMAgent"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLottery"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryRegistry"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameRugRoyale"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20AccountsPool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Agents"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Converter"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FTShared"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Indexer"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20MarketManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Marketplace"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20NFTWrapper"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20SemiNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Staking"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingForwarder"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingVesting"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Storefront"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20TradingRecord"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20VoteCommands"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Votes"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"Fixes"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAssetMeta"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAvatar"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesBondingCurve"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleTokenInterface"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesHeartbeat"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesInscriptionFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenAirDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenLockDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTradablePool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTraits"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesWrappedNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FungibleTokenManager"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"LNVCT"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"NFL"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"Stanz"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory"},{"kind":"contract-update-success","account_address":"0x2f8af5ed05bbde0d","contract_name":"SwapRouter"},{"kind":"contract-update-success","account_address":"0x2ceae959ed1a7e7a","contract_name":"MigrationContractStaging"},{"kind":"contract-update-success","account_address":"0xd9c02cdacccb25ab","contract_name":"FlowtyTestNFT"},{"kind":"contract-update-success","account_address":"0x8aaca41f09eb1e3d","contract_name":"LendingPool"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-05-29T10-00-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-05-29T10-00-00Z-testnet.md new file mode 100644 index 0000000000..73873dac1b --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-05-29T10-00-00Z-testnet.md @@ -0,0 +1,392 @@ +## Cadence 1.0 staged contracts migration results report +Report date: 30 May, 2024 + +> [!CAUTION] +> **IMPORTANT SECURITY NOTICE** +> +> Some staged contracts might be insecure due to incorrect access modifiers usage. +> Please make sure you have carefully reviewed and understood the section of [Cadence Migration Guide on Access Modifiers](https://cadence-lang.org/docs/cadence-migration-guide/nft-guide#update-all-pub-access-modfiers) + +* Stats: 369 contracts staged, 339 successfully upgraded, 30 failed to upgrade +* Testnet State Snapshot: devnet50-execution-snapshot-for-migration-9-may-29 +* Flow-go build: v0.35.10-crescendo-preview.25-atree-inlining + +> [!NOTE] +> Developers can use Crescendo migration environment to test your migrated dapp! We notify the community in [Discord Developer UPdates channel](https://discord.com/channels/613813861610684416/811693600403357706) when the environment is available for testing after migration. The Access node endpoint for the migration environment is: `access-001.migrationtestnet1.nodes.onflow.org:9000`. + +**Useful Tools / Links** +* [View contracts staged on Testnet](https://f.dnz.dev/0x2ceae959ed1a7e7a/) +* [Great community tool to view up-to-date staging status](https://staging.dnz.dev/) + +### Migration Report +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0x34f3140b7f54c743 | CricketMoments | ✅ | +| 0x34f3140b7f54c743 | FazeUtilityCoin | ✅ | +| 0x6b7930acbcd12877 | Cryptoys | ✅ | +| 0x6b7930acbcd12877 | CryptoysMetadataView2 | ✅ | +| 0x6b7930acbcd12877 | ICryptoys | ✅ | +| 0x4dfd62c88d1b6462 | AllDay | ✅ | +| 0x4dfd62c88d1b6462 | PackNFT | ✅ | +| 0x2d0d952e760d1770 | CricketMoments | ❌

Error:
error: unexpected token: decimal integer
--\> 2d0d952e760d1770.CricketMoments:1:0
\|
1 \| 2f2f20535044582d4c6963656e73652d4964656e7469666965723a20554e4c4943454e5345440a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2a2a0a0a2320437269636b65744d6f6d656e74730a0a546865206d61696e20636f6e7472616374206d616e6167696e672074686520637269636b6574206d6f6d656e74732f4e46547320637265617465642062792046617a652e0a0a232320604e465460205265736f757263650a0a45616368204e46542063726561746564207573696e67207468697320636f6e747261637420636f6e7369737473206f6620...
\| ^
| +| 0x2d0d952e760d1770 | FazeUtilityCoin | ❌

Error:
error: unexpected token: decimal integer
--\> 2d0d952e760d1770.FazeUtilityCoin:1:0
\|
1 \| 2f2f20535044582d4c6963656e73652d4964656e7469666965723a20554e4c4943454e5345440a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a0a61636365737328616c6c2920636f6e74726163742046617a655574696c697479436f696e3a2046756e6769626c65546f6b656e207b0a202020202f2f20546f6b656e73496e697469616c697a65640a202020202f2f0a202020202f2f20546865206576656e74207468617420697320656d6974746564207768656e2074686520636f6e747261637420697320637265617465640a2020202061636365737328616c6c2920...
\| ^
| +| 0x8770564d92180608 | MetadataViews | ❌

Error:
error: cannot find declaration \`FungibleToken\` in \`631e88ae7f1d7c20.FungibleToken\`
--\> 8770564d92180608.MetadataViews:3:7
\|
3 \| import FungibleToken from 0x631e88ae7f1d7c20
\| ^^^^^^^^^^^^^ available exported declarations are:


error: ambiguous intersection type
--\> 8770564d92180608.MetadataViews:280:40
\|
280 \| view init(receiver: Capability<&{FungibleToken.Receiver}>, cut: UFix64, description: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^

error: ambiguous intersection type
--\> 8770564d92180608.MetadataViews:262:46
\|
262 \| access(all) let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x8770564d92180608 | TrmAssetV2_2 | ✅ | +| 0x8770564d92180608 | TrmMarketV2_2 | ✅ | +| 0x8770564d92180608 | TrmRentV2_2 | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleConfig | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleInterface | ✅ | +| 0xad26718c4b6b921b | BlackHole | ✅ | +| 0x7745157792470296 | LendingOracle | ✅ | +| 0x2a9011074c827145 | FungibleTokenCatalog | ✅ | +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ✅ | +| 0xdfc20aee650fcbdf | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xcc4e949596cf8ced | TwoSegmentsInterestRateModel | ✅ | +| 0x26a1e94319e81a3c | Staking | ✅ | +| 0x26a1e94319e81a3c | StakingError | ✅ | +| 0xa1296b1e2e90ca5b | HelloWorld | ✅ | +| 0xb39a42479c1c2c77 | AFLAdmin | ❌

Error:
error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

--\> b39a42479c1c2c77.AFLPack
| +| 0xb39a42479c1c2c77 | AFLBadges | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnExchange | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnRegistry | ✅ | +| 0xb39a42479c1c2c77 | AFLIndex | ✅ | +| 0xb39a42479c1c2c77 | AFLMarketplace | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:79:33
\|
79 \| init (vault: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:77:49
\|
77 \| access(self) let ownerVault: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:259:70
\|
259 \| access(all) fun changeMarketplaceWallet(\_ newCap: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:12:56
\|
12 \| access(contract) var marketplaceWallet: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:242:65
\|
242 \| access(all) fun createSaleCollection(ownerVault: Capability<&FiatToken.Vault>): @SaleCollection {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:277:64
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLMarketplace:277:33
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:119:36
\|
119 \| let saleOwnerVaultRef: &FiatToken.Vault = self.ownerVault.borrow() ?? panic("could not borrow reference to the owner vault")
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:126:36
\|
126 \| let marketplaceWallet: &FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic("Couldn't borrow Vault reference")
\| ^^^^^^^^^ not found in this scope
| +| 0xb39a42479c1c2c77 | AFLMetadataHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLNFT | ✅ | +| 0xb39a42479c1c2c77 | AFLPack | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48
\|
23 \| access(contract) let adminRef : Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35
\|
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
113 \| .borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xb39a42479c1c2c77 | PackRestrictions | ✅ | +| 0xb39a42479c1c2c77 | StorageHelper | ✅ | +| 0x97d2f3b55c6a6a75 | LendingPool | ✅ | +| 0x668b91e2995c2eba | PrivateReceiverForwarder | ✅ | +| 0x857dc34d5e1631d3 | FLOAT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15
\|
350 \| access(NonFungibleToken.Owner) fun delete(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29
\|
270 \| self.eventsCap = getAccount(\_eventHost).capabilities.get<&FLOATEvents>(FLOAT.FLOATEventsPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&FLOAT.FLOATEvents>\`

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17
\|
198 \| receiver: getAccount(0x5643fd47a29770e7).capabilities.get<&{FungibleToken.Receiver}>(/public/flowTokenReceiver) ?? panic("Beneficiary does not have receiver."),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
300 \| access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x857dc34d5e1631d3 | FLOATVerifiers | ❌

Error:
error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :28:0
\|
28 \| pub contract FLOAT: NonFungibleToken, ViewResolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :38:4
\|
38 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :48:4
\|
48 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:8
\|
74 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:8
\|
75 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:8
\|
76 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :86:8
\|
86 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:8
\|
87 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :98:8
\|
98 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:8
\|
103 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:8
\|
104 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:8
\|
105 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :106:8
\|
106 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:8
\|
108 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:8
\|
110 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :117:51
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 4d47bf3ce5e4393f.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:38:33
\|
38 \| access(all) struct Timelock: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:66:31
\|
66 \| access(all) struct Secret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:90:32
\|
90 \| access(all) struct Limited: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:113:39
\|
113 \| access(all) struct MultipleSecret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:137:33
\|
137 \| access(all) struct SecretV2: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:162:39
\|
162 \| access(all) struct MinimumBalance: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:226:30
\|
226 \| access(all) struct Email: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:94:51
\|
94 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:230:51
\|
230 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope
| +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | NFGv3 | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0xb86f928a1fa7798e | FTViewUtils | ✅ | +| 0xb86f928a1fa7798e | TokenList | ✅ | +| 0xb86f928a1fa7798e | ViewResolvers | ✅ | +| 0xcbdb5a7b89c3c844 | PriceOracle | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0xc20df20fabe06457 | SwapPair | ✅ | +| 0x23031fd14bb0f21b | TwoSegmentsInterestRateModel | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0x74daa6f9c7ef24b1 | FCLCrypto | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xc15e75b5f6b95e54 | LendingComptroller | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0x877931736ee77cff | TopShot | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0x24650d6246d4176c | PriceOracle | ✅ | +| 0xe45c64ecfe31e465 | DelegatorManager | ✅ | +| 0xe45c64ecfe31e465 | LiquidStaking | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingConfig | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingError | ✅ | +| 0xe45c64ecfe31e465 | stFlowToken | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0xe8124d8428980aa6 | Bl0x | ❌

Error:
error: found new field \`storagePath\` in \`Collection\`
--\> e8124d8428980aa6.Bl0x:305:25
\|
305 \| access(self) var storagePath: StoragePath
\| ^^^^^^^^^^^

error: found new field \`publicPath\` in \`Collection\`
--\> e8124d8428980aa6.Bl0x:306:25
\|
306 \| access(self) var publicPath: PublicPath
\| ^^^^^^^^^^
| +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | ExampleNFT | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | KaratNFT | ✅ | +| 0x566c813b3632783e | Karatv2 | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | MEGAMI | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ✅ | +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0x9e324d8ae3cbd0f0 | LendingPool | ✅ | +| 0x06f1e5cde6db0e70 | DropFactory | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyAddressVerifiers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyDrops | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyPricers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtySwitchers | ✅ | +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: error getting program 35717efbbce11c74.NameVoucher: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindAirdropper:85:32

error: mismatched types
--\> 35717efbbce11c74.FindAirdropper:119:32

--\> 35717efbbce11c74.FindAirdropper

--\> 35717efbbce11c74.NameVoucher

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:359:19
\|
359 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:57
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:367:87
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:367:27
\|
367 \| let receiver = Admin.account.storage.borrow<&NameVoucher.Collection>(from: NameVoucher.CollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`NameVoucher\`
--\> 35717efbbce11c74.Admin:368:19
\|
368 \| return NameVoucher.mintNFT(recipient: receiver, minCharLength: minCharLength)
\| ^^^^^^^^^^^ not found in this scope
| +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | Dandy | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FIND | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ❌

Error:
error: mismatched types
--\> 35717efbbce11c74.FindAirdropper:85:32
\|
85 \| flowTokenRepayment: flowTokenRepayment,
\| ^^^^^^^^^^^^^^^^^^ expected \`Capability<&FlowToken.Vault>\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: mismatched types
--\> 35717efbbce11c74.FindAirdropper:119:32
\|
119 \| flowTokenRepayment: flowTokenRepayment,
\| ^^^^^^^^^^^^^^^^^^ expected \`Capability<&FlowToken.Vault>\`, got \`Capability<&{FungibleToken.Receiver}>\`
| +| 0x35717efbbce11c74 | FindForge | ✅ | +| 0x35717efbbce11c74 | FindForgeOrder | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketSale | ✅ | +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ✅ | +| 0x35717efbbce11c74 | FindMarket | ✅ | +| 0x35717efbbce11c74 | FindMarketAdmin | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindMarketSale | ✅ | +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ✅ | +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | NameVoucher | ❌

Error:
error: error getting program 35717efbbce11c74.FindAirdropper: failed to derive value: load program failed: Checking failed:
error: mismatched types
--\> 35717efbbce11c74.FindAirdropper:85:32

error: mismatched types
--\> 35717efbbce11c74.FindAirdropper:119:32

--\> 35717efbbce11c74.FindAirdropper
| +| 0x35717efbbce11c74 | Profile | ✅ | +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x1c5033ad60821c97 | Admin | ✅ | +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ✅ | +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | DoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Doodles | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | OpenDoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ✅ | +| 0x1c5033ad60821c97 | Teleport | ✅ | +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Wearables | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x43ee8c22fcf94ea3 | DapperStorageRent | ✅ | +| 0x8232ce4a3aff4e94 | PublicPriceOracle | ✅ | +| 0xddb929038d45d4b3 | SwapConfig | ✅ | +| 0xddb929038d45d4b3 | SwapError | ✅ | +| 0xddb929038d45d4b3 | SwapInterfaces | ✅ | +| 0xb45e7992680a0f7f | CricketMoments | ✅ | +| 0xb45e7992680a0f7f | FazeUtilityCoin | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0x8bc9e24c307d249b | LendingConfig | ✅ | +| 0x8bc9e24c307d249b | LendingError | ✅ | +| 0x8bc9e24c307d249b | LendingInterfaces | ✅ | +| 0x3870b3d38f83ae4c | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0x8c55fba7d7090fee | Magnetiq | ❌

Error:
error: resource \`Magnetiq.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 8c55fba7d7090fee.Magnetiq:1211:25
\|
1211 \| access(all) resource Collection: TokenCollectionPublic, NonFungibleToken.Collection {
\| ^
...
\|
1214 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here
| +| 0x8c55fba7d7090fee | MagnetiqLocking | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0x92362a384f409a52 | TrmAssetV2_2 | ✅ | +| 0x92362a384f409a52 | TrmMarketV2_2 | ✅ | +| 0x92362a384f409a52 | TrmRentV2_2 | ✅ | +| 0xf9dad0d4c14a92b5 | BUSD | ✅ | +| 0xf9dad0d4c14a92b5 | USDC | ✅ | +| 0x985d410b577fd4a1 | Gamisodes | ✅ | +| 0x985d410b577fd4a1 | Pickem | ✅ | +| 0xf9dad0d4c14a92b5 | USDT | ✅ | +| 0xf9dad0d4c14a92b5 | wFlow | ✅ | +| 0xbd327ae7428784b5 | FlowEVMBridgeHandlerInterfaces | ❌

Error:
error: trying to convert contract interface \`FlowEVMBridgeHandlerInterfaces\` to a contract
--\> bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21
\|
12 \| access(all) contract FlowEVMBridgeHandlerInterfaces {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x8b47f4dd22afee8d | TrmAssetMSV1_0 | ✅ | +| 0x9680721e43087f43 | DropTypes | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0x6d692450d591524c | PriceOracle | ✅ | +| 0xdad0aaa285a25413 | PriceOracle | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x917db7072ed7160b | Cryptoys | ✅ | +| 0x917db7072ed7160b | CryptoysMetadataView2 | ✅ | +| 0x917db7072ed7160b | ICryptoys | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0x3b220a3372190656 | PriceOracle | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: error getting program 547f177b243b4d80.Market: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :40:0
\|
40 \| pub contract Market {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event CutPercentageChanged(newPercent: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub resource interface SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:8
\|
62 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :63:8
\|
63 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:8
\|
68 \| pub fun getPrice(tokenID: UInt64): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:8
\|
69 \| pub fun getIDs(): \$&UInt64\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :70:8
\|
70 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub resource SaleCollection: SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun listForSale(token: @TopShot.NFT, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:8
\|
145 \| pub fun withdraw(tokenID: UInt64): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :166:8
\|
166 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :198:8
\|
198 \| pub fun changePrice(tokenID: UInt64, newPrice: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :209:8
\|
209 \| pub fun changePercentage(\_ newPercent: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :216:8
\|
216 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :225:8
\|
225 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :227:73
\|
227 \| newBeneficiaryCapability.borrow<&DapperUtilityCoin.Vault{FungibleToken.Receiver}>() != nil:
\| ^^^^^^^^^^^^^

--\> 547f177b243b4d80.Market

error: error getting program 547f177b243b4d80.TopShotMarketV3: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :46:0
\|
46 \| pub contract TopShotMarketV3 {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event MomentListed(id: UInt64, price: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :55:4
\|
55 \| pub event MomentPriceChanged(id: UInt64, newPrice: UFix64, seller: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :57:4
\|
57 \| pub event MomentPurchased(id: UInt64, price: UFix64, seller: Address?, momentName: String, momentDescription: String, momentThumbnailURL: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub event MomentWithdrawn(id: UInt64, owner: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let marketStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub let marketPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :79:4
\|
79 \| pub resource SaleCollection: Market.SalePublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:8
\|
101 \| pub var cutPercentage: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :139:8
\|
139 \| pub fun listForSale(tokenID: UInt64, price: UFix64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:8
\|
158 \| pub fun cancelSale(tokenID: UInt64) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:8
\|
196 \| pub fun purchase(tokenID: UInt64, buyTokens: @DapperUtilityCoin.Vault): @TopShot.NFT {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :247:8
\|
247 \| pub fun changeOwnerReceiver(\_ newOwnerCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:8
\|
259 \| pub fun changeBeneficiaryReceiver(\_ newBeneficiaryCapability: Capability<&{FungibleToken.Receiver}>) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:8
\|
272 \| pub fun getPrice(tokenID: UInt64): UFix64? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :282:8
\|
282 \| pub fun getIDs(): \$&UInt64\$& {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:8
\|
302 \| pub fun borrowMoment(id: UInt64): &TopShot.NFT? {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :318:4
\|
318 \| pub fun createSaleCollection(ownerCollection: Capability<&TopShot.Collection>,
\| ^^^

--\> 547f177b243b4d80.TopShotMarketV3

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:159:73
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:159:72
\|
159 \| access(contract) view fun getTopshotV1MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:164:73
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:164:72
\|
164 \| access(contract) view fun getTopshotV3MarketRef(address: Address): &{Market.SalePublic}? {
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:301:25
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:301:24
\|
301 \| topShotMarket: &{Market.SalePublic},
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:161:35
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:161:34
\|
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:160:15
\|
160 \| return getAccount(address)
161 \| .capabilities.borrow<&{Market.SalePublic}>(/public/topshotSaleCollection)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:166:35
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:166:34
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`TopShotMarketV3\`
--\> c7c122b5b811de8e.BulkPurchase:166:55
\|
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> c7c122b5b811de8e.BulkPurchase:165:15
\|
165 \| return getAccount(address)
166 \| .capabilities.borrow<&{Market.SalePublic}>(TopShotMarketV3.marketPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:354:45
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:354:44
\|
354 \| let topShotV1MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Market\`
--\> c7c122b5b811de8e.BulkPurchase:355:45
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^ not found in this scope

error: ambiguous intersection type
--\> c7c122b5b811de8e.BulkPurchase:355:44
\|
355 \| let topShotV3MarketRefs: {Address: &{Market.SalePublic}} = {}
\| ^^^^^^^^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePass | ✅ | +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySale | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowverseShirt | ✅ | +| 0xc7c122b5b811de8e | FlowverseSocks | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasures | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | Ordinal | ✅ | +| 0xc7c122b5b811de8e | OrdinalVendor | ✅ | +| 0xc7c122b5b811de8e | Royalties | ✅ | +| 0xef4cd3d07a7b43ce | IPackNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d704ee8202a0d82d.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> d704ee8202a0d82d.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d704ee8202a0d82d.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x250e0b90c1b7711b | A | ❌

Error:
error: cannot find declaration \`B\` in \`250e0b90c1b7711b.B\`
--\> 250e0b90c1b7711b.A:1:7
\|
1 \| import B from 0x250e0b90c1b7711b
\| ^ available exported declarations are:
\- \`Bad\`

| +| 0x250e0b90c1b7711b | B | ✅ | +| 0x250e0b90c1b7711b | Bar | ✅ | +| 0x250e0b90c1b7711b | F | ✅ | +| 0x250e0b90c1b7711b | Foo | ✅ | +| 0x250e0b90c1b7711b | L | ✅ | +| 0x250e0b90c1b7711b | O | ✅ | +| 0x250e0b90c1b7711b | W | ❌

Error:
error: mismatching field \`foo\` in \`W\`
--\> 250e0b90c1b7711b.W:3:25
\|
3 \| access(all) let foo: String
\| ^^^^^^ incompatible type annotations. expected \`Int\`, found \`String\`
| +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0xcbed4c301441ded2 | StableSwapFactory | ✅ | +| 0xcbed4c301441ded2 | SwapFactory | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x2299f74679d9c88a | A | ✅ | +| 0x628992a07cb07272 | MatrixWorldVoucher | ✅ | +| 0xab2d22248a619d77 | MetadataViews | ❌

Error:
error: missing DeclarationKindResourceInterface declaration \`Resolver\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^

error: missing DeclarationKindResourceInterface declaration \`ResolverCollection\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^
| +| 0xab2d22248a619d77 | TrmAssetMSV1_0 | ✅ | +| 0xab2d22248a619d77 | TrmAssetMSV2_0 | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0xc911d6ddfae70ce8 | PriceOracle | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0xe3faea00c5bb8d7d | MetadataViews | ❌

Error:
error: cannot find declaration \`FungibleToken\` in \`631e88ae7f1d7c20.FungibleToken\`
--\> e3faea00c5bb8d7d.MetadataViews:3:7
\|
3 \| import FungibleToken from 0x631e88ae7f1d7c20
\| ^^^^^^^^^^^^^ available exported declarations are:


error: ambiguous intersection type
--\> e3faea00c5bb8d7d.MetadataViews:280:40
\|
280 \| view init(receiver: Capability<&{FungibleToken.Receiver}>, cut: UFix64, description: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^

error: ambiguous intersection type
--\> e3faea00c5bb8d7d.MetadataViews:262:46
\|
262 \| access(all) let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xe3faea00c5bb8d7d | TrmAssetV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmMarketV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmRentV2_2 | ✅ | +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x2d766f00eb1d0c37 | PriceOracle | ✅ | +| 0x683564e46977788a | MFLAdmin | ✅ | +| 0x683564e46977788a | MFLClub | ✅ | +| 0x683564e46977788a | MFLPack | ✅ | +| 0x683564e46977788a | MFLPackTemplate | ✅ | +| 0x683564e46977788a | MFLPlayer | ✅ | +| 0x683564e46977788a | MFLViews | ✅ | +| 0x44ef9309713e2061 | StakingError | ✅ | +| 0x44ef9309713e2061 | StakingNFT | ✅ | +| 0x74ad08095d92192a | ETHUtils | ✅ | +| 0x74ad08095d92192a | EVMAgent | ✅ | +| 0x74ad08095d92192a | FGameLottery | ✅ | +| 0x74ad08095d92192a | FGameLotteryFactory | ✅ | +| 0x74ad08095d92192a | FGameLotteryRegistry | ✅ | +| 0x74ad08095d92192a | FGameRugRoyale | ✅ | +| 0x74ad08095d92192a | FRC20AccountsPool | ✅ | +| 0x74ad08095d92192a | FRC20Agents | ✅ | +| 0x74ad08095d92192a | FRC20Converter | ✅ | +| 0x74ad08095d92192a | FRC20FTShared | ✅ | +| 0x74ad08095d92192a | FRC20FungibleToken | ✅ | +| 0x74ad08095d92192a | FRC20Indexer | ✅ | +| 0x74ad08095d92192a | FRC20MarketManager | ✅ | +| 0x74ad08095d92192a | FRC20Marketplace | ✅ | +| 0x74ad08095d92192a | FRC20NFTWrapper | ✅ | +| 0x74ad08095d92192a | FRC20SemiNFT | ✅ | +| 0x74ad08095d92192a | FRC20Staking | ✅ | +| 0x74ad08095d92192a | FRC20StakingForwarder | ✅ | +| 0x74ad08095d92192a | FRC20StakingManager | ✅ | +| 0x74ad08095d92192a | FRC20StakingVesting | ✅ | +| 0x74ad08095d92192a | FRC20Storefront | ✅ | +| 0x74ad08095d92192a | FRC20TradingRecord | ✅ | +| 0x74ad08095d92192a | FRC20VoteCommands | ✅ | +| 0x74ad08095d92192a | FRC20Votes | ✅ | +| 0x74ad08095d92192a | Fixes | ✅ | +| 0x74ad08095d92192a | FixesAssetMeta | ✅ | +| 0x74ad08095d92192a | FixesAvatar | ✅ | +| 0x74ad08095d92192a | FixesBondingCurve | ✅ | +| 0x74ad08095d92192a | FixesFungibleToken | ✅ | +| 0x74ad08095d92192a | FixesFungibleTokenInterface | ✅ | +| 0x74ad08095d92192a | FixesHeartbeat | ✅ | +| 0x74ad08095d92192a | FixesInscriptionFactory | ✅ | +| 0x74ad08095d92192a | FixesTokenAirDrops | ✅ | +| 0x74ad08095d92192a | FixesTokenLockDrops | ✅ | +| 0x74ad08095d92192a | FixesTradablePool | ✅ | +| 0x74ad08095d92192a | FixesTraits | ✅ | +| 0x74ad08095d92192a | FixesWrappedNFT | ✅ | +| 0x74ad08095d92192a | FungibleTokenManager | ✅ | +| 0x3a52faafb43951c0 | LNVCT | ✅ | +| 0x3a52faafb43951c0 | NFL | ✅ | +| 0x3a52faafb43951c0 | Stanz | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 0x2f8af5ed05bbde0d | SwapRouter | ✅ | +| 0x2ceae959ed1a7e7a | MigrationContractStaging | ✅ | +| 0xd9c02cdacccb25ab | FlowtyTestNFT | ✅ | +| 0x8aaca41f09eb1e3d | LendingPool | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-06-05T10-00-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-06-05T10-00-00Z-testnet.json new file mode 100644 index 0000000000..8df2739f46 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-06-05T10-00-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-success","account_address":"0x4dfd62c88d1b6462","contract_name":"AllDay"},{"kind":"contract-update-success","account_address":"0x4dfd62c88d1b6462","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0x6b2e1b9d3c5ac5db","contract_name":"ValueLink_NFTMarketplace_v1"},{"kind":"contract-update-success","account_address":"0x6b2e1b9d3c5ac5db","contract_name":"ValueLink_NFT_v1"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleConfig"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleInterface"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"A","error":"error: cannot find declaration `B` in `250e0b90c1b7711b.B`\n --\u003e 250e0b90c1b7711b.A:1:7\n |\n1 | import B from 0x250e0b90c1b7711b\n | ^ available exported declarations are:\n - `Bad`\n\n"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Bar"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"F"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Foo"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"L"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"O"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"W","error":"error: mismatching field `foo` in `W`\n --\u003e 250e0b90c1b7711b.W:3:25\n |\n3 | access(all) let foo: String\n | ^^^^^^ incompatible type annotations. expected `Int`, found `String`\n"},{"kind":"contract-update-success","account_address":"0xdad0aaa285a25413","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x2ceae959ed1a7e7a","contract_name":"MigrationContractStaging"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"DropFactory"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyAddressVerifiers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyDrops"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyPricers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtySwitchers"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"DapperOffersV2"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"OffersV2"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"Resolver"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"StableSwapFactory"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"SwapFactory"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Art"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Auction"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Marketplace"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Versus"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0x723a1b50e1d67e8e","contract_name":"TuneGONFT"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"BUSD"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDC"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDT"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"wFlow"},{"kind":"contract-update-success","account_address":"0x7745157792470296","contract_name":"LendingOracle"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageCard"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageCardV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePM"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePMV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePack"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePackV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageTokenV2"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TicalUniverse"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TuneGO"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TuneGONFTV5"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingConfig"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingError"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingInterfaces"},{"kind":"contract-update-success","account_address":"0x628992a07cb07272","contract_name":"MatrixWorldVoucher"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLAdmin"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLClub"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPack"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPackTemplate"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPlayer"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLViews"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: missing structure declaration `Order`\n --\u003e c7c122b5b811de8e.BulkPurchase:20:21\n |\n20 | access(all) contract BulkPurchase {\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:78:17\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:78:12\n |\n78 | Type\u003cFindPack.PackRevealData\u003e(), \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:138:22\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.Flomies:138:17\n |\n138 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.Flomies:144:23\n |\n144 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:41:29\n |\n41 | royaltiesInput: [FindPack.Royalty],\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:31:41\n |\n31 | access(all) let royaltiesInput: [FindPack.Royalty]\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:17\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:118:12\n |\n118 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:22\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:128:17\n |\n128 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.GeneratedExperiences:134:23\n |\n134 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:17\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:77:12\n |\n77 | Type\u003cFindPack.PackRevealData\u003e()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:22\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 3e5b4c627064625d.PartyFavorz:86:17\n |\n86 | case Type\u003cFindPack.PackRevealData\u003e():\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 3e5b4c627064625d.PartyFavorz:92:23\n |\n92 | return FindPack.PackRevealData(data)\n | ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-success","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow"},{"kind":"contract-update-success","account_address":"0xc20df20fabe06457","contract_name":"SwapPair"},{"kind":"contract-update-success","account_address":"0x24650d6246d4176c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOAT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n |\n350 | access(NonFungibleToken.Owner) fun delete(id: UInt64) {\r\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n |\n270 | self.eventsCap = getAccount(_eventHost).capabilities.get\u003c\u0026FLOATEvents\u003e(FLOAT.FLOATEventsPublicPath)\r\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026FLOAT.FLOATEvents\u003e`\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n |\n198 | \t\t\t\t\t\t\treceiver: getAccount(0x5643fd47a29770e7).capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(/public/flowTokenReceiver) ?? panic(\"Beneficiary does not have receiver.\"),\r\n | \t\t\t\t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `optional`, got `Capability\u003c\u0026{FungibleToken.Receiver}\u003e`\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n300 | access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\r\n | --------- mismatch here\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n |\n298 | access(all) resource Collection: NonFungibleToken.Collection {\r\n | ^\n ... \n |\n326 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\r\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOATVerifiers","error":"error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:0\n |\n28 | pub contract FLOAT: NonFungibleToken, ViewResolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :38:4\n |\n38 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :48:4\n |\n48 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:8\n |\n74 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:8\n |\n75 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:8\n |\n76 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :86:8\n |\n86 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:8\n |\n87 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :98:8\n |\n98 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:8\n |\n103 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:8\n |\n104 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:8\n |\n105 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :106:8\n |\n106 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:8\n |\n108 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:8\n |\n110 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :117:51\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 4d47bf3ce5e4393f.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:38:33\n |\n38 | access(all) struct Timelock: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:66:31\n |\n66 | access(all) struct Secret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:90:32\n |\n90 | access(all) struct Limited: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:113:39\n |\n113 | access(all) struct MultipleSecret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:137:33\n |\n137 | access(all) struct SecretV2: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:162:39\n |\n162 | access(all) struct MinimumBalance: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:226:30\n |\n226 | access(all) struct Email: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:94:51\n |\n94 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:230:51\n |\n230 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x4ed4b8e5cd0dd15e","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x74daa6f9c7ef24b1","contract_name":"FCLCrypto"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"FTViewUtils"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"TokenList"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"ViewResolvers"},{"kind":"contract-update-failure","account_address":"0xe3faea00c5bb8d7d","contract_name":"MetadataViews","error":"error: cannot find declaration `FungibleToken` in `631e88ae7f1d7c20.FungibleToken`\n --\u003e e3faea00c5bb8d7d.MetadataViews:3:7\n |\n3 | import FungibleToken from 0x631e88ae7f1d7c20\n | ^^^^^^^^^^^^^ available exported declarations are:\n\n\nerror: ambiguous intersection type\n --\u003e e3faea00c5bb8d7d.MetadataViews:280:40\n |\n280 | view init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, cut: UFix64, description: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: ambiguous intersection type\n --\u003e e3faea00c5bb8d7d.MetadataViews:262:46\n |\n262 | access(all) let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-success","account_address":"0x2a9011074c827145","contract_name":"FungibleTokenCatalog"},{"kind":"contract-update-success","account_address":"0xcbdb5a7b89c3c844","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x2299f74679d9c88a","contract_name":"A"},{"kind":"contract-update-success","account_address":"0xad26718c4b6b921b","contract_name":"BlackHole"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x97d2f3b55c6a6a75","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"Magnetiq"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"MagnetiqLocking"},{"kind":"contract-update-success","account_address":"0x9e324d8ae3cbd0f0","contract_name":"LendingPool"},{"kind":"contract-update-failure","account_address":"0xab2d22248a619d77","contract_name":"MetadataViews","error":"error: missing resource interface declaration `Resolver`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n\nerror: missing resource interface declaration `ResolverCollection`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV2_0"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLAdmin","error":"error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\n--\u003e b39a42479c1c2c77.AFLPack\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBadges"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnExchange"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnRegistry"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLIndex"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMarketplace","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:79:33\n |\n79 | init (vault: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:77:49\n |\n77 | access(self) let ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:259:70\n |\n259 | access(all) fun changeMarketplaceWallet(_ newCap: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:12:56\n |\n12 | access(contract) var marketplaceWallet: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:242:65\n |\n242 | access(all) fun createSaleCollection(ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e): @SaleCollection {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:64\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:33\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:119:36\n |\n119 | let saleOwnerVaultRef: \u0026FiatToken.Vault = self.ownerVault.borrow() ?? panic(\"could not borrow reference to the owner vault\")\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:126:36\n |\n126 | let marketplaceWallet: \u0026FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic(\"Couldn't borrow Vault reference\")\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMetadataHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLNFT"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLPack","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n |\n23 | access(contract) let adminRef : Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n |\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n113 | .borrow()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"PackRestrictions"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"StorageHelper"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x668b91e2995c2eba","contract_name":"PrivateReceiverForwarder"},{"kind":"contract-update-failure","account_address":"0x8b47f4dd22afee8d","contract_name":"MetadataViews","error":"error: missing resource interface declaration `Resolver`\n --\u003e 8b47f4dd22afee8d.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n\nerror: missing resource interface declaration `ResolverCollection`\n --\u003e 8b47f4dd22afee8d.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x8b47f4dd22afee8d","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0x08b1f9c0bc04f36f","contract_name":"IconoGraphika"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Admin"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Doodles"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Teleport"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Wearables"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0xd9c02cdacccb25ab","contract_name":"FlowtyTestNFT"},{"kind":"contract-update-success","account_address":"0x3b220a3372190656","contract_name":"PriceOracle"},{"kind":"contract-update-failure","account_address":"0x8770564d92180608","contract_name":"MetadataViews","error":"error: cannot find declaration `FungibleToken` in `631e88ae7f1d7c20.FungibleToken`\n --\u003e 8770564d92180608.MetadataViews:3:7\n |\n3 | import FungibleToken from 0x631e88ae7f1d7c20\n | ^^^^^^^^^^^^^ available exported declarations are:\n\n\nerror: ambiguous intersection type\n --\u003e 8770564d92180608.MetadataViews:280:40\n |\n280 | view init(receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, cut: UFix64, description: String) {\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: ambiguous intersection type\n --\u003e 8770564d92180608.MetadataViews:262:46\n |\n262 | access(all) let receiver: Capability\u003c\u0026{FungibleToken.Receiver}\u003e\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"Staking"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x547f177b243b4d80","contract_name":"Market"},{"kind":"contract-update-success","account_address":"0x547f177b243b4d80","contract_name":"TopShotMarketV3"},{"kind":"contract-update-success","account_address":"0x3286bb76e4e115fe","contract_name":"Boneyard"},{"kind":"contract-update-success","account_address":"0x5d45c655fcde5037","contract_name":"TicalUniverse"},{"kind":"contract-update-success","account_address":"0x5d45c655fcde5037","contract_name":"TuneGO"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Gamisodes"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Lufthaus"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"MUMGJ"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"MintStoreItem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"OpenLockerInc"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"OpenLockerIncBoneYardHuskyzClub"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Pickem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"RTLStoreItem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"YBees"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"YoungBoysBern"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x3870b3d38f83ae4c","contract_name":"FiatToken"},{"kind":"contract-update-success","account_address":"0x3870b3d38f83ae4c","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0x8aaca41f09eb1e3d","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x2f8af5ed05bbde0d","contract_name":"SwapRouter"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"Admin","error":"error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n\n--\u003e 35717efbbce11c74.FindPack\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:292:33\n |\n292 | let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:295:31\n |\n295 | let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:296:70\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:296:64\n |\n296 | FindForge.adminMint(lease: packTypeName, forgeType: Type\u003c@FindPack.Forge\u003e() , data: mintPackData, receiver: receiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:303:12\n |\n303 | FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:55\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:72\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FindPack`\n --\u003e 35717efbbce11c74.Admin:311:99\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.Admin:311:21\n |\n311 | let cap= Admin.account.storage.borrow\u003cauth(FindPack.Owner) \u0026FindPack.Collection\u003e(from: FindPack.DLQCollectionStoragePath)!\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Dandy"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FIND"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForge"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:\nerror: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n\n--\u003e 35717efbbce11c74.FindVerifier\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:164:26\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:164:25\n |\n164 | verifiers : [{FindVerifier.Verifier}],\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:156:38\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:156:37\n |\n156 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:211:123\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:211:122\n |\n211 | init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: [{FindVerifier.Verifier}], verifyAll : Bool ) {\n | ^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FindVerifier`\n --\u003e 35717efbbce11c74.FindPack:208:38\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 35717efbbce11c74.FindPack:208:37\n |\n208 | access(all) let verifiers : [{FindVerifier.Verifier}]\n | ^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier","error":"error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:326:43\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 857dc34d5e1631d3.FLOAT:350:15\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:270:29\n\nerror: cannot apply binary operation ?? to left-hand type\n --\u003e 857dc34d5e1631d3.FLOAT:198:17\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\nerror: resource `FLOAT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 857dc34d5e1631d3.FLOAT:298:25\n\n--\u003e 857dc34d5e1631d3.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:62\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:38:80\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:38:24\n |\n38 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:62\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FLOAT`\n --\u003e 35717efbbce11c74.FindVerifier:81:80\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 35717efbbce11c74.FindVerifier:81:24\n |\n81 | let float = getAccount(user).capabilities.borrow\u003c\u0026FLOAT.Collection\u003e(FLOAT.FLOATCollectionPublicPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0xcc4e949596cf8ced","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0xc911d6ddfae70ce8","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbieCard"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbiePM"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbiePack"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbieToken"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapConfig"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapError"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapInterfaces"},{"kind":"contract-update-success","account_address":"0x43ee8c22fcf94ea3","contract_name":"DapperStorageRent"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS"},{"kind":"contract-update-success","account_address":"0x6d692450d591524c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"},{"kind":"contract-update-success","account_address":"0x2d766f00eb1d0c37","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingNFT"},{"kind":"contract-update-success","account_address":"0xe8124d8428980aa6","contract_name":"Bl0x"},{"kind":"contract-update-success","account_address":"0xc15e75b5f6b95e54","contract_name":"LendingComptroller"},{"kind":"contract-update-failure","account_address":"0xbd327ae7428784b5","contract_name":"FlowEVMBridgeHandlerInterfaces","error":"error: trying to convert contract interface `FlowEVMBridgeHandlerInterfaces` to a contract\n --\u003e bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21\n |\n12 | access(all) contract FlowEVMBridgeHandlerInterfaces {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"DelegatorManager"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStaking"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingConfig"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingError"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"stFlowToken"},{"kind":"contract-update-success","account_address":"0xdfc20aee650fcbdf","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0x23031fd14bb0f21b","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"ETHUtils"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"EVMAgent"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLottery"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryRegistry"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameRugRoyale"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20AccountsPool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Agents"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Converter"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FTShared"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Indexer"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20MarketManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Marketplace"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20NFTWrapper"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20SemiNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Staking"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingForwarder"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingVesting"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Storefront"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20TradingRecord"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20VoteCommands"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Votes"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"Fixes"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAssetMeta"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAvatar"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesBondingCurve"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleTokenInterface"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesHeartbeat"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesInscriptionFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenAirDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenLockDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTradablePool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTraits"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesWrappedNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FungibleTokenManager"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"LNVCT"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"MLS"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"NFL"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"Stanz"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"TMNFT"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0xa1296b1e2e90ca5b","contract_name":"HelloWorld"},{"kind":"contract-update-success","account_address":"0x6c35f966375845a6","contract_name":"TixologiTickets"},{"kind":"contract-update-success","account_address":"0x520a7157e1b964ed","contract_name":"ShebaHopeGrows"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0x8232ce4a3aff4e94","contract_name":"PublicPriceOracle"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"HowardNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KaratNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karatv2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x9680721e43087f43","contract_name":"DropTypes"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEGAMI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-06-05T10-00-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-06-05T10-00-00Z-testnet.md new file mode 100644 index 0000000000..9600b40658 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-06-05T10-00-00Z-testnet.md @@ -0,0 +1,437 @@ +## Cadence 1.0 staged contracts migration results +Date: 06 June, 2024 + +> [!CAUTION] +> **IMPORTANT SECURITY NOTICE** +> +> Some staged contracts might be insecure due to incorrect access modifiers usage. +> Please make sure you have carefully reviewed and understood the section of [Cadence Migration Guide on Access Modifiers](https://cadence-lang.org/docs/cadence-migration-guide/nft-guide#update-all-pub-access-modfiers) + +* Stats: 413 contracts staged, 389 successfully upgraded, 24 failed to upgrade +* Testnet State Snapshot: devnet50-execution-snapshot-for-migration-10-jun-5 +* Flow-go build: v0.35.11-crescendo-preview.26-atree-inlining + +> [!NOTE] +> Developers can use Crescendo migration environment to test your migrated dapp! We notify the community in [Discord Developer UPdates channel](https://discord.com/channels/613813861610684416/811693600403357706) when the environment is available for testing after migration. The Access node endpoint for the migration environment is: `access-001.migrationtestnet1.nodes.onflow.org:9000`. + +**Useful Tools / Links** +* [View contracts staged on Testnet](https://f.dnz.dev/0x2ceae959ed1a7e7a/) +* [Great community tool to view up-to-date staging status](https://staging.dnz.dev/) + +### Migration Report + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0x4dfd62c88d1b6462 | AllDay | ✅ | +| 0x4dfd62c88d1b6462 | PackNFT | ✅ | +| 0x2d0d952e760d1770 | CricketMoments | ✅ | +| 0x2d0d952e760d1770 | FazeUtilityCoin | ✅ | +| 0x6b7930acbcd12877 | Cryptoys | ✅ | +| 0x6b7930acbcd12877 | CryptoysMetadataView2 | ✅ | +| 0x34f3140b7f54c743 | CricketMoments | ✅ | +| 0x34f3140b7f54c743 | FazeUtilityCoin | ✅ | +| 0x6b7930acbcd12877 | ICryptoys | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFTMarketplace_v1 | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFT_v1 | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleConfig | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleInterface | ✅ | +| 0x250e0b90c1b7711b | A | ❌

Error:
error: cannot find declaration \`B\` in \`250e0b90c1b7711b.B\`
--\> 250e0b90c1b7711b.A:1:7
\|
1 \| import B from 0x250e0b90c1b7711b
\| ^ available exported declarations are:
\- \`Bad\`

| +| 0x250e0b90c1b7711b | B | ✅ | +| 0x250e0b90c1b7711b | Bar | ✅ | +| 0x250e0b90c1b7711b | F | ✅ | +| 0x250e0b90c1b7711b | Foo | ✅ | +| 0x250e0b90c1b7711b | L | ✅ | +| 0x250e0b90c1b7711b | O | ✅ | +| 0x250e0b90c1b7711b | W | ❌

Error:
error: mismatching field \`foo\` in \`W\`
--\> 250e0b90c1b7711b.W:3:25
\|
3 \| access(all) let foo: String
\| ^^^^^^ incompatible type annotations. expected \`Int\`, found \`String\`
| +| 0xdad0aaa285a25413 | PriceOracle | ✅ | +| 0x2ceae959ed1a7e7a | MigrationContractStaging | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x06f1e5cde6db0e70 | DropFactory | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyAddressVerifiers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyDrops | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyPricers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtySwitchers | ✅ | +| 0x8a5f647e58dde1ee | DapperOffersV2 | ✅ | +| 0x8a5f647e58dde1ee | OffersV2 | ✅ | +| 0x8a5f647e58dde1ee | Resolver | ✅ | +| 0xcbed4c301441ded2 | StableSwapFactory | ✅ | +| 0xcbed4c301441ded2 | SwapFactory | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0x723a1b50e1d67e8e | TuneGONFT | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xf9dad0d4c14a92b5 | BUSD | ✅ | +| 0xf9dad0d4c14a92b5 | USDC | ✅ | +| 0xf9dad0d4c14a92b5 | USDT | ✅ | +| 0xf9dad0d4c14a92b5 | wFlow | ✅ | +| 0x7745157792470296 | LendingOracle | ✅ | +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0x877931736ee77cff | PackNFT | ✅ | +| 0x877931736ee77cff | TopShot | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x6f6702697b205c18 | HWGarageCard | ✅ | +| 0x6f6702697b205c18 | HWGarageCardV2 | ✅ | +| 0x6f6702697b205c18 | HWGaragePM | ✅ | +| 0x6f6702697b205c18 | HWGaragePMV2 | ✅ | +| 0x6f6702697b205c18 | HWGaragePack | ✅ | +| 0x6f6702697b205c18 | HWGaragePackV2 | ✅ | +| 0x6f6702697b205c18 | HWGarageTokenV2 | ✅ | +| 0x58b60c5240d3f39b | PackNFT | ✅ | +| 0x58b60c5240d3f39b | TicalUniverse | ✅ | +| 0x58b60c5240d3f39b | TuneGO | ✅ | +| 0x58b60c5240d3f39b | TuneGONFTV5 | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0x8bc9e24c307d249b | LendingConfig | ✅ | +| 0x8bc9e24c307d249b | LendingError | ✅ | +| 0x8bc9e24c307d249b | LendingInterfaces | ✅ | +| 0x628992a07cb07272 | MatrixWorldVoucher | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ✅ | +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0x683564e46977788a | MFLAdmin | ✅ | +| 0x683564e46977788a | MFLClub | ✅ | +| 0x683564e46977788a | MFLPack | ✅ | +| 0x683564e46977788a | MFLPackTemplate | ✅ | +| 0x683564e46977788a | MFLPlayer | ✅ | +| 0x683564e46977788a | MFLViews | ✅ | +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: missing structure declaration \`Order\`
--\> c7c122b5b811de8e.BulkPurchase:20:21
\|
20 \| access(all) contract BulkPurchase {
\| ^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePass | ✅ | +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySale | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowverseShirt | ✅ | +| 0xc7c122b5b811de8e | FlowverseSocks | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasures | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | Ordinal | ✅ | +| 0xc7c122b5b811de8e | OrdinalVendor | ✅ | +| 0xc7c122b5b811de8e | Royalties | ✅ | +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:78:17
\|
78 \| Type(),
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:78:12
\|
78 \| Type(),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:138:22
\|
138 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.Flomies:138:17
\|
138 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.Flomies:144:23
\|
144 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | GeneratedExperiences | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:41:29
\|
41 \| royaltiesInput: \$&FindPack.Royalty\$&,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:31:41
\|
31 \| access(all) let royaltiesInput: \$&FindPack.Royalty\$&
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:17
\|
118 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:118:12
\|
118 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:22
\|
128 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.GeneratedExperiences:128:17
\|
128 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.GeneratedExperiences:134:23
\|
134 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | NFGv3 | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:77:17
\|
77 \| Type()
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:77:12
\|
77 \| Type()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:86:22
\|
86 \| case Type():
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 3e5b4c627064625d.PartyFavorz:86:17
\|
86 \| case Type():
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 3e5b4c627064625d.PartyFavorz:92:23
\|
92 \| return FindPack.PackRevealData(data)
\| ^^^^^^^^ not found in this scope
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ✅ | +| 0xc20df20fabe06457 | SwapPair | ✅ | +| 0x24650d6246d4176c | PriceOracle | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0x857dc34d5e1631d3 | FLOAT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15
\|
350 \| access(NonFungibleToken.Owner) fun delete(id: UInt64) {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29
\|
270 \| self.eventsCap = getAccount(\_eventHost).capabilities.get<&FLOATEvents>(FLOAT.FLOATEventsPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&FLOAT.FLOATEvents>\`

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17
\|
198 \| receiver: getAccount(0x5643fd47a29770e7).capabilities.get<&{FungibleToken.Receiver}>(/public/flowTokenReceiver) ?? panic("Beneficiary does not have receiver."),
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected \`optional\`, got \`Capability<&{FungibleToken.Receiver}>\`

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
300 \| access(self) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25
\|
298 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
326 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x857dc34d5e1631d3 | FLOATVerifiers | ❌

Error:
error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :28:0
\|
28 \| pub contract FLOAT: NonFungibleToken, ViewResolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :38:4
\|
38 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :48:4
\|
48 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:8
\|
74 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:8
\|
75 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:8
\|
76 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :86:8
\|
86 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:8
\|
87 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :98:8
\|
98 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:8
\|
103 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:8
\|
104 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:8
\|
105 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :106:8
\|
106 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:8
\|
108 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:8
\|
110 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :117:51
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 4d47bf3ce5e4393f.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:38:33
\|
38 \| access(all) struct Timelock: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:66:31
\|
66 \| access(all) struct Secret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:90:32
\|
90 \| access(all) struct Limited: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:113:39
\|
113 \| access(all) struct MultipleSecret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:137:33
\|
137 \| access(all) struct SecretV2: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:162:39
\|
162 \| access(all) struct MinimumBalance: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:226:30
\|
226 \| access(all) struct Email: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:94:51
\|
94 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:230:51
\|
230 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope
| +| 0x4ed4b8e5cd0dd15e | PackNFT | ✅ | +| 0x74daa6f9c7ef24b1 | FCLCrypto | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0xb86f928a1fa7798e | FTViewUtils | ✅ | +| 0xb86f928a1fa7798e | TokenList | ✅ | +| 0xb86f928a1fa7798e | ViewResolvers | ✅ | +| 0xe3faea00c5bb8d7d | MetadataViews | ❌

Error:
error: cannot find declaration \`FungibleToken\` in \`631e88ae7f1d7c20.FungibleToken\`
--\> e3faea00c5bb8d7d.MetadataViews:3:7
\|
3 \| import FungibleToken from 0x631e88ae7f1d7c20
\| ^^^^^^^^^^^^^ available exported declarations are:


error: ambiguous intersection type
--\> e3faea00c5bb8d7d.MetadataViews:280:40
\|
280 \| view init(receiver: Capability<&{FungibleToken.Receiver}>, cut: UFix64, description: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^

error: ambiguous intersection type
--\> e3faea00c5bb8d7d.MetadataViews:262:46
\|
262 \| access(all) let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xe3faea00c5bb8d7d | TrmAssetV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmMarketV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmRentV2_2 | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0x2a9011074c827145 | FungibleTokenCatalog | ✅ | +| 0xcbdb5a7b89c3c844 | PriceOracle | ✅ | +| 0x2299f74679d9c88a | A | ✅ | +| 0xad26718c4b6b921b | BlackHole | ✅ | +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x97d2f3b55c6a6a75 | LendingPool | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0x8c55fba7d7090fee | Magnetiq | ✅ | +| 0x8c55fba7d7090fee | MagnetiqLocking | ✅ | +| 0x9e324d8ae3cbd0f0 | LendingPool | ✅ | +| 0xab2d22248a619d77 | MetadataViews | ❌

Error:
error: missing resource interface declaration \`Resolver\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^

error: missing resource interface declaration \`ResolverCollection\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^
| +| 0xab2d22248a619d77 | TrmAssetMSV1_0 | ✅ | +| 0xab2d22248a619d77 | TrmAssetMSV2_0 | ✅ | +| 0xb39a42479c1c2c77 | AFLAdmin | ❌

Error:
error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

--\> b39a42479c1c2c77.AFLPack
| +| 0xb39a42479c1c2c77 | AFLBadges | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnExchange | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnRegistry | ✅ | +| 0xb39a42479c1c2c77 | AFLIndex | ✅ | +| 0xb39a42479c1c2c77 | AFLMarketplace | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:79:33
\|
79 \| init (vault: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:77:49
\|
77 \| access(self) let ownerVault: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:259:70
\|
259 \| access(all) fun changeMarketplaceWallet(\_ newCap: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:12:56
\|
12 \| access(contract) var marketplaceWallet: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:242:65
\|
242 \| access(all) fun createSaleCollection(ownerVault: Capability<&FiatToken.Vault>): @SaleCollection {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:277:64
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLMarketplace:277:33
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:119:36
\|
119 \| let saleOwnerVaultRef: &FiatToken.Vault = self.ownerVault.borrow() ?? panic("could not borrow reference to the owner vault")
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:126:36
\|
126 \| let marketplaceWallet: &FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic("Couldn't borrow Vault reference")
\| ^^^^^^^^^ not found in this scope
| +| 0xb39a42479c1c2c77 | AFLMetadataHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLNFT | ✅ | +| 0xb39a42479c1c2c77 | AFLPack | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48
\|
23 \| access(contract) let adminRef : Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35
\|
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
113 \| .borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xb39a42479c1c2c77 | PackRestrictions | ✅ | +| 0xb39a42479c1c2c77 | StorageHelper | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x668b91e2995c2eba | PrivateReceiverForwarder | ✅ | +| 0x8b47f4dd22afee8d | MetadataViews | ❌

Error:
error: missing resource interface declaration \`Resolver\`
--\> 8b47f4dd22afee8d.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^

error: missing resource interface declaration \`ResolverCollection\`
--\> 8b47f4dd22afee8d.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^
| +| 0x8b47f4dd22afee8d | TrmAssetMSV1_0 | ✅ | +| 0x08b1f9c0bc04f36f | IconoGraphika | ✅ | +| 0x1c5033ad60821c97 | Admin | ✅ | +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ✅ | +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | DoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Doodles | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | OpenDoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ✅ | +| 0x1c5033ad60821c97 | Teleport | ✅ | +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Wearables | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0xd9c02cdacccb25ab | FlowtyTestNFT | ✅ | +| 0x3b220a3372190656 | PriceOracle | ✅ | +| 0x8770564d92180608 | MetadataViews | ❌

Error:
error: cannot find declaration \`FungibleToken\` in \`631e88ae7f1d7c20.FungibleToken\`
--\> 8770564d92180608.MetadataViews:3:7
\|
3 \| import FungibleToken from 0x631e88ae7f1d7c20
\| ^^^^^^^^^^^^^ available exported declarations are:


error: ambiguous intersection type
--\> 8770564d92180608.MetadataViews:280:40
\|
280 \| view init(receiver: Capability<&{FungibleToken.Receiver}>, cut: UFix64, description: String) {
\| ^^^^^^^^^^^^^^^^^^^^^^^^

error: ambiguous intersection type
--\> 8770564d92180608.MetadataViews:262:46
\|
262 \| access(all) let receiver: Capability<&{FungibleToken.Receiver}>
\| ^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x8770564d92180608 | TrmAssetV2_2 | ✅ | +| 0x8770564d92180608 | TrmMarketV2_2 | ✅ | +| 0x8770564d92180608 | TrmRentV2_2 | ✅ | +| 0x26a1e94319e81a3c | Staking | ✅ | +| 0x26a1e94319e81a3c | StakingError | ✅ | +| 0x547f177b243b4d80 | Market | ✅ | +| 0x547f177b243b4d80 | TopShotMarketV3 | ✅ | +| 0x3286bb76e4e115fe | Boneyard | ✅ | +| 0x5d45c655fcde5037 | TicalUniverse | ✅ | +| 0x5d45c655fcde5037 | TuneGO | ✅ | +| 0x985d410b577fd4a1 | Gamisodes | ✅ | +| 0x985d410b577fd4a1 | Lufthaus | ✅ | +| 0x985d410b577fd4a1 | MUMGJ | ✅ | +| 0x985d410b577fd4a1 | MintStoreItem | ✅ | +| 0x985d410b577fd4a1 | OpenLockerInc | ✅ | +| 0x985d410b577fd4a1 | OpenLockerIncBoneYardHuskyzClub | ✅ | +| 0x985d410b577fd4a1 | Pickem | ✅ | +| 0x985d410b577fd4a1 | RTLStoreItem | ✅ | +| 0x985d410b577fd4a1 | YBees | ✅ | +| 0x985d410b577fd4a1 | YoungBoysBern | ✅ | +| 0x92362a384f409a52 | TrmAssetV2_2 | ✅ | +| 0x92362a384f409a52 | TrmMarketV2_2 | ✅ | +| 0x92362a384f409a52 | TrmRentV2_2 | ✅ | +| 0x3870b3d38f83ae4c | FiatToken | ✅ | +| 0x3870b3d38f83ae4c | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0x8aaca41f09eb1e3d | LendingPool | ✅ | +| 0x2f8af5ed05bbde0d | SwapRouter | ✅ | +| 0x35717efbbce11c74 | Admin | ❌

Error:
error: error getting program 35717efbbce11c74.FindPack: failed to derive value: load program failed: Checking failed:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37

--\> 35717efbbce11c74.FindPack

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:292:33
\|
292 \| let pathIdentifier = FindPack.getPacksCollectionPath(packTypeName: packTypeName, packTypeId: typeId)
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:295:31
\|
295 \| let mintPackData = FindPack.MintPackData(packTypeName: packTypeName, typeId: typeId, hash: hash, verifierRef: FindForge.borrowVerifier())
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:296:70
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:296:64
\|
296 \| FindForge.adminMint(lease: packTypeName, forgeType: Type<@FindPack.Forge>() , data: mintPackData, receiver: receiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:303:12
\|
303 \| FindPack.fulfill(packId:packId, types:types, rewardIds:rewardIds, salt:salt)
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:55
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:72
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FindPack\`
--\> 35717efbbce11c74.Admin:311:99
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.Admin:311:21
\|
311 \| let cap= Admin.account.storage.borrow(from: FindPack.DLQCollectionStoragePath)!
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | Dandy | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FIND | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ✅ | +| 0x35717efbbce11c74 | FindForge | ✅ | +| 0x35717efbbce11c74 | FindForgeOrder | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketSale | ✅ | +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ✅ | +| 0x35717efbbce11c74 | FindMarket | ✅ | +| 0x35717efbbce11c74 | FindMarketAdmin | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindMarketSale | ✅ | +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: error getting program 35717efbbce11c74.FindVerifier: failed to derive value: load program failed: Checking failed:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24

--\> 35717efbbce11c74.FindVerifier

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:164:26
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:164:25
\|
164 \| verifiers : \$&{FindVerifier.Verifier}\$&,
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:156:38
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:156:37
\|
156 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:211:123
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:211:122
\|
211 \| init(name : String, startTime : UFix64 , endTime : UFix64? , price : UFix64, purchaseLimit : UInt64?, verifiers: \$&{FindVerifier.Verifier}\$&, verifyAll : Bool ) {
\| ^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FindVerifier\`
--\> 35717efbbce11c74.FindPack:208:38
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 35717efbbce11c74.FindPack:208:37
\|
208 \| access(all) let verifiers : \$&{FindVerifier.Verifier}\$&
\| ^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ✅ | +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ❌

Error:
error: error getting program 857dc34d5e1631d3.FLOAT: failed to derive value: load program failed: Checking failed:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:326:43

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 857dc34d5e1631d3.FLOAT:350:15

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:270:29

error: cannot apply binary operation ?? to left-hand type
--\> 857dc34d5e1631d3.FLOAT:198:17

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

error: resource \`FLOAT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 857dc34d5e1631d3.FLOAT:298:25

--\> 857dc34d5e1631d3.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:62
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:38:80
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:38:24
\|
38 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:62
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot find variable in this scope: \`FLOAT\`
--\> 35717efbbce11c74.FindVerifier:81:80
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 35717efbbce11c74.FindVerifier:81:24
\|
81 \| let float = getAccount(user).capabilities.borrow<&FLOAT.Collection>(FLOAT.FLOATCollectionPublicPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | NameVoucher | ✅ | +| 0x35717efbbce11c74 | Profile | ✅ | +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x917db7072ed7160b | Cryptoys | ✅ | +| 0x917db7072ed7160b | CryptoysMetadataView2 | ✅ | +| 0x917db7072ed7160b | ICryptoys | ✅ | +| 0xcc4e949596cf8ced | TwoSegmentsInterestRateModel | ✅ | +| 0xc911d6ddfae70ce8 | PriceOracle | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbieCard | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbiePM | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbiePack | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbieToken | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0xddb929038d45d4b3 | SwapConfig | ✅ | +| 0xddb929038d45d4b3 | SwapError | ✅ | +| 0xddb929038d45d4b3 | SwapInterfaces | ✅ | +| 0x43ee8c22fcf94ea3 | DapperStorageRent | ✅ | +| 0xef4cd3d07a7b43ce | IPackNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ✅ | +| 0x6d692450d591524c | PriceOracle | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | +| 0x2d766f00eb1d0c37 | PriceOracle | ✅ | +| 0x44ef9309713e2061 | StakingError | ✅ | +| 0x44ef9309713e2061 | StakingNFT | ✅ | +| 0xe8124d8428980aa6 | Bl0x | ✅ | +| 0xc15e75b5f6b95e54 | LendingComptroller | ✅ | +| 0xbd327ae7428784b5 | FlowEVMBridgeHandlerInterfaces | ❌

Error:
error: trying to convert contract interface \`FlowEVMBridgeHandlerInterfaces\` to a contract
--\> bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21
\|
12 \| access(all) contract FlowEVMBridgeHandlerInterfaces {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xe45c64ecfe31e465 | DelegatorManager | ✅ | +| 0xe45c64ecfe31e465 | LiquidStaking | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingConfig | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingError | ✅ | +| 0xe45c64ecfe31e465 | stFlowToken | ✅ | +| 0xdfc20aee650fcbdf | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0x23031fd14bb0f21b | TwoSegmentsInterestRateModel | ✅ | +| 0x74ad08095d92192a | ETHUtils | ✅ | +| 0x74ad08095d92192a | EVMAgent | ✅ | +| 0x74ad08095d92192a | FGameLottery | ✅ | +| 0x74ad08095d92192a | FGameLotteryFactory | ✅ | +| 0x74ad08095d92192a | FGameLotteryRegistry | ✅ | +| 0x74ad08095d92192a | FGameRugRoyale | ✅ | +| 0x74ad08095d92192a | FRC20AccountsPool | ✅ | +| 0x74ad08095d92192a | FRC20Agents | ✅ | +| 0x74ad08095d92192a | FRC20Converter | ✅ | +| 0x74ad08095d92192a | FRC20FTShared | ✅ | +| 0x74ad08095d92192a | FRC20FungibleToken | ✅ | +| 0x74ad08095d92192a | FRC20Indexer | ✅ | +| 0x74ad08095d92192a | FRC20MarketManager | ✅ | +| 0x74ad08095d92192a | FRC20Marketplace | ✅ | +| 0x74ad08095d92192a | FRC20NFTWrapper | ✅ | +| 0x74ad08095d92192a | FRC20SemiNFT | ✅ | +| 0x74ad08095d92192a | FRC20Staking | ✅ | +| 0x74ad08095d92192a | FRC20StakingForwarder | ✅ | +| 0x74ad08095d92192a | FRC20StakingManager | ✅ | +| 0x74ad08095d92192a | FRC20StakingVesting | ✅ | +| 0x74ad08095d92192a | FRC20Storefront | ✅ | +| 0x74ad08095d92192a | FRC20TradingRecord | ✅ | +| 0x74ad08095d92192a | FRC20VoteCommands | ✅ | +| 0x74ad08095d92192a | FRC20Votes | ✅ | +| 0x74ad08095d92192a | Fixes | ✅ | +| 0x74ad08095d92192a | FixesAssetMeta | ✅ | +| 0x74ad08095d92192a | FixesAvatar | ✅ | +| 0x74ad08095d92192a | FixesBondingCurve | ✅ | +| 0x74ad08095d92192a | FixesFungibleToken | ✅ | +| 0x74ad08095d92192a | FixesFungibleTokenInterface | ✅ | +| 0x74ad08095d92192a | FixesHeartbeat | ✅ | +| 0x74ad08095d92192a | FixesInscriptionFactory | ✅ | +| 0x74ad08095d92192a | FixesTokenAirDrops | ✅ | +| 0x74ad08095d92192a | FixesTokenLockDrops | ✅ | +| 0x74ad08095d92192a | FixesTradablePool | ✅ | +| 0x74ad08095d92192a | FixesTraits | ✅ | +| 0x74ad08095d92192a | FixesWrappedNFT | ✅ | +| 0x74ad08095d92192a | FungibleTokenManager | ✅ | +| 0x3a52faafb43951c0 | LNVCT | ✅ | +| 0x3a52faafb43951c0 | MLS | ✅ | +| 0x3a52faafb43951c0 | NFL | ✅ | +| 0x3a52faafb43951c0 | Stanz | ✅ | +| 0x3a52faafb43951c0 | TMNFT | ✅ | +| 0xb45e7992680a0f7f | CricketMoments | ✅ | +| 0xb45e7992680a0f7f | FazeUtilityCoin | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ✅ | +| 0xa1296b1e2e90ca5b | HelloWorld | ✅ | +| 0x6c35f966375845a6 | TixologiTickets | ✅ | +| 0x520a7157e1b964ed | ShebaHopeGrows | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0x8232ce4a3aff4e94 | PublicPriceOracle | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | ExampleNFT | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | HowardNFT | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | KaratNFT | ✅ | +| 0x566c813b3632783e | Karatv2 | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x9680721e43087f43 | DropTypes | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | MEGAMI | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-06-12T13-03-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-06-12T13-03-00Z-testnet.json new file mode 100644 index 0000000000..2a476f4813 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-06-12T13-03-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"CricketMomentsShardedCollection"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"CricketMomentsShardedCollection"},{"kind":"contract-update-success","account_address":"0x4dfd62c88d1b6462","contract_name":"AllDay"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0x4dfd62c88d1b6462","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x43ee8c22fcf94ea3","contract_name":"DapperStorageRent"},{"kind":"contract-update-success","account_address":"0x2299f74679d9c88a","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0xdad0aaa285a25413","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"CricketMomentsShardedCollection"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: missing structure declaration `Order`\n --\u003e c7c122b5b811de8e.BulkPurchase:20:21\n |\n20 | access(all) contract BulkPurchase {\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: found new field `storagePath` in `Collection`\n --\u003e 3e5b4c627064625d.Flomies:231:25\n |\n231 | access(self) var storagePath: StoragePath\n | ^^^^^^^^^^^\n\nerror: found new field `publicPath` in `Collection`\n --\u003e 3e5b4c627064625d.Flomies:232:25\n |\n232 | access(self) var publicPath: PublicPath\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: found new field `storagePath` in `Collection`\n --\u003e 3e5b4c627064625d.PartyFavorz:249:25\n |\n249 | access(self) var storagePath: StoragePath\n | ^^^^^^^^^^^\n\nerror: found new field `publicPath` in `Collection`\n --\u003e 3e5b4c627064625d.PartyFavorz:250:25\n |\n250 | access(self) var publicPath: PublicPath\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-failure","account_address":"0xbd327ae7428784b5","contract_name":"FlowEVMBridgeHandlerInterfaces","error":"error: trying to convert contract interface `FlowEVMBridgeHandlerInterfaces` to a contract\n --\u003e bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21\n |\n12 | access(all) contract FlowEVMBridgeHandlerInterfaces {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xa1296b1e2e90ca5b","contract_name":"HelloWorld"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x4ed4b8e5cd0dd15e","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x2a9011074c827145","contract_name":"FungibleTokenCatalog"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapConfig"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapError"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapInterfaces"},{"kind":"contract-update-success","account_address":"0x2d766f00eb1d0c37","contract_name":"PriceOracle"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x894269f57ac04a6e","contract_name":"FlowtyRaffleSource"},{"kind":"contract-update-success","account_address":"0x894269f57ac04a6e","contract_name":"FlowtyRaffles"},{"kind":"contract-update-success","account_address":"0x668b91e2995c2eba","contract_name":"PrivateReceiverForwarder"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"BUSD"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDC"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDT"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"wFlow"},{"kind":"contract-update-success","account_address":"0x9680721e43087f43","contract_name":"DropTypes"},{"kind":"contract-update-success","account_address":"0x2f8af5ed05bbde0d","contract_name":"SwapRouter"},{"kind":"contract-update-success","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Art"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Auction"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Marketplace"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Versus"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0x7745157792470296","contract_name":"LendingOracle"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Admin"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Doodles"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Teleport"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Wearables"},{"kind":"contract-update-success","account_address":"0x723a1b50e1d67e8e","contract_name":"TuneGONFT"},{"kind":"contract-update-failure","account_address":"0x8b47f4dd22afee8d","contract_name":"MetadataViews","error":"error: missing resource interface declaration `Resolver`\n --\u003e 8b47f4dd22afee8d.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n\nerror: missing resource interface declaration `ResolverCollection`\n --\u003e 8b47f4dd22afee8d.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x8b47f4dd22afee8d","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-success","account_address":"0x520a7157e1b964ed","contract_name":"ShebaHopeGrows"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageCard"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageCardV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePM"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePMV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePack"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePackV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageTokenV2"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Admin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Dandy"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FIND"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForge"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"Staking"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: mismatching field `providerCaps` in `Metadata`\n --\u003e 35717efbbce11c74.FindPack:343:43\n |\n343 | access(contract) let providerCaps: {Type : Capability\u003cauth (NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected `{NonFungibleToken.Provider, MetadataViews.ResolverCollection}`, found `{NonFungibleToken.Collection}`\n\nerror: conformances do not match in `FindPack`: missing `A.631e88ae7f1d7c20.NonFungibleToken`\n --\u003e 35717efbbce11c74.FindPack:12:21\n |\n12 | access(all) contract FindPack {\n | ^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"},{"kind":"contract-update-success","account_address":"0x628992a07cb07272","contract_name":"MatrixWorldVoucher"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingNFT"},{"kind":"contract-update-success","account_address":"0x3286bb76e4e115fe","contract_name":"Boneyard"},{"kind":"contract-update-success","account_address":"0xdfc20aee650fcbdf","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0x857dc34d5e1631d3","contract_name":"FLOAT"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOATVerifiers","error":"error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:0\n |\n28 | pub contract FLOAT: NonFungibleToken, ViewResolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :38:4\n |\n38 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :48:4\n |\n48 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:8\n |\n74 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:8\n |\n75 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:8\n |\n76 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :86:8\n |\n86 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:8\n |\n87 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :98:8\n |\n98 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:8\n |\n103 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:8\n |\n104 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:8\n |\n105 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :106:8\n |\n106 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:8\n |\n108 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:8\n |\n110 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :117:51\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 4d47bf3ce5e4393f.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:38:33\n |\n38 | access(all) struct Timelock: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:66:31\n |\n66 | access(all) struct Secret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:90:32\n |\n90 | access(all) struct Limited: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:113:39\n |\n113 | access(all) struct MultipleSecret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:137:33\n |\n137 | access(all) struct SecretV2: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:162:39\n |\n162 | access(all) struct MinimumBalance: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:226:30\n |\n226 | access(all) struct Email: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:94:51\n |\n94 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:230:51\n |\n230 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"DelegatorManager"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStaking"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingConfig"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingError"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"stFlowToken"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleConfig"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleInterface"},{"kind":"contract-update-success","account_address":"0x6c35f966375845a6","contract_name":"TixologiTickets"},{"kind":"contract-update-success","account_address":"0xad26718c4b6b921b","contract_name":"BlackHole"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLAdmin"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLClub"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPack"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPackTemplate"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPlayer"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLViews"},{"kind":"contract-update-success","account_address":"0xcc4e949596cf8ced","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x23031fd14bb0f21b","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmRentV2_2"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLAdmin","error":"error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\n--\u003e b39a42479c1c2c77.AFLPack\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBadges"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnExchange"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnRegistry"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLIndex"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMarketplace","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:79:33\n |\n79 | init (vault: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:77:49\n |\n77 | access(self) let ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:259:70\n |\n259 | access(all) fun changeMarketplaceWallet(_ newCap: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:12:56\n |\n12 | access(contract) var marketplaceWallet: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:242:65\n |\n242 | access(all) fun createSaleCollection(ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e): @SaleCollection {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:64\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:33\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:119:36\n |\n119 | let saleOwnerVaultRef: \u0026FiatToken.Vault = self.ownerVault.borrow() ?? panic(\"could not borrow reference to the owner vault\")\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:126:36\n |\n126 | let marketplaceWallet: \u0026FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic(\"Couldn't borrow Vault reference\")\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMetadataHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLNFT"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLPack","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n |\n23 | access(contract) let adminRef : Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n |\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n113 | .borrow()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"PackRestrictions"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"StorageHelper"},{"kind":"contract-update-success","account_address":"0x6b2e1b9d3c5ac5db","contract_name":"ValueLink_NFTMarketplace_v1"},{"kind":"contract-update-success","account_address":"0x6b2e1b9d3c5ac5db","contract_name":"ValueLink_NFT_v1"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xe7d5fb4c128b85b7","contract_name":"Genies"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"ETHUtils"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"EVMAgent"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLottery"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryRegistry"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameRugRoyale"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20AccountsPool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Agents"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Converter"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FTShared"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Indexer"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20MarketManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Marketplace"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20NFTWrapper"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20SemiNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Staking"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingForwarder"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingVesting"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Storefront"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20TradingRecord"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20VoteCommands"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Votes"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"Fixes"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAssetMeta"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAvatar"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesBondingCurve"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleTokenInterface"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesHeartbeat"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesInscriptionFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenAirDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenLockDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTradablePool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTraits"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesWrappedNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FungibleTokenManager"},{"kind":"contract-update-success","account_address":"0x3b220a3372190656","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0xd9c02cdacccb25ab","contract_name":"FlowtyTestNFT"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"FTViewUtils"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"TokenList"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"ViewResolvers"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0x08b1f9c0bc04f36f","contract_name":"IconoGraphika"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"BigEast"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"LNVCT"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"MLS"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"NFL"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"Sharks"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"Stanz"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"TMNFT"},{"kind":"contract-update-success","account_address":"0x24650d6246d4176c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-success","account_address":"0xa63ecf66edb620ef","contract_name":"ZeedzINO"},{"kind":"contract-update-success","account_address":"0x9e324d8ae3cbd0f0","contract_name":"LendingPool"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"DummyDustTokenMinter","error":"error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.DummyDustTokenMinter:8:23\n |\n8 | \tresource DummyMinter: Toucans.Minter{ \n | \t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.DummyDustTokenMinter:10:29\n |\n10 | \t\tfun mint(amount: UFix64): @FlovatarDustToken.Vault{ \n | \t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.DummyDustTokenMinter:11:12\n |\n11 | \t\t\treturn \u003c-FlovatarDustToken.createEmptyDustVault()\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"Flobot","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"Flovatar","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n |\n1435 | \t\tfun createPack(components: @[FlovatarComponent.NFT], randomString: String, price: UFix64, sparkCount: UInt32, series: UInt32, name: String): @FlovatarPack.Pack{ \n | \t\t ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n |\n365 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n |\n365 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n |\n397 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n |\n397 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n |\n417 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n |\n417 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n |\n434 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n |\n434 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n |\n458 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n |\n458 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n |\n1436 | \t\t\treturn \u003c-FlovatarPack.createPack(components: \u003c-components, randomString: randomString, price: price, sparkCount: sparkCount, series: series, name: name)\n | \t\t\t ^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarComponent"},{"kind":"contract-update-success","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarComponentTemplate"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarComponentUpgrader","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarInbox: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:122:18\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:37:22\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:643:25\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:390:21\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:453:21\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:455:83\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:478:6\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:500:3\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:542:83\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:578:83\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:26\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:20\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:132:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:21\n\n--\u003e 9392a4a7c3f49a0b.FlovatarInbox\n\nerror: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:26\n |\n202 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:20\n |\n202 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarInbox`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:65\n |\n258 | \t\t\t\tself.account.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026FlovatarInbox.Collection\u003e(\n | \t\t\t\t ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarInbox`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:259:11\n |\n259 | \t\t\t\t\tfrom: FlovatarInbox.CollectionStoragePath\n | \t\t\t\t\t ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:4\n |\n258 | \t\t\t\tself.account.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026FlovatarInbox.Collection\u003e(\n259 | \t\t\t\t\tfrom: FlovatarInbox.CollectionStoragePath\n260 | \t\t\t\t){ \n | \t\t\t\t^\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustCollectible","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:193:46\n |\n193 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:193:86\n |\n193 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:196:39\n |\n196 | \t\tfun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:242:29\n |\n242 | \t\tlet accessories: @{UInt32: FlovatarDustCollectibleAccessory.NFT}\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:400:46\n |\n400 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:400:86\n |\n400 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:415:39\n |\n415 | \t\tfun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1068:46\n |\n1068 | \t\tfun createCollectible(templateId: UInt64): @FlovatarDustCollectibleAccessory.NFT{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1074:70\n |\n1074 | \t\tfun batchCreateCollectibles(templateId: UInt64, quantity: UInt64): @FlovatarDustCollectibleAccessory.Collection{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:930:26\n |\n930 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:930:20\n |\n930 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:311:27\n |\n311 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:311:21\n |\n311 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:343:27\n |\n343 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:343:21\n |\n343 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:370:27\n |\n370 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:370:21\n |\n370 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1069:12\n |\n1069 | \t\t\treturn \u003c-FlovatarDustCollectibleAccessory.createCollectibleAccessoryInternal(templateId: templateId)\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1075:12\n |\n1075 | \t\t\treturn \u003c-FlovatarDustCollectibleAccessory.batchCreateCollectibleAccessory(templateId: templateId, quantity: quantity)\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustCollectibleAccessory","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26\n |\n562 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20\n |\n562 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustCollectibleTemplate"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustToken","error":"error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n |\n286 | \tresource Minter: Toucans.Minter{ \n | \t ^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarInbox","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:122:18\n |\n122 | \t\tlet dustVault: @FlovatarDustToken.Vault\n | \t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:37:22\n |\n37 | \tlet communityVault: @FlovatarDustToken.Vault\n | \t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:643:25\n |\n643 | \t\tself.communityVault \u003c- FlovatarDustToken.createEmptyDustVault()\n | \t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:390:21\n |\n390 | \t\t\tif let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){ \n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:453:21\n |\n453 | \t\t\tif let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){ \n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:455:83\n |\n455 | \t\t\t\tlet receiverRef = (receiverAccount.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:478:6\n |\n478 | \t\t\t\t\t\tFlovatarDustToken.VaultReceiverPath\n | \t\t\t\t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:500:3\n |\n500 | \t\t\tFlovatar.getFlovatarRarityScore(address: address, flovatarId: id){ \n | \t\t\t^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:542:83\n |\n542 | \t\t\t\tlet receiverRef = (receiverAccount.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:578:83\n |\n578 | \t\t\t\tlet receiverRef = (receiverAccount.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:26\n |\n601 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:20\n |\n601 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:132:21\n |\n132 | \t\t\tself.dustVault \u003c- FlovatarDustToken.createEmptyDustVault()\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:27\n |\n235 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:21\n |\n235 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:27\n |\n246 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:21\n |\n246 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarMarketplace","error":"error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:66:30\n |\n66 | \t\t\trecipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e,\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:66:29\n |\n66 | \t\t\trecipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e,\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:90:38\n |\n90 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:90:37\n |\n90 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?\n | \t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:103:33\n |\n103 | \t\tlet flovatarForSale: @{UInt64: Flovatar.NFT}\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:131:42\n |\n131 | \t\tfun withdrawFlovatar(tokenId: UInt64): @Flovatar.NFT{ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:155:34\n |\n155 | \t\tfun listFlovatarForSale(token: @Flovatar.NFT, price: UFix64){ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:202:67\n |\n202 | \t\tfun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:202:66\n |\n202 | \t\tfun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:296:38\n |\n296 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?{ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:296:37\n |\n296 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?{ \n | \t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:346:13\n |\n346 | \t\t\tmetadata: Flovatar.Metadata,\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:329:16\n |\n329 | \t\tlet metadata: Flovatar.Metadata\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:216:30\n |\n216 | \t\t\tif !token.isInstance(Type\u003c@Flovatar.NFT\u003e()){ \n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:216:24\n |\n216 | \t\t\tif !token.isInstance(Type\u003c@Flovatar.NFT\u003e()){ \n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:221:31\n |\n221 | \t\t\tlet creatorAmount = price * Flovatar.getRoyaltyCut()\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:225:35\n |\n225 | \t\t\tlet marketplaceAmount = price * Flovatar.getMarketplaceCut()\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:257:35\n |\n257 | \t\t\tlet marketplaceAmount = price * Flovatar.getMarketplaceCut()\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:298:50\n |\n298 | \t\t\t\tlet ref = (\u0026self.flovatarForSale[tokenId] as \u0026Flovatar.NFT?)!\n | \t\t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:299:20\n |\n299 | \t\t\t\treturn ref as! \u0026Flovatar.NFT\n | \t\t\t\t ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarPack","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n |\n415 | \t\t\t\tbuyTokens.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n |\n415 | \t\t\t\tbuyTokens.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-failure","account_address":"0x3870b3d38f83ae4c","contract_name":"FiatToken","error":"error: missing resource declaration `Admin`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `AdminExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `BlocklistExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Blocklister`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `MasterMinter`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `MasterMinterExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Minter`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `MinterController`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Owner`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `OwnerExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `PauseExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Pauser`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x3870b3d38f83ae4c","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-failure","account_address":"0xab2d22248a619d77","contract_name":"MetadataViews","error":"error: missing resource interface declaration `Resolver`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n\nerror: missing resource interface declaration `ResolverCollection`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV2_0"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingConfig"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingError"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingInterfaces"},{"kind":"contract-update-success","account_address":"0x97d2f3b55c6a6a75","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory"},{"kind":"contract-update-success","account_address":"0xcbdb5a7b89c3c844","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0xc911d6ddfae70ce8","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0x6d692450d591524c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x547f177b243b4d80","contract_name":"Market"},{"kind":"contract-update-success","account_address":"0x547f177b243b4d80","contract_name":"TopShotMarketV3"},{"kind":"contract-update-success","account_address":"0x2ceae959ed1a7e7a","contract_name":"MigrationContractStaging"},{"kind":"contract-update-success","account_address":"0xe8124d8428980aa6","contract_name":"Bl0x"},{"kind":"contract-update-success","account_address":"0x8232ce4a3aff4e94","contract_name":"PublicPriceOracle"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmRentV2_2"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"A","error":"error: cannot find declaration `B` in `250e0b90c1b7711b.B`\n --\u003e 250e0b90c1b7711b.A:1:7\n |\n1 | import B from 0x250e0b90c1b7711b\n | ^ available exported declarations are:\n - `Bad`\n\n"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Bar"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"F"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Foo"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"L"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"O"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"W","error":"error: mismatching field `foo` in `W`\n --\u003e 250e0b90c1b7711b.W:3:25\n |\n3 | access(all) let foo: String\n | ^^^^^^ incompatible type annotations. expected `Int`, found `String`\n"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TicalUniverse"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TuneGO"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TuneGONFTV5"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"DropFactory"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyAddressVerifiers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyDrops"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyPricers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtySwitchers"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Gamisodes"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Lufthaus"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"MUMGJ"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"MintStoreItem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"OpenLockerInc"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"OpenLockerIncBoneYardHuskyzClub"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Pickem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"RTLStoreItem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"YBees"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"YoungBoysBern"},{"kind":"contract-update-success","account_address":"0x5d45c655fcde5037","contract_name":"TicalUniverse"},{"kind":"contract-update-success","account_address":"0x5d45c655fcde5037","contract_name":"TuneGO"},{"kind":"contract-update-success","account_address":"0xc20df20fabe06457","contract_name":"SwapPair"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"Magnetiq"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"MagnetiqLocking"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"HowardNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KaratNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karatv2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEGAMI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x7dc7430a06f38af3","contract_name":"ZeedzINO"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbieCard"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbiePM"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbiePack"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbieToken"},{"kind":"contract-update-success","account_address":"0x8aaca41f09eb1e3d","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"DapperOffersV2"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"OffersV2"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"Resolver"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"StableSwapFactory"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"SwapFactory"},{"kind":"contract-update-success","account_address":"0xc15e75b5f6b95e54","contract_name":"LendingComptroller"},{"kind":"contract-update-success","account_address":"0x74daa6f9c7ef24b1","contract_name":"FCLCrypto"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-06-12T13-03-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-06-12T13-03-00Z-testnet.md new file mode 100644 index 0000000000..11d546e096 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-06-12T13-03-00Z-testnet.md @@ -0,0 +1,458 @@ +## Cadence 1.0 staged contracts migration results +Date: 12 June, 2024 + +> [!CAUTION] +> **IMPORTANT SECURITY NOTICE** +> +> Some staged contracts might be insecure due to incorrect access modifiers usage. +> Please make sure you have carefully reviewed and understood the section of [Cadence Migration Guide on Access Modifiers](https://cadence-lang.org/docs/cadence-migration-guide/nft-guide#update-all-pub-access-modfiers) + +* Stats: 434 contracts staged, 405 successfully upgraded, 29 failed to upgrade +* Testnet State Snapshot: devnet50-execution-snapshot-for-migration-11-jun-12 +* Flow-go build: v0.35.14-crescendo-preview.27-atree-inlining + +> [!NOTE] +> Developers can use Crescendo migration environment to test your migrated dapp! We notify the community in [Discord Developer UPdates channel](https://discord.com/channels/613813861610684416/811693600403357706) when the environment is available for testing after migration. The Access node endpoint for the migration environment is: `access-001.migrationtestnet1.nodes.onflow.org:9000` for the gRPC API and `https://rest-migrationtestnet.onflow.org/v1/` for the REST API.` + +**Useful Tools / Links** +* [View contracts staged on Testnet](https://f.dnz.dev/0x2ceae959ed1a7e7a/) +* [Great community tool to view up-to-date staging status](https://staging.dnz.dev/) + +### Migration Report + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0x34f3140b7f54c743 | CricketMoments | ✅ | +| 0x34f3140b7f54c743 | CricketMomentsShardedCollection | ✅ | +| 0x34f3140b7f54c743 | FazeUtilityCoin | ✅ | +| 0x2d0d952e760d1770 | CricketMoments | ✅ | +| 0x2d0d952e760d1770 | CricketMomentsShardedCollection | ✅ | +| 0x4dfd62c88d1b6462 | AllDay | ✅ | +| 0x2d0d952e760d1770 | FazeUtilityCoin | ✅ | +| 0x6b7930acbcd12877 | Cryptoys | ✅ | +| 0x6b7930acbcd12877 | CryptoysMetadataView2 | ✅ | +| 0x6b7930acbcd12877 | ICryptoys | ✅ | +| 0x4dfd62c88d1b6462 | PackNFT | ✅ | +| 0x43ee8c22fcf94ea3 | DapperStorageRent | ✅ | +| 0x2299f74679d9c88a | A | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0xdad0aaa285a25413 | PriceOracle | ✅ | +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0xb45e7992680a0f7f | CricketMoments | ✅ | +| 0xb45e7992680a0f7f | CricketMomentsShardedCollection | ✅ | +| 0xb45e7992680a0f7f | FazeUtilityCoin | ✅ | +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: missing structure declaration \`Order\`
--\> c7c122b5b811de8e.BulkPurchase:20:21
\|
20 \| access(all) contract BulkPurchase {
\| ^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePass | ✅ | +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySale | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowverseShirt | ✅ | +| 0xc7c122b5b811de8e | FlowverseSocks | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasures | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | Ordinal | ✅ | +| 0xc7c122b5b811de8e | OrdinalVendor | ✅ | +| 0xc7c122b5b811de8e | Royalties | ✅ | +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: found new field \`storagePath\` in \`Collection\`
--\> 3e5b4c627064625d.Flomies:231:25
\|
231 \| access(self) var storagePath: StoragePath
\| ^^^^^^^^^^^

error: found new field \`publicPath\` in \`Collection\`
--\> 3e5b4c627064625d.Flomies:232:25
\|
232 \| access(self) var publicPath: PublicPath
\| ^^^^^^^^^^
| +| 0x3e5b4c627064625d | GeneratedExperiences | ✅ | +| 0x3e5b4c627064625d | NFGv3 | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: found new field \`storagePath\` in \`Collection\`
--\> 3e5b4c627064625d.PartyFavorz:249:25
\|
249 \| access(self) var storagePath: StoragePath
\| ^^^^^^^^^^^

error: found new field \`publicPath\` in \`Collection\`
--\> 3e5b4c627064625d.PartyFavorz:250:25
\|
250 \| access(self) var publicPath: PublicPath
\| ^^^^^^^^^^
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xbd327ae7428784b5 | FlowEVMBridgeHandlerInterfaces | ❌

Error:
error: trying to convert contract interface \`FlowEVMBridgeHandlerInterfaces\` to a contract
--\> bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21
\|
12 \| access(all) contract FlowEVMBridgeHandlerInterfaces {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0xa1296b1e2e90ca5b | HelloWorld | ✅ | +| 0xe3faea00c5bb8d7d | TrmAssetV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmMarketV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmRentV2_2 | ✅ | +| 0x4ed4b8e5cd0dd15e | PackNFT | ✅ | +| 0x2a9011074c827145 | FungibleTokenCatalog | ✅ | +| 0xddb929038d45d4b3 | SwapConfig | ✅ | +| 0xddb929038d45d4b3 | SwapError | ✅ | +| 0xddb929038d45d4b3 | SwapInterfaces | ✅ | +| 0x2d766f00eb1d0c37 | PriceOracle | ✅ | +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x894269f57ac04a6e | FlowtyRaffleSource | ✅ | +| 0x894269f57ac04a6e | FlowtyRaffles | ✅ | +| 0x668b91e2995c2eba | PrivateReceiverForwarder | ✅ | +| 0x877931736ee77cff | PackNFT | ✅ | +| 0x877931736ee77cff | TopShot | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0xf9dad0d4c14a92b5 | BUSD | ✅ | +| 0xf9dad0d4c14a92b5 | USDC | ✅ | +| 0xf9dad0d4c14a92b5 | USDT | ✅ | +| 0xf9dad0d4c14a92b5 | wFlow | ✅ | +| 0x9680721e43087f43 | DropTypes | ✅ | +| 0x2f8af5ed05bbde0d | SwapRouter | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ✅ | +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0x7745157792470296 | LendingOracle | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x1c5033ad60821c97 | Admin | ✅ | +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ✅ | +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | DoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Doodles | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | OpenDoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ✅ | +| 0x1c5033ad60821c97 | Teleport | ✅ | +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Wearables | ✅ | +| 0x723a1b50e1d67e8e | TuneGONFT | ✅ | +| 0x8b47f4dd22afee8d | MetadataViews | ❌

Error:
error: missing resource interface declaration \`Resolver\`
--\> 8b47f4dd22afee8d.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^

error: missing resource interface declaration \`ResolverCollection\`
--\> 8b47f4dd22afee8d.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^
| +| 0x8b47f4dd22afee8d | TrmAssetMSV1_0 | ✅ | +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0x520a7157e1b964ed | ShebaHopeGrows | ✅ | +| 0x6f6702697b205c18 | HWGarageCard | ✅ | +| 0x6f6702697b205c18 | HWGarageCardV2 | ✅ | +| 0x6f6702697b205c18 | HWGaragePM | ✅ | +| 0x6f6702697b205c18 | HWGaragePMV2 | ✅ | +| 0x6f6702697b205c18 | HWGaragePack | ✅ | +| 0x6f6702697b205c18 | HWGaragePackV2 | ✅ | +| 0x6f6702697b205c18 | HWGarageTokenV2 | ✅ | +| 0x35717efbbce11c74 | Admin | ✅ | +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | Dandy | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FIND | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ✅ | +| 0x35717efbbce11c74 | FindForge | ✅ | +| 0x35717efbbce11c74 | FindForgeOrder | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketSale | ✅ | +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ✅ | +| 0x35717efbbce11c74 | FindMarket | ✅ | +| 0x35717efbbce11c74 | FindMarketAdmin | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ✅ | +| 0x26a1e94319e81a3c | Staking | ✅ | +| 0x26a1e94319e81a3c | StakingError | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindMarketSale | ✅ | +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: mismatching field \`providerCaps\` in \`Metadata\`
--\> 35717efbbce11c74.FindPack:343:43
\|
343 \| access(contract) let providerCaps: {Type : Capability}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected \`{NonFungibleToken.Provider, MetadataViews.ResolverCollection}\`, found \`{NonFungibleToken.Collection}\`

error: conformances do not match in \`FindPack\`: missing \`A.631e88ae7f1d7c20.NonFungibleToken\`
--\> 35717efbbce11c74.FindPack:12:21
\|
12 \| access(all) contract FindPack {
\| ^^^^^^^^
| +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ✅ | +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ✅ | +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | NameVoucher | ✅ | +| 0x35717efbbce11c74 | Profile | ✅ | +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | Sender | ✅ | +| 0x628992a07cb07272 | MatrixWorldVoucher | ✅ | +| 0x44ef9309713e2061 | StakingError | ✅ | +| 0x44ef9309713e2061 | StakingNFT | ✅ | +| 0x3286bb76e4e115fe | Boneyard | ✅ | +| 0xdfc20aee650fcbdf | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0x857dc34d5e1631d3 | FLOAT | ✅ | +| 0x857dc34d5e1631d3 | FLOATVerifiers | ❌

Error:
error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :28:0
\|
28 \| pub contract FLOAT: NonFungibleToken, ViewResolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :38:4
\|
38 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :48:4
\|
48 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:8
\|
74 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:8
\|
75 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:8
\|
76 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :86:8
\|
86 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:8
\|
87 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :98:8
\|
98 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:8
\|
103 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:8
\|
104 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:8
\|
105 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :106:8
\|
106 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:8
\|
108 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:8
\|
110 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :117:51
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 4d47bf3ce5e4393f.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:38:33
\|
38 \| access(all) struct Timelock: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:66:31
\|
66 \| access(all) struct Secret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:90:32
\|
90 \| access(all) struct Limited: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:113:39
\|
113 \| access(all) struct MultipleSecret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:137:33
\|
137 \| access(all) struct SecretV2: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:162:39
\|
162 \| access(all) struct MinimumBalance: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:226:30
\|
226 \| access(all) struct Email: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:94:51
\|
94 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:230:51
\|
230 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope
| +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | +| 0xe45c64ecfe31e465 | DelegatorManager | ✅ | +| 0xe45c64ecfe31e465 | LiquidStaking | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingConfig | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingError | ✅ | +| 0xe45c64ecfe31e465 | stFlowToken | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleConfig | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleInterface | ✅ | +| 0x6c35f966375845a6 | TixologiTickets | ✅ | +| 0xad26718c4b6b921b | BlackHole | ✅ | +| 0x683564e46977788a | MFLAdmin | ✅ | +| 0x683564e46977788a | MFLClub | ✅ | +| 0x683564e46977788a | MFLPack | ✅ | +| 0x683564e46977788a | MFLPackTemplate | ✅ | +| 0x683564e46977788a | MFLPlayer | ✅ | +| 0x683564e46977788a | MFLViews | ✅ | +| 0xcc4e949596cf8ced | TwoSegmentsInterestRateModel | ✅ | +| 0x23031fd14bb0f21b | TwoSegmentsInterestRateModel | ✅ | +| 0x92362a384f409a52 | TrmAssetV2_2 | ✅ | +| 0x92362a384f409a52 | TrmMarketV2_2 | ✅ | +| 0x92362a384f409a52 | TrmRentV2_2 | ✅ | +| 0xb39a42479c1c2c77 | AFLAdmin | ❌

Error:
error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

--\> b39a42479c1c2c77.AFLPack
| +| 0xb39a42479c1c2c77 | AFLBadges | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnExchange | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnRegistry | ✅ | +| 0xb39a42479c1c2c77 | AFLIndex | ✅ | +| 0xb39a42479c1c2c77 | AFLMarketplace | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:79:33
\|
79 \| init (vault: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:77:49
\|
77 \| access(self) let ownerVault: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:259:70
\|
259 \| access(all) fun changeMarketplaceWallet(\_ newCap: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:12:56
\|
12 \| access(contract) var marketplaceWallet: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:242:65
\|
242 \| access(all) fun createSaleCollection(ownerVault: Capability<&FiatToken.Vault>): @SaleCollection {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:277:64
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLMarketplace:277:33
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:119:36
\|
119 \| let saleOwnerVaultRef: &FiatToken.Vault = self.ownerVault.borrow() ?? panic("could not borrow reference to the owner vault")
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:126:36
\|
126 \| let marketplaceWallet: &FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic("Couldn't borrow Vault reference")
\| ^^^^^^^^^ not found in this scope
| +| 0xb39a42479c1c2c77 | AFLMetadataHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLNFT | ✅ | +| 0xb39a42479c1c2c77 | AFLPack | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48
\|
23 \| access(contract) let adminRef : Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35
\|
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
113 \| .borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xb39a42479c1c2c77 | PackRestrictions | ✅ | +| 0xb39a42479c1c2c77 | StorageHelper | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFTMarketplace_v1 | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFT_v1 | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xe7d5fb4c128b85b7 | Genies | ✅ | +| 0x74ad08095d92192a | ETHUtils | ✅ | +| 0x74ad08095d92192a | EVMAgent | ✅ | +| 0x74ad08095d92192a | FGameLottery | ✅ | +| 0x74ad08095d92192a | FGameLotteryFactory | ✅ | +| 0x74ad08095d92192a | FGameLotteryRegistry | ✅ | +| 0x74ad08095d92192a | FGameRugRoyale | ✅ | +| 0x74ad08095d92192a | FRC20AccountsPool | ✅ | +| 0x74ad08095d92192a | FRC20Agents | ✅ | +| 0x74ad08095d92192a | FRC20Converter | ✅ | +| 0x74ad08095d92192a | FRC20FTShared | ✅ | +| 0x74ad08095d92192a | FRC20FungibleToken | ✅ | +| 0x74ad08095d92192a | FRC20Indexer | ✅ | +| 0x74ad08095d92192a | FRC20MarketManager | ✅ | +| 0x74ad08095d92192a | FRC20Marketplace | ✅ | +| 0x74ad08095d92192a | FRC20NFTWrapper | ✅ | +| 0x74ad08095d92192a | FRC20SemiNFT | ✅ | +| 0x74ad08095d92192a | FRC20Staking | ✅ | +| 0x74ad08095d92192a | FRC20StakingForwarder | ✅ | +| 0x74ad08095d92192a | FRC20StakingManager | ✅ | +| 0x74ad08095d92192a | FRC20StakingVesting | ✅ | +| 0x74ad08095d92192a | FRC20Storefront | ✅ | +| 0x74ad08095d92192a | FRC20TradingRecord | ✅ | +| 0x74ad08095d92192a | FRC20VoteCommands | ✅ | +| 0x74ad08095d92192a | FRC20Votes | ✅ | +| 0x74ad08095d92192a | Fixes | ✅ | +| 0x74ad08095d92192a | FixesAssetMeta | ✅ | +| 0x74ad08095d92192a | FixesAvatar | ✅ | +| 0x74ad08095d92192a | FixesBondingCurve | ✅ | +| 0x74ad08095d92192a | FixesFungibleToken | ✅ | +| 0x74ad08095d92192a | FixesFungibleTokenInterface | ✅ | +| 0x74ad08095d92192a | FixesHeartbeat | ✅ | +| 0x74ad08095d92192a | FixesInscriptionFactory | ✅ | +| 0x74ad08095d92192a | FixesTokenAirDrops | ✅ | +| 0x74ad08095d92192a | FixesTokenLockDrops | ✅ | +| 0x74ad08095d92192a | FixesTradablePool | ✅ | +| 0x74ad08095d92192a | FixesTraits | ✅ | +| 0x74ad08095d92192a | FixesWrappedNFT | ✅ | +| 0x74ad08095d92192a | FungibleTokenManager | ✅ | +| 0x3b220a3372190656 | PriceOracle | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0xd9c02cdacccb25ab | FlowtyTestNFT | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0xb86f928a1fa7798e | FTViewUtils | ✅ | +| 0xb86f928a1fa7798e | TokenList | ✅ | +| 0xb86f928a1fa7798e | ViewResolvers | ✅ | +| 0x917db7072ed7160b | Cryptoys | ✅ | +| 0x917db7072ed7160b | CryptoysMetadataView2 | ✅ | +| 0x917db7072ed7160b | ICryptoys | ✅ | +| 0x08b1f9c0bc04f36f | IconoGraphika | ✅ | +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0x3a52faafb43951c0 | BigEast | ✅ | +| 0x3a52faafb43951c0 | LNVCT | ✅ | +| 0x3a52faafb43951c0 | MLS | ✅ | +| 0x3a52faafb43951c0 | NFL | ✅ | +| 0x3a52faafb43951c0 | Sharks | ✅ | +| 0x3a52faafb43951c0 | Stanz | ✅ | +| 0x3a52faafb43951c0 | TMNFT | ✅ | +| 0x24650d6246d4176c | PriceOracle | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0xa63ecf66edb620ef | ZeedzINO | ✅ | +| 0x9e324d8ae3cbd0f0 | LendingPool | ✅ | +| 0x9392a4a7c3f49a0b | DummyDustTokenMinter | ❌

Error:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.DummyDustTokenMinter:8:23
\|
8 \| resource DummyMinter: Toucans.Minter{
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.DummyDustTokenMinter:10:29
\|
10 \| fun mint(amount: UFix64): @FlovatarDustToken.Vault{
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.DummyDustTokenMinter:11:12
\|
11 \| return <-FlovatarDustToken.createEmptyDustVault()
\| ^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | Flobot | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack
| +| 0x9392a4a7c3f49a0b | Flovatar | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144
\|
1435 \| fun createPack(components: @\$&FlovatarComponent.NFT\$&, randomString: String, price: UFix64, sparkCount: UInt32, series: UInt32, name: String): @FlovatarPack.Pack{
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27
\|
365 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21
\|
365 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27
\|
397 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21
\|
397 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27
\|
417 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21
\|
417 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27
\|
434 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21
\|
434 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27
\|
458 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21
\|
458 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12
\|
1436 \| return <-FlovatarPack.createPack(components: <-components, randomString: randomString, price: price, sparkCount: sparkCount, series: series, name: name)
\| ^^^^^^^^^^^^ not found in this scope
| +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarComponent | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarComponentTemplate | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarComponentUpgrader | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: error getting program 9392a4a7c3f49a0b.FlovatarInbox: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:122:18

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:37:22

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:643:25

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:390:21

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:453:21

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:455:83

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:478:6

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:500:3

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:542:83

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:578:83

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:26

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:20

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:132:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:21

--\> 9392a4a7c3f49a0b.FlovatarInbox

error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:26
\|
202 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:20
\|
202 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarInbox\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:65
\|
258 \| self.account.storage.borrow(
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarInbox\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:259:11
\|
259 \| from: FlovatarInbox.CollectionStoragePath
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:4
\|
258 \| self.account.storage.borrow(
259 \| from: FlovatarInbox.CollectionStoragePath
260 \| ){
\| ^
| +| 0x9392a4a7c3f49a0b | FlovatarDustCollectible | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20

--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:193:46
\|
193 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:193:86
\|
193 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:196:39
\|
196 \| fun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:242:29
\|
242 \| let accessories: @{UInt32: FlovatarDustCollectibleAccessory.NFT}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:400:46
\|
400 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:400:86
\|
400 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:415:39
\|
415 \| fun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1068:46
\|
1068 \| fun createCollectible(templateId: UInt64): @FlovatarDustCollectibleAccessory.NFT{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1074:70
\|
1074 \| fun batchCreateCollectibles(templateId: UInt64, quantity: UInt64): @FlovatarDustCollectibleAccessory.Collection{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:930:26
\|
930 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:930:20
\|
930 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:311:27
\|
311 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:311:21
\|
311 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:343:27
\|
343 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:343:21
\|
343 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:370:27
\|
370 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:370:21
\|
370 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1069:12
\|
1069 \| return <-FlovatarDustCollectibleAccessory.createCollectibleAccessoryInternal(templateId: templateId)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1075:12
\|
1075 \| return <-FlovatarDustCollectibleAccessory.batchCreateCollectibleAccessory(templateId: templateId, quantity: quantity)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | FlovatarDustCollectibleAccessory | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26
\|
562 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20
\|
562 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x9392a4a7c3f49a0b | FlovatarDustCollectibleTemplate | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarDustToken | ❌

Error:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18
\|
286 \| resource Minter: Toucans.Minter{
\| ^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | FlovatarInbox | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:122:18
\|
122 \| let dustVault: @FlovatarDustToken.Vault
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:37:22
\|
37 \| let communityVault: @FlovatarDustToken.Vault
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:643:25
\|
643 \| self.communityVault <- FlovatarDustToken.createEmptyDustVault()
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:390:21
\|
390 \| if let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:453:21
\|
453 \| if let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:455:83
\|
455 \| let receiverRef = (receiverAccount.capabilities.get<&{FungibleToken.Receiver}>(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic("Could not borrow receiver reference to the recipient's Vault")
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:478:6
\|
478 \| FlovatarDustToken.VaultReceiverPath
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:500:3
\|
500 \| Flovatar.getFlovatarRarityScore(address: address, flovatarId: id){
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:542:83
\|
542 \| let receiverRef = (receiverAccount.capabilities.get<&{FungibleToken.Receiver}>(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic("Could not borrow receiver reference to the recipient's Vault")
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:578:83
\|
578 \| let receiverRef = (receiverAccount.capabilities.get<&{FungibleToken.Receiver}>(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic("Could not borrow receiver reference to the recipient's Vault")
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:26
\|
601 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:20
\|
601 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:132:21
\|
132 \| self.dustVault <- FlovatarDustToken.createEmptyDustVault()
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:27
\|
235 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:21
\|
235 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:27
\|
246 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:21
\|
246 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x9392a4a7c3f49a0b | FlovatarMarketplace | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:66:30
\|
66 \| recipientCap: Capability<&{Flovatar.CollectionPublic}>,
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:66:29
\|
66 \| recipientCap: Capability<&{Flovatar.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:90:38
\|
90 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:90:37
\|
90 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:103:33
\|
103 \| let flovatarForSale: @{UInt64: Flovatar.NFT}
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:131:42
\|
131 \| fun withdrawFlovatar(tokenId: UInt64): @Flovatar.NFT{
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:155:34
\|
155 \| fun listFlovatarForSale(token: @Flovatar.NFT, price: UFix64){
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:202:67
\|
202 \| fun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability<&{Flovatar.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:202:66
\|
202 \| fun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability<&{Flovatar.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:296:38
\|
296 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?{
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:296:37
\|
296 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?{
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:346:13
\|
346 \| metadata: Flovatar.Metadata,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:329:16
\|
329 \| let metadata: Flovatar.Metadata
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:216:30
\|
216 \| if !token.isInstance(Type<@Flovatar.NFT>()){
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:216:24
\|
216 \| if !token.isInstance(Type<@Flovatar.NFT>()){
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:221:31
\|
221 \| let creatorAmount = price \* Flovatar.getRoyaltyCut()
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:225:35
\|
225 \| let marketplaceAmount = price \* Flovatar.getMarketplaceCut()
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:257:35
\|
257 \| let marketplaceAmount = price \* Flovatar.getMarketplaceCut()
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:298:50
\|
298 \| let ref = (&self.flovatarForSale\$&tokenId\$& as &Flovatar.NFT?)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:299:20
\|
299 \| return ref as! &Flovatar.NFT
\| ^^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | FlovatarPack | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31
\|
415 \| buyTokens.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25
\|
415 \| buyTokens.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x3870b3d38f83ae4c | FiatToken | ❌

Error:
error: missing resource declaration \`Admin\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`AdminExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`BlocklistExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Blocklister\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`MasterMinter\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`MasterMinterExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Minter\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`MinterController\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Owner\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`OwnerExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`PauseExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Pauser\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^
| +| 0x3870b3d38f83ae4c | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0xab2d22248a619d77 | MetadataViews | ❌

Error:
error: missing resource interface declaration \`Resolver\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^

error: missing resource interface declaration \`ResolverCollection\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^
| +| 0xab2d22248a619d77 | TrmAssetMSV1_0 | ✅ | +| 0xab2d22248a619d77 | TrmAssetMSV2_0 | ✅ | +| 0x8bc9e24c307d249b | LendingConfig | ✅ | +| 0x8bc9e24c307d249b | LendingError | ✅ | +| 0x8bc9e24c307d249b | LendingInterfaces | ✅ | +| 0x97d2f3b55c6a6a75 | LendingPool | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 0xcbdb5a7b89c3c844 | PriceOracle | ✅ | +| 0xc911d6ddfae70ce8 | PriceOracle | ✅ | +| 0xef4cd3d07a7b43ce | IPackNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x6d692450d591524c | PriceOracle | ✅ | +| 0x547f177b243b4d80 | Market | ✅ | +| 0x547f177b243b4d80 | TopShotMarketV3 | ✅ | +| 0x2ceae959ed1a7e7a | MigrationContractStaging | ✅ | +| 0xe8124d8428980aa6 | Bl0x | ✅ | +| 0x8232ce4a3aff4e94 | PublicPriceOracle | ✅ | +| 0x8770564d92180608 | TrmAssetV2_2 | ✅ | +| 0x8770564d92180608 | TrmMarketV2_2 | ✅ | +| 0x8770564d92180608 | TrmRentV2_2 | ✅ | +| 0x250e0b90c1b7711b | A | ❌

Error:
error: cannot find declaration \`B\` in \`250e0b90c1b7711b.B\`
--\> 250e0b90c1b7711b.A:1:7
\|
1 \| import B from 0x250e0b90c1b7711b
\| ^ available exported declarations are:
\- \`Bad\`

| +| 0x250e0b90c1b7711b | B | ✅ | +| 0x250e0b90c1b7711b | Bar | ✅ | +| 0x250e0b90c1b7711b | F | ✅ | +| 0x250e0b90c1b7711b | Foo | ✅ | +| 0x250e0b90c1b7711b | L | ✅ | +| 0x250e0b90c1b7711b | O | ✅ | +| 0x250e0b90c1b7711b | W | ❌

Error:
error: mismatching field \`foo\` in \`W\`
--\> 250e0b90c1b7711b.W:3:25
\|
3 \| access(all) let foo: String
\| ^^^^^^ incompatible type annotations. expected \`Int\`, found \`String\`
| +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0x58b60c5240d3f39b | PackNFT | ✅ | +| 0x58b60c5240d3f39b | TicalUniverse | ✅ | +| 0x58b60c5240d3f39b | TuneGO | ✅ | +| 0x58b60c5240d3f39b | TuneGONFTV5 | ✅ | +| 0x06f1e5cde6db0e70 | DropFactory | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyAddressVerifiers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyDrops | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyPricers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtySwitchers | ✅ | +| 0x985d410b577fd4a1 | Gamisodes | ✅ | +| 0x985d410b577fd4a1 | Lufthaus | ✅ | +| 0x985d410b577fd4a1 | MUMGJ | ✅ | +| 0x985d410b577fd4a1 | MintStoreItem | ✅ | +| 0x985d410b577fd4a1 | OpenLockerInc | ✅ | +| 0x985d410b577fd4a1 | OpenLockerIncBoneYardHuskyzClub | ✅ | +| 0x985d410b577fd4a1 | Pickem | ✅ | +| 0x985d410b577fd4a1 | RTLStoreItem | ✅ | +| 0x985d410b577fd4a1 | YBees | ✅ | +| 0x985d410b577fd4a1 | YoungBoysBern | ✅ | +| 0x5d45c655fcde5037 | TicalUniverse | ✅ | +| 0x5d45c655fcde5037 | TuneGO | ✅ | +| 0xc20df20fabe06457 | SwapPair | ✅ | +| 0x8c55fba7d7090fee | Magnetiq | ✅ | +| 0x8c55fba7d7090fee | MagnetiqLocking | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | ExampleNFT | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | HowardNFT | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | KaratNFT | ✅ | +| 0x566c813b3632783e | Karatv2 | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | MEGAMI | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x7dc7430a06f38af3 | ZeedzINO | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbieCard | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbiePM | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbiePack | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbieToken | ✅ | +| 0x8aaca41f09eb1e3d | LendingPool | ✅ | +| 0x8a5f647e58dde1ee | DapperOffersV2 | ✅ | +| 0x8a5f647e58dde1ee | OffersV2 | ✅ | +| 0x8a5f647e58dde1ee | Resolver | ✅ | +| 0xcbed4c301441ded2 | StableSwapFactory | ✅ | +| 0xcbed4c301441ded2 | SwapFactory | ✅ | +| 0xc15e75b5f6b95e54 | LendingComptroller | ✅ | +| 0x74daa6f9c7ef24b1 | FCLCrypto | ✅ | diff --git a/migrations_data/staged-contracts-report-2024-06-19T12-31-00Z-testnet.json b/migrations_data/staged-contracts-report-2024-06-19T12-31-00Z-testnet.json new file mode 100644 index 0000000000..576d6dd222 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-06-19T12-31-00Z-testnet.json @@ -0,0 +1 @@ +[{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x4dfd62c88d1b6462","contract_name":"AllDay"},{"kind":"contract-update-failure","account_address":"0x4dfd62c88d1b6462","contract_name":"PackNFT","error":"error: resource `PackNFT.Collection` does not conform to resource interface `IPackNFT.IPackNFTCollectionPublic`\n --\u003e 4dfd62c88d1b6462.PackNFT:299:25\n |\n299 | access(all) resource Collection: NonFungibleToken.Collection,ViewResolver.ResolverCollection, IPackNFT.IPackNFTCollectionPublic {\n | ^ `PackNFT.Collection` is missing definitions for members: `emitRevealRequestEvent`, `emitOpenRequestEvent`\n"},{"kind":"contract-update-success","account_address":"0x6b7930acbcd12877","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"CricketMomentsShardedCollection"},{"kind":"contract-update-success","account_address":"0x34f3140b7f54c743","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"CricketMomentsShardedCollection"},{"kind":"contract-update-success","account_address":"0x2d0d952e760d1770","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-success","account_address":"0x520a7157e1b964ed","contract_name":"ShebaHopeGrows"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Art"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Auction"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Content"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Marketplace"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x99ca04281098b33d","contract_name":"Versus"},{"kind":"contract-update-success","account_address":"0xcc4e949596cf8ced","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x24650d6246d4176c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x2299f74679d9c88a","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"Magnetiq"},{"kind":"contract-update-success","account_address":"0x8c55fba7d7090fee","contract_name":"MagnetiqLocking"},{"kind":"contract-update-success","account_address":"0xd704ee8202a0d82d","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"DapperUtilityCoin"},{"kind":"contract-update-success","account_address":"0x82ec283f88a62e65","contract_name":"FlowUtilityToken"},{"kind":"contract-update-success","account_address":"0x8aaca41f09eb1e3d","contract_name":"LendingPool"},{"kind":"contract-update-failure","account_address":"0xf28310b45fc6b319","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f28310b45fc6b319.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e f28310b45fc6b319.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f28310b45fc6b319.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"Flowty"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"FlowtyRentals"},{"kind":"contract-update-success","account_address":"0xe1d43e0cfc237807","contract_name":"RoyaltiesLedger"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"FTViewUtils"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"TokenList"},{"kind":"contract-update-success","account_address":"0x2dcd833119c0570c","contract_name":"toddnewstaging2_NFT"},{"kind":"contract-update-success","account_address":"0xb86f928a1fa7798e","contract_name":"ViewResolvers"},{"kind":"contract-update-success","account_address":"0x7745157792470296","contract_name":"LendingOracle"},{"kind":"contract-update-success","account_address":"0xa63ecf66edb620ef","contract_name":"ZeedzINO"},{"kind":"contract-update-failure","account_address":"0xd35bad52c7e1ab65","contract_name":"ZeedzINO","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:207:43\n |\n207 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:208:43\n |\n208 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:218:43\n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:224:43\n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e d35bad52c7e1ab65.ZeedzINO:234:43\n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n218 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n\nerror: resource `ZeedzINO.Collection` does not conform to resource interface `ZeedzINO.ZeedzCollectionPrivate`\n --\u003e d35bad52c7e1ab65.ZeedzINO:214:25\n |\n214 | access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {\n | ^\n ... \n |\n224 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun burn(burnID: UInt64){\n | ---- mismatch here\n ... \n |\n234 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){\n | ------ mismatch here\n"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingConfig"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingError"},{"kind":"contract-update-success","account_address":"0x8bc9e24c307d249b","contract_name":"LendingInterfaces"},{"kind":"contract-update-success","account_address":"0x9680721e43087f43","contract_name":"DropTypes"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x9d96fa5f60093c18","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x7dc7430a06f38af3","contract_name":"ZeedzINO"},{"kind":"contract-update-success","account_address":"0x94b06cfca1d8a476","contract_name":"NFTStorefront"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xb668e8c9726ef26b","contract_name":"Signature"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"StableSwapFactory"},{"kind":"contract-update-success","account_address":"0xcbed4c301441ded2","contract_name":"SwapFactory"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x8d5aac1da9c370bc","contract_name":"Contract"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"AddressUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ArrayUtils"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"ScopedNFTProviders"},{"kind":"contract-update-success","account_address":"0x31ad40c07a2a9788","contract_name":"StringUtils"},{"kind":"contract-update-success","account_address":"0x2f8af5ed05bbde0d","contract_name":"SwapRouter"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"ETHUtils"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"EVMAgent"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLottery"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameLotteryRegistry"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FGameRugRoyale"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20AccountsPool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Agents"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Converter"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FTShared"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20FungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Indexer"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20MarketManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Marketplace"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20NFTWrapper"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20SemiNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Staking"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingForwarder"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingManager"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20StakingVesting"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Storefront"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20TradingRecord"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20VoteCommands"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FRC20Votes"},{"kind":"contract-update-success","account_address":"0xc15e75b5f6b95e54","contract_name":"LendingComptroller"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"Fixes"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAssetMeta"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesAvatar"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesBondingCurve"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleToken"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesFungibleTokenInterface"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesHeartbeat"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesInscriptionFactory"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenAirDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTokenLockDrops"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTradablePool"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesTraits"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FixesWrappedNFT"},{"kind":"contract-update-success","account_address":"0x74ad08095d92192a","contract_name":"FungibleTokenManager"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x92362a384f409a52","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x547f177b243b4d80","contract_name":"Market"},{"kind":"contract-update-success","account_address":"0x547f177b243b4d80","contract_name":"TopShotMarketV3"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0x8770564d92180608","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x723a1b50e1d67e8e","contract_name":"TuneGONFT"},{"kind":"contract-update-success","account_address":"0xdad0aaa285a25413","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"DapperOffersV2"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"OffersV2"},{"kind":"contract-update-success","account_address":"0x8a5f647e58dde1ee","contract_name":"Resolver"},{"kind":"contract-update-success","account_address":"0xcbdb5a7b89c3c844","contract_name":"PriceOracle"},{"kind":"contract-update-failure","account_address":"0x877931736ee77cff","contract_name":"PackNFT","error":"error: resource `PackNFT.Collection` does not conform to resource interface `IPackNFT.IPackNFTCollectionPublic`\n --\u003e 877931736ee77cff.PackNFT:299:25\n |\n299 | access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic, ViewResolver.ResolverCollection {\n | ^ `PackNFT.Collection` is missing definitions for members: `emitRevealRequestEvent`, `emitOpenRequestEvent`\n"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShot"},{"kind":"contract-update-success","account_address":"0x877931736ee77cff","contract_name":"TopShotLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"NFTLocking"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Swap"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapArchive"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStats"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"SwapStatsRegistry"},{"kind":"contract-update-success","account_address":"0x2bd8210db3a8fe8a","contract_name":"Utils"},{"kind":"contract-update-failure","account_address":"0x8b47f4dd22afee8d","contract_name":"MetadataViews","error":"error: missing resource interface declaration `Resolver`\n --\u003e 8b47f4dd22afee8d.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n\nerror: missing resource interface declaration `ResolverCollection`\n --\u003e 8b47f4dd22afee8d.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x8b47f4dd22afee8d","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"FeeEstimator"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFound"},{"kind":"contract-update-success","account_address":"0xbe4635353f55bbd4","contract_name":"LostAndFoundHelper"},{"kind":"contract-update-failure","account_address":"0xab2d22248a619d77","contract_name":"MetadataViews","error":"error: missing resource interface declaration `Resolver`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n\nerror: missing resource interface declaration `ResolverCollection`\n --\u003e ab2d22248a619d77.MetadataViews:15:21\n |\n15 | access(all) contract MetadataViews {\n | ^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV1_0"},{"kind":"contract-update-success","account_address":"0xab2d22248a619d77","contract_name":"TrmAssetMSV2_0"},{"kind":"contract-update-failure","account_address":"0x3870b3d38f83ae4c","contract_name":"FiatToken","error":"error: missing resource declaration `Admin`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `AdminExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `BlocklistExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Blocklister`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `MasterMinter`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `MasterMinterExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Minter`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `MinterController`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Owner`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `OwnerExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `PauseExecutor`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n\nerror: missing resource declaration `Pauser`\n --\u003e 3870b3d38f83ae4c.FiatToken:7:21\n |\n7 | access(all) contract FiatToken: FungibleToken {\n | ^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x3870b3d38f83ae4c","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageCard"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageCardV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePM"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePMV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePack"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGaragePackV2"},{"kind":"contract-update-success","account_address":"0x6f6702697b205c18","contract_name":"HWGarageTokenV2"},{"kind":"contract-update-success","account_address":"0x4ed4b8e5cd0dd15e","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmAssetV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmMarketV2_2"},{"kind":"contract-update-success","account_address":"0xe3faea00c5bb8d7d","contract_name":"TrmRentV2_2"},{"kind":"contract-update-success","account_address":"0x3b220a3372190656","contract_name":"PriceOracle"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"DummyDustTokenMinter","error":"error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.DummyDustTokenMinter:8:23\n |\n8 | \tresource DummyMinter: Toucans.Minter{ \n | \t ^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.DummyDustTokenMinter:10:29\n |\n10 | \t\tfun mint(amount: UFix64): @FlovatarDustToken.Vault{ \n | \t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.DummyDustTokenMinter:11:12\n |\n11 | \t\t\treturn \u003c-FlovatarDustToken.createEmptyDustVault()\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"Flobot","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"Flovatar","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n |\n1435 | \t\tfun createPack(components: @[FlovatarComponent.NFT], randomString: String, price: UFix64, sparkCount: UInt32, series: UInt32, name: String): @FlovatarPack.Pack{ \n | \t\t ^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n |\n365 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n |\n365 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n |\n397 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n |\n397 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n |\n417 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n |\n417 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n |\n434 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n |\n434 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n |\n458 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n |\n458 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n |\n1436 | \t\t\treturn \u003c-FlovatarPack.createPack(components: \u003c-components, randomString: randomString, price: price, sparkCount: sparkCount, series: series, name: name)\n | \t\t\t ^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarComponent"},{"kind":"contract-update-success","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarComponentTemplate"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarComponentUpgrader","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarInbox: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:122:18\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:37:22\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:643:25\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:390:21\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:453:21\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:455:83\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:478:6\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:500:3\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:542:83\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:578:83\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:26\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:20\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:132:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:21\n\n--\u003e 9392a4a7c3f49a0b.FlovatarInbox\n\nerror: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:26\n |\n202 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:20\n |\n202 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarInbox`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:65\n |\n258 | \t\t\t\tself.account.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026FlovatarInbox.Collection\u003e(\n | \t\t\t\t ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarInbox`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:259:11\n |\n259 | \t\t\t\t\tfrom: FlovatarInbox.CollectionStoragePath\n | \t\t\t\t\t ^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:4\n |\n258 | \t\t\t\tself.account.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026FlovatarInbox.Collection\u003e(\n259 | \t\t\t\t\tfrom: FlovatarInbox.CollectionStoragePath\n260 | \t\t\t\t){ \n | \t\t\t\t^\n"},{"kind":"contract-update-success","account_address":"0x6c35f966375845a6","contract_name":"TixologiTickets"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustCollectible","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:193:46\n |\n193 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:193:86\n |\n193 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:196:39\n |\n196 | \t\tfun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:242:29\n |\n242 | \t\tlet accessories: @{UInt32: FlovatarDustCollectibleAccessory.NFT}\n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:400:46\n |\n400 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:400:86\n |\n400 | \t\tfun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:415:39\n |\n415 | \t\tfun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1068:46\n |\n1068 | \t\tfun createCollectible(templateId: UInt64): @FlovatarDustCollectibleAccessory.NFT{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1074:70\n |\n1074 | \t\tfun batchCreateCollectibles(templateId: UInt64, quantity: UInt64): @FlovatarDustCollectibleAccessory.Collection{ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:930:26\n |\n930 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:930:20\n |\n930 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:311:27\n |\n311 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:311:21\n |\n311 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:343:27\n |\n343 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:343:21\n |\n343 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:370:27\n |\n370 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:370:21\n |\n370 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1069:12\n |\n1069 | \t\t\treturn \u003c-FlovatarDustCollectibleAccessory.createCollectibleAccessoryInternal(templateId: templateId)\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustCollectibleAccessory`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectible:1075:12\n |\n1075 | \t\t\treturn \u003c-FlovatarDustCollectibleAccessory.batchCreateCollectibleAccessory(templateId: templateId, quantity: quantity)\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustCollectibleAccessory","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26\n |\n562 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20\n |\n562 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustCollectibleTemplate"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarDustToken","error":"error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n |\n286 | \tresource Minter: Toucans.Minter{ \n | \t ^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarInbox","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:122:18\n |\n122 | \t\tlet dustVault: @FlovatarDustToken.Vault\n | \t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:37:22\n |\n37 | \tlet communityVault: @FlovatarDustToken.Vault\n | \t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:643:25\n |\n643 | \t\tself.communityVault \u003c- FlovatarDustToken.createEmptyDustVault()\n | \t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:390:21\n |\n390 | \t\t\tif let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){ \n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:453:21\n |\n453 | \t\t\tif let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){ \n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:455:83\n |\n455 | \t\t\t\tlet receiverRef = (receiverAccount.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:478:6\n |\n478 | \t\t\t\t\t\tFlovatarDustToken.VaultReceiverPath\n | \t\t\t\t\t\t^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:500:3\n |\n500 | \t\t\tFlovatar.getFlovatarRarityScore(address: address, flovatarId: id){ \n | \t\t\t^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:542:83\n |\n542 | \t\t\t\tlet receiverRef = (receiverAccount.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:578:83\n |\n578 | \t\t\t\tlet receiverRef = (receiverAccount.capabilities.get\u003c\u0026{FungibleToken.Receiver}\u003e(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:26\n |\n601 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:601:20\n |\n601 | \t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:132:21\n |\n132 | \t\t\tself.dustVault \u003c- FlovatarDustToken.createEmptyDustVault()\n | \t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:27\n |\n235 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:235:21\n |\n235 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:27\n |\n246 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarInbox:246:21\n |\n246 | \t\t\t\tvault.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarMarketplace","error":"error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n\n--\u003e 9392a4a7c3f49a0b.FlovatarPack\n\nerror: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1435:144\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:365:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:397:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:417:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:434:21\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:27\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.Flovatar:458:21\n\nerror: cannot find variable in this scope: `FlovatarPack`\n --\u003e 9392a4a7c3f49a0b.Flovatar:1436:12\n\n--\u003e 9392a4a7c3f49a0b.Flovatar\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:66:30\n |\n66 | \t\t\trecipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e,\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:66:29\n |\n66 | \t\t\trecipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e,\n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:90:38\n |\n90 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:90:37\n |\n90 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?\n | \t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:103:33\n |\n103 | \t\tlet flovatarForSale: @{UInt64: Flovatar.NFT}\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:131:42\n |\n131 | \t\tfun withdrawFlovatar(tokenId: UInt64): @Flovatar.NFT{ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:155:34\n |\n155 | \t\tfun listFlovatarForSale(token: @Flovatar.NFT, price: UFix64){ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:202:67\n |\n202 | \t\tfun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:202:66\n |\n202 | \t\tfun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability\u003c\u0026{Flovatar.CollectionPublic}\u003e, buyTokens: @{FungibleToken.Vault}){ \n | \t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:296:38\n |\n296 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?{ \n | \t\t ^^^^^^^^ not found in this scope\n\nerror: ambiguous intersection type\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:296:37\n |\n296 | \t\tfun getFlovatar(tokenId: UInt64): \u0026{Flovatar.Public}?{ \n | \t\t ^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:346:13\n |\n346 | \t\t\tmetadata: Flovatar.Metadata,\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:329:16\n |\n329 | \t\tlet metadata: Flovatar.Metadata\n | \t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:216:30\n |\n216 | \t\t\tif !token.isInstance(Type\u003c@Flovatar.NFT\u003e()){ \n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:216:24\n |\n216 | \t\t\tif !token.isInstance(Type\u003c@Flovatar.NFT\u003e()){ \n | \t\t\t ^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:221:31\n |\n221 | \t\t\tlet creatorAmount = price * Flovatar.getRoyaltyCut()\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:225:35\n |\n225 | \t\t\tlet marketplaceAmount = price * Flovatar.getMarketplaceCut()\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:257:35\n |\n257 | \t\t\tlet marketplaceAmount = price * Flovatar.getMarketplaceCut()\n | \t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:298:50\n |\n298 | \t\t\t\tlet ref = (\u0026self.flovatarForSale[tokenId] as \u0026Flovatar.NFT?)!\n | \t\t\t\t ^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `Flovatar`\n --\u003e 9392a4a7c3f49a0b.FlovatarMarketplace:299:20\n |\n299 | \t\t\t\treturn ref as! \u0026Flovatar.NFT\n | \t\t\t\t ^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-failure","account_address":"0x9392a4a7c3f49a0b","contract_name":"FlovatarPack","error":"error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:\nerror: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:0\n |\n14 | pub contract Toucans {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :16:2\n |\n16 | pub let CollectionStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :17:2\n |\n17 | pub let CollectionPublicPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:2\n |\n19 | pub resource interface Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :20:4\n |\n20 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :27:2\n |\n27 | pub resource DummyMinter: Minter {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub fun mint(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :33:2\n |\n33 | pub event ProjectCreated(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :39:2\n |\n39 | pub event NewFundingCycle(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:2\n |\n49 | pub event Purchase(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:2\n |\n59 | pub event Donate(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:2\n |\n69 | pub event DonateNFT(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:2\n |\n82 | pub event Withdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:2\n |\n90 | pub event BatchWithdraw(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:2\n |\n99 | pub event WithdrawNFTs(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:2\n |\n109 | pub event Mint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:2\n |\n117 | pub event BatchMint(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:2\n |\n126 | pub event Burn(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:2\n |\n133 | pub event LockTokens(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:2\n |\n142 | pub event StakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :148:2\n |\n148 | pub event UnstakeFlow(\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :154:2\n |\n154 | pub event AddSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :155:2\n |\n155 | pub event RemoveSigner(projectId: String, signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :156:2\n |\n156 | pub event UpdateThreshold(projectId: String, newThreshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :158:2\n |\n158 | pub struct CycleTimeFrame {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :159:4\n |\n159 | pub let startTime: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :160:4\n |\n160 | pub let endTime: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :171:2\n |\n171 | pub struct Payout {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :172:4\n |\n172 | pub let address: Address\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :173:4\n |\n173 | pub let percent: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :184:2\n |\n184 | pub struct FundingCycleDetails {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :185:4\n |\n185 | pub let cycleId: UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :187:4\n |\n187 | pub let fundingTarget: UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :188:4\n |\n188 | pub let issuanceRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :190:4\n |\n190 | pub let reserveRate: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :191:4\n |\n191 | pub let timeframe: CycleTimeFrame\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:4\n |\n192 | pub let payouts: [Payout]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :193:4\n |\n193 | pub let allowOverflow: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:4\n |\n194 | pub let allowedAddresses: [Address]?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :195:4\n |\n195 | pub let catalogCollectionIdentifier: String?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :196:4\n |\n196 | pub let extra: {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :221:2\n |\n221 | pub struct FundingCycle {\n | ^^^\n\nerror: `pub(set)` is no longer a valid access keyword\n --\u003e :222:4\n |\n222 | pub(set) var details: FundingCycleDetails\n | ^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :226:4\n |\n226 | pub var projectTokensAcquired: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :230:4\n |\n230 | pub var raisedDuringRound: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :233:4\n |\n233 | pub var raisedTowardsGoal: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :234:4\n |\n234 | pub let funders: {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :258:2\n |\n258 | pub resource interface ProjectPublic {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :259:4\n |\n259 | pub let projectId: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :260:4\n |\n260 | pub var projectTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :261:4\n |\n261 | pub let paymentTokenInfo: ToucansTokens.TokenInfo\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :262:4\n |\n262 | pub var totalFunding: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :263:4\n |\n263 | pub var editDelay: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :264:4\n |\n264 | pub var purchasing: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :265:4\n |\n265 | pub let minting: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :269:4\n |\n269 | pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :270:4\n |\n270 | pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :271:4\n |\n271 | pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability\u003c\u0026{NonFungibleToken.Receiver}\u003e, nftIDs: [UInt64], message: String, _ recipientCollectionBackup: Capability\u003c\u0026{NonFungibleToken.CollectionPublic}\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :272:4\n |\n272 | pub fun proposeMint(recipientVault: Capability\u003c\u0026{FungibleToken.Receiver}\u003e, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :273:4\n |\n273 | pub fun proposeBatchMint(recipientVaults: {Address: Capability\u003c\u0026{FungibleToken.Receiver}\u003e}, amounts: {Address: UFix64})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :274:4\n |\n274 | pub fun proposeMintToTreasury(amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :275:4\n |\n275 | pub fun proposeBurn(tokenType: Type, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :276:4\n |\n276 | pub fun proposeAddSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :277:4\n |\n277 | pub fun proposeRemoveSigner(signer: Address)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :278:4\n |\n278 | pub fun proposeUpdateThreshold(threshold: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :279:4\n |\n279 | pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :280:4\n |\n280 | pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :281:4\n |\n281 | pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :284:4\n |\n284 | pub fun finalizeAction(actionUUID: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :285:4\n |\n285 | pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :286:4\n |\n286 | pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :287:4\n |\n287 | pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :288:4\n |\n288 | pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: \u0026{FungibleToken.Receiver}, message: String)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :289:4\n |\n289 | pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :290:4\n |\n290 | pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: \u0026{FungibleToken.Receiver})\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :293:4\n |\n293 | pub fun getCurrentIssuanceRate(): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :294:4\n |\n294 | pub fun getCurrentFundingCycle(): FundingCycle?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :295:4\n |\n295 | pub fun getCurrentFundingCycleId(): UInt64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :296:4\n |\n296 | pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :297:4\n |\n297 | pub fun getFundingCycles(): [FundingCycle]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :298:4\n |\n298 | pub fun getVaultTypesInTreasury(): [Type]\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :299:4\n |\n299 | pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :300:4\n |\n300 | pub fun getExtra(): {String: AnyStruct}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :301:4\n |\n301 | pub fun getCompletedActionIds(): {UInt64: Bool}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :302:4\n |\n302 | pub fun getFunders(): {Address: UFix64}\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :303:4\n |\n303 | pub fun getOverflowBalance(): UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :304:4\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :304:44\n |\n304 | pub fun borrowManagerPublic(): \u0026Manager{ManagerPublic}\n | ^^^^^^^^^^^^^\n\n--\u003e 918c2008c16da416.Toucans\n\nerror: cannot find type in this scope: `Toucans`\n --\u003e 9392a4a7c3f49a0b.FlovatarDustToken:286:18\n\n--\u003e 9392a4a7c3f49a0b.FlovatarDustToken\n\nerror: cannot find type in this scope: `FlovatarDustToken`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:31\n |\n415 | \t\t\t\tbuyTokens.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e 9392a4a7c3f49a0b.FlovatarPack:415:25\n |\n415 | \t\t\t\tbuyTokens.isInstance(Type\u003c@FlovatarDustToken.Vault\u003e()):\n | \t\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc911d6ddfae70ce8","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x2d59ec5158e3adae","contract_name":"HeroesOfTheFlow"},{"kind":"contract-update-success","account_address":"0xe8124d8428980aa6","contract_name":"Bl0x"},{"kind":"contract-update-failure","account_address":"0xc7c122b5b811de8e","contract_name":"BulkPurchase","error":"error: missing structure declaration `Order`\n --\u003e c7c122b5b811de8e.BulkPurchase:20:21\n |\n20 | access(all) contract BulkPurchase {\n | ^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePass"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePassPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySale"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowversePrimarySaleV2"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseShirt"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseSocks"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasures"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"FlowverseTreasuresPrimarySaleMinter"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Ordinal"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"OrdinalVendor"},{"kind":"contract-update-success","account_address":"0xc7c122b5b811de8e","contract_name":"Royalties"},{"kind":"contract-update-success","account_address":"0xd9c02cdacccb25ab","contract_name":"FlowtyTestNFT"},{"kind":"contract-update-success","account_address":"0x6d692450d591524c","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"BigEast"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"LNVCT"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"MLS"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"NFL"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"Sharks"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"Stanz"},{"kind":"contract-update-success","account_address":"0x3a52faafb43951c0","contract_name":"TMNFT"},{"kind":"contract-update-success","account_address":"0x2a9011074c827145","contract_name":"FungibleTokenCatalog"},{"kind":"contract-update-success","account_address":"0xe7d5fb4c128b85b7","contract_name":"Genies"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"Staking"},{"kind":"contract-update-success","account_address":"0x26a1e94319e81a3c","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x86d1c2159a5d9eca","contract_name":"TransactionTypes"},{"kind":"contract-update-failure","account_address":"0x1f38da7a93c61f28","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e 1f38da7a93c61f28.ExampleNFT:183:60\n |\n183 | let authTokenRef = (\u0026self.ownedNFTs[id] as auth(NonFungibleToken.Owner) \u0026{NonFungibleToken.NFT}?)!\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: mismatched types\n --\u003e 1f38da7a93c61f28.ExampleNFT:185:38\n |\n185 | ExampleNFT.emitNFTUpdated(authTokenRef)\n | ^^^^^^^^^^^^ expected `auth(NonFungibleToken.Update) \u0026{NonFungibleToken.NFT}`, got `auth(NonFungibleToken) \u0026{NonFungibleToken.NFT}`\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n137 | access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e 1f38da7a93c61f28.ExampleNFT:134:25\n |\n134 | access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x8232ce4a3aff4e94","contract_name":"PublicPriceOracle"},{"kind":"contract-update-success","account_address":"0xcc3f23a0ee7b0549","contract_name":"rodangear_NFT"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"A"},{"kind":"contract-update-success","account_address":"0x886d5599b3bfc873","contract_name":"B"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"DelegatorManager"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStaking"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingConfig"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"LiquidStakingError"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0xa2526e2d9cc7f0d2","contract_name":"Pinnacle"},{"kind":"contract-update-success","account_address":"0xe45c64ecfe31e465","contract_name":"stFlowToken"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"Flomies","error":"error: found new field `storagePath` in `Collection`\n --\u003e 3e5b4c627064625d.Flomies:231:25\n |\n231 | access(self) var storagePath: StoragePath\n | ^^^^^^^^^^^\n\nerror: found new field `publicPath` in `Collection`\n --\u003e 3e5b4c627064625d.Flomies:232:25\n |\n232 | access(self) var publicPath: PublicPath\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"GeneratedExperiences"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"NFGv3"},{"kind":"contract-update-failure","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorz","error":"error: found new field `storagePath` in `Collection`\n --\u003e 3e5b4c627064625d.PartyFavorz:249:25\n |\n249 | access(self) var storagePath: StoragePath\n | ^^^^^^^^^^^\n\nerror: found new field `publicPath` in `Collection`\n --\u003e 3e5b4c627064625d.PartyFavorz:250:25\n |\n250 | access(self) var publicPath: PublicPath\n | ^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x3e5b4c627064625d","contract_name":"PartyFavorzExtraData"},{"kind":"contract-update-success","account_address":"0x857dc34d5e1631d3","contract_name":"FLOAT"},{"kind":"contract-update-failure","account_address":"0x857dc34d5e1631d3","contract_name":"FLOATVerifiers","error":"error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:0\n |\n28 | pub contract FLOAT: NonFungibleToken, ViewResolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub let FLOATCollectionStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub let FLOATCollectionPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub let FLOATEventsStoragePath: StoragePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub let FLOATEventsPublicPath: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :38:4\n |\n38 | pub let FLOATEventsPrivatePath: PrivatePath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event ContractInitialized()\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :48:4\n |\n48 | pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :49:4\n |\n49 | pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :50:4\n |\n50 | pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :51:4\n |\n51 | pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event Deposit(id: UInt64, to: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event Withdraw(id: UInt64, from: Address?)\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub var totalSupply: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :65:4\n |\n65 | pub var totalFLOATEvents: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub struct TokenIdentifier {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:8\n |\n74 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:8\n |\n75 | pub let address: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:8\n |\n76 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub struct TokenInfo {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :86:8\n |\n86 | pub let path: PublicPath\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:8\n |\n87 | pub let price: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :98:8\n |\n98 | pub let id: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:8\n |\n103 | pub let dateReceived: UFix64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:8\n |\n104 | pub let eventDescription: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :105:8\n |\n105 | pub let eventHost: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :106:8\n |\n106 | pub let eventId: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :107:8\n |\n107 | pub let eventImage: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :108:8\n |\n108 | pub let eventName: String\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:8\n |\n109 | pub let originalRecipient: Address\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:8\n |\n110 | pub let serial: UInt64\r\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :117:8\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :117:51\n |\n117 | pub let eventsCap: Capability\u003c\u0026FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}\u003e\r\n | ^^^^^^^^^^^^^^^^^\n\n--\u003e 4d47bf3ce5e4393f.FLOAT\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:38:33\n |\n38 | access(all) struct Timelock: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:66:31\n |\n66 | access(all) struct Secret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:90:32\n |\n90 | access(all) struct Limited: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:113:39\n |\n113 | access(all) struct MultipleSecret: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:137:33\n |\n137 | access(all) struct SecretV2: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:162:39\n |\n162 | access(all) struct MinimumBalance: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:226:30\n |\n226 | access(all) struct Email: FLOAT.IVerifier {\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:94:51\n |\n94 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FLOAT`\n --\u003e 857dc34d5e1631d3.FLOATVerifiers:230:51\n |\n230 | let floatEvent = params[\"event\"]! as! \u0026FLOAT.FLOATEvent\n | ^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbieCard"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbiePM"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbiePack"},{"kind":"contract-update-success","account_address":"0x6d0f55821f6b2dbe","contract_name":"BBxBarbieToken"},{"kind":"contract-update-success","account_address":"0x5d45c655fcde5037","contract_name":"TicalUniverse"},{"kind":"contract-update-success","account_address":"0x5d45c655fcde5037","contract_name":"TuneGO"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"BUSD"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDC"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"USDT"},{"kind":"contract-update-success","account_address":"0xf9dad0d4c14a92b5","contract_name":"wFlow"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopMarket"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermission"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopPermissionV2a"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopSerial"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"FanTopToken"},{"kind":"contract-update-success","account_address":"0xa47a2d3a3b7e9133","contract_name":"Signature"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"A","error":"error: cannot find declaration `B` in `250e0b90c1b7711b.B`\n --\u003e 250e0b90c1b7711b.A:1:7\n |\n1 | import B from 0x250e0b90c1b7711b\n | ^ available exported declarations are:\n - `Bad`\n\n"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"B"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Bar"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"F"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"Foo"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"L"},{"kind":"contract-update-success","account_address":"0x250e0b90c1b7711b","contract_name":"O"},{"kind":"contract-update-failure","account_address":"0x250e0b90c1b7711b","contract_name":"W","error":"error: mismatching field `foo` in `W`\n --\u003e 250e0b90c1b7711b.W:3:25\n |\n3 | access(all) let foo: String\n | ^^^^^^ incompatible type annotations. expected `Int`, found `String`\n"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Filter"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"Offers"},{"kind":"contract-update-success","account_address":"0x0d3dc5ad70be03d1","contract_name":"ScopedFTProviders"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Gamisodes"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Lufthaus"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"MUMGJ"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"MintStoreItem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"OpenLockerInc"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"OpenLockerIncBoneYardHuskyzClub"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"Pickem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"RTLStoreItem"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"YBees"},{"kind":"contract-update-success","account_address":"0x985d410b577fd4a1","contract_name":"YoungBoysBern"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLAdmin","error":"error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:\nerror: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n\n--\u003e b39a42479c1c2c77.AFLPack\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBadges"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnExchange"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLBurnRegistry"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLIndex"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMarketplace","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:79:33\n |\n79 | init (vault: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:77:49\n |\n77 | access(self) let ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:259:70\n |\n259 | access(all) fun changeMarketplaceWallet(_ newCap: Capability\u003c\u0026FiatToken.Vault\u003e) {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:12:56\n |\n12 | access(contract) var marketplaceWallet: Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:242:65\n |\n242 | access(all) fun createSaleCollection(ownerVault: Capability\u003c\u0026FiatToken.Vault\u003e): @SaleCollection {\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:64\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLMarketplace:277:33\n |\n277 | self.marketplaceWallet = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:119:36\n |\n119 | let saleOwnerVaultRef: \u0026FiatToken.Vault = self.ownerVault.borrow() ?? panic(\"could not borrow reference to the owner vault\")\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLMarketplace:126:36\n |\n126 | let marketplaceWallet: \u0026FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic(\"Couldn't borrow Vault reference\")\n | ^^^^^^^^^ not found in this scope\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLMetadataHelper"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"AFLNFT"},{"kind":"contract-update-failure","account_address":"0xb39a42479c1c2c77","contract_name":"AFLPack","error":"error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :5:0\n |\n5 | pub contract FiatToken: FungibleToken {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :10:4\n |\n10 | pub event AdminCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :11:4\n |\n11 | pub event AdminChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :14:4\n |\n14 | pub event OwnerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :15:4\n |\n15 | pub event OwnerChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :18:4\n |\n18 | pub event MasterMinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :19:4\n |\n19 | pub event MasterMinterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :22:4\n |\n22 | pub event Paused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :23:4\n |\n23 | pub event Unpaused()\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :24:4\n |\n24 | pub event PauserCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :25:4\n |\n25 | pub event PauserChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :28:4\n |\n28 | pub event Blocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :29:4\n |\n29 | pub event Unblocklisted(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :30:4\n |\n30 | pub event BlocklisterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :31:4\n |\n31 | pub event BlocklisterChanged(address: Address, resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :34:4\n |\n34 | pub event NewVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :35:4\n |\n35 | pub event DestroyVault(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :36:4\n |\n36 | pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :37:4\n |\n37 | pub event FiatTokenDeposited(amount: UFix64, to: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :40:4\n |\n40 | pub event MinterCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :41:4\n |\n41 | pub event MinterControllerCreated(resourceId: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :42:4\n |\n42 | pub event Mint(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :43:4\n |\n43 | pub event Burn(minter: UInt64, amount: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :44:4\n |\n44 | pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :45:4\n |\n45 | pub event MinterRemoved(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :46:4\n |\n46 | pub event ControllerConfigured(controller: UInt64, minter: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :47:4\n |\n47 | pub event ControllerRemoved(controller: UInt64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :52:4\n |\n52 | pub event TokensInitialized(initialSupply: UFix64)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :53:4\n |\n53 | pub event TokensWithdrawn(amount: UFix64, from: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :54:4\n |\n54 | pub event TokensDeposited(amount: UFix64, to: Address?)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :59:4\n |\n59 | pub let VaultStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :60:4\n |\n60 | pub let VaultBalancePubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :61:4\n |\n61 | pub let VaultUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :62:4\n |\n62 | pub let VaultReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :64:4\n |\n64 | pub let BlocklistExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :66:4\n |\n66 | pub let BlocklisterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :67:4\n |\n67 | pub let BlocklisterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :68:4\n |\n68 | pub let BlocklisterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :69:4\n |\n69 | pub let BlocklisterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :71:4\n |\n71 | pub let PauseExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :73:4\n |\n73 | pub let PauserStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :74:4\n |\n74 | pub let PauserCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :75:4\n |\n75 | pub let PauserUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :76:4\n |\n76 | pub let PauserPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :78:4\n |\n78 | pub let AdminExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :80:4\n |\n80 | pub let AdminStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :81:4\n |\n81 | pub let AdminCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :82:4\n |\n82 | pub let AdminUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :83:4\n |\n83 | pub let AdminPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :85:4\n |\n85 | pub let OwnerExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :87:4\n |\n87 | pub let OwnerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :88:4\n |\n88 | pub let OwnerCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :89:4\n |\n89 | pub let OwnerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :90:4\n |\n90 | pub let OwnerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :92:4\n |\n92 | pub let MasterMinterExecutorStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :94:4\n |\n94 | pub let MasterMinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :95:4\n |\n95 | pub let MasterMinterCapReceiverPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :96:4\n |\n96 | pub let MasterMinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :97:4\n |\n97 | pub let MasterMinterPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :99:4\n |\n99 | pub let MinterControllerStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :100:4\n |\n100 | pub let MinterControllerUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :101:4\n |\n101 | pub let MinterControllerPubSigner: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :103:4\n |\n103 | pub let MinterStoragePath: StoragePath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :104:4\n |\n104 | pub let MinterUUIDPubPath: PublicPath\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :109:4\n |\n109 | pub let name: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :110:4\n |\n110 | pub var version: String\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :112:4\n |\n112 | pub var paused: Bool\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :114:4\n |\n114 | pub var totalSupply: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :125:4\n |\n125 | pub resource interface ResourceId {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :126:8\n |\n126 | pub fun UUID(): UInt64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :129:4\n |\n129 | pub resource interface AdminCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :130:8\n |\n130 | pub fun setAdminCap(cap: Capability\u003c\u0026AdminExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :133:4\n |\n133 | pub resource interface OwnerCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :134:8\n |\n134 | pub fun setOwnerCap(cap: Capability\u003c\u0026OwnerExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :137:4\n |\n137 | pub resource interface MasterMinterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :138:8\n |\n138 | pub fun setMasterMinterCap(cap: Capability\u003c\u0026MasterMinterExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :141:4\n |\n141 | pub resource interface BlocklisterCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :142:8\n |\n142 | pub fun setBlocklistCap(cap: Capability\u003c\u0026BlocklistExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :145:4\n |\n145 | pub resource interface PauseCapReceiver {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :146:8\n |\n146 | pub fun setPauseCap(cap: Capability\u003c\u0026PauseExecutor\u003e)\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :186:4\n |\n186 | pub resource Vault:\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :192:8\n |\n192 | pub var balance: UFix64\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :194:8\n |\n194 | pub fun withdraw(amount: UFix64): @FungibleToken.Vault {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :205:8\n |\n205 | pub fun deposit(from: @FungibleToken.Vault) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :219:8\n |\n219 | pub fun UUID(): UInt64 {\n | ^^^\n\nerror: custom destructor definitions are no longer permitted\n --\u003e :231:8\n |\n231 | destroy() {\n | ^ remove the destructor definition\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :244:4\n |\n244 | pub resource AdminExecutor {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :248:8\n |\n248 | pub fun upgradeContract(name: String, code: [UInt8], version: String) {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :252:8\n |\n252 | pub fun changeAdmin(to: Address, newPath: PrivatePath) {\n | ^^^\n\nerror: restricted types have been removed; replace with the concrete type or an equivalent intersection type\n --\u003e :255:38\n |\n255 | .getCapability\u003c\u0026Admin{AdminCapReceiver}\u003e(FiatToken.AdminCapReceiverPubPath)\n | ^^^^^^^^^^^^^^^^\n\n--\u003e a983fecbed621163.FiatToken\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:23:48\n |\n23 | access(contract) let adminRef : Capability\u003c\u0026FiatToken.Vault\u003e\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:55\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find variable in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:165:72\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:165:24\n |\n165 | self.adminRef = self.account.capabilities.get\u003c\u0026FiatToken.Vault\u003e(FiatToken.VaultReceiverPubPath)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:111:38\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot find type in this scope: `FiatToken`\n --\u003e b39a42479c1c2c77.AFLPack:112:35\n |\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^ not found in this scope\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot infer type parameter: `T`\n --\u003e b39a42479c1c2c77.AFLPack:111:56\n |\n111 | let recipientCollection: \u0026FiatToken.Vault = receiptAccount\n112 | .capabilities.get\u003c\u0026FiatToken.Vault\u003e(/public/FiatTokenVaultReceiver)\n113 | .borrow()\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"PackRestrictions"},{"kind":"contract-update-success","account_address":"0xb39a42479c1c2c77","contract_name":"StorageHelper"},{"kind":"contract-update-success","account_address":"0x628992a07cb07272","contract_name":"MatrixWorldVoucher"},{"kind":"contract-update-success","account_address":"0x072127280188a611","contract_name":"TestRootContract"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"CricketMoments"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"CricketMomentsShardedCollection"},{"kind":"contract-update-success","account_address":"0xb45e7992680a0f7f","contract_name":"FazeUtilityCoin"},{"kind":"contract-update-failure","account_address":"0xf8e0eab3a87cbf49","contract_name":"ExampleNFT","error":"error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:\nerror: `pub` is no longer a valid access keyword\n --\u003e :1:0\n |\n1 | pub contract ExampleDependency {\n | ^^^\n\nerror: `pub` is no longer a valid access keyword\n --\u003e :2:4\n |\n2 | pub let test: Int\n | ^^^\n\n--\u003e f8e0eab3a87cbf49.ExampleDependency\n\nerror: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:161:43\n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n131 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e f8e0eab3a87cbf49.ExampleNFT:128:25\n |\n128 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n161 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0x08b1f9c0bc04f36f","contract_name":"IconoGraphika"},{"kind":"contract-update-success","account_address":"0xc20df20fabe06457","contract_name":"SwapPair"},{"kind":"contract-update-success","account_address":"0x6f16b5a358ec0246","contract_name":"otanicloth_NFT"},{"kind":"contract-update-success","account_address":"0xd8f6346999b983f5","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xf3e8f8ae2e9e2fec","contract_name":"giglabs_NFT"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLAdmin"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLClub"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPack"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPackTemplate"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLPlayer"},{"kind":"contract-update-success","account_address":"0x683564e46977788a","contract_name":"MFLViews"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ACCO_SOLEIL"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AIICOSMPLG"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"AUGUSTUS1"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BFD"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BTC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"BYPRODUCT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DOGETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DUNK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"DWLC"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EBISU"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ECO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"EDGE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ELEMENT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"ExampleNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T04"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"H442T05"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"HowardNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"IAT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"JOSHIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KARAT1AUAXQ"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KOZO"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karat"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"KaratNFT"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Karatv2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARK"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE2"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MARKIE3"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEDI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MEGAMI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"MRFRIENDLY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SCARETKN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SNAKE"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUGOI"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"SUNTORY"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Sorachi"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Story"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TNP"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TOM"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TS"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"TSTCON"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"WE_PIN"},{"kind":"contract-update-success","account_address":"0x566c813b3632783e","contract_name":"Z1G2JHB24KARAT"},{"kind":"contract-update-failure","account_address":"0xfa2a6615db587be5","contract_name":"ExampleNFT","error":"error: cannot find type in this scope: `NonFungibleToken.Owner`\n --\u003e fa2a6615db587be5.ExampleNFT:160:43\n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n130 | access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}\n | --------- mismatch here\n\nerror: resource `ExampleNFT.Collection` does not conform to resource interface `NonFungibleToken.Collection`\n --\u003e fa2a6615db587be5.ExampleNFT:127:25\n |\n127 | access(all) resource Collection: NonFungibleToken.Collection {\n | ^\n ... \n |\n160 | access(NonFungibleToken.Withdraw | NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {\n | -------- mismatch here\n"},{"kind":"contract-update-success","account_address":"0xa1296b1e2e90ca5b","contract_name":"HelloWorld"},{"kind":"contract-update-success","account_address":"0x6b2e1b9d3c5ac5db","contract_name":"ValueLink_NFTMarketplace_v1"},{"kind":"contract-update-success","account_address":"0x6b2e1b9d3c5ac5db","contract_name":"ValueLink_NFT_v1"},{"kind":"contract-update-success","account_address":"0x2ceae959ed1a7e7a","contract_name":"MigrationContractStaging"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalog"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x324c34e1c517e4db","contract_name":"NFTRetrieval"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapConfig"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapError"},{"kind":"contract-update-success","account_address":"0xddb929038d45d4b3","contract_name":"SwapInterfaces"},{"kind":"contract-update-success","account_address":"0x74daa6f9c7ef24b1","contract_name":"FCLCrypto"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"DNAHandler"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyListingCallback"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyUtils"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"FlowtyViews"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"NFTStorefrontV2"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"Permitted"},{"kind":"contract-update-success","account_address":"0xb051bdaddb672a33","contract_name":"RoyaltiesOverride"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Admin"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodleNames"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePackTypes"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"DoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Doodles"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"GenesisBoxRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"OpenDoodlePacks"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Random"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Redeemables"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Teleport"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Templates"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"TransactionsRegistry"},{"kind":"contract-update-success","account_address":"0x1c5033ad60821c97","contract_name":"Wearables"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"DropFactory"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyAddressVerifiers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyDrops"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtyPricers"},{"kind":"contract-update-success","account_address":"0x06f1e5cde6db0e70","contract_name":"FlowtySwitchers"},{"kind":"contract-update-success","account_address":"0xad26718c4b6b921b","contract_name":"BlackHole"},{"kind":"contract-update-success","account_address":"0x3286bb76e4e115fe","contract_name":"Boneyard"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleConfig"},{"kind":"contract-update-success","account_address":"0x2a9b59c3e2b72ee0","contract_name":"OracleInterface"},{"kind":"contract-update-success","account_address":"0x2d766f00eb1d0c37","contract_name":"PriceOracle"},{"kind":"contract-update-success","account_address":"0x97d2f3b55c6a6a75","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0xf8ba321af4bd37bb","contract_name":"aiSportsMinter"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardClubWerewolf"},{"kind":"contract-update-success","account_address":"0x195caada038c5806","contract_name":"BarterYardStats"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityDelegator"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"CapabilityFilter"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTAllFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTProviderFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverBalanceFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"FTReceiverFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"HybridCustody"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTCollectionPublicFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderAndCollectionFactory"},{"kind":"contract-update-success","account_address":"0x294e44e1ec6993c6","contract_name":"NFTProviderFactory"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"Cryptoys"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"CryptoysMetadataView2"},{"kind":"contract-update-success","account_address":"0x917db7072ed7160b","contract_name":"ICryptoys"},{"kind":"contract-update-success","account_address":"0xe223d8a629e49c68","contract_name":"FUSD"},{"kind":"contract-update-success","account_address":"0x23031fd14bb0f21b","contract_name":"TwoSegmentsInterestRateModel"},{"kind":"contract-update-success","account_address":"0x668b91e2995c2eba","contract_name":"PrivateReceiverForwarder"},{"kind":"contract-update-success","account_address":"0x51ea0e37c27a1f1a","contract_name":"TokenForwarding"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"PackNFT"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TicalUniverse"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TuneGO"},{"kind":"contract-update-success","account_address":"0x58b60c5240d3f39b","contract_name":"TuneGONFTV5"},{"kind":"contract-update-success","account_address":"0x94b84d0c11a22404","contract_name":"TopShotShardedCollection"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingError"},{"kind":"contract-update-success","account_address":"0x44ef9309713e2061","contract_name":"StakingNFT"},{"kind":"contract-update-success","account_address":"0x894269f57ac04a6e","contract_name":"FlowtyRaffleSource"},{"kind":"contract-update-success","account_address":"0x894269f57ac04a6e","contract_name":"FlowtyRaffles"},{"kind":"contract-update-failure","account_address":"0xbd327ae7428784b5","contract_name":"FlowEVMBridgeHandlerInterfaces","error":"error: trying to convert contract interface `FlowEVMBridgeHandlerInterfaces` to a contract\n --\u003e bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21\n |\n12 | access(all) contract FlowEVMBridgeHandlerInterfaces {\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0xdfc20aee650fcbdf","contract_name":"FlowEVMBridgeHandlerInterfaces"},{"kind":"contract-update-success","account_address":"0x9e324d8ae3cbd0f0","contract_name":"LendingPool"},{"kind":"contract-update-success","account_address":"0x43ee8c22fcf94ea3","contract_name":"DapperStorageRent"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"IPackNFT"},{"kind":"contract-update-success","account_address":"0xef4cd3d07a7b43ce","contract_name":"PDS"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Admin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"CharityNFT"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Clock"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Dandy"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Debug"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FIND"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalog"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FINDNFTCatalogAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FTRegistry"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindAirdropper"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForge"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeOrder"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindForgeStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindFurnace"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLeaseMarketSale"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindLostAndFoundWrapper"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarket"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAdmin"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketAuctionSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutInterface"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketCutStruct"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferEscrow"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketDirectOfferSoft"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketInfrastructureCut"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindMarketSale"},{"kind":"contract-update-failure","account_address":"0x35717efbbce11c74","contract_name":"FindPack","error":"error: mismatching field `providerCaps` in `Metadata`\n --\u003e 35717efbbce11c74.FindPack:343:43\n |\n343 | access(contract) let providerCaps: {Type : Capability\u003cauth (NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected `{NonFungibleToken.Provider, MetadataViews.ResolverCollection}`, found `{NonFungibleToken.Collection}`\n\nerror: conformances do not match in `FindPack`: missing `A.631e88ae7f1d7c20.NonFungibleToken`\n --\u003e 35717efbbce11c74.FindPack:12:21\n |\n12 | access(all) contract FindPack {\n | ^^^^^^^^\n"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRelatedAccounts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindRulesCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindThoughts"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindUtils"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindVerifier"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"FindViews"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"NameVoucher"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Profile"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"ProfileCache"},{"kind":"contract-update-success","account_address":"0x35717efbbce11c74","contract_name":"Sender"}] \ No newline at end of file diff --git a/migrations_data/staged-contracts-report-2024-06-19T12-31-00Z-testnet.md b/migrations_data/staged-contracts-report-2024-06-19T12-31-00Z-testnet.md new file mode 100644 index 0000000000..6950dd8c55 --- /dev/null +++ b/migrations_data/staged-contracts-report-2024-06-19T12-31-00Z-testnet.md @@ -0,0 +1,464 @@ +## Cadence 1.0 staged contracts migration results +Date: 20 June, 2024 + +> [!CAUTION] +> **IMPORTANT SECURITY NOTICE** +> +> Some staged contracts might be insecure due to incorrect access modifiers usage. +> Please make sure you have carefully reviewed and understood the section of [Cadence Migration Guide on Access Modifiers](https://cadence-lang.org/docs/cadence-migration-guide/nft-guide#update-all-pub-access-modfiers) + +* Stats: 440 contracts staged, 409 successfully upgraded, 31 failed to upgrade +* Testnet State Snapshot: devnet50-execution-snapshot-for-migration-12-jun-19 +* Flow-go build: v0.35.15-crescendo-preview.28-atree-inlining + +> [!NOTE] +> Developers can use Crescendo migration environment to test your migrated dapp! We notify the community in [Discord Developer Updates channel](https://discord.com/channels/613813861610684416/811693600403357706) when the environment is available for testing after migration. The Access node endpoint for the migration environment is: `access-001.migrationtestnet1.nodes.onflow.org:9000` for the gRPC API and `https://rest-migrationtestnet.onflow.org/v1/` for the REST API. + +**Useful Tools / Links** +* [View contracts staged on Testnet](https://f.dnz.dev/0x2ceae959ed1a7e7a/) +* [Great community tool to view up-to-date staging status](https://staging.dnz.dev/) + +### Migration Report + +|Account Address | Contract Name | Status | +| --- | --- | --- | +| 0x6b7930acbcd12877 | Cryptoys | ✅ | +| 0x6b7930acbcd12877 | CryptoysMetadataView2 | ✅ | +| 0x4dfd62c88d1b6462 | AllDay | ✅ | +| 0x4dfd62c88d1b6462 | PackNFT | ❌

Error:
error: resource \`PackNFT.Collection\` does not conform to resource interface \`IPackNFT.IPackNFTCollectionPublic\`
--\> 4dfd62c88d1b6462.PackNFT:299:25
\|
299 \| access(all) resource Collection: NonFungibleToken.Collection,ViewResolver.ResolverCollection, IPackNFT.IPackNFTCollectionPublic {
\| ^ \`PackNFT.Collection\` is missing definitions for members: \`emitRevealRequestEvent\`, \`emitOpenRequestEvent\`
| +| 0x6b7930acbcd12877 | ICryptoys | ✅ | +| 0x34f3140b7f54c743 | CricketMoments | ✅ | +| 0x34f3140b7f54c743 | CricketMomentsShardedCollection | ✅ | +| 0x34f3140b7f54c743 | FazeUtilityCoin | ✅ | +| 0x2d0d952e760d1770 | CricketMoments | ✅ | +| 0x2d0d952e760d1770 | CricketMomentsShardedCollection | ✅ | +| 0x2d0d952e760d1770 | FazeUtilityCoin | ✅ | +| 0x520a7157e1b964ed | ShebaHopeGrows | ✅ | +| 0x99ca04281098b33d | Art | ✅ | +| 0x99ca04281098b33d | Auction | ✅ | +| 0x99ca04281098b33d | Content | ✅ | +| 0x99ca04281098b33d | Marketplace | ✅ | +| 0x99ca04281098b33d | Profile | ✅ | +| 0x99ca04281098b33d | Versus | ✅ | +| 0xcc4e949596cf8ced | TwoSegmentsInterestRateModel | ✅ | +| 0x24650d6246d4176c | PriceOracle | ✅ | +| 0x2299f74679d9c88a | A | ✅ | +| 0x8c55fba7d7090fee | Magnetiq | ✅ | +| 0x8c55fba7d7090fee | MagnetiqLocking | ✅ | +| 0xd704ee8202a0d82d | ExampleNFT | ✅ | +| 0x82ec283f88a62e65 | DapperUtilityCoin | ✅ | +| 0x82ec283f88a62e65 | FlowUtilityToken | ✅ | +| 0x8aaca41f09eb1e3d | LendingPool | ✅ | +| 0xf28310b45fc6b319 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f28310b45fc6b319.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> f28310b45fc6b319.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f28310b45fc6b319.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xe1d43e0cfc237807 | Flowty | ✅ | +| 0xe1d43e0cfc237807 | FlowtyRentals | ✅ | +| 0xe1d43e0cfc237807 | RoyaltiesLedger | ✅ | +| 0xb86f928a1fa7798e | FTViewUtils | ✅ | +| 0xb86f928a1fa7798e | TokenList | ✅ | +| 0x2dcd833119c0570c | toddnewstaging2_NFT | ✅ | +| 0xb86f928a1fa7798e | ViewResolvers | ✅ | +| 0x7745157792470296 | LendingOracle | ✅ | +| 0xa63ecf66edb620ef | ZeedzINO | ✅ | +| 0xd35bad52c7e1ab65 | ZeedzINO | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:207:43
\|
207 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:208:43
\|
208 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String)
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:218:43
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:224:43
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> d35bad52c7e1ab65.ZeedzINO:234:43
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
218 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here

error: resource \`ZeedzINO.Collection\` does not conform to resource interface \`ZeedzINO.ZeedzCollectionPrivate\`
--\> d35bad52c7e1ab65.ZeedzINO:214:25
\|
214 \| access(all) resource Collection: NonFungibleToken.Collection, ZeedzCollectionPublic, ZeedzCollectionPrivate {
\| ^
...
\|
224 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun burn(burnID: UInt64){
\| \-\-\-\- mismatch here
...
\|
234 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun redeem(redeemID: UInt64, message: String){
\| \-\-\-\-\-\- mismatch here
| +| 0x8bc9e24c307d249b | LendingConfig | ✅ | +| 0x8bc9e24c307d249b | LendingError | ✅ | +| 0x8bc9e24c307d249b | LendingInterfaces | ✅ | +| 0x9680721e43087f43 | DropTypes | ✅ | +| 0x9d96fa5f60093c18 | A | ✅ | +| 0x9d96fa5f60093c18 | B | ✅ | +| 0x7dc7430a06f38af3 | ZeedzINO | ✅ | +| 0x94b06cfca1d8a476 | NFTStorefront | ✅ | +| 0xb668e8c9726ef26b | FanTopMarket | ✅ | +| 0xb668e8c9726ef26b | FanTopPermission | ✅ | +| 0xb668e8c9726ef26b | FanTopPermissionV2a | ✅ | +| 0xb668e8c9726ef26b | FanTopSerial | ✅ | +| 0xb668e8c9726ef26b | FanTopToken | ✅ | +| 0xb668e8c9726ef26b | Signature | ✅ | +| 0xcbed4c301441ded2 | StableSwapFactory | ✅ | +| 0xcbed4c301441ded2 | SwapFactory | ✅ | +| 0x8d5aac1da9c370bc | A | ✅ | +| 0x8d5aac1da9c370bc | B | ✅ | +| 0x8d5aac1da9c370bc | Contract | ✅ | +| 0x31ad40c07a2a9788 | AddressUtils | ✅ | +| 0x31ad40c07a2a9788 | ArrayUtils | ✅ | +| 0x31ad40c07a2a9788 | ScopedFTProviders | ✅ | +| 0x31ad40c07a2a9788 | ScopedNFTProviders | ✅ | +| 0x31ad40c07a2a9788 | StringUtils | ✅ | +| 0x2f8af5ed05bbde0d | SwapRouter | ✅ | +| 0x74ad08095d92192a | ETHUtils | ✅ | +| 0x74ad08095d92192a | EVMAgent | ✅ | +| 0x74ad08095d92192a | FGameLottery | ✅ | +| 0x74ad08095d92192a | FGameLotteryFactory | ✅ | +| 0x74ad08095d92192a | FGameLotteryRegistry | ✅ | +| 0x74ad08095d92192a | FGameRugRoyale | ✅ | +| 0x74ad08095d92192a | FRC20AccountsPool | ✅ | +| 0x74ad08095d92192a | FRC20Agents | ✅ | +| 0x74ad08095d92192a | FRC20Converter | ✅ | +| 0x74ad08095d92192a | FRC20FTShared | ✅ | +| 0x74ad08095d92192a | FRC20FungibleToken | ✅ | +| 0x74ad08095d92192a | FRC20Indexer | ✅ | +| 0x74ad08095d92192a | FRC20MarketManager | ✅ | +| 0x74ad08095d92192a | FRC20Marketplace | ✅ | +| 0x74ad08095d92192a | FRC20NFTWrapper | ✅ | +| 0x74ad08095d92192a | FRC20SemiNFT | ✅ | +| 0x74ad08095d92192a | FRC20Staking | ✅ | +| 0x74ad08095d92192a | FRC20StakingForwarder | ✅ | +| 0x74ad08095d92192a | FRC20StakingManager | ✅ | +| 0x74ad08095d92192a | FRC20StakingVesting | ✅ | +| 0x74ad08095d92192a | FRC20Storefront | ✅ | +| 0x74ad08095d92192a | FRC20TradingRecord | ✅ | +| 0x74ad08095d92192a | FRC20VoteCommands | ✅ | +| 0x74ad08095d92192a | FRC20Votes | ✅ | +| 0xc15e75b5f6b95e54 | LendingComptroller | ✅ | +| 0x74ad08095d92192a | Fixes | ✅ | +| 0x74ad08095d92192a | FixesAssetMeta | ✅ | +| 0x74ad08095d92192a | FixesAvatar | ✅ | +| 0x74ad08095d92192a | FixesBondingCurve | ✅ | +| 0x74ad08095d92192a | FixesFungibleToken | ✅ | +| 0x74ad08095d92192a | FixesFungibleTokenInterface | ✅ | +| 0x74ad08095d92192a | FixesHeartbeat | ✅ | +| 0x74ad08095d92192a | FixesInscriptionFactory | ✅ | +| 0x74ad08095d92192a | FixesTokenAirDrops | ✅ | +| 0x74ad08095d92192a | FixesTokenLockDrops | ✅ | +| 0x74ad08095d92192a | FixesTradablePool | ✅ | +| 0x74ad08095d92192a | FixesTraits | ✅ | +| 0x74ad08095d92192a | FixesWrappedNFT | ✅ | +| 0x74ad08095d92192a | FungibleTokenManager | ✅ | +| 0x92362a384f409a52 | TrmAssetV2_2 | ✅ | +| 0x92362a384f409a52 | TrmMarketV2_2 | ✅ | +| 0x92362a384f409a52 | TrmRentV2_2 | ✅ | +| 0x547f177b243b4d80 | Market | ✅ | +| 0x547f177b243b4d80 | TopShotMarketV3 | ✅ | +| 0x8770564d92180608 | TrmAssetV2_2 | ✅ | +| 0x8770564d92180608 | TrmMarketV2_2 | ✅ | +| 0x8770564d92180608 | TrmRentV2_2 | ✅ | +| 0x723a1b50e1d67e8e | TuneGONFT | ✅ | +| 0xdad0aaa285a25413 | PriceOracle | ✅ | +| 0x8a5f647e58dde1ee | DapperOffersV2 | ✅ | +| 0x8a5f647e58dde1ee | OffersV2 | ✅ | +| 0x8a5f647e58dde1ee | Resolver | ✅ | +| 0xcbdb5a7b89c3c844 | PriceOracle | ✅ | +| 0x877931736ee77cff | PackNFT | ❌

Error:
error: resource \`PackNFT.Collection\` does not conform to resource interface \`IPackNFT.IPackNFTCollectionPublic\`
--\> 877931736ee77cff.PackNFT:299:25
\|
299 \| access(all) resource Collection: NonFungibleToken.Collection, IPackNFT.IPackNFTCollectionPublic, ViewResolver.ResolverCollection {
\| ^ \`PackNFT.Collection\` is missing definitions for members: \`emitRevealRequestEvent\`, \`emitOpenRequestEvent\`
| +| 0x877931736ee77cff | TopShot | ✅ | +| 0x877931736ee77cff | TopShotLocking | ✅ | +| 0x2bd8210db3a8fe8a | NFTLocking | ✅ | +| 0x2bd8210db3a8fe8a | Swap | ✅ | +| 0x2bd8210db3a8fe8a | SwapArchive | ✅ | +| 0x2bd8210db3a8fe8a | SwapStats | ✅ | +| 0x2bd8210db3a8fe8a | SwapStatsRegistry | ✅ | +| 0x2bd8210db3a8fe8a | Utils | ✅ | +| 0x8b47f4dd22afee8d | MetadataViews | ❌

Error:
error: missing resource interface declaration \`Resolver\`
--\> 8b47f4dd22afee8d.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^

error: missing resource interface declaration \`ResolverCollection\`
--\> 8b47f4dd22afee8d.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^
| +| 0x8b47f4dd22afee8d | TrmAssetMSV1_0 | ✅ | +| 0xbe4635353f55bbd4 | FeeEstimator | ✅ | +| 0xbe4635353f55bbd4 | LostAndFound | ✅ | +| 0xbe4635353f55bbd4 | LostAndFoundHelper | ✅ | +| 0xab2d22248a619d77 | MetadataViews | ❌

Error:
error: missing resource interface declaration \`Resolver\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^

error: missing resource interface declaration \`ResolverCollection\`
--\> ab2d22248a619d77.MetadataViews:15:21
\|
15 \| access(all) contract MetadataViews {
\| ^^^^^^^^^^^^^
| +| 0xab2d22248a619d77 | TrmAssetMSV1_0 | ✅ | +| 0xab2d22248a619d77 | TrmAssetMSV2_0 | ✅ | +| 0x3870b3d38f83ae4c | FiatToken | ❌

Error:
error: missing resource declaration \`Admin\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`AdminExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`BlocklistExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Blocklister\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`MasterMinter\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`MasterMinterExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Minter\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`MinterController\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Owner\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`OwnerExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`PauseExecutor\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^

error: missing resource declaration \`Pauser\`
--\> 3870b3d38f83ae4c.FiatToken:7:21
\|
7 \| access(all) contract FiatToken: FungibleToken {
\| ^^^^^^^^^
| +| 0x3870b3d38f83ae4c | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0x6f6702697b205c18 | HWGarageCard | ✅ | +| 0x6f6702697b205c18 | HWGarageCardV2 | ✅ | +| 0x6f6702697b205c18 | HWGaragePM | ✅ | +| 0x6f6702697b205c18 | HWGaragePMV2 | ✅ | +| 0x6f6702697b205c18 | HWGaragePack | ✅ | +| 0x6f6702697b205c18 | HWGaragePackV2 | ✅ | +| 0x6f6702697b205c18 | HWGarageTokenV2 | ✅ | +| 0x4ed4b8e5cd0dd15e | PackNFT | ✅ | +| 0xe3faea00c5bb8d7d | TrmAssetV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmMarketV2_2 | ✅ | +| 0xe3faea00c5bb8d7d | TrmRentV2_2 | ✅ | +| 0x3b220a3372190656 | PriceOracle | ✅ | +| 0x9392a4a7c3f49a0b | DummyDustTokenMinter | ❌

Error:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.DummyDustTokenMinter:8:23
\|
8 \| resource DummyMinter: Toucans.Minter{
\| ^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.DummyDustTokenMinter:10:29
\|
10 \| fun mint(amount: UFix64): @FlovatarDustToken.Vault{
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.DummyDustTokenMinter:11:12
\|
11 \| return <-FlovatarDustToken.createEmptyDustVault()
\| ^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | Flobot | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack
| +| 0x9392a4a7c3f49a0b | Flovatar | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144
\|
1435 \| fun createPack(components: @\$&FlovatarComponent.NFT\$&, randomString: String, price: UFix64, sparkCount: UInt32, series: UInt32, name: String): @FlovatarPack.Pack{
\| ^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27
\|
365 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21
\|
365 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27
\|
397 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21
\|
397 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27
\|
417 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21
\|
417 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27
\|
434 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21
\|
434 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27
\|
458 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21
\|
458 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12
\|
1436 \| return <-FlovatarPack.createPack(components: <-components, randomString: randomString, price: price, sparkCount: sparkCount, series: series, name: name)
\| ^^^^^^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | FlovatarComponent | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarComponentTemplate | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarComponentUpgrader | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: error getting program 9392a4a7c3f49a0b.FlovatarInbox: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:122:18

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:37:22

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:643:25

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:390:21

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:453:21

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:455:83

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:478:6

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:500:3

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:542:83

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:578:83

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:26

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:20

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:132:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:21

--\> 9392a4a7c3f49a0b.FlovatarInbox

error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:26
\|
202 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:202:20
\|
202 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarInbox\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:65
\|
258 \| self.account.storage.borrow(
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarInbox\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:259:11
\|
259 \| from: FlovatarInbox.CollectionStoragePath
\| ^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarComponentUpgrader:258:4
\|
258 \| self.account.storage.borrow(
259 \| from: FlovatarInbox.CollectionStoragePath
260 \| ){
\| ^
| +| 0x6c35f966375845a6 | TixologiTickets | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarDustCollectible | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20

--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:193:46
\|
193 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:193:86
\|
193 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:196:39
\|
196 \| fun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:242:29
\|
242 \| let accessories: @{UInt32: FlovatarDustCollectibleAccessory.NFT}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:400:46
\|
400 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:400:86
\|
400 \| fun setAccessory(layer: UInt32, accessory: @FlovatarDustCollectibleAccessory.NFT): @FlovatarDustCollectibleAccessory.NFT?{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:415:39
\|
415 \| fun removeAccessory(layer: UInt32): @FlovatarDustCollectibleAccessory.NFT?{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1068:46
\|
1068 \| fun createCollectible(templateId: UInt64): @FlovatarDustCollectibleAccessory.NFT{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1074:70
\|
1074 \| fun batchCreateCollectibles(templateId: UInt64, quantity: UInt64): @FlovatarDustCollectibleAccessory.Collection{
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:930:26
\|
930 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:930:20
\|
930 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:311:27
\|
311 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:311:21
\|
311 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:343:27
\|
343 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:343:21
\|
343 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:370:27
\|
370 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:370:21
\|
370 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1069:12
\|
1069 \| return <-FlovatarDustCollectibleAccessory.createCollectibleAccessoryInternal(templateId: templateId)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustCollectibleAccessory\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectible:1075:12
\|
1075 \| return <-FlovatarDustCollectibleAccessory.batchCreateCollectibleAccessory(templateId: templateId, quantity: quantity)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | FlovatarDustCollectibleAccessory | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:26
\|
562 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarDustCollectibleAccessory:562:20
\|
562 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x9392a4a7c3f49a0b | FlovatarDustCollectibleTemplate | ✅ | +| 0x9392a4a7c3f49a0b | FlovatarDustToken | ❌

Error:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18
\|
286 \| resource Minter: Toucans.Minter{
\| ^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | FlovatarInbox | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:122:18
\|
122 \| let dustVault: @FlovatarDustToken.Vault
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:37:22
\|
37 \| let communityVault: @FlovatarDustToken.Vault
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:643:25
\|
643 \| self.communityVault <- FlovatarDustToken.createEmptyDustVault()
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:390:21
\|
390 \| if let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:453:21
\|
453 \| if let flovatar = Flovatar.getFlovatar(address: address, flovatarId: id){
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:455:83
\|
455 \| let receiverRef = (receiverAccount.capabilities.get<&{FungibleToken.Receiver}>(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic("Could not borrow receiver reference to the recipient's Vault")
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:478:6
\|
478 \| FlovatarDustToken.VaultReceiverPath
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:500:3
\|
500 \| Flovatar.getFlovatarRarityScore(address: address, flovatarId: id){
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:542:83
\|
542 \| let receiverRef = (receiverAccount.capabilities.get<&{FungibleToken.Receiver}>(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic("Could not borrow receiver reference to the recipient's Vault")
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:578:83
\|
578 \| let receiverRef = (receiverAccount.capabilities.get<&{FungibleToken.Receiver}>(FlovatarDustToken.VaultReceiverPath)!).borrow() ?? panic("Could not borrow receiver reference to the recipient's Vault")
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:26
\|
601 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:601:20
\|
601 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:132:21
\|
132 \| self.dustVault <- FlovatarDustToken.createEmptyDustVault()
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:27
\|
235 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:235:21
\|
235 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:27
\|
246 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarInbox:246:21
\|
246 \| vault.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0x9392a4a7c3f49a0b | FlovatarMarketplace | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.Flovatar: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarPack: failed to derive value: load program failed: Checking failed:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25

--\> 9392a4a7c3f49a0b.FlovatarPack

error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1435:144

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:365:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:365:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:397:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:397:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:417:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:417:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:434:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:434:21

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.Flovatar:458:27

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.Flovatar:458:21

error: cannot find variable in this scope: \`FlovatarPack\`
--\> 9392a4a7c3f49a0b.Flovatar:1436:12

--\> 9392a4a7c3f49a0b.Flovatar

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:66:30
\|
66 \| recipientCap: Capability<&{Flovatar.CollectionPublic}>,
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:66:29
\|
66 \| recipientCap: Capability<&{Flovatar.CollectionPublic}>,
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:90:38
\|
90 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:90:37
\|
90 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:103:33
\|
103 \| let flovatarForSale: @{UInt64: Flovatar.NFT}
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:131:42
\|
131 \| fun withdrawFlovatar(tokenId: UInt64): @Flovatar.NFT{
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:155:34
\|
155 \| fun listFlovatarForSale(token: @Flovatar.NFT, price: UFix64){
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:202:67
\|
202 \| fun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability<&{Flovatar.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:202:66
\|
202 \| fun purchaseFlovatar(tokenId: UInt64, recipientCap: Capability<&{Flovatar.CollectionPublic}>, buyTokens: @{FungibleToken.Vault}){
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:296:38
\|
296 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?{
\| ^^^^^^^^ not found in this scope

error: ambiguous intersection type
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:296:37
\|
296 \| fun getFlovatar(tokenId: UInt64): &{Flovatar.Public}?{
\| ^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:346:13
\|
346 \| metadata: Flovatar.Metadata,
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:329:16
\|
329 \| let metadata: Flovatar.Metadata
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:216:30
\|
216 \| if !token.isInstance(Type<@Flovatar.NFT>()){
\| ^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:216:24
\|
216 \| if !token.isInstance(Type<@Flovatar.NFT>()){
\| ^^^^^^^^^^^^^^^^^^^^^

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:221:31
\|
221 \| let creatorAmount = price \* Flovatar.getRoyaltyCut()
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:225:35
\|
225 \| let marketplaceAmount = price \* Flovatar.getMarketplaceCut()
\| ^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:257:35
\|
257 \| let marketplaceAmount = price \* Flovatar.getMarketplaceCut()
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:298:50
\|
298 \| let ref = (&self.flovatarForSale\$&tokenId\$& as &Flovatar.NFT?)!
\| ^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`Flovatar\`
--\> 9392a4a7c3f49a0b.FlovatarMarketplace:299:20
\|
299 \| return ref as! &Flovatar.NFT
\| ^^^^^^^^ not found in this scope
| +| 0x9392a4a7c3f49a0b | FlovatarPack | ❌

Error:
error: error getting program 9392a4a7c3f49a0b.FlovatarDustToken: failed to derive value: load program failed: Checking failed:
error: error getting program 918c2008c16da416.Toucans: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :14:0
\|
14 \| pub contract Toucans {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :16:2
\|
16 \| pub let CollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :17:2
\|
17 \| pub let CollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:2
\|
19 \| pub resource interface Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :20:4
\|
20 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :27:2
\|
27 \| pub resource DummyMinter: Minter {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub fun mint(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :33:2
\|
33 \| pub event ProjectCreated(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :39:2
\|
39 \| pub event NewFundingCycle(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:2
\|
49 \| pub event Purchase(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:2
\|
59 \| pub event Donate(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:2
\|
69 \| pub event DonateNFT(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:2
\|
82 \| pub event Withdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:2
\|
90 \| pub event BatchWithdraw(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:2
\|
99 \| pub event WithdrawNFTs(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:2
\|
109 \| pub event Mint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:2
\|
117 \| pub event BatchMint(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:2
\|
126 \| pub event Burn(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:2
\|
133 \| pub event LockTokens(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:2
\|
142 \| pub event StakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :148:2
\|
148 \| pub event UnstakeFlow(
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :154:2
\|
154 \| pub event AddSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :155:2
\|
155 \| pub event RemoveSigner(projectId: String, signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :156:2
\|
156 \| pub event UpdateThreshold(projectId: String, newThreshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :158:2
\|
158 \| pub struct CycleTimeFrame {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :159:4
\|
159 \| pub let startTime: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :160:4
\|
160 \| pub let endTime: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :171:2
\|
171 \| pub struct Payout {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :172:4
\|
172 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :173:4
\|
173 \| pub let percent: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :184:2
\|
184 \| pub struct FundingCycleDetails {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :185:4
\|
185 \| pub let cycleId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :187:4
\|
187 \| pub let fundingTarget: UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :188:4
\|
188 \| pub let issuanceRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :190:4
\|
190 \| pub let reserveRate: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :191:4
\|
191 \| pub let timeframe: CycleTimeFrame
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:4
\|
192 \| pub let payouts: \$&Payout\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :193:4
\|
193 \| pub let allowOverflow: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:4
\|
194 \| pub let allowedAddresses: \$&Address\$&?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :195:4
\|
195 \| pub let catalogCollectionIdentifier: String?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :196:4
\|
196 \| pub let extra: {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :221:2
\|
221 \| pub struct FundingCycle {
\| ^^^

error: \`pub(set)\` is no longer a valid access keyword
--\> :222:4
\|
222 \| pub(set) var details: FundingCycleDetails
\| ^

error: \`pub\` is no longer a valid access keyword
--\> :226:4
\|
226 \| pub var projectTokensAcquired: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :230:4
\|
230 \| pub var raisedDuringRound: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :233:4
\|
233 \| pub var raisedTowardsGoal: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :234:4
\|
234 \| pub let funders: {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :258:2
\|
258 \| pub resource interface ProjectPublic {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :259:4
\|
259 \| pub let projectId: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :260:4
\|
260 \| pub var projectTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :261:4
\|
261 \| pub let paymentTokenInfo: ToucansTokens.TokenInfo
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :262:4
\|
262 \| pub var totalFunding: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :263:4
\|
263 \| pub var editDelay: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :264:4
\|
264 \| pub var purchasing: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :265:4
\|
265 \| pub let minting: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :269:4
\|
269 \| pub fun proposeWithdraw(vaultType: Type, recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :270:4
\|
270 \| pub fun proposeBatchWithdraw(vaultType: Type, recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :271:4
\|
271 \| pub fun proposeWithdrawNFTs(collectionType: Type, recipientCollection: Capability<&{NonFungibleToken.Receiver}>, nftIDs: \$&UInt64\$&, message: String, \_ recipientCollectionBackup: Capability<&{NonFungibleToken.CollectionPublic}>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :272:4
\|
272 \| pub fun proposeMint(recipientVault: Capability<&{FungibleToken.Receiver}>, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :273:4
\|
273 \| pub fun proposeBatchMint(recipientVaults: {Address: Capability<&{FungibleToken.Receiver}>}, amounts: {Address: UFix64})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :274:4
\|
274 \| pub fun proposeMintToTreasury(amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :275:4
\|
275 \| pub fun proposeBurn(tokenType: Type, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :276:4
\|
276 \| pub fun proposeAddSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :277:4
\|
277 \| pub fun proposeRemoveSigner(signer: Address)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :278:4
\|
278 \| pub fun proposeUpdateThreshold(threshold: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :279:4
\|
279 \| pub fun proposeLockTokens(recipient: Address, tokenType: Type, amount: UFix64, unlockTime: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :280:4
\|
280 \| pub fun proposeStakeFlow(flowAmount: UFix64, stFlowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :281:4
\|
281 \| pub fun proposeUnstakeFlow(stFlowAmount: UFix64, flowAmountOutMin: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :284:4
\|
284 \| pub fun finalizeAction(actionUUID: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :285:4
\|
285 \| pub fun donateToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :286:4
\|
286 \| pub fun donateNFTToTreasury(collection: @NonFungibleToken.Collection, sender: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :287:4
\|
287 \| pub fun transferProjectTokenToTreasury(vault: @FungibleToken.Vault, payer: Address, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :288:4
\|
288 \| pub fun purchase(paymentTokens: @FungibleToken.Vault, projectTokenReceiver: &{FungibleToken.Receiver}, message: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :289:4
\|
289 \| pub fun claimOverflow(tokenVault: @FungibleToken.Vault, receiver: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :290:4
\|
290 \| pub fun claimLockedTokens(lockedVaultUuid: UInt64, recipientVault: &{FungibleToken.Receiver})
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :293:4
\|
293 \| pub fun getCurrentIssuanceRate(): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :294:4
\|
294 \| pub fun getCurrentFundingCycle(): FundingCycle?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :295:4
\|
295 \| pub fun getCurrentFundingCycleId(): UInt64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :296:4
\|
296 \| pub fun getFundingCycle(cycleIndex: UInt64): FundingCycle
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :297:4
\|
297 \| pub fun getFundingCycles(): \$&FundingCycle\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :298:4
\|
298 \| pub fun getVaultTypesInTreasury(): \$&Type\$&
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :299:4
\|
299 \| pub fun getVaultBalanceInTreasury(vaultType: Type): UFix64?
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :300:4
\|
300 \| pub fun getExtra(): {String: AnyStruct}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :301:4
\|
301 \| pub fun getCompletedActionIds(): {UInt64: Bool}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :302:4
\|
302 \| pub fun getFunders(): {Address: UFix64}
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :303:4
\|
303 \| pub fun getOverflowBalance(): UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :304:4
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :304:44
\|
304 \| pub fun borrowManagerPublic(): &Manager{ManagerPublic}
\| ^^^^^^^^^^^^^

--\> 918c2008c16da416.Toucans

error: cannot find type in this scope: \`Toucans\`
--\> 9392a4a7c3f49a0b.FlovatarDustToken:286:18

--\> 9392a4a7c3f49a0b.FlovatarDustToken

error: cannot find type in this scope: \`FlovatarDustToken\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:31
\|
415 \| buyTokens.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> 9392a4a7c3f49a0b.FlovatarPack:415:25
\|
415 \| buyTokens.isInstance(Type<@FlovatarDustToken.Vault>()):
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xc911d6ddfae70ce8 | PriceOracle | ✅ | +| 0x2d59ec5158e3adae | HeroesOfTheFlow | ✅ | +| 0xe8124d8428980aa6 | Bl0x | ✅ | +| 0xc7c122b5b811de8e | BulkPurchase | ❌

Error:
error: missing structure declaration \`Order\`
--\> c7c122b5b811de8e.BulkPurchase:20:21
\|
20 \| access(all) contract BulkPurchase {
\| ^^^^^^^^^^^^
| +| 0xc7c122b5b811de8e | FlowversePass | ✅ | +| 0xc7c122b5b811de8e | FlowversePassPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySale | ✅ | +| 0xc7c122b5b811de8e | FlowversePrimarySaleV2 | ✅ | +| 0xc7c122b5b811de8e | FlowverseShirt | ✅ | +| 0xc7c122b5b811de8e | FlowverseSocks | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasures | ✅ | +| 0xc7c122b5b811de8e | FlowverseTreasuresPrimarySaleMinter | ✅ | +| 0xc7c122b5b811de8e | Ordinal | ✅ | +| 0xc7c122b5b811de8e | OrdinalVendor | ✅ | +| 0xc7c122b5b811de8e | Royalties | ✅ | +| 0xd9c02cdacccb25ab | FlowtyTestNFT | ✅ | +| 0x6d692450d591524c | PriceOracle | ✅ | +| 0x3a52faafb43951c0 | BigEast | ✅ | +| 0x3a52faafb43951c0 | LNVCT | ✅ | +| 0x3a52faafb43951c0 | MLS | ✅ | +| 0x3a52faafb43951c0 | NFL | ✅ | +| 0x3a52faafb43951c0 | Sharks | ✅ | +| 0x3a52faafb43951c0 | Stanz | ✅ | +| 0x3a52faafb43951c0 | TMNFT | ✅ | +| 0x2a9011074c827145 | FungibleTokenCatalog | ✅ | +| 0xe7d5fb4c128b85b7 | Genies | ✅ | +| 0x26a1e94319e81a3c | Staking | ✅ | +| 0x26a1e94319e81a3c | StakingError | ✅ | +| 0x86d1c2159a5d9eca | TransactionTypes | ✅ | +| 0x1f38da7a93c61f28 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> 1f38da7a93c61f28.ExampleNFT:183:60
\|
183 \| let authTokenRef = (&self.ownedNFTs\$&id\$& as auth(NonFungibleToken.Owner) &{NonFungibleToken.NFT}?)!
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: mismatched types
--\> 1f38da7a93c61f28.ExampleNFT:185:38
\|
185 \| ExampleNFT.emitNFTUpdated(authTokenRef)
\| ^^^^^^^^^^^^ expected \`auth(NonFungibleToken.Update) &{NonFungibleToken.NFT}\`, got \`auth(NonFungibleToken) &{NonFungibleToken.NFT}\`

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
137 \| access(contract) var ownedNFTs: @{UInt64: {NonFungibleToken.NFT}}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> 1f38da7a93c61f28.ExampleNFT:134:25
\|
134 \| access(all) resource Collection: NonFungibleToken.Collection, ExampleNFTCollectionPublic {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x8232ce4a3aff4e94 | PublicPriceOracle | ✅ | +| 0xcc3f23a0ee7b0549 | rodangear_NFT | ✅ | +| 0x886d5599b3bfc873 | A | ✅ | +| 0x886d5599b3bfc873 | B | ✅ | +| 0xe45c64ecfe31e465 | DelegatorManager | ✅ | +| 0xe45c64ecfe31e465 | LiquidStaking | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingConfig | ✅ | +| 0xe45c64ecfe31e465 | LiquidStakingError | ✅ | +| 0xa2526e2d9cc7f0d2 | PackNFT | ✅ | +| 0xa2526e2d9cc7f0d2 | Pinnacle | ✅ | +| 0xe45c64ecfe31e465 | stFlowToken | ✅ | +| 0x3e5b4c627064625d | Flomies | ❌

Error:
error: found new field \`storagePath\` in \`Collection\`
--\> 3e5b4c627064625d.Flomies:231:25
\|
231 \| access(self) var storagePath: StoragePath
\| ^^^^^^^^^^^

error: found new field \`publicPath\` in \`Collection\`
--\> 3e5b4c627064625d.Flomies:232:25
\|
232 \| access(self) var publicPath: PublicPath
\| ^^^^^^^^^^
| +| 0x3e5b4c627064625d | GeneratedExperiences | ✅ | +| 0x3e5b4c627064625d | NFGv3 | ✅ | +| 0x3e5b4c627064625d | PartyFavorz | ❌

Error:
error: found new field \`storagePath\` in \`Collection\`
--\> 3e5b4c627064625d.PartyFavorz:249:25
\|
249 \| access(self) var storagePath: StoragePath
\| ^^^^^^^^^^^

error: found new field \`publicPath\` in \`Collection\`
--\> 3e5b4c627064625d.PartyFavorz:250:25
\|
250 \| access(self) var publicPath: PublicPath
\| ^^^^^^^^^^
| +| 0x3e5b4c627064625d | PartyFavorzExtraData | ✅ | +| 0x857dc34d5e1631d3 | FLOAT | ✅ | +| 0x857dc34d5e1631d3 | FLOATVerifiers | ❌

Error:
error: error getting program 4d47bf3ce5e4393f.FLOAT: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :28:0
\|
28 \| pub contract FLOAT: NonFungibleToken, ViewResolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub let FLOATCollectionStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub let FLOATCollectionPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub let FLOATEventsStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub let FLOATEventsPublicPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :38:4
\|
38 \| pub let FLOATEventsPrivatePath: PrivatePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event ContractInitialized()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event FLOATMinted(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event FLOATClaimed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, eventName: String, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event FLOATDestroyed(id: UInt64, eventHost: Address, eventId: UInt64, eventImage: String, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :48:4
\|
48 \| pub event FLOATTransferred(id: UInt64, eventHost: Address, eventId: UInt64, newOwner: Address?, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :49:4
\|
49 \| pub event FLOATPurchased(id: UInt64, eventHost: Address, eventId: UInt64, recipient: Address, serial: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :50:4
\|
50 \| pub event FLOATEventCreated(eventId: UInt64, description: String, host: Address, image: String, name: String, url: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :51:4
\|
51 \| pub event FLOATEventDestroyed(eventId: UInt64, host: Address, name: String)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event Deposit(id: UInt64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event Withdraw(id: UInt64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub var totalSupply: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :65:4
\|
65 \| pub var totalFLOATEvents: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub struct TokenIdentifier {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:8
\|
74 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:8
\|
75 \| pub let address: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:8
\|
76 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub struct TokenInfo {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :86:8
\|
86 \| pub let path: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:8
\|
87 \| pub let price: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub resource NFT: NonFungibleToken.INFT, MetadataViews.Resolver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :98:8
\|
98 \| pub let id: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:8
\|
103 \| pub let dateReceived: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:8
\|
104 \| pub let eventDescription: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :105:8
\|
105 \| pub let eventHost: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :106:8
\|
106 \| pub let eventId: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :107:8
\|
107 \| pub let eventImage: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :108:8
\|
108 \| pub let eventName: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:8
\|
109 \| pub let originalRecipient: Address
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:8
\|
110 \| pub let serial: UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :117:8
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :117:51
\|
117 \| pub let eventsCap: Capability<&FLOATEvents{FLOATEventsPublic, MetadataViews.ResolverCollection}>
\| ^^^^^^^^^^^^^^^^^

--\> 4d47bf3ce5e4393f.FLOAT

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:38:33
\|
38 \| access(all) struct Timelock: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:66:31
\|
66 \| access(all) struct Secret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:90:32
\|
90 \| access(all) struct Limited: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:113:39
\|
113 \| access(all) struct MultipleSecret: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:137:33
\|
137 \| access(all) struct SecretV2: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:162:39
\|
162 \| access(all) struct MinimumBalance: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:226:30
\|
226 \| access(all) struct Email: FLOAT.IVerifier {
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:94:51
\|
94 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope

error: cannot find type in this scope: \`FLOAT\`
--\> 857dc34d5e1631d3.FLOATVerifiers:230:51
\|
230 \| let floatEvent = params\$&"event"\$&! as! &FLOAT.FLOATEvent
\| ^^^^^ not found in this scope
| +| 0x6d0f55821f6b2dbe | BBxBarbieCard | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbiePM | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbiePack | ✅ | +| 0x6d0f55821f6b2dbe | BBxBarbieToken | ✅ | +| 0x5d45c655fcde5037 | TicalUniverse | ✅ | +| 0x5d45c655fcde5037 | TuneGO | ✅ | +| 0xf9dad0d4c14a92b5 | BUSD | ✅ | +| 0xf9dad0d4c14a92b5 | USDC | ✅ | +| 0xf9dad0d4c14a92b5 | USDT | ✅ | +| 0xf9dad0d4c14a92b5 | wFlow | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopMarket | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermission | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopPermissionV2a | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopSerial | ✅ | +| 0xa47a2d3a3b7e9133 | FanTopToken | ✅ | +| 0xa47a2d3a3b7e9133 | Signature | ✅ | +| 0x250e0b90c1b7711b | A | ❌

Error:
error: cannot find declaration \`B\` in \`250e0b90c1b7711b.B\`
--\> 250e0b90c1b7711b.A:1:7
\|
1 \| import B from 0x250e0b90c1b7711b
\| ^ available exported declarations are:
\- \`Bad\`

| +| 0x250e0b90c1b7711b | B | ✅ | +| 0x250e0b90c1b7711b | Bar | ✅ | +| 0x250e0b90c1b7711b | F | ✅ | +| 0x250e0b90c1b7711b | Foo | ✅ | +| 0x250e0b90c1b7711b | L | ✅ | +| 0x250e0b90c1b7711b | O | ✅ | +| 0x250e0b90c1b7711b | W | ❌

Error:
error: mismatching field \`foo\` in \`W\`
--\> 250e0b90c1b7711b.W:3:25
\|
3 \| access(all) let foo: String
\| ^^^^^^ incompatible type annotations. expected \`Int\`, found \`String\`
| +| 0x0d3dc5ad70be03d1 | Filter | ✅ | +| 0x0d3dc5ad70be03d1 | Offers | ✅ | +| 0x0d3dc5ad70be03d1 | ScopedFTProviders | ✅ | +| 0x985d410b577fd4a1 | Gamisodes | ✅ | +| 0x985d410b577fd4a1 | Lufthaus | ✅ | +| 0x985d410b577fd4a1 | MUMGJ | ✅ | +| 0x985d410b577fd4a1 | MintStoreItem | ✅ | +| 0x985d410b577fd4a1 | OpenLockerInc | ✅ | +| 0x985d410b577fd4a1 | OpenLockerIncBoneYardHuskyzClub | ✅ | +| 0x985d410b577fd4a1 | Pickem | ✅ | +| 0x985d410b577fd4a1 | RTLStoreItem | ✅ | +| 0x985d410b577fd4a1 | YBees | ✅ | +| 0x985d410b577fd4a1 | YoungBoysBern | ✅ | +| 0xb39a42479c1c2c77 | AFLAdmin | ❌

Error:
error: error getting program b39a42479c1c2c77.AFLPack: failed to derive value: load program failed: Checking failed:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56

--\> b39a42479c1c2c77.AFLPack
| +| 0xb39a42479c1c2c77 | AFLBadges | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnExchange | ✅ | +| 0xb39a42479c1c2c77 | AFLBurnRegistry | ✅ | +| 0xb39a42479c1c2c77 | AFLIndex | ✅ | +| 0xb39a42479c1c2c77 | AFLMarketplace | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:79:33
\|
79 \| init (vault: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:77:49
\|
77 \| access(self) let ownerVault: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:259:70
\|
259 \| access(all) fun changeMarketplaceWallet(\_ newCap: Capability<&FiatToken.Vault>) {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:12:56
\|
12 \| access(contract) var marketplaceWallet: Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:242:65
\|
242 \| access(all) fun createSaleCollection(ownerVault: Capability<&FiatToken.Vault>): @SaleCollection {
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:277:64
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLMarketplace:277:33
\|
277 \| self.marketplaceWallet = self.account.capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:119:36
\|
119 \| let saleOwnerVaultRef: &FiatToken.Vault = self.ownerVault.borrow() ?? panic("could not borrow reference to the owner vault")
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLMarketplace:126:36
\|
126 \| let marketplaceWallet: &FiatToken.Vault = AFLMarketplace.marketplaceWallet.borrow() ?? panic("Couldn't borrow Vault reference")
\| ^^^^^^^^^ not found in this scope
| +| 0xb39a42479c1c2c77 | AFLMetadataHelper | ✅ | +| 0xb39a42479c1c2c77 | AFLNFT | ✅ | +| 0xb39a42479c1c2c77 | AFLPack | ❌

Error:
error: error getting program a983fecbed621163.FiatToken: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :5:0
\|
5 \| pub contract FiatToken: FungibleToken {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :10:4
\|
10 \| pub event AdminCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :11:4
\|
11 \| pub event AdminChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :14:4
\|
14 \| pub event OwnerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :15:4
\|
15 \| pub event OwnerChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :18:4
\|
18 \| pub event MasterMinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :19:4
\|
19 \| pub event MasterMinterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :22:4
\|
22 \| pub event Paused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :23:4
\|
23 \| pub event Unpaused()
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :24:4
\|
24 \| pub event PauserCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :25:4
\|
25 \| pub event PauserChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :28:4
\|
28 \| pub event Blocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :29:4
\|
29 \| pub event Unblocklisted(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :30:4
\|
30 \| pub event BlocklisterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :31:4
\|
31 \| pub event BlocklisterChanged(address: Address, resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :34:4
\|
34 \| pub event NewVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :35:4
\|
35 \| pub event DestroyVault(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :36:4
\|
36 \| pub event FiatTokenWithdrawn(amount: UFix64, from: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :37:4
\|
37 \| pub event FiatTokenDeposited(amount: UFix64, to: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :40:4
\|
40 \| pub event MinterCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :41:4
\|
41 \| pub event MinterControllerCreated(resourceId: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :42:4
\|
42 \| pub event Mint(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :43:4
\|
43 \| pub event Burn(minter: UInt64, amount: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :44:4
\|
44 \| pub event MinterConfigured(controller: UInt64, minter: UInt64, allowance: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :45:4
\|
45 \| pub event MinterRemoved(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :46:4
\|
46 \| pub event ControllerConfigured(controller: UInt64, minter: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :47:4
\|
47 \| pub event ControllerRemoved(controller: UInt64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :52:4
\|
52 \| pub event TokensInitialized(initialSupply: UFix64)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :53:4
\|
53 \| pub event TokensWithdrawn(amount: UFix64, from: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :54:4
\|
54 \| pub event TokensDeposited(amount: UFix64, to: Address?)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :59:4
\|
59 \| pub let VaultStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :60:4
\|
60 \| pub let VaultBalancePubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :61:4
\|
61 \| pub let VaultUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :62:4
\|
62 \| pub let VaultReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :64:4
\|
64 \| pub let BlocklistExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :66:4
\|
66 \| pub let BlocklisterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :67:4
\|
67 \| pub let BlocklisterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :68:4
\|
68 \| pub let BlocklisterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :69:4
\|
69 \| pub let BlocklisterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :71:4
\|
71 \| pub let PauseExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :73:4
\|
73 \| pub let PauserStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :74:4
\|
74 \| pub let PauserCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :75:4
\|
75 \| pub let PauserUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :76:4
\|
76 \| pub let PauserPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :78:4
\|
78 \| pub let AdminExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :80:4
\|
80 \| pub let AdminStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :81:4
\|
81 \| pub let AdminCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :82:4
\|
82 \| pub let AdminUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :83:4
\|
83 \| pub let AdminPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :85:4
\|
85 \| pub let OwnerExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :87:4
\|
87 \| pub let OwnerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :88:4
\|
88 \| pub let OwnerCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :89:4
\|
89 \| pub let OwnerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :90:4
\|
90 \| pub let OwnerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :92:4
\|
92 \| pub let MasterMinterExecutorStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :94:4
\|
94 \| pub let MasterMinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :95:4
\|
95 \| pub let MasterMinterCapReceiverPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :96:4
\|
96 \| pub let MasterMinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :97:4
\|
97 \| pub let MasterMinterPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :99:4
\|
99 \| pub let MinterControllerStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :100:4
\|
100 \| pub let MinterControllerUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :101:4
\|
101 \| pub let MinterControllerPubSigner: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :103:4
\|
103 \| pub let MinterStoragePath: StoragePath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :104:4
\|
104 \| pub let MinterUUIDPubPath: PublicPath
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :109:4
\|
109 \| pub let name: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :110:4
\|
110 \| pub var version: String
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :112:4
\|
112 \| pub var paused: Bool
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :114:4
\|
114 \| pub var totalSupply: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :125:4
\|
125 \| pub resource interface ResourceId {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :126:8
\|
126 \| pub fun UUID(): UInt64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :129:4
\|
129 \| pub resource interface AdminCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :130:8
\|
130 \| pub fun setAdminCap(cap: Capability<&AdminExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :133:4
\|
133 \| pub resource interface OwnerCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :134:8
\|
134 \| pub fun setOwnerCap(cap: Capability<&OwnerExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :137:4
\|
137 \| pub resource interface MasterMinterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :138:8
\|
138 \| pub fun setMasterMinterCap(cap: Capability<&MasterMinterExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :141:4
\|
141 \| pub resource interface BlocklisterCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :142:8
\|
142 \| pub fun setBlocklistCap(cap: Capability<&BlocklistExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :145:4
\|
145 \| pub resource interface PauseCapReceiver {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :146:8
\|
146 \| pub fun setPauseCap(cap: Capability<&PauseExecutor>)
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :186:4
\|
186 \| pub resource Vault:
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :192:8
\|
192 \| pub var balance: UFix64
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :194:8
\|
194 \| pub fun withdraw(amount: UFix64): @FungibleToken.Vault {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :205:8
\|
205 \| pub fun deposit(from: @FungibleToken.Vault) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :219:8
\|
219 \| pub fun UUID(): UInt64 {
\| ^^^

error: custom destructor definitions are no longer permitted
--\> :231:8
\|
231 \| destroy() {
\| ^ remove the destructor definition

error: \`pub\` is no longer a valid access keyword
--\> :244:4
\|
244 \| pub resource AdminExecutor {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :248:8
\|
248 \| pub fun upgradeContract(name: String, code: \$&UInt8\$&, version: String) {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :252:8
\|
252 \| pub fun changeAdmin(to: Address, newPath: PrivatePath) {
\| ^^^

error: restricted types have been removed; replace with the concrete type or an equivalent intersection type
--\> :255:38
\|
255 \| .getCapability<&Admin{AdminCapReceiver}>(FiatToken.AdminCapReceiverPubPath)
\| ^^^^^^^^^^^^^^^^

--\> a983fecbed621163.FiatToken

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:23:48
\|
23 \| access(contract) let adminRef : Capability<&FiatToken.Vault>
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:55
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot find variable in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:165:72
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:165:24
\|
165 \| self.adminRef = self.account.capabilities.get<&FiatToken.Vault>(FiatToken.VaultReceiverPubPath)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:111:38
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
\| ^^^^^^^^^ not found in this scope

error: cannot find type in this scope: \`FiatToken\`
--\> b39a42479c1c2c77.AFLPack:112:35
\|
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^ not found in this scope

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: cannot infer type parameter: \`T\`
--\> b39a42479c1c2c77.AFLPack:111:56
\|
111 \| let recipientCollection: &FiatToken.Vault = receiptAccount
112 \| .capabilities.get<&FiatToken.Vault>(/public/FiatTokenVaultReceiver)
113 \| .borrow()
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xb39a42479c1c2c77 | PackRestrictions | ✅ | +| 0xb39a42479c1c2c77 | StorageHelper | ✅ | +| 0x628992a07cb07272 | MatrixWorldVoucher | ✅ | +| 0x072127280188a611 | TestRootContract | ✅ | +| 0xb45e7992680a0f7f | CricketMoments | ✅ | +| 0xb45e7992680a0f7f | CricketMomentsShardedCollection | ✅ | +| 0xb45e7992680a0f7f | FazeUtilityCoin | ✅ | +| 0xf8e0eab3a87cbf49 | ExampleNFT | ❌

Error:
error: error getting program f8e0eab3a87cbf49.ExampleDependency: failed to derive value: load program failed: Parsing failed:
error: \`pub\` is no longer a valid access keyword
--\> :1:0
\|
1 \| pub contract ExampleDependency {
\| ^^^

error: \`pub\` is no longer a valid access keyword
--\> :2:4
\|
2 \| pub let test: Int
\| ^^^

--\> f8e0eab3a87cbf49.ExampleDependency

error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> f8e0eab3a87cbf49.ExampleNFT:161:43
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
131 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> f8e0eab3a87cbf49.ExampleNFT:128:25
\|
128 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
161 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0x08b1f9c0bc04f36f | IconoGraphika | ✅ | +| 0xc20df20fabe06457 | SwapPair | ✅ | +| 0x6f16b5a358ec0246 | otanicloth_NFT | ✅ | +| 0xd8f6346999b983f5 | IPackNFT | ✅ | +| 0xf3e8f8ae2e9e2fec | giglabs_NFT | ✅ | +| 0x683564e46977788a | MFLAdmin | ✅ | +| 0x683564e46977788a | MFLClub | ✅ | +| 0x683564e46977788a | MFLPack | ✅ | +| 0x683564e46977788a | MFLPackTemplate | ✅ | +| 0x683564e46977788a | MFLPlayer | ✅ | +| 0x683564e46977788a | MFLViews | ✅ | +| 0x566c813b3632783e | ACCO_SOLEIL | ✅ | +| 0x566c813b3632783e | AIICOSMPLG | ✅ | +| 0x566c813b3632783e | AUGUSTUS1 | ✅ | +| 0x566c813b3632783e | BFD | ✅ | +| 0x566c813b3632783e | BTC | ✅ | +| 0x566c813b3632783e | BYPRODUCT | ✅ | +| 0x566c813b3632783e | DOGETKN | ✅ | +| 0x566c813b3632783e | DUNK | ✅ | +| 0x566c813b3632783e | DWLC | ✅ | +| 0x566c813b3632783e | EBISU | ✅ | +| 0x566c813b3632783e | ECO | ✅ | +| 0x566c813b3632783e | EDGE | ✅ | +| 0x566c813b3632783e | ELEMENT | ✅ | +| 0x566c813b3632783e | ExampleNFT | ✅ | +| 0x566c813b3632783e | H442T04 | ✅ | +| 0x566c813b3632783e | H442T05 | ✅ | +| 0x566c813b3632783e | HowardNFT | ✅ | +| 0x566c813b3632783e | IAT | ✅ | +| 0x566c813b3632783e | JOSHIN | ✅ | +| 0x566c813b3632783e | KARAT1AUAXQ | ✅ | +| 0x566c813b3632783e | KOZO | ✅ | +| 0x566c813b3632783e | Karat | ✅ | +| 0x566c813b3632783e | KaratNFT | ✅ | +| 0x566c813b3632783e | Karatv2 | ✅ | +| 0x566c813b3632783e | MARK | ✅ | +| 0x566c813b3632783e | MARKIE | ✅ | +| 0x566c813b3632783e | MARKIE2 | ✅ | +| 0x566c813b3632783e | MARKIE3 | ✅ | +| 0x566c813b3632783e | MEDI | ✅ | +| 0x566c813b3632783e | MEGAMI | ✅ | +| 0x566c813b3632783e | MRFRIENDLY | ✅ | +| 0x566c813b3632783e | SCARETKN | ✅ | +| 0x566c813b3632783e | SNAKE | ✅ | +| 0x566c813b3632783e | SUGOI | ✅ | +| 0x566c813b3632783e | SUNTORY | ✅ | +| 0x566c813b3632783e | Sorachi | ✅ | +| 0x566c813b3632783e | Story | ✅ | +| 0x566c813b3632783e | TNP | ✅ | +| 0x566c813b3632783e | TOM | ✅ | +| 0x566c813b3632783e | TS | ✅ | +| 0x566c813b3632783e | TSTCON | ✅ | +| 0x566c813b3632783e | WE_PIN | ✅ | +| 0x566c813b3632783e | Z1G2JHB24KARAT | ✅ | +| 0xfa2a6615db587be5 | ExampleNFT | ❌

Error:
error: cannot find type in this scope: \`NonFungibleToken.Owner\`
--\> fa2a6615db587be5.ExampleNFT:160:43
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
130 \| access(contract) var ownedNFTs: @{UInt64: ExampleNFT.NFT}
\| \-\-\-\-\-\-\-\-\- mismatch here

error: resource \`ExampleNFT.Collection\` does not conform to resource interface \`NonFungibleToken.Collection\`
--\> fa2a6615db587be5.ExampleNFT:127:25
\|
127 \| access(all) resource Collection: NonFungibleToken.Collection {
\| ^
...
\|
160 \| access(NonFungibleToken.Withdraw \| NonFungibleToken.Owner) fun withdraw(withdrawID: UInt64): @{NonFungibleToken.NFT} {
\| \-\-\-\-\-\-\-\- mismatch here
| +| 0xa1296b1e2e90ca5b | HelloWorld | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFTMarketplace_v1 | ✅ | +| 0x6b2e1b9d3c5ac5db | ValueLink_NFT_v1 | ✅ | +| 0x2ceae959ed1a7e7a | MigrationContractStaging | ✅ | +| 0x324c34e1c517e4db | NFTCatalog | ✅ | +| 0x324c34e1c517e4db | NFTCatalogAdmin | ✅ | +| 0x324c34e1c517e4db | NFTRetrieval | ✅ | +| 0xddb929038d45d4b3 | SwapConfig | ✅ | +| 0xddb929038d45d4b3 | SwapError | ✅ | +| 0xddb929038d45d4b3 | SwapInterfaces | ✅ | +| 0x74daa6f9c7ef24b1 | FCLCrypto | ✅ | +| 0xb051bdaddb672a33 | DNAHandler | ✅ | +| 0xb051bdaddb672a33 | FlowtyListingCallback | ✅ | +| 0xb051bdaddb672a33 | FlowtyUtils | ✅ | +| 0xb051bdaddb672a33 | FlowtyViews | ✅ | +| 0xb051bdaddb672a33 | NFTStorefrontV2 | ✅ | +| 0xb051bdaddb672a33 | Permitted | ✅ | +| 0xb051bdaddb672a33 | RoyaltiesOverride | ✅ | +| 0x1c5033ad60821c97 | Admin | ✅ | +| 0x1c5033ad60821c97 | Clock | ✅ | +| 0x1c5033ad60821c97 | Debug | ✅ | +| 0x1c5033ad60821c97 | DoodleNames | ✅ | +| 0x1c5033ad60821c97 | DoodlePackTypes | ✅ | +| 0x1c5033ad60821c97 | DoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Doodles | ✅ | +| 0x1c5033ad60821c97 | GenesisBoxRegistry | ✅ | +| 0x1c5033ad60821c97 | OpenDoodlePacks | ✅ | +| 0x1c5033ad60821c97 | Random | ✅ | +| 0x1c5033ad60821c97 | Redeemables | ✅ | +| 0x1c5033ad60821c97 | Teleport | ✅ | +| 0x1c5033ad60821c97 | Templates | ✅ | +| 0x1c5033ad60821c97 | TransactionsRegistry | ✅ | +| 0x1c5033ad60821c97 | Wearables | ✅ | +| 0x06f1e5cde6db0e70 | DropFactory | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyAddressVerifiers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyDrops | ✅ | +| 0x06f1e5cde6db0e70 | FlowtyPricers | ✅ | +| 0x06f1e5cde6db0e70 | FlowtySwitchers | ✅ | +| 0xad26718c4b6b921b | BlackHole | ✅ | +| 0x3286bb76e4e115fe | Boneyard | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleConfig | ✅ | +| 0x2a9b59c3e2b72ee0 | OracleInterface | ✅ | +| 0x2d766f00eb1d0c37 | PriceOracle | ✅ | +| 0x97d2f3b55c6a6a75 | LendingPool | ✅ | +| 0xf8ba321af4bd37bb | aiSportsMinter | ✅ | +| 0x195caada038c5806 | BarterYardClubWerewolf | ✅ | +| 0x195caada038c5806 | BarterYardStats | ✅ | +| 0x294e44e1ec6993c6 | CapabilityDelegator | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFactory | ✅ | +| 0x294e44e1ec6993c6 | CapabilityFilter | ✅ | +| 0x294e44e1ec6993c6 | FTAllFactory | ✅ | +| 0x294e44e1ec6993c6 | FTBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTProviderFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverBalanceFactory | ✅ | +| 0x294e44e1ec6993c6 | FTReceiverFactory | ✅ | +| 0x294e44e1ec6993c6 | HybridCustody | ✅ | +| 0x294e44e1ec6993c6 | NFTCollectionPublicFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderAndCollectionFactory | ✅ | +| 0x294e44e1ec6993c6 | NFTProviderFactory | ✅ | +| 0x917db7072ed7160b | Cryptoys | ✅ | +| 0x917db7072ed7160b | CryptoysMetadataView2 | ✅ | +| 0x917db7072ed7160b | ICryptoys | ✅ | +| 0xe223d8a629e49c68 | FUSD | ✅ | +| 0x23031fd14bb0f21b | TwoSegmentsInterestRateModel | ✅ | +| 0x668b91e2995c2eba | PrivateReceiverForwarder | ✅ | +| 0x51ea0e37c27a1f1a | TokenForwarding | ✅ | +| 0x58b60c5240d3f39b | PackNFT | ✅ | +| 0x58b60c5240d3f39b | TicalUniverse | ✅ | +| 0x58b60c5240d3f39b | TuneGO | ✅ | +| 0x58b60c5240d3f39b | TuneGONFTV5 | ✅ | +| 0x94b84d0c11a22404 | TopShotShardedCollection | ✅ | +| 0x44ef9309713e2061 | StakingError | ✅ | +| 0x44ef9309713e2061 | StakingNFT | ✅ | +| 0x894269f57ac04a6e | FlowtyRaffleSource | ✅ | +| 0x894269f57ac04a6e | FlowtyRaffles | ✅ | +| 0xbd327ae7428784b5 | FlowEVMBridgeHandlerInterfaces | ❌

Error:
error: trying to convert contract interface \`FlowEVMBridgeHandlerInterfaces\` to a contract
--\> bd327ae7428784b5.FlowEVMBridgeHandlerInterfaces:12:21
\|
12 \| access(all) contract FlowEVMBridgeHandlerInterfaces {
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| +| 0xdfc20aee650fcbdf | FlowEVMBridgeHandlerInterfaces | ✅ | +| 0x9e324d8ae3cbd0f0 | LendingPool | ✅ | +| 0x43ee8c22fcf94ea3 | DapperStorageRent | ✅ | +| 0xef4cd3d07a7b43ce | IPackNFT | ✅ | +| 0xef4cd3d07a7b43ce | PDS | ✅ | +| 0x35717efbbce11c74 | Admin | ✅ | +| 0x35717efbbce11c74 | CharityNFT | ✅ | +| 0x35717efbbce11c74 | Clock | ✅ | +| 0x35717efbbce11c74 | Dandy | ✅ | +| 0x35717efbbce11c74 | Debug | ✅ | +| 0x35717efbbce11c74 | FIND | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalog | ✅ | +| 0x35717efbbce11c74 | FINDNFTCatalogAdmin | ✅ | +| 0x35717efbbce11c74 | FTRegistry | ✅ | +| 0x35717efbbce11c74 | FindAirdropper | ✅ | +| 0x35717efbbce11c74 | FindForge | ✅ | +| 0x35717efbbce11c74 | FindForgeOrder | ✅ | +| 0x35717efbbce11c74 | FindForgeStruct | ✅ | +| 0x35717efbbce11c74 | FindFurnace | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarket | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindLeaseMarketSale | ✅ | +| 0x35717efbbce11c74 | FindLostAndFoundWrapper | ✅ | +| 0x35717efbbce11c74 | FindMarket | ✅ | +| 0x35717efbbce11c74 | FindMarketAdmin | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketAuctionSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketCut | ✅ | +| 0x35717efbbce11c74 | FindMarketCutInterface | ✅ | +| 0x35717efbbce11c74 | FindMarketCutStruct | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferEscrow | ✅ | +| 0x35717efbbce11c74 | FindMarketDirectOfferSoft | ✅ | +| 0x35717efbbce11c74 | FindMarketInfrastructureCut | ✅ | +| 0x35717efbbce11c74 | FindMarketSale | ✅ | +| 0x35717efbbce11c74 | FindPack | ❌

Error:
error: mismatching field \`providerCaps\` in \`Metadata\`
--\> 35717efbbce11c74.FindPack:343:43
\|
343 \| access(contract) let providerCaps: {Type : Capability}
\| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ incompatible type annotations. expected \`{NonFungibleToken.Provider, MetadataViews.ResolverCollection}\`, found \`{NonFungibleToken.Collection}\`

error: conformances do not match in \`FindPack\`: missing \`A.631e88ae7f1d7c20.NonFungibleToken\`
--\> 35717efbbce11c74.FindPack:12:21
\|
12 \| access(all) contract FindPack {
\| ^^^^^^^^
| +| 0x35717efbbce11c74 | FindRelatedAccounts | ✅ | +| 0x35717efbbce11c74 | FindRulesCache | ✅ | +| 0x35717efbbce11c74 | FindThoughts | ✅ | +| 0x35717efbbce11c74 | FindUtils | ✅ | +| 0x35717efbbce11c74 | FindVerifier | ✅ | +| 0x35717efbbce11c74 | FindViews | ✅ | +| 0x35717efbbce11c74 | NameVoucher | ✅ | +| 0x35717efbbce11c74 | Profile | ✅ | +| 0x35717efbbce11c74 | ProfileCache | ✅ | +| 0x35717efbbce11c74 | Sender | ✅ | diff --git a/npm-packages/cadence-parser/package-lock.json b/npm-packages/cadence-parser/package-lock.json new file mode 100644 index 0000000000..63ff9bc3ea --- /dev/null +++ b/npm-packages/cadence-parser/package-lock.json @@ -0,0 +1,3822 @@ +{ + "name": "@onflow/cadence-parser", + "version": "0.41.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@onflow/cadence-parser", + "version": "0.41.1", + "license": "Apache-2.0", + "dependencies": { + "get-random-values": "^2.0.0" + }, + "devDependencies": { + "@types/jest": "^28.1.4", + "@types/node": "^18.0.3", + "esbuild": "0.19.4", + "jest": "^28.1.2", + "node-fetch": "^2.6.1", + "ts-jest": "^28.0.5", + "typescript": "^4.7.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", + "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", + "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", + "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz", + "integrity": "sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", + "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", + "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", + "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", + "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "28.1.8", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", + "integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==", + "dev": true, + "dependencies": { + "expect": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@types/node": { + "version": "18.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz", + "integrity": "sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.26", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.26.tgz", + "integrity": "sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", + "dev": true + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001546", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz", + "integrity": "sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.542", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.542.tgz", + "integrity": "sha512-6+cpa00G09N3sfh2joln4VUXHquWrOFx3FLZqiVQvl45+zS9DskDBTPvob+BhvFRmTBkyDSk0vvLMMRo/qc6mQ==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", + "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.4", + "@esbuild/android-arm64": "0.19.4", + "@esbuild/android-x64": "0.19.4", + "@esbuild/darwin-arm64": "0.19.4", + "@esbuild/darwin-x64": "0.19.4", + "@esbuild/freebsd-arm64": "0.19.4", + "@esbuild/freebsd-x64": "0.19.4", + "@esbuild/linux-arm": "0.19.4", + "@esbuild/linux-arm64": "0.19.4", + "@esbuild/linux-ia32": "0.19.4", + "@esbuild/linux-loong64": "0.19.4", + "@esbuild/linux-mips64el": "0.19.4", + "@esbuild/linux-ppc64": "0.19.4", + "@esbuild/linux-riscv64": "0.19.4", + "@esbuild/linux-s390x": "0.19.4", + "@esbuild/linux-x64": "0.19.4", + "@esbuild/netbsd-x64": "0.19.4", + "@esbuild/openbsd-x64": "0.19.4", + "@esbuild/sunos-x64": "0.19.4", + "@esbuild/win32-arm64": "0.19.4", + "@esbuild/win32-ia32": "0.19.4", + "@esbuild/win32-x64": "0.19.4" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-random-values": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-random-values/-/get-random-values-2.1.0.tgz", + "integrity": "sha512-q2yOLpLyA8f9unfv2LV8KVRUFeOIrQVS5cnqpbv6N+ea9j1rmW5dFKj/2Q7CK3juEfDYQgPxGt941VJcmw0jKg==", + "dependencies": { + "global": "^4.4.0" + }, + "engines": { + "node": "14 || 16 || >=18" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/ts-jest": { + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^28.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^28.0.0", + "babel-jest": "^28.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-jest/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/npm-packages/cadence-parser/package.json b/npm-packages/cadence-parser/package.json index e3c4b8f8ea..7c50f3d962 100644 --- a/npm-packages/cadence-parser/package.json +++ b/npm-packages/cadence-parser/package.json @@ -1,6 +1,6 @@ { "name": "@onflow/cadence-parser", - "version": "1.0.0-preview.1", + "version": "1.0.0-preview.35", "description": "The Cadence parser", "homepage": "https://github.com/onflow/cadence", "repository": { @@ -8,19 +8,19 @@ "url": "https://github.com/onflow/cadence.git" }, "main": "./dist/cjs/index.js", - "module": "./dist/esm/index.js", + "module": "./dist/esm/index.mjs", "types": "./dist/types/index.d.ts", "exports": { ".": { "require": "./dist/cjs/index.js", - "import": "./dist/esm/index.js", + "import": "./dist/esm/index.mjs", "types": "./dist/types/index.d.ts" } }, "scripts": { "build": "npm run build:types && npm run build:esm && npm run build:cjs && GOARCH=wasm GOOS=js go build -o ./dist/cadence-parser.wasm ../../runtime/cmd/parse", "build:types": "tsc --emitDeclarationOnly --module system --outDir dist/types", - "build:esm": "tsc --module es6 --target es6 --outDir dist/esm --declaration false", + "build:esm": "esbuild src/index.ts --bundle --sourcemap --format=esm --outfile=dist/esm/index.mjs", "build:cjs": "tsc --module commonjs --target es6 --outDir dist/cjs --declaration false", "test": "jest" }, @@ -28,6 +28,7 @@ "devDependencies": { "@types/jest": "^28.1.4", "@types/node": "^18.0.3", + "esbuild": "0.19.4", "jest": "^28.1.2", "node-fetch": "^2.6.1", "ts-jest": "^28.0.5", diff --git a/npm-packages/cadence-parser/src/index.ts b/npm-packages/cadence-parser/src/index.ts index ed0ffb8545..ad5fe8bf63 100644 --- a/npm-packages/cadence-parser/src/index.ts +++ b/npm-packages/cadence-parser/src/index.ts @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/npm-packages/monaco-languageclient-cadence/src/index.ts b/npm-packages/monaco-languageclient-cadence/src/index.ts index 535e9f77e5..32b1edf13f 100644 --- a/npm-packages/monaco-languageclient-cadence/src/index.ts +++ b/npm-packages/monaco-languageclient-cadence/src/index.ts @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/account_test.go b/runtime/account_test.go index 229e82f586..b9deb89c2b 100644 --- a/runtime/account_test.go +++ b/runtime/account_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import ( "strconv" "testing" + "github.com/onflow/atree" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -51,9 +52,9 @@ func TestRuntimeAccountKeyConstructor(t *testing.T) { let key = AccountKey( PublicKey( publicKey: "0102".decodeHex(), - signAlgo: "SignatureAlgorithmECDSA_P256" + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 ), - hashAlgorithm: "HashAlgorithmSHA3_256", + hashAlgorithm: HashAlgorithm.SHA3_256, weight: 1.7 ) @@ -224,7 +225,7 @@ type accountTestEnvironment struct { func newAccountTestEnv() accountTestEnvironment { storage := newTestAccountKeyStorage() rt := NewTestInterpreterRuntime() - rtInterface := getAccountKeyTestRuntimeInterface(storage) + rtInterface := newAccountKeyTestRuntimeInterface(storage) addPublicKeyValidation(rtInterface, nil) @@ -470,34 +471,49 @@ func TestRuntimeAuthAccountKeysAdd(t *testing.T) { rt := NewTestInterpreterRuntime() - pubKey := newBytesValue([]byte{1, 2, 3}) + pubKey1 := []byte{1, 2, 3} + pubKey1Value := newBytesValue(pubKey1) + + pubKey2 := []byte{4, 5, 6} + pubKey2Value := newBytesValue(pubKey2) const code = ` - transaction(publicKey: [UInt8]) { + transaction(publicKey1: [UInt8], publicKey2: [UInt8]) { prepare(signer: auth(BorrowValue) &Account) { let acct = Account(payer: signer) acct.keys.add( publicKey: PublicKey( - publicKey: publicKey, + publicKey: publicKey1, signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 ), hashAlgorithm: HashAlgorithm.SHA3_256, weight: 100.0 ) + acct.keys.add( + publicKey: PublicKey( + publicKey: publicKey2, + signatureAlgorithm: SignatureAlgorithm.ECDSA_secp256k1 + ), + hashAlgorithm: HashAlgorithm.SHA2_256, + weight: 0.0 + ) } } ` storage := newTestAccountKeyStorage() - runtimeInterface := getAccountKeyTestRuntimeInterface(storage) + runtimeInterface := newAccountKeyTestRuntimeInterface(storage) addPublicKeyValidation(runtimeInterface, nil) nextTransactionLocation := NewTransactionLocationGenerator() err := rt.ExecuteTransaction( Script{ - Source: []byte(code), - Arguments: encodeArgs(pubKey), + Source: []byte(code), + Arguments: encodeArgs( + pubKey1Value, + pubKey2Value, + ), }, Context{ Location: nextTransactionLocation(), @@ -506,18 +522,125 @@ func TestRuntimeAuthAccountKeysAdd(t *testing.T) { ) require.NoError(t, err) - assert.Len(t, storage.keys, 1) + assert.Len(t, storage.keys, 2) - require.Len(t, storage.events, 2) + require.Len(t, storage.events, 3) - assert.EqualValues(t, - stdlib.AccountCreatedEventType.ID(), + assert.Equal(t, + string(stdlib.AccountCreatedEventType.ID()), storage.events[0].Type().ID(), ) - assert.EqualValues(t, - stdlib.AccountKeyAddedFromPublicKeyEventType.ID(), - storage.events[1].Type().ID(), + key0AddedEvent := storage.events[1] + key1AddedEvent := storage.events[2] + + assert.Equal(t, + string(stdlib.AccountKeyAddedFromPublicKeyEventType.ID()), + key0AddedEvent.Type().ID(), + ) + assert.Equal(t, + string(stdlib.AccountKeyAddedFromPublicKeyEventType.ID()), + key1AddedEvent.Type().ID(), + ) + + key0AddedEventFields := cadence.FieldsMappedByName(key0AddedEvent) + key1AddedEventFields := cadence.FieldsMappedByName(key1AddedEvent) + + // address + assert.Equal(t, + cadence.Address(accountKeyTestAddress), + key0AddedEventFields[stdlib.AccountEventAddressParameter.Identifier], + ) + assert.Equal(t, + cadence.Address(accountKeyTestAddress), + key1AddedEventFields[stdlib.AccountEventAddressParameter.Identifier], + ) + + // public key + assert.Equal(t, + cadence.NewStruct([]cadence.Value{ + // Public key (bytes) + newBytesValue(pubKey1), + + // Signature Algo + newSignAlgoValue(sema.SignatureAlgorithmECDSA_P256), + }).WithType(PublicKeyType), + key0AddedEventFields[stdlib.AccountEventPublicKeyParameterAsCompositeType.Identifier], + ) + assert.Equal(t, + cadence.NewStruct([]cadence.Value{ + // Public key (bytes) + newBytesValue(pubKey2), + + // Signature Algo + newSignAlgoValue(sema.SignatureAlgorithmECDSA_secp256k1), + }).WithType(PublicKeyType), + key1AddedEventFields[stdlib.AccountEventPublicKeyParameterAsCompositeType.Identifier], + ) + + // key weight + key0Weight, err := cadence.NewUFix64("100.0") + require.NoError(t, err) + key1Weight, err := cadence.NewUFix64("0.0") + require.NoError(t, err) + + assert.Equal(t, + key0Weight, + key0AddedEventFields[stdlib.AccountEventKeyWeightParameter.Identifier], + ) + assert.Equal(t, + sema.UFix64TypeName, + key0AddedEventFields[stdlib.AccountEventKeyWeightParameter.Identifier].Type().ID(), + ) + + assert.Equal(t, + key1Weight, + key1AddedEventFields[stdlib.AccountEventKeyWeightParameter.Identifier], + ) + assert.Equal(t, + sema.UFix64TypeName, + key1AddedEventFields[stdlib.AccountEventKeyWeightParameter.Identifier].Type().ID(), + ) + + // key hash algorithm + key0HashAlgo := key0AddedEventFields[stdlib.AccountEventHashAlgorithmParameter.Identifier].(cadence.Enum) + key0HashAlgoFields := cadence.FieldsMappedByName(key0HashAlgo) + assert.Equal(t, + cadence.UInt8(sema.HashAlgorithmSHA3_256), + key0HashAlgoFields[sema.EnumRawValueFieldName], + ) + assert.Equal(t, + sema.HashAlgorithmTypeName, + key0AddedEventFields[stdlib.AccountEventHashAlgorithmParameter.Identifier].Type().ID(), + ) + + key1HashAlgo := key1AddedEventFields[stdlib.AccountEventHashAlgorithmParameter.Identifier].(cadence.Enum) + key1HashAlgoFields := cadence.FieldsMappedByName(key1HashAlgo) + assert.Equal(t, + cadence.UInt8(sema.HashAlgorithmSHA2_256), + key1HashAlgoFields[sema.EnumRawValueFieldName], + ) + assert.Equal(t, + sema.HashAlgorithmTypeName, + key1AddedEventFields[stdlib.AccountEventHashAlgorithmParameter.Identifier].Type().ID(), + ) + + // key index + assert.Equal(t, + cadence.NewInt(0), + key0AddedEventFields[stdlib.AccountEventKeyIndexParameter.Identifier], + ) + assert.Equal(t, + sema.IntTypeName, + key0AddedEventFields[stdlib.AccountEventKeyIndexParameter.Identifier].Type().ID(), + ) + assert.Equal(t, + cadence.NewInt(1), + key1AddedEventFields[stdlib.AccountEventKeyIndexParameter.Identifier], + ) + assert.Equal(t, + sema.IntTypeName, + key1AddedEventFields[stdlib.AccountEventKeyIndexParameter.Identifier].Type().ID(), ) } @@ -776,10 +899,12 @@ func TestRuntimeHashAlgorithm(t *testing.T) { require.IsType(t, cadence.Enum{}, optionalValue.Value) builtinStruct := optionalValue.Value.(cadence.Enum) - require.Len(t, builtinStruct.Fields, 1) + fields := cadence.FieldsMappedByName(builtinStruct) + + require.Len(t, fields, 1) assert.Equal(t, cadence.NewUInt8(HashAlgorithmSHA3_256.RawValue()), - builtinStruct.Fields[0], + fields[sema.EnumRawValueFieldName], ) // Check key2 @@ -789,10 +914,11 @@ func TestRuntimeHashAlgorithm(t *testing.T) { require.IsType(t, cadence.Enum{}, optionalValue.Value) builtinStruct = optionalValue.Value.(cadence.Enum) - require.Len(t, builtinStruct.Fields, 1) + fields = cadence.FieldsMappedByName(builtinStruct) + require.Len(t, fields, 1) assert.Equal(t, cadence.NewUInt8(HashAlgorithmSHA3_256.RawValue()), - builtinStruct.Fields[0], + fields[sema.EnumRawValueFieldName], ) // Check key3 @@ -848,10 +974,11 @@ func TestRuntimeSignatureAlgorithm(t *testing.T) { require.IsType(t, cadence.Enum{}, optionalValue.Value) builtinStruct := optionalValue.Value.(cadence.Enum) - require.Len(t, builtinStruct.Fields, 1) + fields := cadence.FieldsMappedByName(builtinStruct) + require.Len(t, fields, 1) assert.Equal(t, cadence.NewUInt8(SignatureAlgorithmECDSA_secp256k1.RawValue()), - builtinStruct.Fields[0], + fields[sema.EnumRawValueFieldName], ) // Check key2 @@ -861,10 +988,11 @@ func TestRuntimeSignatureAlgorithm(t *testing.T) { require.IsType(t, cadence.Enum{}, optionalValue.Value) builtinStruct = optionalValue.Value.(cadence.Enum) - require.Len(t, builtinStruct.Fields, 1) + fields = cadence.FieldsMappedByName(builtinStruct) + require.Len(t, fields, 1) assert.Equal(t, cadence.NewUInt8(SignatureAlgorithmECDSA_secp256k1.RawValue()), - builtinStruct.Fields[0], + fields[sema.EnumRawValueFieldName], ) // Check key3 @@ -916,46 +1044,42 @@ func accountKeyExportedValue( panic(err) } - return cadence.Struct{ - StructType: AccountKeyType, - Fields: []cadence.Value{ - // Key index - cadence.NewInt(index), - - // Public Key (struct) - cadence.Struct{ - StructType: PublicKeyType, - Fields: []cadence.Value{ - // Public key (bytes) - newBytesValue(publicKeyBytes), - - // Signature Algo - newSignAlgoValue(signAlgo), - }, - }, + return cadence.NewStruct([]cadence.Value{ + // Key index + cadence.NewInt(index), - // Hash algo - cadence.NewEnum([]cadence.Value{ - cadence.NewUInt8(hashAlgo.RawValue()), - }).WithType(HashAlgoType), + // Public Key (struct) + cadence.NewStruct([]cadence.Value{ + // Public key (bytes) + newBytesValue(publicKeyBytes), - // Weight - weightUFix64, + // Signature Algo + newSignAlgoValue(signAlgo), + }).WithType(PublicKeyType), - // IsRevoked - cadence.NewBool(isRevoked), - }, - } + // Hash algo + cadence.NewEnum([]cadence.Value{ + cadence.NewUInt8(hashAlgo.RawValue()), + }).WithType(HashAlgoType), + + // Weight + weightUFix64, + + // IsRevoked + cadence.NewBool(isRevoked), + }).WithType(AccountKeyType) } -func getAccountKeyTestRuntimeInterface(storage *testAccountKeyStorage) *TestRuntimeInterface { +var accountKeyTestAddress = Address{42} + +func newAccountKeyTestRuntimeInterface(storage *testAccountKeyStorage) *TestRuntimeInterface { return &TestRuntimeInterface{ Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{{42}}, nil + return []Address{accountKeyTestAddress}, nil }, OnCreateAccount: func(payer Address) (address Address, err error) { - return Address{42}, nil + return accountKeyTestAddress, nil }, OnAddAccountKey: func(address Address, publicKey *stdlib.PublicKey, hashAlgo HashAlgorithm, weight int) (*stdlib.AccountKey, error) { index := len(storage.keys) @@ -1167,16 +1291,13 @@ func TestRuntimePublicKey(t *testing.T) { value, err := executeScript(script, runtimeInterface) require.NoError(t, err) - expected := cadence.Struct{ - StructType: PublicKeyType, - Fields: []cadence.Value{ - // Public key (bytes) - newBytesValue([]byte{1, 2}), + expected := cadence.NewStruct([]cadence.Value{ + // Public key (bytes) + newBytesValue([]byte{1, 2}), - // Signature Algo - newSignAlgoValue(sema.SignatureAlgorithmECDSA_P256), - }, - } + // Signature Algo + newSignAlgoValue(sema.SignatureAlgorithmECDSA_P256), + }).WithType(PublicKeyType) assert.Equal(t, expected, value) }) @@ -1269,7 +1390,7 @@ func TestRuntimePublicKey(t *testing.T) { var invoked bool - runtimeInterface := getAccountKeyTestRuntimeInterface(storage) + runtimeInterface := newAccountKeyTestRuntimeInterface(storage) runtimeInterface.OnValidatePublicKey = func(publicKey *stdlib.PublicKey) error { invoked = true return nil @@ -1354,7 +1475,7 @@ func TestRuntimePublicKey(t *testing.T) { var invoked bool - runtimeInterface := getAccountKeyTestRuntimeInterface(storage) + runtimeInterface := newAccountKeyTestRuntimeInterface(storage) runtimeInterface.OnVerifySignature = func( _ []byte, _ string, @@ -1432,16 +1553,13 @@ func TestRuntimePublicKey(t *testing.T) { value, err := executeScript(script, runtimeInterface) require.NoError(t, err) - expected := cadence.Struct{ - StructType: PublicKeyType, - Fields: []cadence.Value{ - // Public key (bytes) - newBytesValue([]byte{1, 2}), + expected := cadence.NewStruct([]cadence.Value{ + // Public key (bytes) + newBytesValue([]byte{1, 2}), - // Signature Algo - newSignAlgoValue(sema.SignatureAlgorithmECDSA_P256), - }, - } + // Signature Algo + newSignAlgoValue(sema.SignatureAlgorithmECDSA_P256), + }).WithType(PublicKeyType) assert.Equal(t, expected, value) }) @@ -1473,19 +1591,15 @@ func TestRuntimePublicKey(t *testing.T) { value, err := executeScript(script, runtimeInterface) require.NoError(t, err) - expected := cadence.Struct{ - StructType: PublicKeyType, - Fields: []cadence.Value{ - // Public key (bytes) - newBytesValue([]byte{1, 2}), - // Signature Algo - newSignAlgoValue(sema.SignatureAlgorithmECDSA_P256), - }, - } + expected := cadence.NewStruct([]cadence.Value{ + // Public key (bytes) + newBytesValue([]byte{1, 2}), + // Signature Algo + newSignAlgoValue(sema.SignatureAlgorithmECDSA_P256), + }).WithType(PublicKeyType) assert.Equal(t, expected, value) }) - } func TestRuntimeAuthAccountContracts(t *testing.T) { @@ -1655,7 +1769,7 @@ func TestRuntimeAuthAccountContracts(t *testing.T) { transaction { prepare(acc: &Account) { - let hello = acc.contracts.borrow<&HelloInterface>(name: "Hello") + let hello = acc.contracts.borrow<&{HelloInterface}>(name: "Hello") assert(hello?.hello() == "Hello!") } } @@ -1746,7 +1860,103 @@ func TestRuntimeAuthAccountContracts(t *testing.T) { transaction { prepare(acc: &Account) { - let hello = acc.contracts.borrow<&HelloInterface>(name: "Hello") + let hello = acc.contracts.borrow<&{HelloInterface}>(name: "Hello") + assert(hello == nil) + } + } + `), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + }) + + t.Run("borrow existing contract interface", func(t *testing.T) { + t.Parallel() + + rt := NewTestInterpreterRuntime() + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{0, 0, 0, 0, 0, 0, 0, 0x42}}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract interface + err := rt.ExecuteTransaction( + Script{ + Source: DeploymentTransaction("HelloInterface", []byte(` + access(all) contract interface HelloInterface { + + access(all) fun hello(): String + } + `)), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Deploy concrete contract + err = rt.ExecuteTransaction( + Script{ + Source: DeploymentTransaction("Hello", []byte(` + import HelloInterface from 0x42 + + access(all) contract Hello: HelloInterface { + + access(all) fun hello(): String { + return "Hello!" + } + } + `)), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Test usage + + // NOTE: name is contract interface, i.e. no stored contract composite. + // This should not panic, but still return nil + + err = rt.ExecuteTransaction( + Script{ + Source: []byte(` + import HelloInterface from 0x42 + + transaction { + prepare(acc: &Account) { + let hello = acc.contracts.borrow<&{HelloInterface}>(name: "HelloInterface") assert(hello == nil) } } @@ -1760,6 +1970,84 @@ func TestRuntimeAuthAccountContracts(t *testing.T) { require.NoError(t, err) }) + t.Run("borrow existing contract with entitlement authorization", func(t *testing.T) { + t.Parallel() + + rt := NewTestInterpreterRuntime() + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{0, 0, 0, 0, 0, 0, 0, 0x42}}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract + + err := rt.ExecuteTransaction( + Script{ + Source: DeploymentTransaction("Hello", []byte(` + + access(all) contract Hello { + + access(all) entitlement E + + access(all) fun hello(): String { + return "Hello!" + } + } + `)), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Test usage + + err = rt.ExecuteTransaction( + Script{ + Source: []byte(` + import Hello from 0x42 + + transaction { + prepare(acc: &Account) { + let hello = acc.contracts.borrow(name: "Hello") + assert(hello == nil) + } + } + `), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.ErrorContains(t, err, "cannot borrow a reference with an authorization") + }) + t.Run("borrow non-existing contract", func(t *testing.T) { t.Parallel() @@ -1920,6 +2208,7 @@ func TestRuntimeAuthAccountContracts(t *testing.T) { assert.IsType(t, &sema.UnauthorizedReferenceAssignmentError{}, errs[0]) }) + } func TestRuntimePublicAccountContracts(t *testing.T) { @@ -2228,3 +2517,66 @@ type fakeError struct{} func (fakeError) Error() string { return "fake error for testing" } + +// TestRuntimePublicKeyPublicKeyField tests PublicKey's `publicKey` field. +// It is a computed field, which always returns a copy of the stored raw public key ([UInt8]). +// +// This test ensures that the field can be accessed even after the PublicKey value has been transferred (copied), +// and the original PublicKey value has been removed. +func TestRuntimePublicKeyPublicKeyField(t *testing.T) { + + t.Parallel() + + inter := NewTestInterpreter(t) + + locationRange := interpreter.EmptyLocationRange + + publicKey := interpreter.NewCompositeValue( + inter, + locationRange, + nil, + sema.PublicKeyType.Identifier, + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: sema.PublicKeyTypePublicKeyFieldName, + Value: interpreter.NewArrayValue( + inter, + locationRange, + interpreter.ByteArrayStaticType, + common.ZeroAddress, + interpreter.NewUnmeteredUInt8Value(1), + ), + }, + }, + common.ZeroAddress, + ) + + publicKeyArray1 := publicKey.GetMember( + inter, + locationRange, + sema.PublicKeyTypePublicKeyFieldName, + ) + + publicKey2 := publicKey.Transfer( + inter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ).(*interpreter.CompositeValue) + + publicKey.DeepRemove(inter) + + publicKeyArray2 := publicKey2.GetMember( + inter, + locationRange, + sema.PublicKeyTypePublicKeyFieldName, + ) + + require.True(t, + publicKeyArray2.(interpreter.EquatableValue). + Equal(inter, locationRange, publicKeyArray1), + ) +} diff --git a/runtime/activations/activations.go b/runtime/activations/activations.go index 83584d23ec..44f2b54cdc 100644 --- a/runtime/activations/activations.go +++ b/runtime/activations/activations.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/activations/activations_test.go b/runtime/activations/activations_test.go index d43413470f..a35d1a5055 100644 --- a/runtime/activations/activations_test.go +++ b/runtime/activations/activations_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/access.go b/runtime/ast/access.go index d61aa75d1c..136ba24351 100644 --- a/runtime/ast/access.go +++ b/runtime/ast/access.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,6 +54,7 @@ func (s Separator) String() string { } type EntitlementSet interface { + Authorization Entitlements() []*NominalType Separator() Separator } @@ -64,6 +65,8 @@ type ConjunctiveEntitlementSet struct { var _ EntitlementSet = &ConjunctiveEntitlementSet{} +func (ConjunctiveEntitlementSet) isAuthorization() {} + func (s *ConjunctiveEntitlementSet) Entitlements() []*NominalType { return s.Elements } @@ -82,6 +85,8 @@ type DisjunctiveEntitlementSet struct { var _ EntitlementSet = &DisjunctiveEntitlementSet{} +func (DisjunctiveEntitlementSet) isAuthorization() {} + func (s *DisjunctiveEntitlementSet) Entitlements() []*NominalType { return s.Elements } @@ -94,6 +99,10 @@ func NewDisjunctiveEntitlementSet(entitlements []*NominalType) *DisjunctiveEntit return &DisjunctiveEntitlementSet{Elements: entitlements} } +type Authorization interface { + isAuthorization() +} + type EntitlementAccess struct { EntitlementSet EntitlementSet } @@ -120,61 +129,94 @@ func (e EntitlementAccess) entitlementsString(prefix *strings.Builder) { } func (e EntitlementAccess) String() string { - str := &strings.Builder{} - str.WriteString("ConjunctiveEntitlementAccess ") - e.entitlementsString(str) - return str.String() + var sb strings.Builder + sb.WriteString("EntitlementAccess ") + e.entitlementsString(&sb) + return sb.String() } func (e EntitlementAccess) Keyword() string { - str := &strings.Builder{} - str.WriteString("access(") - e.entitlementsString(str) - str.WriteString(")") - return str.String() + var sb strings.Builder + sb.WriteString("access(") + e.entitlementsString(&sb) + sb.WriteString(")") + return sb.String() } func (e EntitlementAccess) MarshalJSON() ([]byte, error) { return json.Marshal(e.String()) } -func (e EntitlementAccess) subset(other EntitlementAccess) bool { - otherEntitlements := other.EntitlementSet.Entitlements() - otherSet := make(map[*NominalType]struct{}, len(otherEntitlements)) - for _, entitlement := range otherEntitlements { - otherSet[entitlement] = struct{}{} - } +type MappedAccess struct { + EntitlementMap *NominalType + StartPos Position +} - for _, entitlement := range e.EntitlementSet.Entitlements() { - if _, found := otherSet[entitlement]; !found { - return false - } - } +var _ Access = &MappedAccess{} + +func (*MappedAccess) isAccess() {} +func (*MappedAccess) isAuthorization() {} - return true +func (*MappedAccess) Description() string { + return "entitlement-mapped access" } -func (e EntitlementAccess) IsLessPermissiveThan(other Access) bool { - switch other := other.(type) { - case PrimitiveAccess: - return other == AccessAll - case EntitlementAccess: - return e.subset(other) - default: - return false +func NewMappedAccess( + typ *NominalType, + startPos Position, +) *MappedAccess { + return &MappedAccess{ + EntitlementMap: typ, + StartPos: startPos, } } +func (t *MappedAccess) StartPosition() Position { + return t.StartPos +} + +func (t *MappedAccess) EndPosition(memoryGauge common.MemoryGauge) Position { + return t.EntitlementMap.EndPosition(memoryGauge) +} + +func (e *MappedAccess) String() string { + var str strings.Builder + str.WriteString("mapping ") + str.WriteString(e.EntitlementMap.String()) + return str.String() +} + +func (e *MappedAccess) Keyword() string { + var str strings.Builder + str.WriteString("access(") + str.WriteString(e.String()) + str.WriteString(")") + return str.String() +} + +func (e *MappedAccess) MarshalJSON() ([]byte, error) { + type Alias MappedAccess + return json.Marshal(&struct { + *Alias + Range + }{ + Range: NewUnmeteredRangeFromPositioned(e), + Alias: (*Alias)(e), + }) +} + type PrimitiveAccess uint8 // NOTE: order indicates permissiveness: from least to most permissive! const ( AccessNotSpecified PrimitiveAccess = iota + AccessNone // "top" access, only used for mapping operations, not actually expressible in the language AccessSelf AccessContract AccessAccount AccessAll + AccessPubSettableLegacy // Deprecated ) func PrimitiveAccessCount() int { @@ -213,6 +255,10 @@ func (a PrimitiveAccess) Keyword() string { return "access(account)" case AccessContract: return "access(contract)" + case AccessPubSettableLegacy: + return "pub(set)" + case AccessNone: + return "inaccessible" } panic(errors.NewUnreachableError()) @@ -230,6 +276,10 @@ func (a PrimitiveAccess) Description() string { return "account" case AccessContract: return "contract" + case AccessPubSettableLegacy: + return "legacy public settable" + case AccessNone: + return "inaccessible" } panic(errors.NewUnreachableError()) diff --git a/runtime/ast/access_test.go b/runtime/ast/access_test.go index 74526f8318..cd706b04f3 100644 --- a/runtime/ast/access_test.go +++ b/runtime/ast/access_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,6 +39,31 @@ func TestPrimitiveAccess_MarshalJSON(t *testing.T) { } } +func TestMappedAccess_MarshalJSON(t *testing.T) { + + t.Parallel() + + e := NewNominalType(nil, NewIdentifier(nil, "E", Position{Offset: 1, Line: 2, Column: 3}), []Identifier{}) + + access := NewMappedAccess(e, Position{Offset: 0, Line: 0, Column: 0}) + actual, err := json.Marshal(access) + require.NoError(t, err) + + assert.JSONEq(t, `{ + "EntitlementMap": { + "Type": "NominalType", + "Identifier": { + "Identifier": "E", + "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, + "EndPos": {"Offset": 1, "Line": 2, "Column": 3} + }, + "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, + "EndPos": {"Offset": 1, "Line": 2, "Column": 3} + }, + "EndPos": {"Offset": 1, "Line": 2, "Column": 3} + }`, string(actual)) +} + func TestEntitlementAccess_MarshalJSON(t *testing.T) { t.Parallel() diff --git a/runtime/ast/argument.go b/runtime/ast/argument.go index cbf018f278..539355bbea 100644 --- a/runtime/ast/argument.go +++ b/runtime/ast/argument.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/argument_test.go b/runtime/ast/argument_test.go index cbd0c124f7..d1577f477b 100644 --- a/runtime/ast/argument_test.go +++ b/runtime/ast/argument_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/ast.go b/runtime/ast/ast.go index de9ecfce4a..5c1f0d3083 100644 --- a/runtime/ast/ast.go +++ b/runtime/ast/ast.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/attachment.go b/runtime/ast/attachment.go index 397e1fa181..32cd047473 100644 --- a/runtime/ast/attachment.go +++ b/runtime/ast/attachment.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,13 +29,12 @@ import ( // AttachmentDeclaration type AttachmentDeclaration struct { - Access Access - Identifier Identifier - BaseType *NominalType - Conformances []*NominalType - RequiredEntitlements []*NominalType - Members *Members - DocString string + Access Access + Identifier Identifier + BaseType *NominalType + Conformances []*NominalType + Members *Members + DocString string Range } @@ -50,7 +49,6 @@ func NewAttachmentDeclaration( identifier Identifier, baseType *NominalType, conformances []*NominalType, - requiredEntitlements []*NominalType, members *Members, docString string, declarationRange Range, @@ -58,14 +56,13 @@ func NewAttachmentDeclaration( common.UseMemory(memoryGauge, common.AttachmentDeclarationMemoryUsage) return &AttachmentDeclaration{ - Access: access, - Identifier: identifier, - BaseType: baseType, - Conformances: conformances, - RequiredEntitlements: requiredEntitlements, - Members: members, - DocString: docString, - Range: declarationRange, + Access: access, + Identifier: identifier, + BaseType: baseType, + Conformances: conformances, + Members: members, + DocString: docString, + Range: declarationRange, } } @@ -113,15 +110,9 @@ func (d *AttachmentDeclaration) ConformanceList() []*NominalType { return d.Conformances } -func (d *AttachmentDeclaration) RequiredEntitlementsToAttach() []*NominalType { - return d.RequiredEntitlements -} - const attachmentStatementDoc = prettier.Text("attachment") const attachmentStatementForDoc = prettier.Text("for") const attachmentConformancesSeparatorDoc = prettier.Text(":") -const attachmentEntitlementDoc = prettier.Text("entitlement") -const attachmentRequireDoc = prettier.Text("require") var attachmentConformanceSeparatorDoc prettier.Doc = prettier.Concat{ prettier.Text(","), @@ -151,31 +142,7 @@ func (d *AttachmentDeclaration) Doc() prettier.Doc { ) var membersDoc prettier.Concat - if d.RequiredEntitlements != nil && len(d.RequiredEntitlements) > 0 { - membersDoc = append(membersDoc, membersStartDoc) - for _, entitlement := range d.RequiredEntitlements { - var entitlementRequiredDoc = prettier.Indent{ - Doc: prettier.Concat{ - attachmentRequireDoc, - prettier.Space, - attachmentEntitlementDoc, - prettier.Space, - entitlement.Doc(), - }, - } - membersDoc = append( - membersDoc, - prettier.HardLine{}, - entitlementRequiredDoc, - ) - } - if len(d.Members.declarations) > 0 { - membersDoc = append(membersDoc, prettier.HardLine{}, d.Members.docWithNoBraces()) - } - membersDoc = append(membersDoc, prettier.HardLine{}, membersEndDoc) - } else { - membersDoc = append(membersDoc, prettier.Line{}, d.Members.Doc()) - } + membersDoc = append(membersDoc, prettier.Line{}, d.Members.Doc()) if len(d.Conformances) > 0 { conformancesDoc := prettier.Concat{ @@ -244,10 +211,9 @@ func (d *AttachmentDeclaration) String() string { // AttachExpression type AttachExpression struct { - Base Expression - Attachment *InvocationExpression - Entitlements []*NominalType - StartPos Position `json:"-"` + Base Expression + Attachment *InvocationExpression + StartPos Position `json:"-"` } var _ Element = &AttachExpression{} @@ -270,16 +236,14 @@ func NewAttachExpression( gauge common.MemoryGauge, base Expression, attachment *InvocationExpression, - entitlements []*NominalType, startPos Position, ) *AttachExpression { common.UseMemory(gauge, common.AttachExpressionMemoryUsage) return &AttachExpression{ - Base: base, - Attachment: attachment, - Entitlements: entitlements, - StartPos: startPos, + Base: base, + Attachment: attachment, + StartPos: startPos, } } @@ -289,14 +253,9 @@ func (e *AttachExpression) String() string { const attachExpressionDoc = prettier.Text("attach") const attachExpressionToDoc = prettier.Text("to") -const attachExpressionWithDoc = prettier.Text("with") -const attachExpressionCommaDoc = prettier.Text(",") func (e *AttachExpression) Doc() prettier.Doc { - var doc prettier.Concat - - doc = append( - doc, + return prettier.Concat{ attachExpressionDoc, prettier.Space, e.Attachment.Doc(), @@ -304,19 +263,7 @@ func (e *AttachExpression) Doc() prettier.Doc { attachExpressionToDoc, prettier.Space, e.Base.Doc(), - ) - if len(e.Entitlements) > 0 { - entitlementsLen := len(e.Entitlements) - doc = append(doc, prettier.Space, attachExpressionWithDoc, prettier.Space, openParenthesisDoc) - for i, entitlement := range e.Entitlements { - doc = append(doc, entitlement.Doc()) - if i < entitlementsLen-1 { - doc = append(doc, attachExpressionCommaDoc, prettier.Space) - } - } - doc = append(doc, closeParenthesisDoc) } - return doc } func (e *AttachExpression) StartPosition() Position { @@ -324,9 +271,6 @@ func (e *AttachExpression) StartPosition() Position { } func (e *AttachExpression) EndPosition(memoryGauge common.MemoryGauge) Position { - if len(e.Entitlements) > 0 { - return e.Entitlements[len(e.Entitlements)-1].EndPosition(memoryGauge) - } return e.Base.EndPosition(memoryGauge) } diff --git a/runtime/ast/attachment_test.go b/runtime/ast/attachment_test.go index 65d6faf50b..d57c61e365 100644 --- a/runtime/ast/attachment_test.go +++ b/runtime/ast/attachment_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -56,22 +56,6 @@ func TestAttachmentDeclaration_MarshallJSON(t *testing.T) { ), }, }, - RequiredEntitlements: []*NominalType{ - { - Identifier: NewIdentifier( - nil, - "X", - Position{Offset: 1, Line: 2, Column: 3}, - ), - }, - { - Identifier: NewIdentifier( - nil, - "Y", - Position{Offset: 1, Line: 2, Column: 3}, - ), - }, - }, Members: NewMembers(nil, []Declaration{}), DocString: "test", Range: Range{ @@ -118,28 +102,6 @@ func TestAttachmentDeclaration_MarshallJSON(t *testing.T) { "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, "EndPos": {"Offset": 3, "Line": 2, "Column": 5} } - ], - "RequiredEntitlements": [ - { - "Type": "NominalType", - "Identifier": { - "Identifier": "X", - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - }, - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - }, - { - "Type": "NominalType", - "Identifier": { - "Identifier": "Y", - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - }, - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - } ], "Members": { "Declarations": [] @@ -179,22 +141,6 @@ func TestAttachmentDeclaration_Doc(t *testing.T) { ), }, }, - RequiredEntitlements: []*NominalType{ - { - Identifier: NewIdentifier( - nil, - "X", - Position{Offset: 1, Line: 2, Column: 3}, - ), - }, - { - Identifier: NewIdentifier( - nil, - "Y", - Position{Offset: 1, Line: 2, Column: 3}, - ), - }, - }, Members: NewMembers(nil, []Declaration{}), DocString: "test", Range: Range{ @@ -225,29 +171,8 @@ func TestAttachmentDeclaration_Doc(t *testing.T) { Doc: prettier.Concat{ prettier.Line{}, prettier.Concat{ - prettier.Text("{"), - prettier.HardLine{}, - prettier.Indent{ - Doc: prettier.Concat{ - prettier.Text("require"), - prettier.Text(" "), - prettier.Text("entitlement"), - prettier.Text(" "), - prettier.Text("X"), - }, - }, - prettier.HardLine{}, - prettier.Indent{ - Doc: prettier.Concat{ - prettier.Text("require"), - prettier.Text(" "), - prettier.Text("entitlement"), - prettier.Text(" "), - prettier.Text("Y"), - }, - }, - prettier.HardLine{}, - prettier.Text("}"), + prettier.Line{}, + prettier.Text("{}"), }, }, }, @@ -260,10 +185,7 @@ func TestAttachmentDeclaration_Doc(t *testing.T) { require.Equal(t, `access(all) -attachment Foo for Bar: Baz { -require entitlement X -require entitlement Y -}`, +attachment Foo for Bar: Baz {}`, decl.String(), ) } @@ -296,24 +218,6 @@ func TestAttachExpressionMarshallJSON(t *testing.T) { Position{Offset: 1, Line: 2, Column: 3}, Position{Offset: 1, Line: 2, Column: 3}, ), - Entitlements: []*NominalType{ - NewNominalType(nil, - NewIdentifier( - nil, - "X", - Position{Offset: 1, Line: 2, Column: 3}, - ), - []Identifier{}, - ), - NewNominalType(nil, - NewIdentifier( - nil, - "Y", - Position{Offset: 1, Line: 2, Column: 3}, - ), - []Identifier{}, - ), - }, StartPos: Position{Offset: 1, Line: 2, Column: 3}, } @@ -326,7 +230,7 @@ func TestAttachExpressionMarshallJSON(t *testing.T) { { "Type": "AttachExpression", "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3}, + "EndPos": {"Offset": 3, "Line": 2, "Column": 5}, "Base": { "Type": "IdentifierExpression", "Identifier": { @@ -354,29 +258,7 @@ func TestAttachExpressionMarshallJSON(t *testing.T) { "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, "ArgumentsStartPos": {"Offset": 1, "Line": 2, "Column": 3}, "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - }, - "Entitlements": [ - { - "Type": "NominalType", - "Identifier": { - "Identifier": "X", - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - }, - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - }, - { - "Type": "NominalType", - "Identifier": { - "Identifier": "Y", - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - }, - "StartPos": {"Offset": 1, "Line": 2, "Column": 3}, - "EndPos": {"Offset": 1, "Line": 2, "Column": 3} - } - ] + } } `, string(actual), @@ -411,24 +293,6 @@ func TestAttachExpression_Doc(t *testing.T) { Position{Offset: 1, Line: 2, Column: 3}, Position{Offset: 1, Line: 2, Column: 3}, ), - Entitlements: []*NominalType{ - NewNominalType(nil, - NewIdentifier( - nil, - "X", - Position{Offset: 1, Line: 2, Column: 3}, - ), - []Identifier{}, - ), - NewNominalType(nil, - NewIdentifier( - nil, - "Y", - Position{Offset: 1, Line: 2, Column: 3}, - ), - []Identifier{}, - ), - }, StartPos: Position{Offset: 1, Line: 2, Column: 3}, } @@ -445,20 +309,11 @@ func TestAttachExpression_Doc(t *testing.T) { prettier.Text("to"), prettier.Text(" "), prettier.Text("foo"), - prettier.Text(" "), - prettier.Text("with"), - prettier.Text(" "), - prettier.Text("("), - prettier.Text("X"), - prettier.Text(","), - prettier.Text(" "), - prettier.Text("Y"), - prettier.Text(")"), }, decl.Doc(), ) - require.Equal(t, "attach bar() to foo with (X, Y)", decl.String()) + require.Equal(t, "attach bar() to foo", decl.String()) } func TestRemoveStatement_MarshallJSON(t *testing.T) { diff --git a/runtime/ast/block.go b/runtime/ast/block.go index 9cdc453684..1f1b70a596 100644 --- a/runtime/ast/block.go +++ b/runtime/ast/block.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -138,9 +138,9 @@ func (*FunctionBlock) ElementType() ElementType { } func (b *FunctionBlock) Walk(walkChild func(Element)) { - // TODO: pre-conditions + b.PreConditions.Walk(walkChild) walkChild(b.Block) - // TODO: post-conditions + b.PostConditions.Walk(walkChild) } func (b *FunctionBlock) MarshalJSON() ([]byte, error) { @@ -231,6 +231,7 @@ func (b *FunctionBlock) HasConditions() bool { // Condition type Condition interface { + Element isCondition() CodeElement() Element Doc() prettier.Doc @@ -244,6 +245,17 @@ type TestCondition struct { Message Expression } +func (c TestCondition) ElementType() ElementType { + return ElementTypeUnknown +} + +func (c TestCondition) Walk(walkChild func(Element)) { + walkChild(c.Test) + if c.Message != nil { + walkChild(c.Message) + } +} + var _ Condition = TestCondition{} func (c TestCondition) isCondition() {} @@ -333,6 +345,14 @@ func (c *EmitCondition) MarshalJSON() ([]byte, error) { }) } +func (c *EmitCondition) ElementType() ElementType { + return (*EmitStatement)(c).ElementType() +} + +func (c *EmitCondition) Walk(walkChild func(Element)) { + (*EmitStatement)(c).Walk(walkChild) +} + // Conditions type Conditions []Condition @@ -369,3 +389,13 @@ func (c *Conditions) Doc(keywordDoc prettier.Doc) prettier.Doc { }, } } + +func (c *Conditions) Walk(walkChild func(Element)) { + if c.IsEmpty() { + return + } + + for _, condition := range *c { + walkChild(condition) + } +} diff --git a/runtime/ast/block_test.go b/runtime/ast/block_test.go index 2c3880c353..c8be0ab493 100644 --- a/runtime/ast/block_test.go +++ b/runtime/ast/block_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/composite.go b/runtime/ast/composite.go index 2c369ad0e5..dae942b6af 100644 --- a/runtime/ast/composite.go +++ b/runtime/ast/composite.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,6 +43,12 @@ type CompositeLikeDeclaration interface { Kind() common.CompositeKind } +const ResourceDestructionDefaultEventName = "ResourceDestroyed" + +func IsResourceDestructionDefaultEvent(identifier string) bool { + return identifier == ResourceDestructionDefaultEventName +} + type CompositeDeclaration struct { Members *Members DocString string @@ -280,6 +286,11 @@ func (d *CompositeDeclaration) ConformanceList() []*NominalType { return d.Conformances } +func (d *CompositeDeclaration) IsResourceDestructionDefaultEvent() bool { + return d.CompositeKind == common.CompositeKindEvent && + IsResourceDestructionDefaultEvent(d.Identifier.Identifier) +} + // FieldDeclarationFlags type FieldDeclarationFlags uint8 diff --git a/runtime/ast/composite_test.go b/runtime/ast/composite_test.go index ce8d243de8..104e0cfa4e 100644 --- a/runtime/ast/composite_test.go +++ b/runtime/ast/composite_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/conditionkind.go b/runtime/ast/conditionkind.go index fa694dcad8..c0112eec6f 100644 --- a/runtime/ast/conditionkind.go +++ b/runtime/ast/conditionkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,3 +52,14 @@ func (k ConditionKind) Name() string { func (k ConditionKind) MarshalJSON() ([]byte, error) { return json.Marshal(k.String()) } + +func (k ConditionKind) Keyword() string { + switch k { + case ConditionKindPre: + return "pre" + case ConditionKindPost: + return "post" + } + + panic(errors.NewUnreachableError()) +} diff --git a/runtime/ast/conditionkind_test.go b/runtime/ast/conditionkind_test.go index 5a62ac2a0c..82441f1146 100644 --- a/runtime/ast/conditionkind_test.go +++ b/runtime/ast/conditionkind_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/declaration.go b/runtime/ast/declaration.go index 965203d3b1..ce509fbb45 100644 --- a/runtime/ast/declaration.go +++ b/runtime/ast/declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/elementtype.go b/runtime/ast/elementtype.go index d71588f5b8..1ceee39f3e 100644 --- a/runtime/ast/elementtype.go +++ b/runtime/ast/elementtype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/entitlement_declaration.go b/runtime/ast/entitlement_declaration.go index d48909311f..6a53e4e445 100644 --- a/runtime/ast/entitlement_declaration.go +++ b/runtime/ast/entitlement_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/entitlement_declaration_test.go b/runtime/ast/entitlement_declaration_test.go index 7cbd0b85b1..b1801abfe4 100644 --- a/runtime/ast/entitlement_declaration_test.go +++ b/runtime/ast/entitlement_declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/expression.go b/runtime/ast/expression.go index de050d3928..0142b92b20 100644 --- a/runtime/ast/expression.go +++ b/runtime/ast/expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/expression_as_type.go b/runtime/ast/expression_as_type.go index 9f4416e3e2..d5192585d6 100644 --- a/runtime/ast/expression_as_type.go +++ b/runtime/ast/expression_as_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/expression_extractor.go b/runtime/ast/expression_extractor.go index 9e4c3335bd..777dc8e4d3 100644 --- a/runtime/ast/expression_extractor.go +++ b/runtime/ast/expression_extractor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/expression_extractor_test.go b/runtime/ast/expression_extractor_test.go index e9ca89ab5c..f20fa24ab3 100644 --- a/runtime/ast/expression_extractor_test.go +++ b/runtime/ast/expression_extractor_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/expression_test.go b/runtime/ast/expression_test.go index 0d4263e0d3..c37dbfda38 100644 --- a/runtime/ast/expression_test.go +++ b/runtime/ast/expression_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -4414,6 +4414,7 @@ func TestFunctionExpression_MarshalJSON(t *testing.T) { "StartPos": {"Offset": 7, "Line": 8, "Column": 9}, "EndPos": {"Offset": 5, "Line": 5, "Column": 7} }, + "DefaultArgument": null, "StartPos": {"Offset": 10, "Line": 11, "Column": 12}, "EndPos": {"Offset": 5, "Line": 5, "Column": 7} } diff --git a/runtime/ast/function_declaration.go b/runtime/ast/function_declaration.go index 7b77fddcbc..f86f6be670 100644 --- a/runtime/ast/function_declaration.go +++ b/runtime/ast/function_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/function_declaration_test.go b/runtime/ast/function_declaration_test.go index 45ce41f8a0..c164a67da4 100644 --- a/runtime/ast/function_declaration_test.go +++ b/runtime/ast/function_declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -241,6 +241,7 @@ func TestFunctionDeclaration_MarshalJSON(t *testing.T) { "StartPos": {"Offset": 7, "Line": 8, "Column": 9}, "EndPos": {"Offset": 5, "Line": 5, "Column": 7} }, + "DefaultArgument": null, "StartPos": {"Offset": 10, "Line": 11, "Column": 12}, "EndPos": {"Offset": 5, "Line": 5, "Column": 7} } @@ -715,6 +716,7 @@ func TestSpecialFunctionDeclaration_MarshalJSON(t *testing.T) { "StartPos": {"Offset": 7, "Line": 8, "Column": 9}, "EndPos": {"Offset": 5, "Line": 5, "Column": 7} }, + "DefaultArgument": null, "StartPos": {"Offset": 10, "Line": 11, "Column": 12}, "EndPos": {"Offset": 5, "Line": 5, "Column": 7} } diff --git a/runtime/ast/identifier.go b/runtime/ast/identifier.go index d7576ccf01..515ea7699b 100644 --- a/runtime/ast/identifier.go +++ b/runtime/ast/identifier.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/import.go b/runtime/ast/import.go index 01f4196c27..312cc9903f 100644 --- a/runtime/ast/import.go +++ b/runtime/ast/import.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/import_test.go b/runtime/ast/import_test.go index cae24ff9c8..462dd63313 100644 --- a/runtime/ast/import_test.go +++ b/runtime/ast/import_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/inspect.go b/runtime/ast/inspect.go index 0bd0d97408..2acf193b10 100644 --- a/runtime/ast/inspect.go +++ b/runtime/ast/inspect.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/inspector.go b/runtime/ast/inspector.go index 0b9a1a130b..0ed8c75cc0 100644 --- a/runtime/ast/inspector.go +++ b/runtime/ast/inspector.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/inspector_test.go b/runtime/ast/inspector_test.go index dc2ba6a026..dd1beb653a 100644 --- a/runtime/ast/inspector_test.go +++ b/runtime/ast/inspector_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/interface.go b/runtime/ast/interface.go index cf19d4a03b..8fa4c622f1 100644 --- a/runtime/ast/interface.go +++ b/runtime/ast/interface.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/interface_test.go b/runtime/ast/interface_test.go index e850fb1c16..24819d9c35 100644 --- a/runtime/ast/interface_test.go +++ b/runtime/ast/interface_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/memberindices.go b/runtime/ast/memberindices.go index 9279ad69df..5c9c421cc4 100644 --- a/runtime/ast/memberindices.go +++ b/runtime/ast/memberindices.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,10 +37,6 @@ type memberIndices struct { _specialFunctions []*SpecialFunctionDeclaration // Use `Initializers()` instead _initializers []*SpecialFunctionDeclaration - // Semantically only one destructor is allowed, - // but the program might illegally declare multiple. - // Use `Destructors()` instead - _destructors []*SpecialFunctionDeclaration // Use `Functions()` _functions []*FunctionDeclaration // Use `FunctionsByIdentifier()` instead @@ -67,6 +63,8 @@ type memberIndices struct { _attachments []*AttachmentDeclaration // Use `EnumCases()` instead _enumCases []*EnumCaseDeclaration + // Use `Pragmas()` instead + _pragmas []*PragmaDeclaration } func (i *memberIndices) FieldsByIdentifier(declarations []Declaration) map[string]*FieldDeclaration { @@ -109,11 +107,6 @@ func (i *memberIndices) Initializers(declarations []Declaration) []*SpecialFunct return i._initializers } -func (i *memberIndices) Destructors(declarations []Declaration) []*SpecialFunctionDeclaration { - i.once.Do(i.initializer(declarations)) - return i._destructors -} - func (i *memberIndices) Fields(declarations []Declaration) []*FieldDeclaration { i.once.Do(i.initializer(declarations)) return i._fields @@ -159,6 +152,11 @@ func (i *memberIndices) EnumCases(declarations []Declaration) []*EnumCaseDeclara return i._enumCases } +func (i *memberIndices) Pragmas(declarations []Declaration) []*PragmaDeclaration { + i.once.Do(i.initializer(declarations)) + return i._pragmas +} + func (i *memberIndices) initializer(declarations []Declaration) func() { return func() { i.init(declarations) @@ -175,7 +173,6 @@ func (i *memberIndices) init(declarations []Declaration) { i._functionsByIdentifier = make(map[string]*FunctionDeclaration) i._specialFunctions = make([]*SpecialFunctionDeclaration, 0) - i._destructors = make([]*SpecialFunctionDeclaration, 0) i._initializers = make([]*SpecialFunctionDeclaration, 0) i._composites = make([]*CompositeDeclaration, 0) @@ -194,6 +191,7 @@ func (i *memberIndices) init(declarations []Declaration) { i._entitlementMappingsByIdentifier = make(map[string]*EntitlementMappingDeclaration) i._enumCases = make([]*EnumCaseDeclaration, 0) + i._pragmas = make([]*PragmaDeclaration, 0) for _, declaration := range declarations { switch declaration := declaration.(type) { @@ -211,8 +209,6 @@ func (i *memberIndices) init(declarations []Declaration) { switch declaration.Kind { case common.DeclarationKindInitializer: i._initializers = append(i._initializers, declaration) - case common.DeclarationKindDestructor: - i._destructors = append(i._destructors, declaration) } case *EntitlementDeclaration: @@ -237,6 +233,9 @@ func (i *memberIndices) init(declarations []Declaration) { case *EnumCaseDeclaration: i._enumCases = append(i._enumCases, declaration) + + case *PragmaDeclaration: + i._pragmas = append(i._pragmas, declaration) } } } diff --git a/runtime/ast/memberindices_test.go b/runtime/ast/memberindices_test.go index 8d18b389c5..b05ab02e80 100644 --- a/runtime/ast/memberindices_test.go +++ b/runtime/ast/memberindices_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,10 +54,7 @@ func TestMemberIndices(t *testing.T) { specialFunctionA := &SpecialFunctionDeclaration{ Kind: common.DeclarationKindInitializer, } - specialFunctionB := &SpecialFunctionDeclaration{ - Kind: common.DeclarationKindDestructor, - } - specialFunctionC := &SpecialFunctionDeclaration{} + specialFunctionB := &SpecialFunctionDeclaration{} compositeA := &CompositeDeclaration{ Identifier: Identifier{Identifier: "A"}, @@ -98,7 +95,6 @@ func TestMemberIndices(t *testing.T) { interfaceB, compositeA, functionB, - specialFunctionC, compositeB, specialFunctionA, interfaceA, @@ -141,7 +137,6 @@ func TestMemberIndices(t *testing.T) { require.Equal(t, []*SpecialFunctionDeclaration{ specialFunctionB, - specialFunctionC, specialFunctionA, }, members.SpecialFunctions(), diff --git a/runtime/ast/members.go b/runtime/ast/members.go index f3a108e898..5ad8354540 100644 --- a/runtime/ast/members.go +++ b/runtime/ast/members.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -84,6 +84,10 @@ func (m *Members) EnumCases() []*EnumCaseDeclaration { return m.indices.EnumCases(m.declarations) } +func (m *Members) Pragmas() []*PragmaDeclaration { + return m.indices.Pragmas(m.declarations) +} + func (m *Members) FieldsByIdentifier() map[string]*FieldDeclaration { return m.indices.FieldsByIdentifier(m.declarations) } @@ -116,19 +120,6 @@ func (m *Members) Initializers() []*SpecialFunctionDeclaration { return m.indices.Initializers(m.declarations) } -func (m *Members) Destructors() []*SpecialFunctionDeclaration { - return m.indices.Destructors(m.declarations) -} - -// Destructor returns the first destructor, if any -func (m *Members) Destructor() *SpecialFunctionDeclaration { - destructors := m.Destructors() - if len(destructors) == 0 { - return nil - } - return destructors[0] -} - func (m *Members) FieldPosition(name string, compositeKind common.CompositeKind) Position { if compositeKind == common.CompositeKindEvent { parameters := m.Initializers()[0].FunctionDeclaration.ParameterList.ParametersByIdentifier() diff --git a/runtime/ast/members_test.go b/runtime/ast/members_test.go index e9ecebcccc..488c24310d 100644 --- a/runtime/ast/members_test.go +++ b/runtime/ast/members_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/operation.go b/runtime/ast/operation.go index 55528f2857..160512ed5e 100644 --- a/runtime/ast/operation.go +++ b/runtime/ast/operation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/operation_test.go b/runtime/ast/operation_test.go index e0095016fe..acf92bb2f0 100644 --- a/runtime/ast/operation_test.go +++ b/runtime/ast/operation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/parameter.go b/runtime/ast/parameter.go index 18295d6a93..937ae2a3aa 100644 --- a/runtime/ast/parameter.go +++ b/runtime/ast/parameter.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,14 +21,17 @@ package ast import ( "encoding/json" + "github.com/turbolent/prettier" + "github.com/onflow/cadence/runtime/common" ) type Parameter struct { - TypeAnnotation *TypeAnnotation - Label string - Identifier Identifier - StartPos Position `json:"-"` + TypeAnnotation *TypeAnnotation + DefaultArgument Expression + Label string + Identifier Identifier + StartPos Position `json:"-"` } func NewParameter( @@ -36,14 +39,16 @@ func NewParameter( label string, identifier Identifier, typeAnnotation *TypeAnnotation, + defaultArgument Expression, startPos Position, ) *Parameter { common.UseMemory(gauge, common.ParameterMemoryUsage) return &Parameter{ - Label: label, - Identifier: identifier, - TypeAnnotation: typeAnnotation, - StartPos: startPos, + Label: label, + Identifier: identifier, + TypeAnnotation: typeAnnotation, + DefaultArgument: defaultArgument, + StartPos: startPos, } } @@ -65,9 +70,16 @@ func (p *Parameter) StartPosition() Position { } func (p *Parameter) EndPosition(memoryGauge common.MemoryGauge) Position { + if p.HasDefaultArgument() { + return p.DefaultArgument.EndPosition(memoryGauge) + } return p.TypeAnnotation.EndPosition(memoryGauge) } +func (p *Parameter) HasDefaultArgument() bool { + return p.DefaultArgument != nil +} + func (p *Parameter) MarshalJSON() ([]byte, error) { type Alias Parameter return json.Marshal(&struct { @@ -78,3 +90,35 @@ func (p *Parameter) MarshalJSON() ([]byte, error) { Alias: (*Alias)(p), }) } + +const parameterDefaultArgumentSeparator = "=" + +func (p *Parameter) Doc() prettier.Doc { + var parameterDoc prettier.Concat + + if p.Label != "" { + parameterDoc = append( + parameterDoc, + prettier.Text(p.Label), + prettier.Space, + ) + } + + parameterDoc = append( + parameterDoc, + prettier.Text(p.Identifier.Identifier), + typeSeparatorSpaceDoc, + p.TypeAnnotation.Doc(), + ) + + if p.DefaultArgument != nil { + parameterDoc = append(parameterDoc, + prettier.Space, + prettier.Text(parameterDefaultArgumentSeparator), + prettier.Space, + p.DefaultArgument.Doc(), + ) + } + + return parameterDoc +} diff --git a/runtime/ast/parameterlist.go b/runtime/ast/parameterlist.go index 39bb31102f..97eef6a0f0 100644 --- a/runtime/ast/parameterlist.go +++ b/runtime/ast/parameterlist.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -92,24 +92,7 @@ func (l *ParameterList) Doc() prettier.Doc { parameterDocs := make([]prettier.Doc, 0, len(l.Parameters)) for _, parameter := range l.Parameters { - var parameterDoc prettier.Concat - - if parameter.Label != "" { - parameterDoc = append( - parameterDoc, - prettier.Text(parameter.Label), - prettier.Space, - ) - } - - parameterDoc = append( - parameterDoc, - prettier.Text(parameter.Identifier.Identifier), - typeSeparatorSpaceDoc, - parameter.TypeAnnotation.Doc(), - ) - - parameterDocs = append(parameterDocs, parameterDoc) + parameterDocs = append(parameterDocs, parameter.Doc()) } return prettier.WrapParentheses( diff --git a/runtime/ast/parameterlist_test.go b/runtime/ast/parameterlist_test.go index 6c42f2c9e0..0963de6cde 100644 --- a/runtime/ast/parameterlist_test.go +++ b/runtime/ast/parameterlist_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/position.go b/runtime/ast/position.go index b9bb490fa5..3a7dc42f89 100644 --- a/runtime/ast/position.go +++ b/runtime/ast/position.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -109,6 +109,11 @@ type HasPosition interface { EndPosition(memoryGauge common.MemoryGauge) Position } +func RangeContains(memoryGauge common.MemoryGauge, a, b HasPosition) bool { + return a.StartPosition().Compare(b.StartPosition()) <= 0 && + a.EndPosition(memoryGauge).Compare(b.EndPosition(memoryGauge)) >= 0 +} + // Range type Range struct { @@ -141,6 +146,10 @@ func (e Range) EndPosition(common.MemoryGauge) Position { // NewRangeFromPositioned func NewRangeFromPositioned(memoryGauge common.MemoryGauge, hasPosition HasPosition) Range { + if hasPosition == nil { + return EmptyRange + } + return NewRange( memoryGauge, hasPosition.StartPosition(), diff --git a/runtime/ast/pragma.go b/runtime/ast/pragma.go index f989d7b08e..5ade93660e 100644 --- a/runtime/ast/pragma.go +++ b/runtime/ast/pragma.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/pragma_test.go b/runtime/ast/pragma_test.go index b075196a24..e63d90ce53 100644 --- a/runtime/ast/pragma_test.go +++ b/runtime/ast/pragma_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/precedence.go b/runtime/ast/precedence.go index 1f1d857050..3e42f6a8f1 100644 --- a/runtime/ast/precedence.go +++ b/runtime/ast/precedence.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/prettier.go b/runtime/ast/prettier.go index 833c760e5d..00dacfe814 100644 --- a/runtime/ast/prettier.go +++ b/runtime/ast/prettier.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/primitiveaccess_string.go b/runtime/ast/primitiveaccess_string.go index 40ebd6decd..a9219506d1 100644 --- a/runtime/ast/primitiveaccess_string.go +++ b/runtime/ast/primitiveaccess_string.go @@ -9,15 +9,17 @@ func _() { // Re-run the stringer command to generate them again. var x [1]struct{} _ = x[AccessNotSpecified-0] - _ = x[AccessSelf-1] - _ = x[AccessContract-2] - _ = x[AccessAccount-3] - _ = x[AccessAll-4] + _ = x[AccessNone-1] + _ = x[AccessSelf-2] + _ = x[AccessContract-3] + _ = x[AccessAccount-4] + _ = x[AccessAll-5] + _ = x[AccessPubSettableLegacy-6] } -const _PrimitiveAccess_name = "AccessNotSpecifiedAccessSelfAccessContractAccessAccountAccessAll" +const _PrimitiveAccess_name = "AccessNotSpecifiedAccessNoneAccessSelfAccessContractAccessAccountAccessAllAccessPubSettableLegacy" -var _PrimitiveAccess_index = [...]uint8{0, 18, 28, 42, 55, 64} +var _PrimitiveAccess_index = [...]uint8{0, 18, 28, 38, 52, 65, 74, 97} func (i PrimitiveAccess) String() string { if i >= PrimitiveAccess(len(_PrimitiveAccess_index)-1) { diff --git a/runtime/ast/program.go b/runtime/ast/program.go index 669d34fad0..743aa86ddb 100644 --- a/runtime/ast/program.go +++ b/runtime/ast/program.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/program_test.go b/runtime/ast/program_test.go index b6cf2f5416..ffe1d13779 100644 --- a/runtime/ast/program_test.go +++ b/runtime/ast/program_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/programindices.go b/runtime/ast/programindices.go index d6f137ebd4..36e37e58df 100644 --- a/runtime/ast/programindices.go +++ b/runtime/ast/programindices.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/programindices_test.go b/runtime/ast/programindices_test.go index df09c115a2..019b27175e 100644 --- a/runtime/ast/programindices_test.go +++ b/runtime/ast/programindices_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/statement.go b/runtime/ast/statement.go index f822d56f1f..e1e3b6c519 100644 --- a/runtime/ast/statement.go +++ b/runtime/ast/statement.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/statement_test.go b/runtime/ast/statement_test.go index dc624e0e32..e6c91f82b8 100644 --- a/runtime/ast/statement_test.go +++ b/runtime/ast/statement_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/string.go b/runtime/ast/string.go index 2d00eebe80..6dab5def14 100644 --- a/runtime/ast/string.go +++ b/runtime/ast/string.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/string_test.go b/runtime/ast/string_test.go index 5a945b0854..f3d76503e2 100644 --- a/runtime/ast/string_test.go +++ b/runtime/ast/string_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/transaction_declaration.go b/runtime/ast/transaction_declaration.go index 73f8911f92..a9b6d91b23 100644 --- a/runtime/ast/transaction_declaration.go +++ b/runtime/ast/transaction_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/transaction_declaration_test.go b/runtime/ast/transaction_declaration_test.go index 41fbcabc5f..44f4afd39c 100644 --- a/runtime/ast/transaction_declaration_test.go +++ b/runtime/ast/transaction_declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/transfer.go b/runtime/ast/transfer.go index b19ceb899b..90ab2f5a79 100644 --- a/runtime/ast/transfer.go +++ b/runtime/ast/transfer.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/transfer_test.go b/runtime/ast/transfer_test.go index daa8eebf87..37e8d48342 100644 --- a/runtime/ast/transfer_test.go +++ b/runtime/ast/transfer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/transferoperation.go b/runtime/ast/transferoperation.go index 9fab5f8789..c4e7925c2e 100644 --- a/runtime/ast/transferoperation.go +++ b/runtime/ast/transferoperation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/transferoperation_test.go b/runtime/ast/transferoperation_test.go index b912c83a72..3922ee5527 100644 --- a/runtime/ast/transferoperation_test.go +++ b/runtime/ast/transferoperation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/type.go b/runtime/ast/type.go index d69b7ec8e6..095653afd4 100644 --- a/runtime/ast/type.go +++ b/runtime/ast/type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import ( "github.com/turbolent/prettier" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" ) const typeSeparatorSpaceDoc = prettier.Text(": ") @@ -535,22 +536,18 @@ func (t *FunctionType) CheckEqual(other Type, checker TypeEqualityChecker) error } // ReferenceType - -type Authorization struct { - EntitlementSet EntitlementSet `json:"EntitlementSet"` -} - type ReferenceType struct { - Type Type `json:"ReferencedType"` - StartPos Position `json:"-"` - Authorization *Authorization `json:"Authorization"` + Type Type `json:"ReferencedType"` + StartPos Position `json:"-"` + LegacyAuthorized bool + Authorization Authorization `json:"Authorization"` } var _ Type = &ReferenceType{} func NewReferenceType( memoryGauge common.MemoryGauge, - authorization *Authorization, + authorization Authorization, typ Type, startPos Position, ) *ReferenceType { @@ -577,26 +574,38 @@ func (t *ReferenceType) EndPosition(memoryGauge common.MemoryGauge) Position { } const referenceTypeAuthKeywordDoc = prettier.Text("auth") +const referenceTypeMappingKeywordDoc = prettier.Text("mapping ") const referenceTypeSymbolDoc = prettier.Text("&") func (t *ReferenceType) Doc() prettier.Doc { var doc prettier.Concat if t.Authorization != nil { doc = append(doc, referenceTypeAuthKeywordDoc) - entitlementSet := t.Authorization.EntitlementSet - if entitlementSet != nil && len(entitlementSet.Entitlements()) > 0 { - entitlements := entitlementSet.Entitlements() - // TODO: add indentation, improve separators. follow e.g. ParameterList.Doc() - doc = append(doc, prettier.Text("(")) - for i, entitlement := range entitlements { - doc = append(doc, entitlement.Doc()) - if i < len(entitlements)-1 { - doc = append(doc, prettier.Text(entitlementSet.Separator().String()), prettier.Space) + doc = append(doc, prettier.Text("(")) + switch authorization := t.Authorization.(type) { + case EntitlementSet: + if len(authorization.Entitlements()) > 0 { + entitlements := authorization.Entitlements() + // TODO: add indentation, improve separators. follow e.g. ParameterList.Doc() + for i, entitlement := range entitlements { + doc = append(doc, entitlement.Doc()) + if i < len(entitlements)-1 { + doc = append(doc, prettier.Text(authorization.Separator().String()), prettier.Space) + } } } - doc = append(doc, prettier.Text(")")) + case *MappedAccess: + doc = append(doc, + referenceTypeMappingKeywordDoc, + authorization.EntitlementMap.Doc(), + ) + default: + panic(errors.NewUnreachableError()) } - doc = append(doc, prettier.Space) + doc = append(doc, + prettier.Text(")"), + prettier.Space, + ) } return append( @@ -626,7 +635,8 @@ func (t *ReferenceType) CheckEqual(other Type, checker TypeEqualityChecker) erro // IntersectionType type IntersectionType struct { - Types []*NominalType + LegacyRestrictedType Type // Deprecated + Types []*NominalType Range } diff --git a/runtime/ast/type_test.go b/runtime/ast/type_test.go index c3b81d5e97..5a8ae73c8a 100644 --- a/runtime/ast/type_test.go +++ b/runtime/ast/type_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -852,12 +852,20 @@ func TestReferenceType_Doc(t *testing.T) { t.Parallel() - t.Run("auth", func(t *testing.T) { + t.Run("auth with entitlement", func(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{}, + Authorization: &ConjunctiveEntitlementSet{ + Elements: []*NominalType{ + { + Identifier: Identifier{ + Identifier: "X", + }, + }, + }, + }, Type: &NominalType{ Identifier: Identifier{ Identifier: "T", @@ -868,6 +876,9 @@ func TestReferenceType_Doc(t *testing.T) { assert.Equal(t, prettier.Concat{ prettier.Text("auth"), + prettier.Text("("), + prettier.Text("X"), + prettier.Text(")"), prettier.Space, prettier.Text("&"), prettier.Text("T"), @@ -876,19 +887,15 @@ func TestReferenceType_Doc(t *testing.T) { ) }) - t.Run("auth with entitlement", func(t *testing.T) { + t.Run("auth with mapping", func(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{ - EntitlementSet: &ConjunctiveEntitlementSet{ - Elements: []*NominalType{ - { - Identifier: Identifier{ - Identifier: "X", - }, - }, + Authorization: &MappedAccess{ + EntitlementMap: &NominalType{ + Identifier: Identifier{ + Identifier: "X", }, }, }, @@ -903,6 +910,7 @@ func TestReferenceType_Doc(t *testing.T) { prettier.Concat{ prettier.Text("auth"), prettier.Text("("), + prettier.Text("mapping "), prettier.Text("X"), prettier.Text(")"), prettier.Space, @@ -918,18 +926,16 @@ func TestReferenceType_Doc(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{ - EntitlementSet: &ConjunctiveEntitlementSet{ - Elements: []*NominalType{ - { - Identifier: Identifier{ - Identifier: "X", - }, + Authorization: &ConjunctiveEntitlementSet{ + Elements: []*NominalType{ + { + Identifier: Identifier{ + Identifier: "X", }, - { - Identifier: Identifier{ - Identifier: "Y", - }, + }, + { + Identifier: Identifier{ + Identifier: "Y", }, }, }, @@ -963,18 +969,16 @@ func TestReferenceType_Doc(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{ - EntitlementSet: &DisjunctiveEntitlementSet{ - Elements: []*NominalType{ - { - Identifier: Identifier{ - Identifier: "X", - }, + Authorization: &DisjunctiveEntitlementSet{ + Elements: []*NominalType{ + { + Identifier: Identifier{ + Identifier: "X", }, - { - Identifier: Identifier{ - Identifier: "Y", - }, + }, + { + Identifier: Identifier{ + Identifier: "Y", }, }, }, @@ -1029,12 +1033,20 @@ func TestReferenceType_String(t *testing.T) { t.Parallel() - t.Run("auth", func(t *testing.T) { + t.Run("auth with entitlement", func(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{}, + Authorization: &ConjunctiveEntitlementSet{ + Elements: []*NominalType{ + { + Identifier: Identifier{ + Identifier: "X", + }, + }, + }, + }, Type: &NominalType{ Identifier: Identifier{ Identifier: "T", @@ -1043,24 +1055,20 @@ func TestReferenceType_String(t *testing.T) { } assert.Equal(t, - "auth &T", + "auth(X) &T", ty.String(), ) }) - t.Run("auth with entitlement", func(t *testing.T) { + t.Run("auth with mapping", func(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{ - EntitlementSet: &ConjunctiveEntitlementSet{ - Elements: []*NominalType{ - { - Identifier: Identifier{ - Identifier: "X", - }, - }, + Authorization: &MappedAccess{ + EntitlementMap: &NominalType{ + Identifier: Identifier{ + Identifier: "X", }, }, }, @@ -1072,7 +1080,7 @@ func TestReferenceType_String(t *testing.T) { } assert.Equal(t, - "auth(X) &T", + "auth(mapping X) &T", ty.String(), ) }) @@ -1082,18 +1090,16 @@ func TestReferenceType_String(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{ - EntitlementSet: &ConjunctiveEntitlementSet{ - Elements: []*NominalType{ - { - Identifier: Identifier{ - Identifier: "X", - }, + Authorization: &ConjunctiveEntitlementSet{ + Elements: []*NominalType{ + { + Identifier: Identifier{ + Identifier: "X", }, - { - Identifier: Identifier{ - Identifier: "Y", - }, + }, + { + Identifier: Identifier{ + Identifier: "Y", }, }, }, @@ -1116,18 +1122,16 @@ func TestReferenceType_String(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{ - EntitlementSet: &DisjunctiveEntitlementSet{ - Elements: []*NominalType{ - { - Identifier: Identifier{ - Identifier: "X", - }, + Authorization: &DisjunctiveEntitlementSet{ + Elements: []*NominalType{ + { + Identifier: Identifier{ + Identifier: "X", }, - { - Identifier: Identifier{ - Identifier: "Y", - }, + }, + { + Identifier: Identifier{ + Identifier: "Y", }, }, }, @@ -1170,18 +1174,16 @@ func TestReferenceType_MarshalJSON(t *testing.T) { t.Parallel() ty := &ReferenceType{ - Authorization: &Authorization{ - EntitlementSet: &ConjunctiveEntitlementSet{ - Elements: []*NominalType{ - { - Identifier: Identifier{ - Identifier: "X", - }, + Authorization: &ConjunctiveEntitlementSet{ + Elements: []*NominalType{ + { + Identifier: Identifier{ + Identifier: "X", }, - { - Identifier: Identifier{ - Identifier: "Y", - }, + }, + { + Identifier: Identifier{ + Identifier: "Y", }, }, }, @@ -1203,31 +1205,30 @@ func TestReferenceType_MarshalJSON(t *testing.T) { ` { "Type": "ReferenceType", + "LegacyAuthorized": false, "Authorization": { - "EntitlementSet": { - "ConjunctiveElements": [ - { - "Type": "NominalType", - "Identifier": { - "Identifier": "X", - "StartPos": {"Offset": 0, "Line": 0, "Column": 0}, - "EndPos": {"Offset": 0, "Line": 0, "Column": 0} - }, + "ConjunctiveElements": [ + { + "Type": "NominalType", + "Identifier": { + "Identifier": "X", "StartPos": {"Offset": 0, "Line": 0, "Column": 0}, "EndPos": {"Offset": 0, "Line": 0, "Column": 0} - }, - { - "Type": "NominalType", - "Identifier": { - "Identifier": "Y", - "StartPos": {"Offset": 0, "Line": 0, "Column": 0}, - "EndPos": {"Offset": 0, "Line": 0, "Column": 0} - }, + }, + "StartPos": {"Offset": 0, "Line": 0, "Column": 0}, + "EndPos": {"Offset": 0, "Line": 0, "Column": 0} + }, + { + "Type": "NominalType", + "Identifier": { + "Identifier": "Y", "StartPos": {"Offset": 0, "Line": 0, "Column": 0}, "EndPos": {"Offset": 0, "Line": 0, "Column": 0} - } - ] - } + }, + "StartPos": {"Offset": 0, "Line": 0, "Column": 0}, + "EndPos": {"Offset": 0, "Line": 0, "Column": 0} + } + ] }, "ReferencedType": { "Type": "NominalType", @@ -1347,6 +1348,7 @@ func TestIntersectionType_MarshalJSON(t *testing.T) { ` { "Type": "IntersectionType", + "LegacyRestrictedType": null, "Types": [ { "Type": "NominalType", diff --git a/runtime/ast/typeparameter.go b/runtime/ast/typeparameter.go index a7edff3d5e..55b26958b9 100644 --- a/runtime/ast/typeparameter.go +++ b/runtime/ast/typeparameter.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/typeparameterlist.go b/runtime/ast/typeparameterlist.go index fb695a64e5..5abed2e88f 100644 --- a/runtime/ast/typeparameterlist.go +++ b/runtime/ast/typeparameterlist.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/variable_declaration.go b/runtime/ast/variable_declaration.go index 11daa75c40..bc82b55a5a 100644 --- a/runtime/ast/variable_declaration.go +++ b/runtime/ast/variable_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/variable_declaration_test.go b/runtime/ast/variable_declaration_test.go index 0ea4d9e558..c34430f631 100644 --- a/runtime/ast/variable_declaration_test.go +++ b/runtime/ast/variable_declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/variablekind.go b/runtime/ast/variablekind.go index 76909b4e2b..d3a8ff683c 100644 --- a/runtime/ast/variablekind.go +++ b/runtime/ast/variablekind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/variablekind_test.go b/runtime/ast/variablekind_test.go index f3cd7d17df..5d3d541be2 100644 --- a/runtime/ast/variablekind_test.go +++ b/runtime/ast/variablekind_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/visitor.go b/runtime/ast/visitor.go index 54da199a4e..c18fdd797f 100644 --- a/runtime/ast/visitor.go +++ b/runtime/ast/visitor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ast/walk.go b/runtime/ast/walk.go index 8e4dd07b97..9b272b97ef 100644 --- a/runtime/ast/walk.go +++ b/runtime/ast/walk.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/attachments_test.go b/runtime/attachments_test.go index 9d186fdfb7..259b5f1cb9 100644 --- a/runtime/attachments_test.go +++ b/runtime/attachments_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -230,7 +230,7 @@ func TestRuntimeAccountAttachmentExportFailure(t *testing.T) { }, ) require.Error(t, err) - require.ErrorAs(t, err, &interpreter.DestroyedResourceError{}) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) } func TestRuntimeAccountAttachmentExport(t *testing.T) { @@ -395,9 +395,16 @@ func TestRuntimeAccountAttachedExport(t *testing.T) { require.NoError(t, err) require.IsType(t, cadence.Resource{}, v) - require.Len(t, v.(cadence.Resource).Fields, 2) - require.IsType(t, cadence.Attachment{}, v.(cadence.Resource).Fields[1]) - require.Equal(t, "A.0000000000000001.Test.A()", v.(cadence.Resource).Fields[1].String()) + fields := cadence.FieldsMappedByName(v.(cadence.Resource)) + require.Len(t, fields, 2) + + attachment := fields["$A.0000000000000001.Test.A"] + require.IsType(t, cadence.Attachment{}, attachment) + require.Equal( + t, + "A.0000000000000001.Test.A()", + attachment.String(), + ) } func TestRuntimeAccountAttachmentSaveAndBorrow(t *testing.T) { diff --git a/runtime/capabilities_test.go b/runtime/capabilities_test.go index ac73a29e55..a76aa07ac9 100644 --- a/runtime/capabilities_test.go +++ b/runtime/capabilities_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -133,7 +133,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testR() { let path = /public/r - let cap = self.account.capabilities.get<&R>(path)! + let cap = self.account.capabilities.get<&R>(path) assert(self.account.capabilities.exists(path)) @@ -162,7 +162,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testRAsR2() { let path = /public/rAsR2 - let cap = self.account.capabilities.get<&R2>(path)! + let cap = self.account.capabilities.get<&R2>(path) assert(self.account.capabilities.exists(path)) @@ -185,7 +185,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testRAsS() { let path = /public/rAsS - let cap = self.account.capabilities.get<&S>(path)! + let cap = self.account.capabilities.get<&S>(path) assert(self.account.capabilities.exists(path)) @@ -208,7 +208,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testNonExistentTarget() { let path = /public/nonExistentTarget - let cap = self.account.capabilities.get<&R>(path)! + let cap = self.account.capabilities.get<&R>(path) assert(self.account.capabilities.exists(path)) @@ -231,13 +231,28 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testNonExistent() { let path = /public/nonExistent - assert(self.account.capabilities.get<&AnyResource>(path) == nil) + + let cap = self.account.capabilities.get<&R>(path) + assert(cap.id == 0) + assert(cap as? Capability<&R> != nil) + assert(cap as? Capability<&AnyResource> != nil) + assert(cap.borrow() == nil) + assert(cap.address == 0x1) + assert(cap.check() == false) + + let cap2 = self.account.capabilities.get<&AnyResource>(path) + assert(cap2.id == 0) + assert(cap2 as? Capability<&AnyResource> != nil) + assert(cap2.borrow() == nil) + assert(cap2.address == 0x1) + assert(cap2.check() == false) + assert(!self.account.capabilities.exists(path)) } access(all) fun testSwap(): Int { - let ref = self.account.capabilities.get<&R>(/public/r)!.borrow()! + let ref = self.account.capabilities.get<&R>(/public/r).borrow()! let r <- self.account.storage.load<@R>(from: /storage/r) destroy r @@ -385,7 +400,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testS() { let path = /public/s - let cap = self.account.capabilities.get<&S>(path)! + let cap = self.account.capabilities.get<&S>(path) assert(self.account.capabilities.exists(path)) @@ -414,7 +429,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testSAsS2() { let path = /public/sAsS2 - let cap = self.account.capabilities.get<&S2>(path)! + let cap = self.account.capabilities.get<&S2>(path) assert(self.account.capabilities.exists(path)) @@ -437,7 +452,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testSAsR() { let path = /public/sAsR - let cap = self.account.capabilities.get<&R>(path)! + let cap = self.account.capabilities.get<&R>(path) assert(self.account.capabilities.exists(path)) @@ -460,7 +475,7 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testNonExistentTarget() { let path = /public/nonExistentTarget - let cap = self.account.capabilities.get<&S>(path)! + let cap = self.account.capabilities.get<&S>(path) assert(self.account.capabilities.exists(path)) @@ -483,13 +498,28 @@ func TestRuntimeCapability_borrowAndCheck(t *testing.T) { access(all) fun testNonExistent() { let path = /public/nonExistent - assert(self.account.capabilities.get<&AnyStruct>(path) == nil) + + let cap = self.account.capabilities.get<&S>(path) + assert(cap.id == 0) + assert(cap as? Capability<&S> != nil) + assert(cap as? Capability<&AnyStruct> != nil) + assert(cap.borrow() == nil) + assert(cap.address == 0x1) + assert(cap.check() == false) + + let cap2 = self.account.capabilities.get<&AnyStruct>(path) + assert(cap2.id == 0) + assert(cap2 as? Capability<&AnyStruct> != nil) + assert(cap2.borrow() == nil) + assert(cap2.address == 0x1) + assert(cap2.check() == false) + assert(!self.account.capabilities.exists(path)) } access(all) fun testSwap(): Int { - let ref = self.account.capabilities.get<&S>(/public/s)!.borrow()! + let ref = self.account.capabilities.get<&S>(/public/s).borrow()! self.account.storage.load(from: /storage/s) diff --git a/runtime/capabilitycontrollers_test.go b/runtime/capabilitycontrollers_test.go index 743859a255..8bdc01b220 100644 --- a/runtime/capabilitycontrollers_test.go +++ b/runtime/capabilitycontrollers_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,11 @@ package runtime_test import ( + "encoding/binary" "fmt" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/onflow/cadence" @@ -37,7 +39,7 @@ import ( func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() - test := func(tx string) ( + testWithSignerCount := func(t *testing.T, tx string, signerCount int) ( err error, storage *Storage, ) { @@ -122,7 +124,19 @@ func TestRuntimeCapabilityControllers(t *testing.T) { `), ) - signer := common.MustBytesToAddress([]byte{0x1}) + if signerCount < 1 { + signerCount = 1 + } + + testSigners := make([]Address, signerCount) + for signerIndex := 0; signerIndex < signerCount; signerIndex++ { + binary.BigEndian.PutUint64( + testSigners[signerIndex][:], + uint64(signerIndex+1), + ) + } + + signers := []Address{testSigners[0]} runtimeInterface := &TestRuntimeInterface{ Storage: NewTestLedger(nil, nil), @@ -134,7 +148,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { return nil }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signer}, nil + return signers, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { @@ -164,6 +178,8 @@ func TestRuntimeCapabilityControllers(t *testing.T) { // Call contract + signers = testSigners + err = rt.ExecuteTransaction( Script{ Source: []byte(tx), @@ -181,6 +197,13 @@ func TestRuntimeCapabilityControllers(t *testing.T) { return } + test := func(t *testing.T, tx string) ( + err error, + storage *Storage, + ) { + return testWithSignerCount(t, tx, 1) + } + authAccountType := sema.FullyEntitledAccountReferenceType publicAccountType := sema.AccountReferenceType @@ -200,6 +223,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -208,12 +232,15 @@ func TestRuntimeCapabilityControllers(t *testing.T) { let path = /public/x // Act - let gotCap: Capability<&AnyStruct>? = + let gotCap: Capability<&AnyStruct> = %[1]s.capabilities.get<&AnyStruct>(path) // Assert assert(!%[1]s.capabilities.exists(path)) - assert(gotCap == nil) + assert(gotCap.id == 0) + assert(gotCap.borrow() == nil) + assert(gotCap.check() == false) + assert(gotCap.address == 0x1) } } `, @@ -229,6 +256,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -249,7 +277,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { // Act let gotCap: Capability<&Test.R> = - %[1]s.capabilities.get<&Test.R>(publicPath)! + %[1]s.capabilities.get<&Test.R>(publicPath) // Assert assert(%[1]s.capabilities.exists(publicPath)) @@ -267,6 +295,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -282,7 +311,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { // Act let gotCap: Capability<&Account> = - %[1]s.capabilities.get<&Account>(publicPath)! + %[1]s.capabilities.get<&Account>(publicPath) // Assert assert(%[1]s.capabilities.exists(publicPath)) @@ -306,6 +335,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -326,7 +356,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { // Act let gotCap: Capability<&Test.R> = - %[1]s.capabilities.get<&Test.R>(publicPath)! + %[1]s.capabilities.get<&Test.R>(publicPath) let ref: &Test.R = gotCap.borrow()! // Assert @@ -347,6 +377,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -362,7 +393,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { // Act let gotCap: Capability<&Account> = - %[1]s.capabilities.get<&Account>(publicPath)! + %[1]s.capabilities.get<&Account>(publicPath) let ref: &Account = gotCap.borrow()! // Assert @@ -388,6 +419,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -407,13 +439,16 @@ func TestRuntimeCapabilityControllers(t *testing.T) { signer.capabilities.publish(issuedCap, at: publicPath) // Act - let gotCap: Capability? = + let gotCap: Capability = %[1]s.capabilities.get(publicPath) // Assert assert(%[1]s.capabilities.exists(publicPath)) assert(issuedCap.id == expectedCapID) - assert(gotCap == nil) + assert(gotCap.id == 0) + assert(gotCap.borrow() == nil) + assert(gotCap.check() == false) + assert(gotCap.address == 0x1) } } `, @@ -426,6 +461,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -442,13 +478,16 @@ func TestRuntimeCapabilityControllers(t *testing.T) { signer.capabilities.publish(issuedCap, at: publicPath) // Act - let gotCap: Capability<&Test.R>? = + let gotCap: Capability<&Test.R> = %[1]s.capabilities.get<&Test.R>(publicPath) // Assert assert(%[1]s.capabilities.exists(publicPath)) assert(issuedCap.id == expectedCapID) - assert(gotCap == nil) + assert(gotCap.id == 0) + assert(gotCap.borrow() == nil) + assert(gotCap.check() == false) + assert(gotCap.address == 0x1) } } `, @@ -466,6 +505,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -485,13 +525,16 @@ func TestRuntimeCapabilityControllers(t *testing.T) { signer.capabilities.publish(issuedCap, at: publicPath) // Act - let gotCap: Capability<&Test.S>? = + let gotCap: Capability<&Test.S> = %[1]s.capabilities.get<&Test.S>(publicPath) // Assert assert(%[1]s.capabilities.exists(publicPath)) assert(issuedCap.id == expectedCapID) - assert(gotCap == nil) + assert(gotCap.id == 0) + assert(gotCap.borrow() == nil) + assert(gotCap.check() == false) + assert(gotCap.address == 0x1) } } `, @@ -504,6 +547,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -518,13 +562,16 @@ func TestRuntimeCapabilityControllers(t *testing.T) { signer.capabilities.publish(issuedCap, at: publicPath) // Act - let gotCap: Capability<&AnyResource>? = + let gotCap: Capability<&AnyResource> = %[1]s.capabilities.get<&AnyResource>(publicPath) // Assert assert(%[1]s.capabilities.exists(publicPath)) assert(issuedCap.id == expectedCapID) - assert(gotCap == nil) + assert(gotCap.id == 0) + assert(gotCap.borrow() == nil) + assert(gotCap.check() == false) + assert(gotCap.address == 0x1) } } `, @@ -541,6 +588,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -561,14 +609,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { let unpublishedcap = signer.capabilities.unpublish(publicPath) // Act - let gotCap: Capability<&Test.R>? = + let gotCap: Capability<&Test.R> = %[1]s.capabilities.get<&Test.R>(publicPath) // Assert assert(!%[1]s.capabilities.exists(publicPath)) assert(issuedCap.id == expectedCapID) assert(unpublishedcap!.id == expectedCapID) - assert(gotCap == nil) + assert(gotCap.id == 0) + assert(gotCap.borrow() == nil) + assert(gotCap.check() == false) + assert(gotCap.address == 0x1) } } `, @@ -580,6 +631,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -595,14 +647,17 @@ func TestRuntimeCapabilityControllers(t *testing.T) { let unpublishedcap = signer.capabilities.unpublish(publicPath) // Act - let gotCap: Capability<&Account>? = + let gotCap: Capability<&Account> = %[1]s.capabilities.get<&Account>(publicPath) // Assert assert(!%[1]s.capabilities.exists(publicPath)) assert(issuedCap.id == expectedCapID) assert(unpublishedcap!.id == expectedCapID) - assert(gotCap == nil) + assert(gotCap.id == 0) + assert(gotCap.borrow() == nil) + assert(gotCap.check() == false) + assert(gotCap.address == 0x1) } } `, @@ -619,6 +674,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -645,6 +701,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -681,6 +738,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -718,6 +776,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -755,6 +814,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -794,6 +854,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -831,6 +892,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -867,6 +929,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -905,6 +968,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("account capability", func(t *testing.T) { err, _ := test( + t, fmt.Sprintf( // language=cadence ` @@ -945,6 +1009,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -974,6 +1039,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Run("storage capability", func(t *testing.T) { err, _ := test( + t, // language=cadence ` transaction { @@ -999,11 +1065,94 @@ func TestRuntimeCapabilityControllers(t *testing.T) { }) }) + t.Run("publish different account", func(t *testing.T) { + + t.Parallel() + + t.Run("storage capability", func(t *testing.T) { + + err, _ := testWithSignerCount( + t, + // language=cadence + ` + transaction { + prepare( + signer1: auth(Capabilities) &Account, + signer2: auth(Capabilities) &Account + ) { + let publicPath = /public/r + let storagePath = /storage/r + + // Arrange + let issuedCap: Capability<&AnyStruct> = + signer1.capabilities.storage.issue<&AnyStruct>(storagePath) + + // Act + signer2.capabilities.publish(issuedCap, at: publicPath) + } + } + `, + 2, + ) + RequireError(t, err) + + var publishingError interpreter.CapabilityAddressPublishingError + require.ErrorAs(t, err, &publishingError) + assert.Equal(t, + interpreter.NewUnmeteredAddressValueFromBytes([]byte{0x2}), + publishingError.AccountAddress, + ) + assert.Equal(t, + interpreter.NewUnmeteredAddressValueFromBytes([]byte{0x1}), + publishingError.CapabilityAddress, + ) + }) + + t.Run("account capability", func(t *testing.T) { + + err, _ := testWithSignerCount( + t, + // language=cadence + ` + transaction { + prepare( + signer1: auth(Capabilities) &Account, + signer2: auth(Capabilities) &Account + ) { + let publicPath = /public/r + + // Arrange + let issuedCap: Capability<&Account> = + signer1.capabilities.account.issue<&Account>() + + // Act + signer2.capabilities.publish(issuedCap, at: publicPath) + } + } + `, + 2, + ) + RequireError(t, err) + + var publishingError interpreter.CapabilityAddressPublishingError + require.ErrorAs(t, err, &publishingError) + assert.Equal(t, + interpreter.NewUnmeteredAddressValueFromBytes([]byte{0x2}), + publishingError.AccountAddress, + ) + assert.Equal(t, + interpreter.NewUnmeteredAddressValueFromBytes([]byte{0x1}), + publishingError.CapabilityAddress, + ) + }) + }) + t.Run("unpublish non-existing", func(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1041,6 +1190,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1072,11 +1222,69 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.NoError(t, err) }) + t.Run("issue, multiple controllers to various paths, with same or different type, type value", func(t *testing.T) { + + t.Parallel() + + err, _ := test( + t, + // language=cadence + ` + import Test from 0x1 + + transaction { + prepare(signer: auth(Capabilities) &Account) { + let storagePath1 = /storage/r + let storagePath2 = /storage/r2 + + // Act + let issuedCap1: Capability<&Test.R> = signer.capabilities.storage + .issueWithType(storagePath1, type: Type<&Test.R>()) as! Capability<&Test.R> + let issuedCap2: Capability<&Test.R> = signer.capabilities.storage + .issueWithType(storagePath1, type: Type<&Test.R>()) as! Capability<&Test.R> + let issuedCap3: Capability<&Test.R> = signer.capabilities.storage + .issueWithType(storagePath1, type: Type<&Test.R>()) as! Capability<&Test.R> + let issuedCap4: Capability<&Test.R> = signer.capabilities.storage + .issueWithType(storagePath2, type: Type<&Test.R>()) as! Capability<&Test.R> + + // Assert + assert(issuedCap1.id == 1) + assert(issuedCap2.id == 2) + assert(issuedCap3.id == 3) + assert(issuedCap4.id == 4) + } + } + `, + ) + require.NoError(t, err) + }) + + t.Run("issue with type value, invalid type", func(t *testing.T) { + + t.Parallel() + + err, _ := test( + t, + // language=cadence + ` + transaction { + prepare(signer: auth(Capabilities) &Account) { + signer.capabilities.storage.issueWithType(/storage/test, type: Type()) + } + } + `, + ) + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.InvalidCapabilityIssueTypeError{}) + }) + t.Run("getController, non-existing", func(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1102,6 +1310,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1128,6 +1337,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1185,6 +1395,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1240,6 +1451,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1270,6 +1482,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1338,6 +1551,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1377,6 +1591,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1410,6 +1625,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1446,6 +1662,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1479,6 +1696,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1520,6 +1738,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1543,11 +1762,61 @@ func TestRuntimeCapabilityControllers(t *testing.T) { require.NoError(t, err) }) + t.Run("issue, multiple controllers, with same or different type, type value", func(t *testing.T) { + + t.Parallel() + + err, _ := test( + t, + // language=cadence + ` + transaction { + prepare(signer: auth(Capabilities) &Account) { + // Act + let issuedCap1: Capability<&Account> = signer.capabilities.account + .issueWithType(Type<&Account>()) as! Capability<&Account> + let issuedCap2: Capability<&Account> = signer.capabilities.account + .issueWithType(Type<&Account>()) as! Capability<&Account> + let issuedCap3: Capability<&Account> = signer.capabilities.account + .issueWithType(Type<&Account>()) as! Capability<&Account> + + // Assert + assert(issuedCap1.id == 1) + assert(issuedCap2.id == 2) + assert(issuedCap3.id == 3) + } + } + `, + ) + require.NoError(t, err) + }) + + t.Run("issue with type value, invalid type", func(t *testing.T) { + + t.Parallel() + + err, _ := test( + t, + // language=cadence + ` + transaction { + prepare(signer: auth(Capabilities) &Account) { + signer.capabilities.account.issueWithType(Type()) + } + } + `, + ) + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.InvalidCapabilityIssueTypeError{}) + }) + t.Run("getController, non-existing", func(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1573,6 +1842,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1599,6 +1869,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1640,6 +1911,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1686,6 +1958,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1714,6 +1987,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1764,6 +2038,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1798,6 +2073,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1829,6 +2105,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1857,6 +2134,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1888,6 +2166,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -1920,6 +2199,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -1957,6 +2237,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2001,6 +2282,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2105,6 +2387,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2144,6 +2427,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2186,6 +2470,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2231,6 +2516,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2270,6 +2556,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2300,6 +2587,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2330,6 +2618,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2360,6 +2649,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, storage := test( + t, // language=cadence ` import Test from 0x1 @@ -2395,6 +2685,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2438,6 +2729,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` import Test from 0x1 @@ -2471,6 +2763,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -2511,6 +2804,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -2546,6 +2840,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { @@ -2572,6 +2867,7 @@ func TestRuntimeCapabilityControllers(t *testing.T) { t.Parallel() err, _ := test( + t, // language=cadence ` transaction { diff --git a/runtime/cmd/check/main.go b/runtime/cmd/check/main.go index 75b2789517..69112b4aa4 100644 --- a/runtime/cmd/check/main.go +++ b/runtime/cmd/check/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/cmd.go b/runtime/cmd/cmd.go index ea74f93167..7e46941680 100644 --- a/runtime/cmd/cmd.go +++ b/runtime/cmd/cmd.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -88,8 +88,10 @@ func DefaultCheckerConfig( } return &sema.Config{ - BaseValueActivation: baseValueActivation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeStrict, ImportHandler: func( checker *sema.Checker, importedLocation common.Location, @@ -200,8 +202,10 @@ func PrepareInterpreter(filename string, debugger *interpreter.Debugger) (*inter } config := &interpreter.Config{ - BaseActivation: baseActivation, - Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, + Storage: storage, UUIDHandler: func() (uint64, error) { defer func() { uuid++ }() return uuid, nil @@ -427,6 +431,19 @@ func (h *StandardLibraryHandler) NewOnEventEmittedHandler() interpreter.OnEventE } } +func (h *StandardLibraryHandler) StartContractAddition(common.AddressLocation) { + // NO-OP +} + +func (h *StandardLibraryHandler) EndContractAddition(common.AddressLocation) { + // NO-OP +} + +func (h *StandardLibraryHandler) IsContractBeingAdded(common.AddressLocation) bool { + // NO-OP + return false +} + func formatLocationRange(locationRange interpreter.LocationRange) string { var builder strings.Builder if locationRange.Location != nil { diff --git a/runtime/cmd/compile/main.go b/runtime/cmd/compile/main.go index 44e85545df..192dfc5d62 100644 --- a/runtime/cmd/compile/main.go +++ b/runtime/cmd/compile/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/decode-state-values/main.go b/runtime/cmd/decode-state-values/main.go index 259f852a0c..5daa383045 100644 --- a/runtime/cmd/decode-state-values/main.go +++ b/runtime/cmd/decode-state-values/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -268,6 +268,8 @@ func load() { var slabNotFoundErrCount int + locationRange := interpreter.EmptyLocationRange + for storageKey, data := range storage { //nolint:maprange _ = bar.Add(1) @@ -277,7 +279,15 @@ func load() { var address atree.Address copy(address[:], storageKey[0]) - err := loadStorageKey(key, address, data, inter, slabStorage) + err := loadStorageKey( + key, + address, + data, + inter, + slabStorage, + locationRange, + ) + var slabNotFoundErr *atree.SlabNotFoundError if errors.As(err, &slabNotFoundErr) { slabNotFoundErrCount++ @@ -293,6 +303,7 @@ func loadStorageKey( data []byte, inter *interpreter.Interpreter, slabStorage *slabStorage, + locationRange interpreter.LocationRange, ) (err error) { defer func() { @@ -387,6 +398,7 @@ func loadStorageKey( return true }, + locationRange, ) if *checkValuesFlag { diff --git a/runtime/cmd/execute/colors.go b/runtime/cmd/execute/colors.go index 72abe92b5d..1b26be954a 100644 --- a/runtime/cmd/execute/colors.go +++ b/runtime/cmd/execute/colors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/execute/debugger.go b/runtime/cmd/execute/debugger.go index 3a09f96098..43c26caf9e 100644 --- a/runtime/cmd/execute/debugger.go +++ b/runtime/cmd/execute/debugger.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -73,7 +73,8 @@ func (d *InteractiveDebugger) Next() { // Show shows the values for the variables with the given names. // If no names are given, lists all non-base variables func (d *InteractiveDebugger) Show(names []string) { - current := d.debugger.CurrentActivation(d.stop.Interpreter) + inter := d.stop.Interpreter + current := d.debugger.CurrentActivation(inter) switch len(names) { case 0: for name := range current.FunctionValues() { //nolint:maprange @@ -88,7 +89,7 @@ func (d *InteractiveDebugger) Show(names []string) { return } - fmt.Println(colorizeValue(variable.GetValue())) + fmt.Println(colorizeValue(variable.GetValue(inter))) default: for _, name := range names { @@ -100,7 +101,7 @@ func (d *InteractiveDebugger) Show(names []string) { fmt.Printf( "%s = %s\n", name, - colorizeValue(variable.GetValue()), + colorizeValue(variable.GetValue(inter)), ) } } diff --git a/runtime/cmd/execute/execute.go b/runtime/cmd/execute/execute.go index e05e634423..6b2000170d 100644 --- a/runtime/cmd/execute/execute.go +++ b/runtime/cmd/execute/execute.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/execute/repl.go b/runtime/cmd/execute/repl.go index be767e9cae..5532ba4eab 100644 --- a/runtime/cmd/execute/repl.go +++ b/runtime/cmd/execute/repl.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/info/main.go b/runtime/cmd/info/main.go index 06f8ba031e..fb8a56b277 100644 --- a/runtime/cmd/info/main.go +++ b/runtime/cmd/info/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,12 +21,14 @@ package main import ( "flag" "fmt" + "strings" "golang.org/x/exp/slices" "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" "github.com/onflow/cadence/runtime/tests/checker" @@ -70,6 +72,10 @@ var commands = map[string]command{ help: "Dumps all built-in values", handler: dumpBuiltinValues, }, + "dump-hard-keywords": { + help: "Dumps all hard keywords", + handler: dumpHardKeywords, + }, } func dumpBuiltinTypes() { @@ -112,18 +118,46 @@ func dumpBuiltinTypes() { slices.SortFunc( types, - func(a, b sema.Type) bool { - return a.QualifiedString() < b.QualifiedString() + func(a, b sema.Type) int { + return strings.Compare(a.QualifiedString(), b.QualifiedString()) }, ) for _, ty := range types { - id := ty.QualifiedString() - fmt.Printf("- %s\n", id) + dumpType(ty) + } +} - if *includeMembers { - dumpTypeMembers(ty) +func dumpType(ty sema.Type) { + + // If the type is parameterized, instantiate it with generic types + if parameterizedType, ok := ty.(sema.ParameterizedType); ok { + typeParameters := parameterizedType.TypeParameters() + typeArguments := parameterizedType.TypeArguments() + + var newTypeArguments []sema.Type + + for typeParameterIndex, typeParameter := range typeParameters { + var typeArgument sema.Type + if typeParameterIndex < len(typeArguments) { + typeArgument = typeArguments[typeParameterIndex] + } + if typeArgument == nil { + typeArgument = &sema.GenericType{ + TypeParameter: typeParameter, + } + } + newTypeArguments = append(newTypeArguments, typeArgument) } + + ty = sema.MustInstantiate(parameterizedType, newTypeArguments...) + } + + id := ty.QualifiedString() + fmt.Printf("- %s\n", id) + + if *includeMembers { + dumpTypeMembers(ty) } } @@ -151,8 +185,8 @@ func dumpTypeMembers(ty sema.Type) { slices.SortFunc( namedResolvers, - func(a, b namedResolver) bool { - return a.name < b.name + func(a, b namedResolver) int { + return strings.Compare(a.name, b.name) }, ) @@ -233,8 +267,8 @@ func dumpBuiltinValues() { slices.SortFunc( valueTypes, - func(a, b valueType) bool { - return a.name < b.name + func(a, b valueType) int { + return strings.Compare(a.name, b.name) }, ) @@ -262,6 +296,12 @@ func dumpBuiltinValues() { } } +func dumpHardKeywords() { + for _, keyword := range parser.HardKeywords { + fmt.Printf("- %s\n", keyword) + } +} + func printAvailableCommands() { type commandHelp struct { name string @@ -283,8 +323,8 @@ func printAvailableCommands() { slices.SortFunc( commandHelps, - func(a, b commandHelp) bool { - return a.name < b.name + func(a, b commandHelp) int { + return strings.Compare(a.name, b.name) }, ) diff --git a/runtime/cmd/json-cdc/main.go b/runtime/cmd/json-cdc/main.go index 784909165c..5121560124 100644 --- a/runtime/cmd/json-cdc/main.go +++ b/runtime/cmd/json-cdc/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/main/main.go b/runtime/cmd/main/main.go index 3e86df7c06..790ccc9c03 100644 --- a/runtime/cmd/main/main.go +++ b/runtime/cmd/main/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/minifier/minifier.go b/runtime/cmd/minifier/minifier.go index 735280393c..2c4db97cda 100644 --- a/runtime/cmd/minifier/minifier.go +++ b/runtime/cmd/minifier/minifier.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/minifier/minifier_test.go b/runtime/cmd/minifier/minifier_test.go index a7fcbe924c..4ab87e2708 100644 --- a/runtime/cmd/minifier/minifier_test.go +++ b/runtime/cmd/minifier/minifier_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/cmd/parse/main.go b/runtime/cmd/parse/main.go index b1afb4f93d..1f2d3d4b93 100644 --- a/runtime/cmd/parse/main.go +++ b/runtime/cmd/parse/main.go @@ -4,7 +4,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,8 @@ package main import ( "bufio" + "bytes" + "encoding/csv" "encoding/json" "flag" "fmt" @@ -32,6 +34,8 @@ import ( "testing" "time" + "github.com/itchyny/gojq" + "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/parser" @@ -40,13 +44,15 @@ import ( var benchFlag = flag.Bool("bench", false, "benchmark the parser") var jsonFlag = flag.Bool("json", false, "print the result formatted as JSON") +var readCSVFlag = flag.Bool("readCSV", false, "read the input file as CSV (header: location,code)") +var jqASTFlag = flag.String("jqAST", "", "query the AST using gojq") func main() { testing.Init() flag.Parse() args := flag.Args() - run(args, *benchFlag, *jsonFlag) + run(args, *benchFlag, *jsonFlag, *readCSVFlag, *jqASTFlag) } type benchResult struct { @@ -63,6 +69,7 @@ type result struct { Path string `json:"path,omitempty"` BenchStr string `json:"-"` Code []byte `json:"-"` + Results []any `json:"results,omitempty"` } type output interface { @@ -71,11 +78,13 @@ type output interface { } type jsonOutput struct { + file *os.File results []result } -func newJSONOutput(count int) *jsonOutput { +func newJSONOutput(file *os.File, count int) *jsonOutput { return &jsonOutput{ + file: file, results: make([]result, 0, count), } } @@ -85,7 +94,7 @@ func (j *jsonOutput) Append(r result) { } func (j *jsonOutput) End() { - encoder := json.NewEncoder(os.Stdout) + encoder := json.NewEncoder(j.file) encoder.SetIndent("", " ") err := encoder.Encode(j.results) if err != nil { @@ -93,21 +102,19 @@ func (j *jsonOutput) End() { } } -type stdoutOutput struct{} +type fileOutput struct { + file *os.File +} -func (s stdoutOutput) Append(r result) { - var err error +func (s fileOutput) Append(r result) { if len(r.Path) > 0 { - _, err = fmt.Printf("%s\n", r.Path) - if err != nil { - panic(err) - } + _, _ = fmt.Fprintf(s.file, "%s\n", r.Path) } if r.Error != nil { location := common.NewStringLocation(nil, r.Path) - printErr := pretty.NewErrorPrettyPrinter(os.Stdout, true). + printErr := pretty.NewErrorPrettyPrinter(s.file, true). PrettyPrintError(r.Error, location, map[common.Location][]byte{location: r.Code}) if printErr != nil { panic(printErr) @@ -115,37 +122,95 @@ func (s stdoutOutput) Append(r result) { } if len(r.BenchStr) > 0 { - _, err = fmt.Printf("bench:\t%s\n", r.BenchStr) - if err != nil { + _, _ = fmt.Fprintf(s.file, "bench:\t%s\n", r.BenchStr) + } + + if len(r.Results) > 0 { + _, _ = fmt.Fprint(s.file, "query results:\n") + + for _, res := range r.Results { + _, _ = fmt.Fprintf(s.file, "- %#+v\n", res) + } + } + + println() +} + +func queryProgram(program *ast.Program, query *gojq.Code) []any { + // Encode to JSON + var buf bytes.Buffer + err := json.NewEncoder(&buf).Encode(program) + if err != nil { + panic(err) + } + + // Decode from JSON + var decoded any + err = json.NewDecoder(&buf).Decode(&decoded) + if err != nil { + panic(err) + } + + var results []any + + // Run query and print results + iter := query.Run(decoded) + for { + v, ok := iter.Next() + if !ok { + break + } + if err, ok := v.(error); ok { panic(err) } + + results = append(results, v) } + + return results } -func (s stdoutOutput) End() { +func (s fileOutput) End() { // no-op } -func run(paths []string, bench bool, json bool) { +func run(paths []string, bench bool, json bool, readCSV bool, jqAST string) { if len(paths) == 0 { paths = []string{""} } + var compiledQuery *gojq.Code + + if jqAST != "" { + query, err := gojq.Parse(jqAST) + if err != nil { + panic(err) + } + + compiledQuery, err = gojq.Compile(query) + if err != nil { + panic(err) + } + + } + var out output if json { - out = newJSONOutput(len(paths)) + out = newJSONOutput(os.Stdout, len(paths)) } else { - out = stdoutOutput{} + out = fileOutput{file: os.Stdout} } allSucceeded := true for _, path := range paths { - res, runSucceeded := runPath(path, bench) - if !runSucceeded { - allSucceeded = false + for _, file := range read(path, readCSV) { + res, runSucceeded := runFile(file, bench, compiledQuery) + if !runSucceeded { + allSucceeded = false + } + out.Append(res) } - out.Append(res) } out.End() @@ -155,13 +220,13 @@ func run(paths []string, bench bool, json bool) { } } -func runPath(path string, bench bool) (res result, succeeded bool) { +func runFile(file file, bench bool, query *gojq.Code) (res result, succeeded bool) { res = result{ - Path: path, + Path: file.path, } succeeded = true - code := read(path) + code := file.code res.Code = code var program *ast.Program @@ -175,6 +240,8 @@ func runPath(path string, bench bool) (res result, succeeded bool) { } }() + _, _ = fmt.Fprintf(os.Stderr, "parsing %s\n", file.path) + program, err = parser.ParseProgram(nil, code, parser.Config{}) if !bench { res.Program = program @@ -199,10 +266,19 @@ func runPath(path string, bench bool) (res result, succeeded bool) { res.BenchStr = benchRes.String() } + if program != nil && query != nil { + res.Results = queryProgram(program, query) + } + return } -func read(path string) []byte { +type file struct { + path string + code []byte +} + +func read(path string, readCSV bool) []file { var data []byte var err error if len(path) == 0 { @@ -213,7 +289,34 @@ func read(path string) []byte { if err != nil { panic(err) } - return data + + if readCSV { + records, err := csv.NewReader(bytes.NewReader(data)).ReadAll() + if err != nil { + panic(err) + } + + files := make([]file, 0, len(records)) + + // Convert all records to files, except for the header + for _, record := range records[1:] { + files = append(files, + file{ + path: record[0], + code: []byte(record[1]), + }, + ) + } + + return files + } else { + return []file{ + { + path: path, + code: data, + }, + } + } } func benchParse(parse func() (err error)) testing.BenchmarkResult { diff --git a/runtime/cmd/parse/main_wasm.go b/runtime/cmd/parse/main_wasm.go index 23e7f789c1..dcd089a91a 100644 --- a/runtime/cmd/parse/main_wasm.go +++ b/runtime/cmd/parse/main_wasm.go @@ -2,7 +2,7 @@ // +build wasm /* - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/address.go b/runtime/common/address.go index d3caddc964..5c1a354f59 100644 --- a/runtime/common/address.go +++ b/runtime/common/address.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/address_test.go b/runtime/common/address_test.go index 71e4202887..b2fe182fac 100644 --- a/runtime/common/address_test.go +++ b/runtime/common/address_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/addresslocation.go b/runtime/common/addresslocation.go index f283f87078..ec296e7c31 100644 --- a/runtime/common/addresslocation.go +++ b/runtime/common/addresslocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/addresslocation_test.go b/runtime/common/addresslocation_test.go index fdea7c4087..cc2e8db82c 100644 --- a/runtime/common/addresslocation_test.go +++ b/runtime/common/addresslocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/bigint.go b/runtime/common/bigint.go index 22515cf6a7..63d58ce0e4 100644 --- a/runtime/common/bigint.go +++ b/runtime/common/bigint.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/bigint_test.go b/runtime/common/bigint_test.go index d1b5a89455..881143d63f 100644 --- a/runtime/common/bigint_test.go +++ b/runtime/common/bigint_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/bimap/bimap.go b/runtime/common/bimap/bimap.go index c3621bdb66..9758645412 100644 --- a/runtime/common/bimap/bimap.go +++ b/runtime/common/bimap/bimap.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/bimap/bimap_test.go b/runtime/common/bimap/bimap_test.go index a0fc129c2f..2b2ce08d8e 100644 --- a/runtime/common/bimap/bimap_test.go +++ b/runtime/common/bimap/bimap_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/compositekind.go b/runtime/common/compositekind.go index 457f18c2e2..c5f0198400 100644 --- a/runtime/common/compositekind.go +++ b/runtime/common/compositekind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/compositekind_test.go b/runtime/common/compositekind_test.go index 4f3d25a32c..9666d1ae61 100644 --- a/runtime/common/compositekind_test.go +++ b/runtime/common/compositekind_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/computationkind.go b/runtime/common/computationkind.go index 14fe17d6d7..ed4385d6c2 100644 --- a/runtime/common/computationkind.go +++ b/runtime/common/computationkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -133,7 +133,7 @@ const ( // ComputationKindSTDLIBPanic ComputationKindSTDLIBAssert - ComputationKindSTDLIBUnsafeRandom + ComputationKindSTDLIBRevertibleRandom _ _ _ diff --git a/runtime/common/computationkind_string.go b/runtime/common/computationkind_string.go index 8528f6d299..52f522fe14 100644 --- a/runtime/common/computationkind_string.go +++ b/runtime/common/computationkind_string.go @@ -24,7 +24,7 @@ func _() { _ = x[ComputationKindEncodeValue-1080] _ = x[ComputationKindSTDLIBPanic-1100] _ = x[ComputationKindSTDLIBAssert-1101] - _ = x[ComputationKindSTDLIBUnsafeRandom-1102] + _ = x[ComputationKindSTDLIBRevertibleRandom-1102] _ = x[ComputationKindSTDLIBRLPDecodeString-1108] _ = x[ComputationKindSTDLIBRLPDecodeList-1109] _ = x[ComputationKindWebAssemblyFuel-1112] @@ -37,7 +37,7 @@ const ( _ComputationKind_name_3 = "CreateArrayValueTransferArrayValueDestroyArrayValue" _ComputationKind_name_4 = "CreateDictionaryValueTransferDictionaryValueDestroyDictionaryValue" _ComputationKind_name_5 = "EncodeValue" - _ComputationKind_name_6 = "STDLIBPanicSTDLIBAssertSTDLIBUnsafeRandom" + _ComputationKind_name_6 = "STDLIBPanicSTDLIBAssertSTDLIBRevertibleRandom" _ComputationKind_name_7 = "STDLIBRLPDecodeStringSTDLIBRLPDecodeList" _ComputationKind_name_8 = "WebAssemblyFuel" ) @@ -47,7 +47,7 @@ var ( _ComputationKind_index_2 = [...]uint8{0, 20, 42, 63} _ComputationKind_index_3 = [...]uint8{0, 16, 34, 51} _ComputationKind_index_4 = [...]uint8{0, 21, 44, 66} - _ComputationKind_index_6 = [...]uint8{0, 11, 23, 41} + _ComputationKind_index_6 = [...]uint8{0, 11, 23, 45} _ComputationKind_index_7 = [...]uint8{0, 21, 40} ) diff --git a/runtime/common/concat.go b/runtime/common/concat.go index 40034c3025..7e30ac9da1 100644 --- a/runtime/common/concat.go +++ b/runtime/common/concat.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/controlstatement.go b/runtime/common/controlstatement.go index 88dae29366..b04ecfe8e5 100644 --- a/runtime/common/controlstatement.go +++ b/runtime/common/controlstatement.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/declarationkind.go b/runtime/common/declarationkind.go index ad037f6b43..002b2b13f7 100644 --- a/runtime/common/declarationkind.go +++ b/runtime/common/declarationkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,7 +44,7 @@ const ( DeclarationKindEvent DeclarationKindField DeclarationKindInitializer - DeclarationKindDestructor + DeclarationKindDestructorLegacy DeclarationKindStructureInterface DeclarationKindResourceInterface DeclarationKindContractInterface @@ -117,8 +117,8 @@ func (k DeclarationKind) Name() string { return "field" case DeclarationKindInitializer: return "initializer" - case DeclarationKindDestructor: - return "destructor" + case DeclarationKindDestructorLegacy: + return "legacy destructor" case DeclarationKindAttachment: return "attachment" case DeclarationKindStructureInterface: @@ -176,7 +176,7 @@ func (k DeclarationKind) Keywords() string { return "event" case DeclarationKindInitializer: return "init" - case DeclarationKindDestructor: + case DeclarationKindDestructorLegacy: // Deprecated return "destroy" case DeclarationKindAttachment: return "attachment" diff --git a/runtime/common/declarationkind_string.go b/runtime/common/declarationkind_string.go index d59291eac0..9a43cc44f5 100644 --- a/runtime/common/declarationkind_string.go +++ b/runtime/common/declarationkind_string.go @@ -22,7 +22,7 @@ func _() { _ = x[DeclarationKindEvent-11] _ = x[DeclarationKindField-12] _ = x[DeclarationKindInitializer-13] - _ = x[DeclarationKindDestructor-14] + _ = x[DeclarationKindDestructorLegacy-14] _ = x[DeclarationKindStructureInterface-15] _ = x[DeclarationKindResourceInterface-16] _ = x[DeclarationKindContractInterface-17] @@ -41,9 +41,9 @@ func _() { _ = x[DeclarationKindAttachment-30] } -const _DeclarationKind_name = "DeclarationKindUnknownDeclarationKindValueDeclarationKindFunctionDeclarationKindVariableDeclarationKindConstantDeclarationKindTypeDeclarationKindParameterDeclarationKindArgumentLabelDeclarationKindStructureDeclarationKindResourceDeclarationKindContractDeclarationKindEventDeclarationKindFieldDeclarationKindInitializerDeclarationKindDestructorDeclarationKindStructureInterfaceDeclarationKindResourceInterfaceDeclarationKindContractInterfaceDeclarationKindEntitlementDeclarationKindEntitlementMappingDeclarationKindImportDeclarationKindSelfDeclarationKindBaseDeclarationKindTransactionDeclarationKindPrepareDeclarationKindExecuteDeclarationKindTypeParameterDeclarationKindPragmaDeclarationKindEnumDeclarationKindEnumCaseDeclarationKindAttachment" +const _DeclarationKind_name = "DeclarationKindUnknownDeclarationKindValueDeclarationKindFunctionDeclarationKindVariableDeclarationKindConstantDeclarationKindTypeDeclarationKindParameterDeclarationKindArgumentLabelDeclarationKindStructureDeclarationKindResourceDeclarationKindContractDeclarationKindEventDeclarationKindFieldDeclarationKindInitializerDeclarationKindDestructorLegacyDeclarationKindStructureInterfaceDeclarationKindResourceInterfaceDeclarationKindContractInterfaceDeclarationKindEntitlementDeclarationKindEntitlementMappingDeclarationKindImportDeclarationKindSelfDeclarationKindBaseDeclarationKindTransactionDeclarationKindPrepareDeclarationKindExecuteDeclarationKindTypeParameterDeclarationKindPragmaDeclarationKindEnumDeclarationKindEnumCaseDeclarationKindAttachment" -var _DeclarationKind_index = [...]uint16{0, 22, 42, 65, 88, 111, 130, 154, 182, 206, 229, 252, 272, 292, 318, 343, 376, 408, 440, 466, 499, 520, 539, 558, 584, 606, 628, 656, 677, 696, 719, 744} +var _DeclarationKind_index = [...]uint16{0, 22, 42, 65, 88, 111, 130, 154, 182, 206, 229, 252, 272, 292, 318, 349, 382, 414, 446, 472, 505, 526, 545, 564, 590, 612, 634, 662, 683, 702, 725, 750} func (i DeclarationKind) String() string { if i >= DeclarationKind(len(_DeclarationKind_index)-1) { diff --git a/runtime/common/declarationkind_test.go b/runtime/common/declarationkind_test.go index 5fa7d88739..3304851a61 100644 --- a/runtime/common/declarationkind_test.go +++ b/runtime/common/declarationkind_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/deps/node.go b/runtime/common/deps/node.go index 3ca6158376..bf779c6ff1 100644 --- a/runtime/common/deps/node.go +++ b/runtime/common/deps/node.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/deps/node_test.go b/runtime/common/deps/node_test.go index 1a968987bb..3d96b1c807 100644 --- a/runtime/common/deps/node_test.go +++ b/runtime/common/deps/node_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/deps/set.go b/runtime/common/deps/set.go index aed4197f42..b638e827e0 100644 --- a/runtime/common/deps/set.go +++ b/runtime/common/deps/set.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/enumerate.go b/runtime/common/enumerate.go index 46798c684b..bcb13f0c64 100644 --- a/runtime/common/enumerate.go +++ b/runtime/common/enumerate.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/identifierlocation.go b/runtime/common/identifierlocation.go index ce07bdf579..d7e7ad794c 100644 --- a/runtime/common/identifierlocation.go +++ b/runtime/common/identifierlocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/identifierlocation_test.go b/runtime/common/identifierlocation_test.go index 35a5d833cb..9c730171cd 100644 --- a/runtime/common/identifierlocation_test.go +++ b/runtime/common/identifierlocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/incomparable.go b/runtime/common/incomparable.go new file mode 100644 index 0000000000..7f1b3d4d55 --- /dev/null +++ b/runtime/common/incomparable.go @@ -0,0 +1,25 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package common + +// Incomparable (the zero-sized type [0]func()) makes the surrounding incomparable. +// It is crucial to ensure its placed at the beginning or middle of the surrounding struct, +// and NOT at the end of the struct, as otherwise the compiler will add padding bytes. +// See https://i.hsfzxjy.site/zst-at-the-rear-of-go-struct/ for more details +type Incomparable [0]func() diff --git a/runtime/common/integerliteralkind.go b/runtime/common/integerliteralkind.go index e3ab9cb8c2..4275fa4955 100644 --- a/runtime/common/integerliteralkind.go +++ b/runtime/common/integerliteralkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/intervalst/interval.go b/runtime/common/intervalst/interval.go index 127eb0d5c9..a2a3f4a98b 100644 --- a/runtime/common/intervalst/interval.go +++ b/runtime/common/intervalst/interval.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/intervalst/intervalst.go b/runtime/common/intervalst/intervalst.go index fb495eb8eb..0aa2a025f7 100644 --- a/runtime/common/intervalst/intervalst.go +++ b/runtime/common/intervalst/intervalst.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/intervalst/intervalst_test.go b/runtime/common/intervalst/intervalst_test.go index ecea000590..97f1b189bd 100644 --- a/runtime/common/intervalst/intervalst_test.go +++ b/runtime/common/intervalst/intervalst_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/intervalst/node.go b/runtime/common/intervalst/node.go index 82514376e8..459da1642d 100644 --- a/runtime/common/intervalst/node.go +++ b/runtime/common/intervalst/node.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/location.go b/runtime/common/location.go index bb22061874..239c669f8a 100644 --- a/runtime/common/location.go +++ b/runtime/common/location.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/location_test.go b/runtime/common/location_test.go index f4004d0597..95790c8016 100644 --- a/runtime/common/location_test.go +++ b/runtime/common/location_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/memorykind.go b/runtime/common/memorykind.go index 5288bc4684..06e6748e9a 100644 --- a/runtime/common/memorykind.go +++ b/runtime/common/memorykind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -68,6 +68,7 @@ const ( MemoryKindVariableSizedStaticType MemoryKindConstantSizedStaticType MemoryKindDictionaryStaticType + MemoryKindInclusiveRangeStaticType MemoryKindOptionalStaticType MemoryKindIntersectionStaticType MemoryKindEntitlementSetStaticAccess @@ -88,6 +89,7 @@ const ( MemoryKindCadenceArrayValueBase MemoryKindCadenceArrayValueLength MemoryKindCadenceDictionaryValue + MemoryKindCadenceInclusiveRangeValue MemoryKindCadenceKeyValuePair MemoryKindCadenceStructValueBase MemoryKindCadenceStructValueSize @@ -104,13 +106,16 @@ const ( MemoryKindCadencePathValue MemoryKindCadenceTypeValue MemoryKindCadenceCapabilityValue + MemoryKindCadenceDeprecatedPathCapabilityType // Deprecated: removed in v1.0.0 MemoryKindCadenceFunctionValue // Cadence Types MemoryKindCadenceOptionalType + MemoryKindCadenceDeprecatedRestrictedType // Deprecated: removed in v1.0.0 MemoryKindCadenceVariableSizedArrayType MemoryKindCadenceConstantSizedArrayType MemoryKindCadenceDictionaryType + MemoryKindCadenceInclusiveRangeType MemoryKindCadenceField MemoryKindCadenceParameter MemoryKindCadenceTypeParameter @@ -244,6 +249,7 @@ const ( MemoryKindEntitlementMapSemaType MemoryKindEntitlementRelationSemaType MemoryKindCapabilitySemaType + MemoryKindInclusiveRangeSemaType // ordered-map MemoryKindOrderedMap diff --git a/runtime/common/memorykind_string.go b/runtime/common/memorykind_string.go index 6790aa4a22..9b022e9495 100644 --- a/runtime/common/memorykind_string.go +++ b/runtime/common/memorykind_string.go @@ -45,170 +45,176 @@ func _() { _ = x[MemoryKindVariableSizedStaticType-34] _ = x[MemoryKindConstantSizedStaticType-35] _ = x[MemoryKindDictionaryStaticType-36] - _ = x[MemoryKindOptionalStaticType-37] - _ = x[MemoryKindIntersectionStaticType-38] - _ = x[MemoryKindEntitlementSetStaticAccess-39] - _ = x[MemoryKindEntitlementMapStaticAccess-40] - _ = x[MemoryKindReferenceStaticType-41] - _ = x[MemoryKindCapabilityStaticType-42] - _ = x[MemoryKindFunctionStaticType-43] - _ = x[MemoryKindCadenceVoidValue-44] - _ = x[MemoryKindCadenceOptionalValue-45] - _ = x[MemoryKindCadenceBoolValue-46] - _ = x[MemoryKindCadenceStringValue-47] - _ = x[MemoryKindCadenceCharacterValue-48] - _ = x[MemoryKindCadenceAddressValue-49] - _ = x[MemoryKindCadenceIntValue-50] - _ = x[MemoryKindCadenceNumberValue-51] - _ = x[MemoryKindCadenceArrayValueBase-52] - _ = x[MemoryKindCadenceArrayValueLength-53] - _ = x[MemoryKindCadenceDictionaryValue-54] - _ = x[MemoryKindCadenceKeyValuePair-55] - _ = x[MemoryKindCadenceStructValueBase-56] - _ = x[MemoryKindCadenceStructValueSize-57] - _ = x[MemoryKindCadenceResourceValueBase-58] - _ = x[MemoryKindCadenceAttachmentValueBase-59] - _ = x[MemoryKindCadenceResourceValueSize-60] - _ = x[MemoryKindCadenceAttachmentValueSize-61] - _ = x[MemoryKindCadenceEventValueBase-62] - _ = x[MemoryKindCadenceEventValueSize-63] - _ = x[MemoryKindCadenceContractValueBase-64] - _ = x[MemoryKindCadenceContractValueSize-65] - _ = x[MemoryKindCadenceEnumValueBase-66] - _ = x[MemoryKindCadenceEnumValueSize-67] - _ = x[MemoryKindCadencePathValue-68] - _ = x[MemoryKindCadenceTypeValue-69] - _ = x[MemoryKindCadenceCapabilityValue-70] - _ = x[MemoryKindCadenceFunctionValue-71] - _ = x[MemoryKindCadenceOptionalType-72] - _ = x[MemoryKindCadenceVariableSizedArrayType-73] - _ = x[MemoryKindCadenceConstantSizedArrayType-74] - _ = x[MemoryKindCadenceDictionaryType-75] - _ = x[MemoryKindCadenceField-76] - _ = x[MemoryKindCadenceParameter-77] - _ = x[MemoryKindCadenceTypeParameter-78] - _ = x[MemoryKindCadenceStructType-79] - _ = x[MemoryKindCadenceResourceType-80] - _ = x[MemoryKindCadenceAttachmentType-81] - _ = x[MemoryKindCadenceEventType-82] - _ = x[MemoryKindCadenceContractType-83] - _ = x[MemoryKindCadenceStructInterfaceType-84] - _ = x[MemoryKindCadenceResourceInterfaceType-85] - _ = x[MemoryKindCadenceContractInterfaceType-86] - _ = x[MemoryKindCadenceFunctionType-87] - _ = x[MemoryKindCadenceEntitlementSetAccess-88] - _ = x[MemoryKindCadenceEntitlementMapAccess-89] - _ = x[MemoryKindCadenceReferenceType-90] - _ = x[MemoryKindCadenceIntersectionType-91] - _ = x[MemoryKindCadenceCapabilityType-92] - _ = x[MemoryKindCadenceEnumType-93] - _ = x[MemoryKindRawString-94] - _ = x[MemoryKindAddressLocation-95] - _ = x[MemoryKindBytes-96] - _ = x[MemoryKindVariable-97] - _ = x[MemoryKindCompositeTypeInfo-98] - _ = x[MemoryKindCompositeField-99] - _ = x[MemoryKindInvocation-100] - _ = x[MemoryKindStorageMap-101] - _ = x[MemoryKindStorageKey-102] - _ = x[MemoryKindTypeToken-103] - _ = x[MemoryKindErrorToken-104] - _ = x[MemoryKindSpaceToken-105] - _ = x[MemoryKindProgram-106] - _ = x[MemoryKindIdentifier-107] - _ = x[MemoryKindArgument-108] - _ = x[MemoryKindBlock-109] - _ = x[MemoryKindFunctionBlock-110] - _ = x[MemoryKindParameter-111] - _ = x[MemoryKindParameterList-112] - _ = x[MemoryKindTypeParameter-113] - _ = x[MemoryKindTypeParameterList-114] - _ = x[MemoryKindTransfer-115] - _ = x[MemoryKindMembers-116] - _ = x[MemoryKindTypeAnnotation-117] - _ = x[MemoryKindDictionaryEntry-118] - _ = x[MemoryKindFunctionDeclaration-119] - _ = x[MemoryKindCompositeDeclaration-120] - _ = x[MemoryKindAttachmentDeclaration-121] - _ = x[MemoryKindInterfaceDeclaration-122] - _ = x[MemoryKindEntitlementDeclaration-123] - _ = x[MemoryKindEntitlementMappingElement-124] - _ = x[MemoryKindEntitlementMappingDeclaration-125] - _ = x[MemoryKindEnumCaseDeclaration-126] - _ = x[MemoryKindFieldDeclaration-127] - _ = x[MemoryKindTransactionDeclaration-128] - _ = x[MemoryKindImportDeclaration-129] - _ = x[MemoryKindVariableDeclaration-130] - _ = x[MemoryKindSpecialFunctionDeclaration-131] - _ = x[MemoryKindPragmaDeclaration-132] - _ = x[MemoryKindAssignmentStatement-133] - _ = x[MemoryKindBreakStatement-134] - _ = x[MemoryKindContinueStatement-135] - _ = x[MemoryKindEmitStatement-136] - _ = x[MemoryKindExpressionStatement-137] - _ = x[MemoryKindForStatement-138] - _ = x[MemoryKindIfStatement-139] - _ = x[MemoryKindReturnStatement-140] - _ = x[MemoryKindSwapStatement-141] - _ = x[MemoryKindSwitchStatement-142] - _ = x[MemoryKindWhileStatement-143] - _ = x[MemoryKindRemoveStatement-144] - _ = x[MemoryKindBooleanExpression-145] - _ = x[MemoryKindVoidExpression-146] - _ = x[MemoryKindNilExpression-147] - _ = x[MemoryKindStringExpression-148] - _ = x[MemoryKindIntegerExpression-149] - _ = x[MemoryKindFixedPointExpression-150] - _ = x[MemoryKindArrayExpression-151] - _ = x[MemoryKindDictionaryExpression-152] - _ = x[MemoryKindIdentifierExpression-153] - _ = x[MemoryKindInvocationExpression-154] - _ = x[MemoryKindMemberExpression-155] - _ = x[MemoryKindIndexExpression-156] - _ = x[MemoryKindConditionalExpression-157] - _ = x[MemoryKindUnaryExpression-158] - _ = x[MemoryKindBinaryExpression-159] - _ = x[MemoryKindFunctionExpression-160] - _ = x[MemoryKindCastingExpression-161] - _ = x[MemoryKindCreateExpression-162] - _ = x[MemoryKindDestroyExpression-163] - _ = x[MemoryKindReferenceExpression-164] - _ = x[MemoryKindForceExpression-165] - _ = x[MemoryKindPathExpression-166] - _ = x[MemoryKindAttachExpression-167] - _ = x[MemoryKindConstantSizedType-168] - _ = x[MemoryKindDictionaryType-169] - _ = x[MemoryKindFunctionType-170] - _ = x[MemoryKindInstantiationType-171] - _ = x[MemoryKindNominalType-172] - _ = x[MemoryKindOptionalType-173] - _ = x[MemoryKindReferenceType-174] - _ = x[MemoryKindIntersectionType-175] - _ = x[MemoryKindVariableSizedType-176] - _ = x[MemoryKindPosition-177] - _ = x[MemoryKindRange-178] - _ = x[MemoryKindElaboration-179] - _ = x[MemoryKindActivation-180] - _ = x[MemoryKindActivationEntries-181] - _ = x[MemoryKindVariableSizedSemaType-182] - _ = x[MemoryKindConstantSizedSemaType-183] - _ = x[MemoryKindDictionarySemaType-184] - _ = x[MemoryKindOptionalSemaType-185] - _ = x[MemoryKindIntersectionSemaType-186] - _ = x[MemoryKindReferenceSemaType-187] - _ = x[MemoryKindEntitlementSemaType-188] - _ = x[MemoryKindEntitlementMapSemaType-189] - _ = x[MemoryKindEntitlementRelationSemaType-190] - _ = x[MemoryKindCapabilitySemaType-191] - _ = x[MemoryKindOrderedMap-192] - _ = x[MemoryKindOrderedMapEntryList-193] - _ = x[MemoryKindOrderedMapEntry-194] - _ = x[MemoryKindLast-195] + _ = x[MemoryKindInclusiveRangeStaticType-37] + _ = x[MemoryKindOptionalStaticType-38] + _ = x[MemoryKindIntersectionStaticType-39] + _ = x[MemoryKindEntitlementSetStaticAccess-40] + _ = x[MemoryKindEntitlementMapStaticAccess-41] + _ = x[MemoryKindReferenceStaticType-42] + _ = x[MemoryKindCapabilityStaticType-43] + _ = x[MemoryKindFunctionStaticType-44] + _ = x[MemoryKindCadenceVoidValue-45] + _ = x[MemoryKindCadenceOptionalValue-46] + _ = x[MemoryKindCadenceBoolValue-47] + _ = x[MemoryKindCadenceStringValue-48] + _ = x[MemoryKindCadenceCharacterValue-49] + _ = x[MemoryKindCadenceAddressValue-50] + _ = x[MemoryKindCadenceIntValue-51] + _ = x[MemoryKindCadenceNumberValue-52] + _ = x[MemoryKindCadenceArrayValueBase-53] + _ = x[MemoryKindCadenceArrayValueLength-54] + _ = x[MemoryKindCadenceDictionaryValue-55] + _ = x[MemoryKindCadenceInclusiveRangeValue-56] + _ = x[MemoryKindCadenceKeyValuePair-57] + _ = x[MemoryKindCadenceStructValueBase-58] + _ = x[MemoryKindCadenceStructValueSize-59] + _ = x[MemoryKindCadenceResourceValueBase-60] + _ = x[MemoryKindCadenceAttachmentValueBase-61] + _ = x[MemoryKindCadenceResourceValueSize-62] + _ = x[MemoryKindCadenceAttachmentValueSize-63] + _ = x[MemoryKindCadenceEventValueBase-64] + _ = x[MemoryKindCadenceEventValueSize-65] + _ = x[MemoryKindCadenceContractValueBase-66] + _ = x[MemoryKindCadenceContractValueSize-67] + _ = x[MemoryKindCadenceEnumValueBase-68] + _ = x[MemoryKindCadenceEnumValueSize-69] + _ = x[MemoryKindCadencePathValue-70] + _ = x[MemoryKindCadenceTypeValue-71] + _ = x[MemoryKindCadenceCapabilityValue-72] + _ = x[MemoryKindCadenceDeprecatedPathCapabilityType-73] + _ = x[MemoryKindCadenceFunctionValue-74] + _ = x[MemoryKindCadenceOptionalType-75] + _ = x[MemoryKindCadenceDeprecatedRestrictedType-76] + _ = x[MemoryKindCadenceVariableSizedArrayType-77] + _ = x[MemoryKindCadenceConstantSizedArrayType-78] + _ = x[MemoryKindCadenceDictionaryType-79] + _ = x[MemoryKindCadenceInclusiveRangeType-80] + _ = x[MemoryKindCadenceField-81] + _ = x[MemoryKindCadenceParameter-82] + _ = x[MemoryKindCadenceTypeParameter-83] + _ = x[MemoryKindCadenceStructType-84] + _ = x[MemoryKindCadenceResourceType-85] + _ = x[MemoryKindCadenceAttachmentType-86] + _ = x[MemoryKindCadenceEventType-87] + _ = x[MemoryKindCadenceContractType-88] + _ = x[MemoryKindCadenceStructInterfaceType-89] + _ = x[MemoryKindCadenceResourceInterfaceType-90] + _ = x[MemoryKindCadenceContractInterfaceType-91] + _ = x[MemoryKindCadenceFunctionType-92] + _ = x[MemoryKindCadenceEntitlementSetAccess-93] + _ = x[MemoryKindCadenceEntitlementMapAccess-94] + _ = x[MemoryKindCadenceReferenceType-95] + _ = x[MemoryKindCadenceIntersectionType-96] + _ = x[MemoryKindCadenceCapabilityType-97] + _ = x[MemoryKindCadenceEnumType-98] + _ = x[MemoryKindRawString-99] + _ = x[MemoryKindAddressLocation-100] + _ = x[MemoryKindBytes-101] + _ = x[MemoryKindVariable-102] + _ = x[MemoryKindCompositeTypeInfo-103] + _ = x[MemoryKindCompositeField-104] + _ = x[MemoryKindInvocation-105] + _ = x[MemoryKindStorageMap-106] + _ = x[MemoryKindStorageKey-107] + _ = x[MemoryKindTypeToken-108] + _ = x[MemoryKindErrorToken-109] + _ = x[MemoryKindSpaceToken-110] + _ = x[MemoryKindProgram-111] + _ = x[MemoryKindIdentifier-112] + _ = x[MemoryKindArgument-113] + _ = x[MemoryKindBlock-114] + _ = x[MemoryKindFunctionBlock-115] + _ = x[MemoryKindParameter-116] + _ = x[MemoryKindParameterList-117] + _ = x[MemoryKindTypeParameter-118] + _ = x[MemoryKindTypeParameterList-119] + _ = x[MemoryKindTransfer-120] + _ = x[MemoryKindMembers-121] + _ = x[MemoryKindTypeAnnotation-122] + _ = x[MemoryKindDictionaryEntry-123] + _ = x[MemoryKindFunctionDeclaration-124] + _ = x[MemoryKindCompositeDeclaration-125] + _ = x[MemoryKindAttachmentDeclaration-126] + _ = x[MemoryKindInterfaceDeclaration-127] + _ = x[MemoryKindEntitlementDeclaration-128] + _ = x[MemoryKindEntitlementMappingElement-129] + _ = x[MemoryKindEntitlementMappingDeclaration-130] + _ = x[MemoryKindEnumCaseDeclaration-131] + _ = x[MemoryKindFieldDeclaration-132] + _ = x[MemoryKindTransactionDeclaration-133] + _ = x[MemoryKindImportDeclaration-134] + _ = x[MemoryKindVariableDeclaration-135] + _ = x[MemoryKindSpecialFunctionDeclaration-136] + _ = x[MemoryKindPragmaDeclaration-137] + _ = x[MemoryKindAssignmentStatement-138] + _ = x[MemoryKindBreakStatement-139] + _ = x[MemoryKindContinueStatement-140] + _ = x[MemoryKindEmitStatement-141] + _ = x[MemoryKindExpressionStatement-142] + _ = x[MemoryKindForStatement-143] + _ = x[MemoryKindIfStatement-144] + _ = x[MemoryKindReturnStatement-145] + _ = x[MemoryKindSwapStatement-146] + _ = x[MemoryKindSwitchStatement-147] + _ = x[MemoryKindWhileStatement-148] + _ = x[MemoryKindRemoveStatement-149] + _ = x[MemoryKindBooleanExpression-150] + _ = x[MemoryKindVoidExpression-151] + _ = x[MemoryKindNilExpression-152] + _ = x[MemoryKindStringExpression-153] + _ = x[MemoryKindIntegerExpression-154] + _ = x[MemoryKindFixedPointExpression-155] + _ = x[MemoryKindArrayExpression-156] + _ = x[MemoryKindDictionaryExpression-157] + _ = x[MemoryKindIdentifierExpression-158] + _ = x[MemoryKindInvocationExpression-159] + _ = x[MemoryKindMemberExpression-160] + _ = x[MemoryKindIndexExpression-161] + _ = x[MemoryKindConditionalExpression-162] + _ = x[MemoryKindUnaryExpression-163] + _ = x[MemoryKindBinaryExpression-164] + _ = x[MemoryKindFunctionExpression-165] + _ = x[MemoryKindCastingExpression-166] + _ = x[MemoryKindCreateExpression-167] + _ = x[MemoryKindDestroyExpression-168] + _ = x[MemoryKindReferenceExpression-169] + _ = x[MemoryKindForceExpression-170] + _ = x[MemoryKindPathExpression-171] + _ = x[MemoryKindAttachExpression-172] + _ = x[MemoryKindConstantSizedType-173] + _ = x[MemoryKindDictionaryType-174] + _ = x[MemoryKindFunctionType-175] + _ = x[MemoryKindInstantiationType-176] + _ = x[MemoryKindNominalType-177] + _ = x[MemoryKindOptionalType-178] + _ = x[MemoryKindReferenceType-179] + _ = x[MemoryKindIntersectionType-180] + _ = x[MemoryKindVariableSizedType-181] + _ = x[MemoryKindPosition-182] + _ = x[MemoryKindRange-183] + _ = x[MemoryKindElaboration-184] + _ = x[MemoryKindActivation-185] + _ = x[MemoryKindActivationEntries-186] + _ = x[MemoryKindVariableSizedSemaType-187] + _ = x[MemoryKindConstantSizedSemaType-188] + _ = x[MemoryKindDictionarySemaType-189] + _ = x[MemoryKindOptionalSemaType-190] + _ = x[MemoryKindIntersectionSemaType-191] + _ = x[MemoryKindReferenceSemaType-192] + _ = x[MemoryKindEntitlementSemaType-193] + _ = x[MemoryKindEntitlementMapSemaType-194] + _ = x[MemoryKindEntitlementRelationSemaType-195] + _ = x[MemoryKindCapabilitySemaType-196] + _ = x[MemoryKindInclusiveRangeSemaType-197] + _ = x[MemoryKindOrderedMap-198] + _ = x[MemoryKindOrderedMapEntryList-199] + _ = x[MemoryKindOrderedMapEntry-200] + _ = x[MemoryKindLast-201] } -const _MemoryKind_name = "UnknownAddressValueStringValueCharacterValueNumberValueArrayValueBaseDictionaryValueBaseCompositeValueBaseSimpleCompositeValueBaseOptionalValueTypeValuePathValueCapabilityValueStorageReferenceValueEphemeralReferenceValueInterpretedFunctionValueHostFunctionValueBoundFunctionValueBigIntSimpleCompositeValuePublishedValueStorageCapabilityControllerValueAccountCapabilityControllerValueAtreeArrayDataSlabAtreeArrayMetaDataSlabAtreeArrayElementOverheadAtreeMapDataSlabAtreeMapMetaDataSlabAtreeMapElementOverheadAtreeMapPreAllocatedElementAtreeEncodedSlabPrimitiveStaticTypeCompositeStaticTypeInterfaceStaticTypeVariableSizedStaticTypeConstantSizedStaticTypeDictionaryStaticTypeOptionalStaticTypeIntersectionStaticTypeEntitlementSetStaticAccessEntitlementMapStaticAccessReferenceStaticTypeCapabilityStaticTypeFunctionStaticTypeCadenceVoidValueCadenceOptionalValueCadenceBoolValueCadenceStringValueCadenceCharacterValueCadenceAddressValueCadenceIntValueCadenceNumberValueCadenceArrayValueBaseCadenceArrayValueLengthCadenceDictionaryValueCadenceKeyValuePairCadenceStructValueBaseCadenceStructValueSizeCadenceResourceValueBaseCadenceAttachmentValueBaseCadenceResourceValueSizeCadenceAttachmentValueSizeCadenceEventValueBaseCadenceEventValueSizeCadenceContractValueBaseCadenceContractValueSizeCadenceEnumValueBaseCadenceEnumValueSizeCadencePathValueCadenceTypeValueCadenceCapabilityValueCadenceFunctionValueCadenceOptionalTypeCadenceVariableSizedArrayTypeCadenceConstantSizedArrayTypeCadenceDictionaryTypeCadenceFieldCadenceParameterCadenceTypeParameterCadenceStructTypeCadenceResourceTypeCadenceAttachmentTypeCadenceEventTypeCadenceContractTypeCadenceStructInterfaceTypeCadenceResourceInterfaceTypeCadenceContractInterfaceTypeCadenceFunctionTypeCadenceEntitlementSetAccessCadenceEntitlementMapAccessCadenceReferenceTypeCadenceIntersectionTypeCadenceCapabilityTypeCadenceEnumTypeRawStringAddressLocationBytesVariableCompositeTypeInfoCompositeFieldInvocationStorageMapStorageKeyTypeTokenErrorTokenSpaceTokenProgramIdentifierArgumentBlockFunctionBlockParameterParameterListTypeParameterTypeParameterListTransferMembersTypeAnnotationDictionaryEntryFunctionDeclarationCompositeDeclarationAttachmentDeclarationInterfaceDeclarationEntitlementDeclarationEntitlementMappingElementEntitlementMappingDeclarationEnumCaseDeclarationFieldDeclarationTransactionDeclarationImportDeclarationVariableDeclarationSpecialFunctionDeclarationPragmaDeclarationAssignmentStatementBreakStatementContinueStatementEmitStatementExpressionStatementForStatementIfStatementReturnStatementSwapStatementSwitchStatementWhileStatementRemoveStatementBooleanExpressionVoidExpressionNilExpressionStringExpressionIntegerExpressionFixedPointExpressionArrayExpressionDictionaryExpressionIdentifierExpressionInvocationExpressionMemberExpressionIndexExpressionConditionalExpressionUnaryExpressionBinaryExpressionFunctionExpressionCastingExpressionCreateExpressionDestroyExpressionReferenceExpressionForceExpressionPathExpressionAttachExpressionConstantSizedTypeDictionaryTypeFunctionTypeInstantiationTypeNominalTypeOptionalTypeReferenceTypeIntersectionTypeVariableSizedTypePositionRangeElaborationActivationActivationEntriesVariableSizedSemaTypeConstantSizedSemaTypeDictionarySemaTypeOptionalSemaTypeIntersectionSemaTypeReferenceSemaTypeEntitlementSemaTypeEntitlementMapSemaTypeEntitlementRelationSemaTypeCapabilitySemaTypeOrderedMapOrderedMapEntryListOrderedMapEntryLast" +const _MemoryKind_name = "UnknownAddressValueStringValueCharacterValueNumberValueArrayValueBaseDictionaryValueBaseCompositeValueBaseSimpleCompositeValueBaseOptionalValueTypeValuePathValueCapabilityValueStorageReferenceValueEphemeralReferenceValueInterpretedFunctionValueHostFunctionValueBoundFunctionValueBigIntSimpleCompositeValuePublishedValueStorageCapabilityControllerValueAccountCapabilityControllerValueAtreeArrayDataSlabAtreeArrayMetaDataSlabAtreeArrayElementOverheadAtreeMapDataSlabAtreeMapMetaDataSlabAtreeMapElementOverheadAtreeMapPreAllocatedElementAtreeEncodedSlabPrimitiveStaticTypeCompositeStaticTypeInterfaceStaticTypeVariableSizedStaticTypeConstantSizedStaticTypeDictionaryStaticTypeInclusiveRangeStaticTypeOptionalStaticTypeIntersectionStaticTypeEntitlementSetStaticAccessEntitlementMapStaticAccessReferenceStaticTypeCapabilityStaticTypeFunctionStaticTypeCadenceVoidValueCadenceOptionalValueCadenceBoolValueCadenceStringValueCadenceCharacterValueCadenceAddressValueCadenceIntValueCadenceNumberValueCadenceArrayValueBaseCadenceArrayValueLengthCadenceDictionaryValueCadenceInclusiveRangeValueCadenceKeyValuePairCadenceStructValueBaseCadenceStructValueSizeCadenceResourceValueBaseCadenceAttachmentValueBaseCadenceResourceValueSizeCadenceAttachmentValueSizeCadenceEventValueBaseCadenceEventValueSizeCadenceContractValueBaseCadenceContractValueSizeCadenceEnumValueBaseCadenceEnumValueSizeCadencePathValueCadenceTypeValueCadenceCapabilityValueCadenceDeprecatedPathCapabilityTypeCadenceFunctionValueCadenceOptionalTypeCadenceDeprecatedRestrictedTypeCadenceVariableSizedArrayTypeCadenceConstantSizedArrayTypeCadenceDictionaryTypeCadenceInclusiveRangeTypeCadenceFieldCadenceParameterCadenceTypeParameterCadenceStructTypeCadenceResourceTypeCadenceAttachmentTypeCadenceEventTypeCadenceContractTypeCadenceStructInterfaceTypeCadenceResourceInterfaceTypeCadenceContractInterfaceTypeCadenceFunctionTypeCadenceEntitlementSetAccessCadenceEntitlementMapAccessCadenceReferenceTypeCadenceIntersectionTypeCadenceCapabilityTypeCadenceEnumTypeRawStringAddressLocationBytesVariableCompositeTypeInfoCompositeFieldInvocationStorageMapStorageKeyTypeTokenErrorTokenSpaceTokenProgramIdentifierArgumentBlockFunctionBlockParameterParameterListTypeParameterTypeParameterListTransferMembersTypeAnnotationDictionaryEntryFunctionDeclarationCompositeDeclarationAttachmentDeclarationInterfaceDeclarationEntitlementDeclarationEntitlementMappingElementEntitlementMappingDeclarationEnumCaseDeclarationFieldDeclarationTransactionDeclarationImportDeclarationVariableDeclarationSpecialFunctionDeclarationPragmaDeclarationAssignmentStatementBreakStatementContinueStatementEmitStatementExpressionStatementForStatementIfStatementReturnStatementSwapStatementSwitchStatementWhileStatementRemoveStatementBooleanExpressionVoidExpressionNilExpressionStringExpressionIntegerExpressionFixedPointExpressionArrayExpressionDictionaryExpressionIdentifierExpressionInvocationExpressionMemberExpressionIndexExpressionConditionalExpressionUnaryExpressionBinaryExpressionFunctionExpressionCastingExpressionCreateExpressionDestroyExpressionReferenceExpressionForceExpressionPathExpressionAttachExpressionConstantSizedTypeDictionaryTypeFunctionTypeInstantiationTypeNominalTypeOptionalTypeReferenceTypeIntersectionTypeVariableSizedTypePositionRangeElaborationActivationActivationEntriesVariableSizedSemaTypeConstantSizedSemaTypeDictionarySemaTypeOptionalSemaTypeIntersectionSemaTypeReferenceSemaTypeEntitlementSemaTypeEntitlementMapSemaTypeEntitlementRelationSemaTypeCapabilitySemaTypeInclusiveRangeSemaTypeOrderedMapOrderedMapEntryListOrderedMapEntryLast" -var _MemoryKind_index = [...]uint16{0, 7, 19, 30, 44, 55, 69, 88, 106, 130, 143, 152, 161, 176, 197, 220, 244, 261, 279, 285, 305, 319, 351, 383, 401, 423, 448, 464, 484, 507, 534, 550, 569, 588, 607, 630, 653, 673, 691, 713, 739, 765, 784, 804, 822, 838, 858, 874, 892, 913, 932, 947, 965, 986, 1009, 1031, 1050, 1072, 1094, 1118, 1144, 1168, 1194, 1215, 1236, 1260, 1284, 1304, 1324, 1340, 1356, 1378, 1398, 1417, 1446, 1475, 1496, 1508, 1524, 1544, 1561, 1580, 1601, 1617, 1636, 1662, 1690, 1718, 1737, 1764, 1791, 1811, 1834, 1855, 1870, 1879, 1894, 1899, 1907, 1924, 1938, 1948, 1958, 1968, 1977, 1987, 1997, 2004, 2014, 2022, 2027, 2040, 2049, 2062, 2075, 2092, 2100, 2107, 2121, 2136, 2155, 2175, 2196, 2216, 2238, 2263, 2292, 2311, 2327, 2349, 2366, 2385, 2411, 2428, 2447, 2461, 2478, 2491, 2510, 2522, 2533, 2548, 2561, 2576, 2590, 2605, 2622, 2636, 2649, 2665, 2682, 2702, 2717, 2737, 2757, 2777, 2793, 2808, 2829, 2844, 2860, 2878, 2895, 2911, 2928, 2947, 2962, 2976, 2992, 3009, 3023, 3035, 3052, 3063, 3075, 3088, 3104, 3121, 3129, 3134, 3145, 3155, 3172, 3193, 3214, 3232, 3248, 3268, 3285, 3304, 3326, 3353, 3371, 3381, 3400, 3415, 3419} +var _MemoryKind_index = [...]uint16{0, 7, 19, 30, 44, 55, 69, 88, 106, 130, 143, 152, 161, 176, 197, 220, 244, 261, 279, 285, 305, 319, 351, 383, 401, 423, 448, 464, 484, 507, 534, 550, 569, 588, 607, 630, 653, 673, 697, 715, 737, 763, 789, 808, 828, 846, 862, 882, 898, 916, 937, 956, 971, 989, 1010, 1033, 1055, 1081, 1100, 1122, 1144, 1168, 1194, 1218, 1244, 1265, 1286, 1310, 1334, 1354, 1374, 1390, 1406, 1428, 1463, 1483, 1502, 1533, 1562, 1591, 1612, 1637, 1649, 1665, 1685, 1702, 1721, 1742, 1758, 1777, 1803, 1831, 1859, 1878, 1905, 1932, 1952, 1975, 1996, 2011, 2020, 2035, 2040, 2048, 2065, 2079, 2089, 2099, 2109, 2118, 2128, 2138, 2145, 2155, 2163, 2168, 2181, 2190, 2203, 2216, 2233, 2241, 2248, 2262, 2277, 2296, 2316, 2337, 2357, 2379, 2404, 2433, 2452, 2468, 2490, 2507, 2526, 2552, 2569, 2588, 2602, 2619, 2632, 2651, 2663, 2674, 2689, 2702, 2717, 2731, 2746, 2763, 2777, 2790, 2806, 2823, 2843, 2858, 2878, 2898, 2918, 2934, 2949, 2970, 2985, 3001, 3019, 3036, 3052, 3069, 3088, 3103, 3117, 3133, 3150, 3164, 3176, 3193, 3204, 3216, 3229, 3245, 3262, 3270, 3275, 3286, 3296, 3313, 3334, 3355, 3373, 3389, 3409, 3426, 3445, 3467, 3494, 3512, 3534, 3544, 3563, 3578, 3582} func (i MemoryKind) String() string { if i >= MemoryKind(len(_MemoryKind_index)-1) { diff --git a/runtime/common/metering.go b/runtime/common/metering.go index 23abced4d3..a4b4afc2dd 100644 --- a/runtime/common/metering.go +++ b/runtime/common/metering.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -170,6 +170,8 @@ var ( CapabilityStaticTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCapabilityStaticType) FunctionStaticTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindFunctionStaticType) EntitlementMapStaticTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindEntitlementMapStaticAccess) + InclusiveRangeStaticTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindInclusiveRangeStaticType) + // Sema types VariableSizedSemaTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindVariableSizedSemaType) @@ -182,6 +184,7 @@ var ( EntitlementMapSemaTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindEntitlementMapSemaType) EntitlementRelationSemaTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindEntitlementRelationSemaType) CapabilitySemaTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCapabilitySemaType) + InclusiveRangeSemaTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindInclusiveRangeSemaType) // Storage related memory usages @@ -192,43 +195,47 @@ var ( // Cadence external values - CadenceDictionaryValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceDictionaryValue) - CadenceArrayValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceArrayValueBase) - CadenceStructValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceStructValueBase) - CadenceResourceValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceResourceValueBase) - CadenceAttachmentValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceAttachmentValueBase) - CadenceEventValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEventValueBase) - CadenceContractValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceContractValueBase) - CadenceEnumValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEnumValueBase) - CadenceAddressValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceAddressValue) - CadenceBoolValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceBoolValue) - CadenceCapabilityValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceCapabilityValue) - CadenceFunctionValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceFunctionValue) - CadenceKeyValuePairMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceKeyValuePair) - CadenceOptionalValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceOptionalValue) - CadencePathValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadencePathValue) - CadenceVoidValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceVoidValue) - CadenceTypeValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceTypeValue) + CadenceDictionaryValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceDictionaryValue) + CadenceInclusiveRangeValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceInclusiveRangeValue) + CadenceArrayValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceArrayValueBase) + CadenceStructValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceStructValueBase) + CadenceResourceValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceResourceValueBase) + CadenceAttachmentValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceAttachmentValueBase) + CadenceEventValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEventValueBase) + CadenceContractValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceContractValueBase) + CadenceEnumValueBaseMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEnumValueBase) + CadenceAddressValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceAddressValue) + CadenceBoolValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceBoolValue) + CadenceCapabilityValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceCapabilityValue) + CadenceDeprecatedPathCapabilityValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceDeprecatedPathCapabilityType) // Deprecated: removed in v1.0.0 + CadenceFunctionValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceFunctionValue) + CadenceKeyValuePairMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceKeyValuePair) + CadenceOptionalValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceOptionalValue) + CadencePathValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadencePathValue) + CadenceVoidValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceVoidValue) + CadenceTypeValueMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceTypeValue) // Cadence external types - CadenceCapabilityTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceCapabilityType) - CadenceConstantSizedArrayTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceConstantSizedArrayType) - CadenceVariableSizedArrayTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceVariableSizedArrayType) - CadenceContractInterfaceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceContractInterfaceType) - CadenceContractTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceContractType) - CadenceDictionaryTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceDictionaryType) - CadenceEnumTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEnumType) - CadenceEventTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEventType) - CadenceFunctionTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceFunctionType) - CadenceOptionalTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceOptionalType) - CadenceReferenceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceReferenceType) - CadenceResourceInterfaceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceResourceInterfaceType) - CadenceResourceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceResourceType) - CadenceIntersectionTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceIntersectionType) - CadenceStructInterfaceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceStructInterfaceType) - CadenceStructTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceStructType) - CadenceAttachmentTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceAttachmentType) + CadenceCapabilityTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceCapabilityType) + CadenceConstantSizedArrayTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceConstantSizedArrayType) + CadenceVariableSizedArrayTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceVariableSizedArrayType) + CadenceContractInterfaceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceContractInterfaceType) + CadenceContractTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceContractType) + CadenceDictionaryTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceDictionaryType) + CadenceInclusiveRangeTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceInclusiveRangeType) + CadenceEnumTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEnumType) + CadenceEventTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceEventType) + CadenceFunctionTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceFunctionType) + CadenceOptionalTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceOptionalType) + CadenceDeprecatedRestrictedTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceDeprecatedRestrictedType) // Deprecated: removed in v1.0.0 + CadenceReferenceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceReferenceType) + CadenceResourceInterfaceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceResourceInterfaceType) + CadenceResourceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceResourceType) + CadenceIntersectionTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceIntersectionType) + CadenceStructInterfaceTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceStructInterfaceType) + CadenceStructTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceStructType) + CadenceAttachmentTypeMemoryUsage = NewConstantMemoryUsage(MemoryKindCadenceAttachmentType) // Following are the known memory usage amounts for string representation of interpreter values. // Same as `len(format.X)`. However, values are hard-coded to avoid the circular dependency. @@ -250,7 +257,8 @@ var ( AccountCapabilitiesStringMemoryUsage = NewRawStringMemoryUsage(len("Account.Capabilities()")) AccountInboxStringMemoryUsage = NewRawStringMemoryUsage(len("Account.Inbox()")) AccountStorageStringMemoryUsage = NewRawStringMemoryUsage(len("Account.Storage()")) - CapabilityValueStringMemoryUsage = NewRawStringMemoryUsage(len("Capability<>(address: , id: )")) + IDCapabilityValueStringMemoryUsage = NewRawStringMemoryUsage(len("Capability<>(address: , id: )")) + PathCapabilityValueStringMemoryUsage = NewRawStringMemoryUsage(len("Capability<>(address: , path: )")) StorageCapabilityControllerValueStringMemoryUsage = NewRawStringMemoryUsage(len("StorageCapabilityController(borrowType: , capabilityID: , target: )")) AccountCapabilityControllerValueStringMemoryUsage = NewRawStringMemoryUsage(len("AccountCapabilityController(borrowType: , capabilityID: )")) PublishedValueStringMemoryUsage = NewRawStringMemoryUsage(len("PublishedValue<>()")) @@ -264,6 +272,7 @@ var ( CapabilityStaticTypeStringMemoryUsage = NewRawStringMemoryUsage(12) // Capability<> IntersectionStaticTypeStringMemoryUsage = NewRawStringMemoryUsage(2) // {} IntersectionStaticTypeSeparatorStringMemoryUsage = NewRawStringMemoryUsage(2) // , + InclusiveRangeStaticTypeStringMemoryUsage = NewRawStringMemoryUsage(16) // InclusiveRange<> ) func UseMemory(gauge MemoryGauge, usage MemoryUsage) { diff --git a/runtime/common/operandside.go b/runtime/common/operandside.go index 2cc125ba64..403d3bc29b 100644 --- a/runtime/common/operandside.go +++ b/runtime/common/operandside.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/operationkind.go b/runtime/common/operationkind.go index c5708db6b1..4a3279f54e 100644 --- a/runtime/common/operationkind.go +++ b/runtime/common/operationkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/orderedmap/orderedmap.go b/runtime/common/orderedmap/orderedmap.go index 22a1a61758..341721a0d8 100644 --- a/runtime/common/orderedmap/orderedmap.go +++ b/runtime/common/orderedmap/orderedmap.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -150,6 +150,9 @@ func (om *OrderedMap[K, V]) Delete(key K) (oldValue V, present bool) { // Len returns the length of the ordered map. func (om *OrderedMap[K, V]) Len() int { + if om == nil { + return 0 + } return len(om.pairs) } @@ -254,6 +257,27 @@ func (om *OrderedMap[K, V]) KeySetIsDisjointFrom(other *OrderedMap[K, V]) bool { return isDisjoint } +// KeySetIntersection returns a map containing the intersection of the keys in the two maps +// this is only well defined for sets (i.e. maps without meaningful values) +func KeySetIntersection[K comparable, V any](om *OrderedMap[K, V], other *OrderedMap[K, V]) *OrderedMap[K, V] { + intersection := New[OrderedMap[K, V]](len(om.pairs)) + om.Foreach(func(key K, value V) { + if other.Contains(key) { + intersection.Set(key, value) + } + }) + return intersection +} + +// KeySetUnion returns a map containing the union of the keys in the two maps +// this is only well defined for sets (i.e. maps without meaningful values) +func KeySetUnion[K comparable, V any](om *OrderedMap[K, V], other *OrderedMap[K, V]) *OrderedMap[K, V] { + union := New[OrderedMap[K, V]](len(om.pairs)) + union.SetAll(om) + union.SetAll(other) + return union +} + // Pair is an entry in an OrderedMap type Pair[K any, V any] struct { Key K diff --git a/runtime/common/orderedmap/orderedmap_test.go b/runtime/common/orderedmap/orderedmap_test.go index 3fa35e1e8d..9e09c9a90a 100644 --- a/runtime/common/orderedmap/orderedmap_test.go +++ b/runtime/common/orderedmap/orderedmap_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/pathdomain.go b/runtime/common/pathdomain.go index c0fa30fd61..61dab3009b 100644 --- a/runtime/common/pathdomain.go +++ b/runtime/common/pathdomain.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/persistent/orderedset.go b/runtime/common/persistent/orderedset.go index 3006807df7..86ef92f68e 100644 --- a/runtime/common/persistent/orderedset.go +++ b/runtime/common/persistent/orderedset.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/persistent/orderedset_test.go b/runtime/common/persistent/orderedset_test.go index be627a0b5d..1b3f1682d5 100644 --- a/runtime/common/persistent/orderedset_test.go +++ b/runtime/common/persistent/orderedset_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/repllocation.go b/runtime/common/repllocation.go index fd626bc28a..a8dc95d353 100644 --- a/runtime/common/repllocation.go +++ b/runtime/common/repllocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/repllocation_test.go b/runtime/common/repllocation_test.go index a153610ee1..b07c72ea54 100644 --- a/runtime/common/repllocation_test.go +++ b/runtime/common/repllocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/scriptlocation.go b/runtime/common/scriptlocation.go index 2942d9d101..24729706e1 100644 --- a/runtime/common/scriptlocation.go +++ b/runtime/common/scriptlocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/scriptlocation_test.go b/runtime/common/scriptlocation_test.go index 82a4f21d30..bd50df256d 100644 --- a/runtime/common/scriptlocation_test.go +++ b/runtime/common/scriptlocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/slice_utils.go b/runtime/common/slice_utils.go index 6e9e5026f8..e0987413e6 100644 --- a/runtime/common/slice_utils.go +++ b/runtime/common/slice_utils.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * -* Copyright Dapper Labs, Inc. +* Copyright Flow Foundation * * 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/runtime/common/slice_utils_test.go b/runtime/common/slice_utils_test.go index 929f2ff59c..3981b0ea9e 100644 --- a/runtime/common/slice_utils_test.go +++ b/runtime/common/slice_utils_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * -* Copyright Dapper Labs, Inc. +* Copyright Flow Foundation * * 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/runtime/common/stringlocation.go b/runtime/common/stringlocation.go index 17532f665e..304ebb44d1 100644 --- a/runtime/common/stringlocation.go +++ b/runtime/common/stringlocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/stringlocation_test.go b/runtime/common/stringlocation_test.go index d2c9ffd93d..f1e9f3458a 100644 --- a/runtime/common/stringlocation_test.go +++ b/runtime/common/stringlocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/transactionlocation.go b/runtime/common/transactionlocation.go index 29ed8d230e..53647270d5 100644 --- a/runtime/common/transactionlocation.go +++ b/runtime/common/transactionlocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/common/transactionlocation_test.go b/runtime/common/transactionlocation_test.go index 77e41b6980..d14bd9ffa9 100644 --- a/runtime/common/transactionlocation_test.go +++ b/runtime/common/transactionlocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/codegen.go b/runtime/compiler/codegen.go index 3fa80adfa3..b8ccfcafe4 100644 --- a/runtime/compiler/codegen.go +++ b/runtime/compiler/codegen.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/codegen_test.go b/runtime/compiler/codegen_test.go index 9a93d63058..25be5ac816 100644 --- a/runtime/compiler/codegen_test.go +++ b/runtime/compiler/codegen_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/compiler.go b/runtime/compiler/compiler.go index 7e46382ce8..342333adaa 100644 --- a/runtime/compiler/compiler.go +++ b/runtime/compiler/compiler.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/compiler_test.go b/runtime/compiler/compiler_test.go index 580fe48636..95061f2104 100644 --- a/runtime/compiler/compiler_test.go +++ b/runtime/compiler/compiler_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/binop.go b/runtime/compiler/ir/binop.go index 2b2e4f65b3..361101b31a 100644 --- a/runtime/compiler/ir/binop.go +++ b/runtime/compiler/ir/binop.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/constant.go b/runtime/compiler/ir/constant.go index 3fef65c082..f4ebe49dc0 100644 --- a/runtime/compiler/ir/constant.go +++ b/runtime/compiler/ir/constant.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/expr.go b/runtime/compiler/ir/expr.go index f221066f00..094003957b 100644 --- a/runtime/compiler/ir/expr.go +++ b/runtime/compiler/ir/expr.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/func.go b/runtime/compiler/ir/func.go index 095c48b8d2..532190e4c5 100644 --- a/runtime/compiler/ir/func.go +++ b/runtime/compiler/ir/func.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/local.go b/runtime/compiler/ir/local.go index a0fb3452f5..1c95b03df0 100644 --- a/runtime/compiler/ir/local.go +++ b/runtime/compiler/ir/local.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/stmt.go b/runtime/compiler/ir/stmt.go index 742ce9d13d..f2ac1d453b 100644 --- a/runtime/compiler/ir/stmt.go +++ b/runtime/compiler/ir/stmt.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/unop.go b/runtime/compiler/ir/unop.go index 99837b905e..405a1af023 100644 --- a/runtime/compiler/ir/unop.go +++ b/runtime/compiler/ir/unop.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/valtype.go b/runtime/compiler/ir/valtype.go index 5c883eb9e7..35b0916a2d 100644 --- a/runtime/compiler/ir/valtype.go +++ b/runtime/compiler/ir/valtype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/ir/visitor.go b/runtime/compiler/ir/visitor.go index 7497635fde..61b24de0a3 100644 --- a/runtime/compiler/ir/visitor.go +++ b/runtime/compiler/ir/visitor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/local.go b/runtime/compiler/local.go index 14d2cc4bd4..8ba8f7030d 100644 --- a/runtime/compiler/local.go +++ b/runtime/compiler/local.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/block.go b/runtime/compiler/wasm/block.go index b626a5fa42..127be91a29 100644 --- a/runtime/compiler/wasm/block.go +++ b/runtime/compiler/wasm/block.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/blocktype.go b/runtime/compiler/wasm/blocktype.go index f666607201..d62a36d4ad 100644 --- a/runtime/compiler/wasm/blocktype.go +++ b/runtime/compiler/wasm/blocktype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/buf.go b/runtime/compiler/wasm/buf.go index 6efe6cc157..d0483d165b 100644 --- a/runtime/compiler/wasm/buf.go +++ b/runtime/compiler/wasm/buf.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/data.go b/runtime/compiler/wasm/data.go index c2a8b587a8..f5a051d452 100644 --- a/runtime/compiler/wasm/data.go +++ b/runtime/compiler/wasm/data.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/errors.go b/runtime/compiler/wasm/errors.go index 5638c1b430..9317b89d7b 100644 --- a/runtime/compiler/wasm/errors.go +++ b/runtime/compiler/wasm/errors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/export.go b/runtime/compiler/wasm/export.go index 700f3a3930..1f2e3e04ad 100644 --- a/runtime/compiler/wasm/export.go +++ b/runtime/compiler/wasm/export.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/function.go b/runtime/compiler/wasm/function.go index eca18ef91a..0f22ff75d8 100644 --- a/runtime/compiler/wasm/function.go +++ b/runtime/compiler/wasm/function.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/functiontype.go b/runtime/compiler/wasm/functiontype.go index 8ca533f51d..86287073bd 100644 --- a/runtime/compiler/wasm/functiontype.go +++ b/runtime/compiler/wasm/functiontype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/gen/main.go b/runtime/compiler/wasm/gen/main.go index 2d2a10378d..f052c85f8e 100644 --- a/runtime/compiler/wasm/gen/main.go +++ b/runtime/compiler/wasm/gen/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,7 @@ const fileTemplate = `// Code generated by utils/version. DO NOT EDIT. /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/import.go b/runtime/compiler/wasm/import.go index edb56cad81..095f7dc0d6 100644 --- a/runtime/compiler/wasm/import.go +++ b/runtime/compiler/wasm/import.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/instruction.go b/runtime/compiler/wasm/instruction.go index 1a7b838f20..57d44c7132 100644 --- a/runtime/compiler/wasm/instruction.go +++ b/runtime/compiler/wasm/instruction.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/instructions.go b/runtime/compiler/wasm/instructions.go index 436d16f96b..e4cad104dc 100644 --- a/runtime/compiler/wasm/instructions.go +++ b/runtime/compiler/wasm/instructions.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/leb128.go b/runtime/compiler/wasm/leb128.go index d96b044f42..cbba8d7f74 100644 --- a/runtime/compiler/wasm/leb128.go +++ b/runtime/compiler/wasm/leb128.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/leb128_test.go b/runtime/compiler/wasm/leb128_test.go index 1f66b3e332..6b21ae86a1 100644 --- a/runtime/compiler/wasm/leb128_test.go +++ b/runtime/compiler/wasm/leb128_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/magic.go b/runtime/compiler/wasm/magic.go index 24baff180c..2fa2b82aba 100644 --- a/runtime/compiler/wasm/magic.go +++ b/runtime/compiler/wasm/magic.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/memory.go b/runtime/compiler/wasm/memory.go index 6fd71249ec..c8fa322286 100644 --- a/runtime/compiler/wasm/memory.go +++ b/runtime/compiler/wasm/memory.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/module.go b/runtime/compiler/wasm/module.go index eaf4d533a0..fb818ad9c3 100644 --- a/runtime/compiler/wasm/module.go +++ b/runtime/compiler/wasm/module.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/modulebuilder.go b/runtime/compiler/wasm/modulebuilder.go index e7f7ed0806..d0b4d0f11f 100644 --- a/runtime/compiler/wasm/modulebuilder.go +++ b/runtime/compiler/wasm/modulebuilder.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/opcode.go b/runtime/compiler/wasm/opcode.go index 207c2ade7a..9a0766597d 100644 --- a/runtime/compiler/wasm/opcode.go +++ b/runtime/compiler/wasm/opcode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/reader.go b/runtime/compiler/wasm/reader.go index 96e0042ec3..a9163d4bb8 100644 --- a/runtime/compiler/wasm/reader.go +++ b/runtime/compiler/wasm/reader.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/reader_test.go b/runtime/compiler/wasm/reader_test.go index 32d6ea8ca5..65485b59ee 100644 --- a/runtime/compiler/wasm/reader_test.go +++ b/runtime/compiler/wasm/reader_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/section.go b/runtime/compiler/wasm/section.go index 79c77d4a05..e6609d33a1 100644 --- a/runtime/compiler/wasm/section.go +++ b/runtime/compiler/wasm/section.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/valuetype.go b/runtime/compiler/wasm/valuetype.go index 9f780e214c..f80b21c788 100644 --- a/runtime/compiler/wasm/valuetype.go +++ b/runtime/compiler/wasm/valuetype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/wasm.go b/runtime/compiler/wasm/wasm.go index 40ec90558c..295f38da5b 100644 --- a/runtime/compiler/wasm/wasm.go +++ b/runtime/compiler/wasm/wasm.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/wasm2wat.go b/runtime/compiler/wasm/wasm2wat.go index 7ab639d0c8..517cb217f4 100644 --- a/runtime/compiler/wasm/wasm2wat.go +++ b/runtime/compiler/wasm/wasm2wat.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/writer.go b/runtime/compiler/wasm/writer.go index ee2694e138..2ae17dd6ec 100644 --- a/runtime/compiler/wasm/writer.go +++ b/runtime/compiler/wasm/writer.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/compiler/wasm/writer_test.go b/runtime/compiler/wasm/writer_test.go index 7912bc84c7..2b79997d25 100644 --- a/runtime/compiler/wasm/writer_test.go +++ b/runtime/compiler/wasm/writer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/config.go b/runtime/config.go index 9e762814d5..f4edf4308f 100644 --- a/runtime/config.go +++ b/runtime/config.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,6 +37,10 @@ type Config struct { CoverageReport *CoverageReport // AttachmentsEnabled specifies if attachments are enabled AttachmentsEnabled bool + // LegacyContractUpgradeEnabled enabled specifies whether to use the old parser when parsing an old contract + LegacyContractUpgradeEnabled bool + // ContractUpdateTypeRemovalEnabled specifies if type removal is enabled in contract updates + ContractUpdateTypeRemovalEnabled bool // WebAssemblyEnabled specifies if the WebAssembly API is enabled WebAssemblyEnabled bool } diff --git a/runtime/context.go b/runtime/context.go index c1344856ba..4df6e0cf62 100644 --- a/runtime/context.go +++ b/runtime/context.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/contract_function_executor.go b/runtime/contract_function_executor.go index c780ecb8d7..6d443b0ad6 100644 --- a/runtime/contract_function_executor.go +++ b/runtime/contract_function_executor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -180,7 +180,7 @@ func (executor *interpreterContractFunctionExecutor) execute() (val cadence.Valu return nil, newError(err, location, codesAndPrograms) } - var self interpreter.MemberAccessibleValue = contractValue + var self interpreter.Value = contractValue // prepare invocation invocation := interpreter.NewInvocation( @@ -250,7 +250,7 @@ func (executor *interpreterContractFunctionExecutor) convertArgument( address := interpreter.NewAddressValue(inter, common.Address(addressValue)) - accountValue := environment.NewAccountValue(address) + accountValue := environment.NewAccountValue(inter, address) authorization := interpreter.ConvertSemaAccessToStaticAuthorization( inter, @@ -262,6 +262,7 @@ func (executor *interpreterContractFunctionExecutor) convertArgument( authorization, accountValue, sema.AccountType, + locationRange, ) return accountReferenceValue, nil diff --git a/runtime/contract_test.go b/runtime/contract_test.go index 02a9bb7ece..9351480bd8 100644 --- a/runtime/contract_test.go +++ b/runtime/contract_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -886,18 +886,41 @@ func TestRuntimeContractInterfaceEventEmission(t *testing.T) { // first two events are `AccountContractAdded` require.Len(t, actualEvents, 4) - intfEvent := actualEvents[2] + interfaceEvent := actualEvents[2] concreteEvent := actualEvents[3] - require.Equal(t, intfEvent.EventType.QualifiedIdentifier, "TestInterface.Foo") - require.Equal(t, concreteEvent.EventType.QualifiedIdentifier, "TestContract.Foo") + require.Equal( + t, + "TestInterface.Foo", + interfaceEvent.EventType.QualifiedIdentifier, + ) + require.Equal( + t, + "TestContract.Foo", + concreteEvent.EventType.QualifiedIdentifier, + ) + + interfaceFields := cadence.FieldsMappedByName(interfaceEvent) + concreteFields := cadence.FieldsMappedByName(concreteEvent) - require.Len(t, intfEvent.Fields, 1) - require.Len(t, concreteEvent.Fields, 2) + require.Len(t, interfaceFields, 1) + require.Len(t, concreteFields, 2) - require.Equal(t, intfEvent.Fields[0], cadence.NewInt(3)) - require.Equal(t, concreteEvent.Fields[0], cadence.String("")) - require.Equal(t, concreteEvent.Fields[1], cadence.NewInt(2)) + require.Equal( + t, + cadence.NewInt(3), + interfaceFields["x"], + ) + require.Equal( + t, + cadence.String(""), + concreteFields["x"], + ) + require.Equal( + t, + cadence.NewInt(2), + concreteFields["y"], + ) } func TestRuntimeContractInterfaceConditionEventEmission(t *testing.T) { @@ -1009,18 +1032,41 @@ func TestRuntimeContractInterfaceConditionEventEmission(t *testing.T) { // first two events are `AccountContractAdded` require.Len(t, actualEvents, 4) - intfEvent := actualEvents[3] + interfaceEvent := actualEvents[3] concreteEvent := actualEvents[2] - require.Equal(t, intfEvent.EventType.QualifiedIdentifier, "TestInterface.Foo") - require.Equal(t, concreteEvent.EventType.QualifiedIdentifier, "TestContract.Foo") + require.Equal( + t, + "TestInterface.Foo", + interfaceEvent.EventType.QualifiedIdentifier, + ) + require.Equal( + t, + "TestContract.Foo", + concreteEvent.EventType.QualifiedIdentifier, + ) + + interfaceFields := cadence.FieldsMappedByName(interfaceEvent) + concreteFields := cadence.FieldsMappedByName(concreteEvent) - require.Len(t, intfEvent.Fields, 1) - require.Len(t, concreteEvent.Fields, 2) + require.Len(t, interfaceFields, 1) + require.Len(t, concreteFields, 2) - require.Equal(t, intfEvent.Fields[0], cadence.NewInt(3)) - require.Equal(t, concreteEvent.Fields[0], cadence.String("")) - require.Equal(t, concreteEvent.Fields[1], cadence.NewInt(2)) + require.Equal( + t, + cadence.NewInt(3), + interfaceFields["x"], + ) + require.Equal( + t, + cadence.String(""), + concreteFields["x"], + ) + require.Equal( + t, + cadence.NewInt(2), + concreteFields["y"], + ) } func TestRuntimeContractTryUpdate(t *testing.T) { diff --git a/runtime/contract_update_test.go b/runtime/contract_update_test.go index 20c2a8c243..c019af0c57 100644 --- a/runtime/contract_update_test.go +++ b/runtime/contract_update_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -294,56 +294,331 @@ func TestRuntimeContractUpdateWithPrecedingIdentifiers(t *testing.T) { } -func TestRuntimeInvalidContractRedeploy(t *testing.T) { +func TestRuntimeContractRedeployInSameTransaction(t *testing.T) { t.Parallel() - foo1 := []byte(` - access(all) - contract Foo { + t.Run("two additions", func(t *testing.T) { + foo1 := []byte(` access(all) - resource R { + contract Foo { access(all) - var x: Int + resource R { - init() { - self.x = 0 + access(all) + var x: Int + + init() { + self.x = 0 + } + } + + access(all) + fun createR(): @R { + return <-create R() } } + `) + foo2 := []byte(` access(all) - fun createR(): @R { - return <-create R() + contract Foo { + + access(all) + struct R { + access(all) + var x: Int + + init() { + self.x = 0 + } + } } - } - `) + `) - foo2 := []byte(` - access(all) - contract Foo { + tx := []byte(` + transaction(foo1: String, foo2: String) { + prepare(signer: auth(Contracts) &Account) { + signer.contracts.add(name: "Foo", code: foo1.utf8) + signer.contracts.add(name: "Foo", code: foo2.utf8) + } + } + `) + + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: false, + }) + + address := common.MustBytesToAddress([]byte{0x1}) + + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) ([]byte, error) { + return nil, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + // "delay" + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { + return json.Decode(nil, b) + }, + } - access(all) - struct R { - access(all) - var x: Int + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy + + err := runtime.ExecuteTransaction( + Script{ + Source: tx, + Arguments: encodeArgs( + cadence.String(foo1), + cadence.String(foo2), + ), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + require.ErrorContains(t, err, "cannot overwrite existing contract") + }) +} + +func TestRuntimeNestedContractDeployment(t *testing.T) { - init() { - self.x = 0 + t.Parallel() + + t.Run("add while adding", func(t *testing.T) { + + t.Parallel() + + contract := []byte(` + access(all) contract Foo { + + access(all) resource Bar {} + + init(){ + self.account.contracts.add( + name: "Foo", + code: "access(all) contract Foo { access(all) struct Bar {} }".utf8 + ) } } - } - `) + `) + + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: false, + }) + + address := common.MustBytesToAddress([]byte{0x1}) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) ([]byte, error) { + return nil, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + // "delay" + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { + return json.Decode(nil, b) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy + + deploymentTx := DeploymentTransaction("Foo", contract) + + err := runtime.ExecuteTransaction( + Script{ + Source: deploymentTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + require.ErrorContains(t, err, "cannot overwrite existing contract") + }) + + t.Run("update while adding", func(t *testing.T) { + + t.Parallel() - tx := []byte(` - transaction(foo1: String, foo2: String) { - prepare(signer: auth(Contracts) &Account) { - signer.contracts.add(name: "Foo", code: foo1.utf8) - signer.contracts.add(name: "Foo", code: foo2.utf8) - } - } - `) + contract := []byte(` + access(all) contract Foo { + + access(all) resource Bar {} + + init(){ + self.account.contracts.update( + name: "Foo", + code: "access(all) contract Foo { access(all) struct Bar {} }".utf8 + ) + } + } + `) + + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: false, + }) + + address := common.MustBytesToAddress([]byte{0x1}) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) ([]byte, error) { + return nil, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + // "delay" + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { + return json.Decode(nil, b) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy + + deploymentTx := DeploymentTransaction("Foo", contract) + + err := runtime.ExecuteTransaction( + Script{ + Source: deploymentTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + require.ErrorContains(t, err, "cannot update non-existing contract") + }) + + t.Run("update while updating", func(t *testing.T) { + + t.Parallel() + + deployedContract := []byte(` + access(all) contract Foo { + + access(all) resource Bar {} + + init() {} + } + `) + + contract := []byte(` + access(all) contract Foo { + + access(all) resource Bar {} + + init(){ + self.account.contracts.update( + name: "Foo", + code: "access(all) contract Foo { access(all) struct Bar {} }".utf8 + ) + } + } + `) + + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: false, + }) + + address := common.MustBytesToAddress([]byte{0x1}) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) ([]byte, error) { + return deployedContract, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + // "delay" + deployedContract = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { + return json.Decode(nil, b) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Update + + updateTx := UpdateTransaction("Foo", contract) + + err := runtime.ExecuteTransaction( + Script{ + Source: updateTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + // OK: since the initializer never runs. + require.NoError(t, err) + }) +} + +func TestRuntimeContractRedeploymentInSeparateTransactions(t *testing.T) { + + t.Parallel() + + contract := []byte(` + access(all) contract Foo { + access(all) resource Bar {} + } + `) runtime := NewTestInterpreterRuntimeWithConfig(Config{ AtreeValidationEnabled: false, @@ -351,7 +626,7 @@ func TestRuntimeInvalidContractRedeploy(t *testing.T) { address := common.MustBytesToAddress([]byte{0x1}) - var events []cadence.Event + var contractCode []byte runtimeInterface := &TestRuntimeInterface{ Storage: NewTestLedger(nil, nil), @@ -359,15 +634,14 @@ func TestRuntimeInvalidContractRedeploy(t *testing.T) { return []Address{address}, nil }, OnGetAccountContractCode: func(location common.AddressLocation) ([]byte, error) { - return nil, nil + return contractCode, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - // "delay" + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + contractCode = code return nil }, OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) return nil }, OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { @@ -379,21 +653,148 @@ func TestRuntimeInvalidContractRedeploy(t *testing.T) { // Deploy + deploymentTx := DeploymentTransaction("Foo", contract) err := runtime.ExecuteTransaction( Script{ - Source: tx, - Arguments: encodeArgs( - cadence.String(foo1), - cadence.String(foo2), - ), + Source: deploymentTx, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) + require.NoError(t, err) + + // Update + // Updating in a separate transaction is OK, and should not abort. + + updateTx := UpdateTransaction("Foo", contract) + err = runtime.ExecuteTransaction( + Script{ + Source: updateTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) +} + +func TestRuntimeLegacyContractUpdate(t *testing.T) { + t.Parallel() + + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: true, + LegacyContractUpgradeEnabled: true, + }) + + accountCodes := map[common.Location][]byte{} + signerAccount := common.MustBytesToAddress([]byte{0x1}) + fooLocation := common.AddressLocation{ + Address: signerAccount, + Name: "Foo", + } + var checkGetAndSetProgram, getProgramCalled bool + + programs := map[Location]*interpreter.Program{} + clearPrograms := func() { + for l := range programs { + delete(programs, l) + } + } - RequireError(t, err) + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAccount}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnGetAccountContractNames: func(_ Address) ([]string, error) { + return []string{"Foo"}, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { + return json.Decode(nil, b) + }, + OnGetAndSetProgram: func( + location Location, + load func() (*interpreter.Program, error), + ) ( + program *interpreter.Program, + err error, + ) { + _, isTransactionLocation := location.(common.TransactionLocation) + if checkGetAndSetProgram && !isTransactionLocation { + require.Equal(t, location, fooLocation) + require.False(t, getProgramCalled) + } - require.ErrorContains(t, err, "cannot overwrite existing contract") + var ok bool + program, ok = programs[location] + if ok { + return + } + + program, err = load() + + // NOTE: important: still set empty program, + // even if error occurred + + programs[location] = program + + return + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + const fooContractV1 = ` + pub contract Foo { + init() {} + pub fun hello() {} + } + ` + + const fooContractV2 = ` + access(all) contract Foo { + init() {} + access(all) fun hello() {} + } + ` + + // Mock the deploy of the old 'Foo' contract + accountCodes[fooLocation] = []byte(fooContractV1) + + // Programs are only valid during the transaction + clearPrograms() + + // Update 'Foo' contract to Cadence 1.0 version + + signerAccount = common.MustBytesToAddress([]byte{0x1}) + err := runtime.ExecuteTransaction( + Script{ + Source: UpdateTransaction("Foo", []byte(fooContractV2)), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Programs are only valid during the transaction + clearPrograms() } diff --git a/runtime/contract_update_validation_test.go b/runtime/contract_update_validation_test.go index 0617b62b6e..24cee33329 100644 --- a/runtime/contract_update_validation_test.go +++ b/runtime/contract_update_validation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ import ( "github.com/onflow/cadence" . "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" @@ -81,8 +82,9 @@ func newContractRemovalTransaction(contractName string) string { ) } -func newContractDeploymentTransactor(t *testing.T) func(code string) error { - rt := NewTestInterpreterRuntimeWithAttachments() +func newContractDeploymentTransactor(t *testing.T, config Config) func(code string) error { + + rt := NewTestInterpreterRuntimeWithConfig(config) accountCodes := map[Location][]byte{} var events []cadence.Event @@ -129,8 +131,8 @@ func newContractDeploymentTransactor(t *testing.T) func(code string) error { // testDeployAndUpdate deploys a contract in one transaction, // then updates the contract in another transaction -func testDeployAndUpdate(t *testing.T, name string, oldCode string, newCode string) error { - executeTransaction := newContractDeploymentTransactor(t) +func testDeployAndUpdate(t *testing.T, name string, oldCode string, newCode string, config Config) error { + executeTransaction := newContractDeploymentTransactor(t, config) err := executeTransaction(newContractAddTransaction(name, oldCode)) require.NoError(t, err) @@ -139,21 +141,75 @@ func testDeployAndUpdate(t *testing.T, name string, oldCode string, newCode stri // testDeployAndRemove deploys a contract in one transaction, // then removes the contract in another transaction -func testDeployAndRemove(t *testing.T, name string, code string) error { - executeTransaction := newContractDeploymentTransactor(t) +func testDeployAndRemove(t *testing.T, name string, code string, config Config) error { + executeTransaction := newContractDeploymentTransactor(t, config) err := executeTransaction(newContractAddTransaction(name, code)) require.NoError(t, err) return executeTransaction(newContractRemovalTransaction(name)) } +func testWithValidators(t *testing.T, name string, testFunc func(t *testing.T, config Config)) { + for _, withC1Upgrade := range []bool{true, false} { + withC1Upgrade := withC1Upgrade + name := name + + if withC1Upgrade { + name = fmt.Sprintf("%s (with C1 validator)", name) + } + + t.Run(name, func(t *testing.T) { + t.Parallel() + + config := DefaultTestInterpreterConfig + config.LegacyContractUpgradeEnabled = withC1Upgrade + testFunc(t, config) + }) + } +} + +func testWithValidatorsAndTypeRemovalEnabled( + t *testing.T, + name string, + testFunc func(t *testing.T, config Config), +) { + for _, withC1Upgrade := range []bool{true, false} { + withC1Upgrade := withC1Upgrade + name := name + + for _, withTypeRemovalEnabled := range []bool{true, false} { + withTypeRemovalEnabled := withTypeRemovalEnabled + name := name + + switch { + case withC1Upgrade && withTypeRemovalEnabled: + name = fmt.Sprintf("%s (with C1 validator and type removal enabled)", name) + + case withC1Upgrade: + name = fmt.Sprintf("%s (with C1 validator)", name) + + case withTypeRemovalEnabled: + name = fmt.Sprintf("%s (with type removal enabled)", name) + } + + t.Run(name, func(t *testing.T) { + t.Parallel() + + config := DefaultTestInterpreterConfig + config.LegacyContractUpgradeEnabled = withC1Upgrade + config.ContractUpdateTypeRemovalEnabled = withTypeRemovalEnabled + + testFunc(t, config) + }) + } + } +} + func TestRuntimeContractUpdateValidation(t *testing.T) { t.Parallel() - t.Run("change field type", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change field type", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -173,16 +229,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertFieldTypeMismatchError(t, cause, "Test", "a", "String", "Int") }) - t.Run("add field", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "add field", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -206,16 +260,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertExtraneousFieldError(t, cause, "Test", "b") }) - t.Run("remove field", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "remove field", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -239,13 +291,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("change nested decl field type", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change nested decl field type", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -287,16 +337,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertFieldTypeMismatchError(t, cause, "TestResource", "b", "Int", "String") }) - t.Run("add field to nested decl", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "add field to nested decl", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -340,16 +388,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertExtraneousFieldError(t, cause, "TestResource", "c") }) - t.Run("change indirect field type", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change indirect field type", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -393,16 +439,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertFieldTypeMismatchError(t, cause, "TestStruct", "b", "Int", "String") }) - t.Run("circular types refs", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "circular types refs", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -470,16 +514,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertFieldTypeMismatchError(t, cause, "Bar", "d", "Bar?", "String") }) - t.Run("qualified vs unqualified nominal type", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "qualified vs unqualified nominal type", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -523,13 +565,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("change imported nominal type to local", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change imported nominal type to local", func(t *testing.T, config Config) { const importCode = ` access(all) contract TestImport { @@ -546,7 +586,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - executeTransaction := newContractDeploymentTransactor(t) + executeTransaction := newContractDeploymentTransactor(t, config) err := executeTransaction(newContractAddTransaction("TestImport", importCode)) require.NoError(t, err) @@ -595,167 +635,666 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { assertFieldTypeMismatchError(t, cause, "Test", "x", "TestImport.TestStruct", "TestStruct") }) - t.Run("contract interface update", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change imported field nominal type location", func(t *testing.T, config Config) { + + runtime := NewTestInterpreterRuntime() + + makeDeployTransaction := func(name, code string) []byte { + return []byte(fmt.Sprintf( + ` + transaction { + prepare(signer: auth(BorrowValue) &Account) { + let acct = Account(payer: signer) + acct.contracts.add(name: "%s", code: "%s".decodeHex()) + } + } + `, + name, + hex.EncodeToString([]byte(code)), + )) + } - const oldCode = ` - access(all) contract interface Test { - access(all) var a: String - access(all) fun getA() : String - } - ` + accountCodes := map[Location][]byte{} + var events []cadence.Event - const newCode = ` - access(all) contract interface Test { - access(all) var a: Int - access(all) fun getA() : Int - } - ` + var nextAccount byte = 0x2 - err := testDeployAndUpdate(t, "Test", oldCode, newCode) - RequireError(t, err) + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnCreateAccount: func(payer Address) (address Address, err error) { + result := interpreter.NewUnmeteredAddressValueFromBytes([]byte{nextAccount}) + nextAccount++ + return result.ToAddress(), nil + }, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{0x1}}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } - cause := getSingleContractUpdateErrorCause(t, err, "Test") - assertFieldTypeMismatchError(t, cause, "Test", "a", "String", "Int") - }) + nextTransactionLocation := NewTransactionLocationGenerator() - t.Run("convert interface to contract", func(t *testing.T) { + const importCode = ` + access(all) contract TestImport { - t.Parallel() + access(all) struct TestStruct { + access(all) let a: Int - const oldCode = ` - access(all) contract interface Test { - access(all) var a: String - access(all) fun getA() : String - } - ` + init() { + self.a = 123 + } + } + } + ` - const newCode = ` - access(all) contract Test { + deployTransaction := makeDeployTransaction("TestImport", importCode) + err := runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - access(all) var a: String + const otherImportedCode = ` + access(all) contract TestImport { - init() { - self.a = "hello" - } + access(all) struct TestStruct { + access(all) let a: Int + access(all) var b: Int - access(all) fun getA() : String { - return self.a - } - } - ` + init() { + self.a = 123 + self.b = 456 + } + } + } + ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) - RequireError(t, err) + deployTransaction = makeDeployTransaction("TestImport", otherImportedCode) - cause := getSingleContractUpdateErrorCause(t, err, "Test") - assertDeclTypeChangeError( - t, - cause, - "Test", - common.DeclarationKindContractInterface, - common.DeclarationKindContract, + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, ) - }) + require.NoError(t, err) - t.Run("convert contract to interface", func(t *testing.T) { + const oldCode = ` + import TestImport from 0x2 - t.Parallel() + access(all) contract Test { - const oldCode = ` - access(all) contract Test { + access(all) var x: TestImport.TestStruct - access(all) var a: String + init() { + self.x = TestImport.TestStruct() + } + } + ` - init() { - self.a = "hello" - } + deployTransaction = []byte(newContractAddTransaction("Test", oldCode)) - access(all) fun getA() : String { - return self.a - } - } - ` + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + require.NoError(t, err) const newCode = ` - access(all) contract interface Test { - access(all) var a: String - access(all) fun getA() : String - } - ` + import TestImport from 0x3 - err := testDeployAndUpdate(t, "Test", oldCode, newCode) - RequireError(t, err) + access(all) contract Test { - cause := getSingleContractUpdateErrorCause(t, err, "Test") - assertDeclTypeChangeError( - t, - cause, - "Test", - common.DeclarationKindContract, - common.DeclarationKindContractInterface, - ) - }) + access(all) var x: TestImport.TestStruct - t.Run("change non stored", func(t *testing.T) { + init() { + self.x = TestImport.TestStruct() + } + } + ` - t.Parallel() + deployTransaction = []byte(newContractUpdateTransaction("Test", newCode)) - const oldCode = ` - access(all) contract Test { + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) - access(all) var x: UsedStruct + RequireError(t, err) - init() { - self.x = UsedStruct() - } + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "x", "TestImport.TestStruct", "TestImport.TestStruct") + }) - access(all) struct UsedStruct { - access(all) let a: Int + testWithValidators(t, "change imported non-field nominal type location", func(t *testing.T, config Config) { + + runtime := NewTestInterpreterRuntime() + + makeDeployTransaction := func(name, code string) []byte { + return []byte(fmt.Sprintf( + ` + transaction { + prepare(signer: auth(Storage) &Account) { + let acct = Account(payer: signer) + acct.contracts.add(name: "%s", code: "%s".decodeHex()) + } + } + `, + name, + hex.EncodeToString([]byte(code)), + )) + } - init() { - self.a = 123 - } + accountCodes := map[Location][]byte{} + var events []cadence.Event - access(all) fun getA() : Int { - return self.a - } - } + var nextAccount byte = 0x2 - access(all) struct UnusedStruct { - access(all) let a: Int + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnCreateAccount: func(payer Address) (address Address, err error) { + result := interpreter.NewUnmeteredAddressValueFromBytes([]byte{nextAccount}) + nextAccount++ + return result.ToAddress(), nil + }, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{0x1}}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } - init() { - self.a = 123 - } + nextTransactionLocation := NewTransactionLocationGenerator() - access(all) fun getA() : Int { - return self.a - } - } - } - ` + const importCode = ` + access(all) contract TestImport { - const newCode = ` - access(all) contract Test { + access(all) struct TestStruct { + access(all) let a: Int - access(all) var x: UsedStruct + init() { + self.a = 123 + } + } + } + ` - init() { - self.x = UsedStruct() - } + deployTransaction := makeDeployTransaction("TestImport", importCode) + err := runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - access(all) struct UsedStruct { - access(all) let a: Int + const otherImportedCode = ` + access(all) contract TestImport { - init() { - self.a = 123 - } + access(all) struct TestStruct { + access(all) let a: Int + access(all) var b: Int - access(all) fun getA() : String { - return "hello_123" - } + init() { + self.a = 123 + self.b = 456 + } + } + } + ` + + deployTransaction = makeDeployTransaction("TestImport", otherImportedCode) + + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + const oldCode = ` + import TestImport from 0x2 + + access(all) contract Test { + + access(all) fun foo(): TestImport.TestStruct { + return TestImport.TestStruct() + } + } + ` + + deployTransaction = []byte(newContractAddTransaction("Test", oldCode)) + + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + require.NoError(t, err) + + const newCode = ` + import TestImport from 0x3 + + access(all) contract Test { + access(all) fun foo(): TestImport.TestStruct { + return TestImport.TestStruct() + } + } + ` + + deployTransaction = []byte(newContractUpdateTransaction("Test", newCode)) + + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + require.NoError(t, err) + }) + + testWithValidators(t, "change imported field nominal type location implicitly", func(t *testing.T, config Config) { + + runtime := NewTestInterpreterRuntime() + + makeDeployTransaction := func(name, code string) []byte { + return []byte(fmt.Sprintf( + ` + transaction { + prepare(signer: auth(Storage) &Account) { + let acct = Account(payer: signer) + acct.contracts.add(name: "%s", code: "%s".decodeHex()) + } + } + `, + name, + hex.EncodeToString([]byte(code)), + )) + } + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + var nextAccount byte = 0x2 + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnCreateAccount: func(payer Address) (address Address, err error) { + result := interpreter.NewUnmeteredAddressValueFromBytes([]byte{nextAccount}) + nextAccount++ + return result.ToAddress(), nil + }, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{0x1}}, nil + }, + OnResolveLocation: func(identifiers []Identifier, location Location) ([]ResolvedLocation, error) { + require.Empty(t, identifiers) + require.IsType(t, common.AddressLocation{}, location) + + return []ResolvedLocation{ + { + Location: common.AddressLocation{ + Address: location.(common.AddressLocation).Address, + Name: "TestImport", + }, + Identifiers: []ast.Identifier{ + { + Identifier: "TestImport", + }, + }, + }, + }, nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnGetAccountContractNames: func(address common.Address) (names []string, err error) { + if address == common.MustBytesToAddress([]byte{0x1}) { + return []string{"Test"}, nil + } + return []string{"TestImport"}, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + const importCode = ` + access(all) contract TestImport { + + access(all) struct TestStruct { + access(all) let a: Int + + init() { + self.a = 123 + } + } + } + ` + + deployTransaction := makeDeployTransaction("TestImport", importCode) + err := runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + const otherImportedCode = ` + access(all) contract TestImport { + + access(all) struct TestStruct { + access(all) let a: Int + access(all) var b: Int + + init() { + self.a = 123 + self.b = 456 + } + } + } + ` + + deployTransaction = makeDeployTransaction("TestImport", otherImportedCode) + + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + const oldCode = ` + import 0x2 + + access(all) contract Test { + + access(all) var x: TestImport.TestStruct + + init() { + self.x = TestImport.TestStruct() + } + } + ` + + deployTransaction = []byte(newContractAddTransaction("Test", oldCode)) + + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + require.NoError(t, err) + + const newCode = ` + import 0x3 + + access(all) contract Test { + + access(all) var x: TestImport.TestStruct + + init() { + self.x = TestImport.TestStruct() + } + } + ` + + deployTransaction = []byte(newContractUpdateTransaction("Test", newCode)) + + err = runtime.ExecuteTransaction( + Script{ + Source: deployTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "x", "TestImport.TestStruct", "TestImport.TestStruct") + }) + + testWithValidators(t, "contract interface update", func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract interface Test { + access(all) var a: String + access(all) fun getA() : String + } + ` + + const newCode = ` + access(all) contract interface Test { + access(all) var a: Int + access(all) fun getA() : Int + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "a", "String", "Int") + }) + + testWithValidators(t, "convert interface to contract", func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract interface Test { + access(all) var a: String + access(all) fun getA() : String + } + ` + + const newCode = ` + access(all) contract Test { + + access(all) var a: String + + init() { + self.a = "hello" + } + + access(all) fun getA() : String { + return self.a + } + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertDeclTypeChangeError( + t, + cause, + "Test", + common.DeclarationKindContractInterface, + common.DeclarationKindContract, + ) + }) + + testWithValidators(t, "convert contract to interface", func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + + access(all) var a: String + + init() { + self.a = "hello" + } + + access(all) fun getA() : String { + return self.a + } + } + ` + + const newCode = ` + access(all) contract interface Test { + access(all) var a: String + access(all) fun getA() : String + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertDeclTypeChangeError( + t, + cause, + "Test", + common.DeclarationKindContract, + common.DeclarationKindContractInterface, + ) + }) + + testWithValidators(t, "change non stored", func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + + access(all) var x: UsedStruct + + init() { + self.x = UsedStruct() + } + + access(all) struct UsedStruct { + access(all) let a: Int + + init() { + self.a = 123 + } + + access(all) fun getA() : Int { + return self.a + } + } + + access(all) struct UnusedStruct { + access(all) let a: Int + + init() { + self.a = 123 + } + + access(all) fun getA() : Int { + return self.a + } + } + } + ` + + const newCode = ` + access(all) contract Test { + + access(all) var x: UsedStruct + + init() { + self.x = UsedStruct() + } + + access(all) struct UsedStruct { + access(all) let a: Int + + init() { + self.a = 123 + } + + access(all) fun getA() : String { + return "hello_123" + } access(all) fun getA_new() : Int { return self.a @@ -776,7 +1315,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) // Changing unused public composite types should also fail, since those could be // referred by anyone in the chain, and may cause data inconsistency. @@ -786,9 +1325,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { assertFieldTypeMismatchError(t, cause, "UnusedStruct", "a", "Int", "String") }) - t.Run("change enum type", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change enum type", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -822,16 +1359,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") - assertConformanceMismatchError(t, cause, "Foo") + assertConformanceMismatchError(t, cause, "Foo", "UInt8") }) - t.Run("change nested interface", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change nested interface", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -865,16 +1400,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertFieldTypeMismatchError(t, cause, "TestStruct", "a", "String", "Int") }) - t.Run("change nested interface to struct", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "change nested interface to struct", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -896,7 +1429,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") @@ -909,9 +1442,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { ) }) - t.Run("adding a nested struct", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "adding a nested struct", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -930,13 +1461,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("removing a nested struct", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "removing a nested struct", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -955,16 +1484,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertMissingDeclarationError(t, cause, "TestStruct") }) - t.Run("add and remove field", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "add and remove field", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -984,16 +1511,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertExtraneousFieldError(t, cause, "Test", "b") }) - t.Run("multiple errors", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "multiple errors", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1029,7 +1554,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) updateErr := getContractUpdateError(t, err, "Test") @@ -1049,9 +1574,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { ) }) - t.Run("check error messages", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "check error messages", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1087,7 +1610,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) const expectedError = "error: mismatching field `a` in `Test`\n" + @@ -1111,9 +1634,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { require.Contains(t, err.Error(), expectedError) }) - t.Run("Test reference types", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Test reference types", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1153,13 +1674,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("Test function type", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Test function type", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1195,15 +1714,13 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) assert.Contains(t, err.Error(), "error: field add has non-storable type: fun(Int, Int): Int") }) - t.Run("Test conformance", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Test conformance", func(t *testing.T, config Config) { const importCode = ` access(all) contract TestImport { @@ -1213,7 +1730,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - executeTransaction := newContractDeploymentTransactor(t) + executeTransaction := newContractDeploymentTransactor(t, config) err := executeTransaction(newContractAddTransaction("TestImport", importCode)) require.NoError(t, err) @@ -1329,7 +1846,6 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { const newCode = ` access(all) contract Test { - // function type access(all) var i: Capability<&fun(Int, Int): Int>? @@ -1383,14 +1899,128 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, DefaultTestInterpreterConfig) require.NoError(t, err) }) - t.Run("Test intersection types", func(t *testing.T) { + t.Run("Test all types (with c1 validator)", func(t *testing.T) { + // The corresponding test with the "default validator" uses a contract code + // that is not compatible with the old parser. + // Therefore, run the same test with an adjusted code. t.Parallel() + const oldCode = ` + access(all) contract Test { + // simple nominal type + access(all) var a: TestStruct + + // qualified nominal type + access(all) var b: Test.TestStruct + + // optional type + access(all) var c: Int? + + // variable sized type + access(all) var d: [Int] + + // constant sized type + access(all) var e: [Int; 2] + + // dictionary type + access(all) var f: {Int: String} + + // intersection type + access(all) var g: {TestInterface} + + // instantiation and reference types + access(all) var h: Capability<&TestStruct>? + + init() { + var count: Int = 567 + self.a = TestStruct() + self.b = Test.TestStruct() + self.c = 123 + self.d = [123] + self.e = [123, 456] + self.f = {1: "Hello"} + self.g = TestStruct() + self.h = nil + } + + access(all) struct TestStruct:TestInterface { + access(all) let a: Int + init() { + self.a = 123 + } + } + + access(all) struct interface TestInterface { + access(all) let a: Int + } + } + ` + + const newCode = ` + access(all) contract Test { + + // instantiation and reference types + access(all) var h: Capability<&TestStruct>? + + // intersection type + access(all) var g: {TestInterface} + + // dictionary type + access(all) var f: {Int: String} + + // constant sized type + access(all) var e: [Int; 2] + + // variable sized type + access(all) var d: [Int] + + // optional type + access(all) var c: Int? + + // qualified nominal type + access(all) var b: Test.TestStruct + + // simple nominal type + access(all) var a: TestStruct + + init() { + var count: Int = 567 + self.a = TestStruct() + self.b = Test.TestStruct() + self.c = 123 + self.d = [123] + self.e = [123, 456] + self.f = {1: "Hello"} + self.g = TestStruct() + self.h = nil + } + + access(all) struct TestStruct:TestInterface { + access(all) let a: Int + init() { + self.a = 123 + } + } + + access(all) struct interface TestInterface { + access(all) let a: Int + } + } + ` + + config := DefaultTestInterpreterConfig + config.LegacyContractUpgradeEnabled = true + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + require.NoError(t, err) + }) + + testWithValidators(t, "Test intersection types", func(t *testing.T, config Config) { + const oldCode = ` access(all) contract Test { @@ -1449,13 +2079,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("Test invalid intersection types change", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Test invalid intersection types change", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1507,7 +2135,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) assert.Contains(t, err.Error(), "access(all) var a: {TestInterface}"+ @@ -1519,9 +2147,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { "incompatible type annotations. expected `{TestInterface}`, found `TestStruct`") }) - t.Run("enum valid", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "enum valid", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1541,13 +2167,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("enum remove case", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "enum remove case", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1566,16 +2190,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertMissingEnumCasesError(t, cause, "Foo", 2, 1) }) - t.Run("enum add case", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "enum add case", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1596,13 +2218,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("enum swap cases", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "enum swap cases", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1624,7 +2244,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) updateErr := getContractUpdateError(t, err, "Test") @@ -1638,9 +2258,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { assertEnumCaseMismatchError(t, childErrors[2], "left", "up") }) - t.Run("Remove and add struct", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Remove and add struct", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1662,7 +2280,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - executeTransaction := newContractDeploymentTransactor(t) + executeTransaction := newContractDeploymentTransactor(t, config) err := executeTransaction(newContractAddTransaction("Test", oldCode)) require.NoError(t, err) @@ -1693,9 +2311,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { assertFieldTypeMismatchError(t, cause, "TestStruct", "a", "Int", "String") }) - t.Run("Rename struct", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Rename struct", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1727,16 +2343,14 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") assertMissingDeclarationError(t, cause, "TestStruct") }) - t.Run("Remove contract with enum", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Remove contract with enum", func(t *testing.T, config Config) { const code = ` access(all) contract Test { @@ -1745,15 +2359,13 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndRemove(t, "Test", code) + err := testDeployAndRemove(t, "Test", code, config) RequireError(t, err) assertContractRemovalError(t, err, "Test") }) - t.Run("Remove contract without enum", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Remove contract without enum", func(t *testing.T, config Config) { const code = ` access(all) contract Test { @@ -1767,13 +2379,11 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { } ` - err := testDeployAndRemove(t, "Test", code) + err := testDeployAndRemove(t, "Test", code, config) require.NoError(t, err) }) - t.Run("removing multiple nested structs", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "removing multiple nested structs", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1791,7 +2401,7 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { for i := 0; i < 1000; i++ { - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) updateErr := getContractUpdateError(t, err, "Test") @@ -1805,6 +2415,25 @@ func TestRuntimeContractUpdateValidation(t *testing.T) { assertMissingDeclarationError(t, childErrors[1], "B") } }) + + testWithValidators(t, "Remove event", func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) event Foo() + access(all) event Bar() + } + ` + + const newCode = ` + access(all) contract Test { + access(all) event Bar() + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + require.NoError(t, err) + }) } func assertContractRemovalError(t *testing.T, err error, name string) { @@ -1862,22 +2491,13 @@ func assertConformanceMismatchError( t *testing.T, err error, erroneousDeclName string, + missingConformance string, ) { var conformanceMismatchError *stdlib.ConformanceMismatchError require.ErrorAs(t, err, &conformanceMismatchError) assert.Equal(t, erroneousDeclName, conformanceMismatchError.DeclName) -} - -func assertEntitlementRequirementMismatchError( - t *testing.T, - err error, - erroneousDeclName string, -) { - var entitlementMismatchError *stdlib.RequiredEntitlementMismatchError - require.ErrorAs(t, err, &entitlementMismatchError) - - assert.Equal(t, erroneousDeclName, entitlementMismatchError.DeclName) + assert.Equal(t, missingConformance, conformanceMismatchError.MissingConformance) } func assertEnumCaseMismatchError(t *testing.T, err error, expectedEnumCase string, foundEnumCase string) { @@ -1929,9 +2549,7 @@ func TestRuntimeContractUpdateConformanceChanges(t *testing.T) { t.Parallel() - t.Run("Adding conformance", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Adding conformance", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -1968,13 +2586,11 @@ func TestRuntimeContractUpdateConformanceChanges(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("Adding conformance with new fields", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Adding conformance with new fields", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -2010,7 +2626,7 @@ func TestRuntimeContractUpdateConformanceChanges(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") @@ -2018,9 +2634,7 @@ func TestRuntimeContractUpdateConformanceChanges(t *testing.T) { assertExtraneousFieldError(t, cause, "Foo", "name") }) - t.Run("Removing conformance", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Removing conformance, one", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -2045,26 +2659,82 @@ func TestRuntimeContractUpdateConformanceChanges(t *testing.T) { self.a = Foo() } - access(all) struct Foo { + access(all) struct Foo { + init() {} + } + + access(all) struct interface Bar { + } + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + + assertConformanceMismatchError(t, cause, "Foo", "Bar") + }) + + testWithValidators(t, "Removing conformance, multiple", func(t *testing.T, config Config) { + + const oldCode = ` + access(all) + contract Test { + + access(all) var a: Foo + + init() { + self.a = Foo() + } + + access(all) + struct Foo: Bar, Baz, Blub { + init() {} + } + + access(all) + struct interface Bar {} + access(all) + struct interface Baz {} + access(all) + struct interface Blub {} + } + ` + + const newCode = ` + access(all) + contract Test { + access(all) + var a: Foo + + init() { + self.a = Foo() + } + + access(all) + struct Foo: Bar { init() {} } - access(all) struct interface Bar { - } + access(all) + struct interface Bar {} + access(all) + struct interface Baz {} + access(all) + struct interface Blub {} } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) RequireError(t, err) cause := getSingleContractUpdateErrorCause(t, err, "Test") - assertConformanceMismatchError(t, cause, "Foo") + assertConformanceMismatchError(t, cause, "Foo", "Baz") }) - t.Run("Change conformance order", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "Change conformance order", func(t *testing.T, config Config) { const oldCode = ` access(all) contract Test { @@ -2104,137 +2774,11 @@ func TestRuntimeContractUpdateConformanceChanges(t *testing.T) { } ` - err := testDeployAndUpdate(t, "Test", oldCode, newCode) - require.NoError(t, err) - }) - - t.Run("removing required entitlement", func(t *testing.T) { - - t.Parallel() - - const oldCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement X - require entitlement Y - } - } - ` - - const newCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement X - } - } - ` - - err := testDeployAndUpdate(t, "Test", oldCode, newCode) - require.NoError(t, err) - }) - - t.Run("reordering required entitlement", func(t *testing.T) { - - t.Parallel() - - const oldCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement X - require entitlement Y - } - } - ` - - const newCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement Y - require entitlement X - } - } - ` - - err := testDeployAndUpdate(t, "Test", oldCode, newCode) + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) require.NoError(t, err) }) - t.Run("renaming required entitlement", func(t *testing.T) { - - t.Parallel() - - const oldCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement Y - } - } - ` - - const newCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement X - } - } - ` - - err := testDeployAndUpdate(t, "Test", oldCode, newCode) - RequireError(t, err) - - cause := getSingleContractUpdateErrorCause(t, err, "Test") - - assertEntitlementRequirementMismatchError(t, cause, "Foo") - }) - - t.Run("adding required entitlement", func(t *testing.T) { - - t.Parallel() - - const oldCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement X - } - } - ` - - const newCode = ` - access(all) contract Test { - access(all) entitlement X - access(all) entitlement Y - access(all) attachment Foo for AnyStruct { - require entitlement X - require entitlement Y - } - } - ` - - err := testDeployAndUpdate(t, "Test", oldCode, newCode) - RequireError(t, err) - - cause := getSingleContractUpdateErrorCause(t, err, "Test") - - assertEntitlementRequirementMismatchError(t, cause, "Foo") - }) - - t.Run("missing comma in parameter list of old contract", func(t *testing.T) { - - t.Parallel() + testWithValidators(t, "missing comma in parameter list of old contract", func(t *testing.T, config Config) { address := common.MustBytesToAddress([]byte{0x42}) @@ -2555,3 +3099,483 @@ func TestRuntimeContractUpdateProgramCaching(t *testing.T) { ) }) } + +func TestTypeRemovalPragmaUpdates(t *testing.T) { + t.Parallel() + + testWithValidatorsAndTypeRemovalEnabled(t, + "Remove pragma", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + #foo(bar) + #baz + } + ` + + const newCode = ` + access(all) contract Test { + #baz + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + require.NoError(t, err) + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "Remove removedType pragma", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + #removedType(bar) + #baz + } + ` + + const newCode = ` + access(all) contract Test { + #baz + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.TypeRemovalPragmaRemovalError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "removedType pragma moved into sub-declaration", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + #removedType(bar) + access(all) struct S { + + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) struct S { + #removedType(bar) + } + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.TypeRemovalPragmaRemovalError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "reorder removedType pragmas", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + #removedType(bar) + #removedType(foo) + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(foo) + #removedType(bar) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + require.NoError(t, err) + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "malformed removedType pragma integer", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + #baz + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(3) + #baz + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.InvalidTypeRemovalPragmaError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled( + t, + "malformed removedType qualified name", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + #baz + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(X.Y) + #baz + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.InvalidTypeRemovalPragmaError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "removedType with zero args", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + } + ` + + const newCode = ` + access(all) contract Test { + #removedType() + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + + var expectedErr *stdlib.InvalidTypeRemovalPragmaError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "removedType with two args", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(x, y) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.InvalidTypeRemovalPragmaError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "#removedType allows type removal", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) resource R {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(R) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + require.NoError(t, err) + } else { + var expectedErr *stdlib.MissingDeclarationError + require.ErrorAs(t, err, &expectedErr) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "#removedType allows two type removals", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) resource R {} + access(all) struct S {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(R) + #removedType(S) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + require.NoError(t, err) + } else { + var expectedErr *stdlib.MissingDeclarationError + require.ErrorAs(t, err, &expectedErr) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "#removedType does not allow resource interface type removal", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) resource interface R {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(R) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + var expectedErr *stdlib.MissingDeclarationError + require.ErrorAs(t, err, &expectedErr) + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "#removedType does not allow struct interface type removal", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) struct interface S {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(S) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + var expectedErr *stdlib.MissingDeclarationError + require.ErrorAs(t, err, &expectedErr) + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "#removedType can be added", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + #removedType(I) + access(all) resource R {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(R) + #removedType(I) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + require.NoError(t, err) + } else { + var expectedErr *stdlib.MissingDeclarationError + require.ErrorAs(t, err, &expectedErr) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "#removedType can be added without removing a type", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(X) + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + require.NoError(t, err) + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "declarations cannot co-exist with removed type of the same name, composite", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) resource R {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(R) + access(all) resource R {} + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.UseOfRemovedTypeError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "declarations cannot co-exist with removed type of the same name, interface", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) resource interface R {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(R) + access(all) resource interface R {} + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.UseOfRemovedTypeError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "declarations cannot co-exist with removed type of the same name, attachment", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) attachment R for AnyResource {} + } + ` + + const newCode = ` + access(all) contract Test { + #removedType(R) + access(all) attachment R for AnyResource {} + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + if config.ContractUpdateTypeRemovalEnabled { + var expectedErr *stdlib.UseOfRemovedTypeError + require.ErrorAs(t, err, &expectedErr) + } else { + require.NoError(t, err) + } + }, + ) + + testWithValidatorsAndTypeRemovalEnabled(t, + "#removedType is only scoped to the current declaration, inner", + func(t *testing.T, config Config) { + + const oldCode = ` + access(all) contract Test { + access(all) resource R {} + access(all) struct S {} + } + ` + + const newCode = ` + access(all) contract Test { + access(all) struct S { + #removedType(R) + } + } + ` + + err := testDeployAndUpdate(t, "Test", oldCode, newCode, config) + + var expectedErr *stdlib.MissingDeclarationError + require.ErrorAs(t, err, &expectedErr) + }, + ) +} diff --git a/runtime/convertTypes.go b/runtime/convertTypes.go index f0a75dec1b..8315bf2ee6 100644 --- a/runtime/convertTypes.go +++ b/runtime/convertTypes.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,6 +58,8 @@ func ExportMeteredType( return cadence.IntegerType case sema.SignedIntegerType: return cadence.SignedIntegerType + case sema.FixedSizeUnsignedIntegerType: + return cadence.FixedSizeUnsignedIntegerType case sema.FixedPointType: return cadence.FixedPointType case sema.SignedFixedPointType: @@ -132,6 +134,8 @@ func ExportMeteredType( return cadence.AnyType case sema.AnyStructType: return cadence.AnyStructType + case sema.HashableStructType: + return cadence.HashableStructType case sema.AnyResourceType: return cadence.AnyResourceType case sema.AnyStructAttachmentType: @@ -254,6 +258,8 @@ func ExportMeteredType( return exportIntersectionType(gauge, t, results) case *sema.CapabilityType: return exportCapabilityType(gauge, t, results) + case *sema.InclusiveRangeType: + return exportInclusiveRangeType(gauge, t, results) } panic(fmt.Sprintf("cannot export type %s", t)) @@ -336,8 +342,8 @@ func exportCompositeType( result = cadence.NewMeteredAttachmentType( gauge, t.Location, - ExportMeteredType(gauge, t.GetBaseType(), results), t.QualifiedIdentifier(), + ExportMeteredType(gauge, t.GetBaseType(), results), fields, nil, ) @@ -477,6 +483,19 @@ func exportDictionaryType( ) } +func exportInclusiveRangeType( + gauge common.MemoryGauge, + t *sema.InclusiveRangeType, + results map[sema.TypeID]cadence.Type, +) *cadence.InclusiveRangeType { + convertedMemberType := ExportMeteredType(gauge, t.MemberType, results) + + return cadence.NewMeteredInclusiveRangeType( + gauge, + convertedMemberType, + ) +} + func exportFunctionType( gauge common.MemoryGauge, t *sema.FunctionType, @@ -564,7 +583,7 @@ func exportAuthorization( access.Entitlements.Foreach(func(key *sema.EntitlementType, _ struct{}) { entitlements = append(entitlements, key.ID()) }) - return cadence.EntitlementSetAuthorization{ + return &cadence.EntitlementSetAuthorization{ Entitlements: entitlements, Kind: access.SetKind, } @@ -629,11 +648,31 @@ func importInterfaceType(memoryGauge common.MemoryGauge, t cadence.InterfaceType ) } -func importCompositeType(memoryGauge common.MemoryGauge, t cadence.CompositeType) *interpreter.CompositeStaticType { - return interpreter.NewCompositeStaticTypeComputeTypeID( +func importCompositeType(memoryGauge common.MemoryGauge, t cadence.CompositeType) interpreter.StaticType { + location := t.CompositeTypeLocation() + qualifiedIdentifier := t.CompositeTypeQualifiedIdentifier() + + typeID := common.NewTypeIDFromQualifiedName( + memoryGauge, + location, + qualifiedIdentifier, + ) + + if location == nil { + primitiveStaticType := interpreter.PrimitiveStaticTypeFromTypeID(typeID) + + if primitiveStaticType != interpreter.PrimitiveStaticTypeUnknown && + !primitiveStaticType.IsDeprecated() { //nolint:staticcheck + + return primitiveStaticType + } + } + + return interpreter.NewCompositeStaticType( memoryGauge, - t.CompositeTypeLocation(), - t.CompositeTypeQualifiedIdentifier(), + location, + qualifiedIdentifier, + typeID, ) } @@ -643,7 +682,7 @@ func importAuthorization(memoryGauge common.MemoryGauge, auth cadence.Authorizat return interpreter.UnauthorizedAccess case cadence.EntitlementMapAuthorization: return interpreter.NewEntitlementMapAuthorization(memoryGauge, auth.TypeID) - case cadence.EntitlementSetAuthorization: + case *cadence.EntitlementSetAuthorization: return interpreter.NewEntitlementSetAuthorization( memoryGauge, func() []common.TypeID { return auth.Entitlements }, @@ -687,7 +726,11 @@ func ImportType(memoryGauge common.MemoryGauge, t cadence.Type) interpreter.Stat ImportType(memoryGauge, t.KeyType), ImportType(memoryGauge, t.ElementType), ) - + case *cadence.InclusiveRangeType: + return interpreter.NewInclusiveRangeStaticType( + memoryGauge, + ImportType(memoryGauge, t.ElementType), + ) case *cadence.StructType, *cadence.ResourceType, *cadence.EventType, diff --git a/runtime/convertTypes_test.go b/runtime/convertTypes_test.go index 88f51f3ffd..fe26743584 100644 --- a/runtime/convertTypes_test.go +++ b/runtime/convertTypes_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -53,18 +53,21 @@ func TestRuntimeExportRecursiveType(t *testing.T) { VariableKind: ast.VariableKindVariable, }) - expected := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "foo", - }, + fields := []cadence.Field{ + { + Identifier: "foo", }, } + expected := cadence.NewResourceType( + utils.TestLocation, + "Foo", + fields, + nil, + ) + // NOTE: recursion should be kept - expected.Fields[0].Type = expected + fields[0].Type = expected assert.Equal(t, expected, @@ -108,18 +111,21 @@ func BenchmarkExportType(b *testing.B) { VariableKind: ast.VariableKindVariable, }) - expected := &cadence.ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "foo", - }, + fields := []cadence.Field{ + { + Identifier: "foo", }, } + expected := cadence.NewResourceType( + utils.TestLocation, + "Foo", + fields, + nil, + ) + // NOTE: recursion should be kept - expected.Fields[0].Type = expected + fields[0].Type = expected exportedType := ExportType(ty, map[sema.TypeID]cadence.Type{}) assert.Equal(b, expected, exportedType) diff --git a/runtime/convertValues.go b/runtime/convertValues.go index a71ccc151b..83c9126111 100644 --- a/runtime/convertValues.go +++ b/runtime/convertValues.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ package runtime import ( "math/big" + _ "unsafe" "github.com/onflow/cadence" "github.com/onflow/cadence/runtime/common" @@ -98,9 +99,9 @@ func exportValueWithInterpreter( case interpreter.CharacterValue: return cadence.NewMeteredCharacter( inter, - common.NewCadenceCharacterMemoryUsage(len(v)), + common.NewCadenceCharacterMemoryUsage(len(v.Str)), func() string { - return string(v) + return v.Str }, ) case *interpreter.ArrayValue: @@ -229,7 +230,7 @@ func exportValueWithInterpreter( return exportPathValue(inter, v) case interpreter.TypeValue: return exportTypeValue(v, inter), nil - case *interpreter.CapabilityValue: + case *interpreter.IDCapabilityValue: return exportCapabilityValue(v, inter) case *interpreter.EphemeralReferenceValue: // Break recursion through references @@ -239,10 +240,8 @@ func exportValueWithInterpreter( defer delete(seenReferences, v) seenReferences[v] = struct{}{} - referencedValue := v.MustReferencedValue(inter, locationRange) - return exportValueWithInterpreter( - referencedValue, + v.Value, inter, locationRange, seenReferences, @@ -318,23 +317,28 @@ func exportArrayValue( values := make([]cadence.Value, 0, v.Count()) var err error - v.Iterate(inter, func(value interpreter.Value) (resume bool) { - var exportedValue cadence.Value - exportedValue, err = exportValueWithInterpreter( - value, - inter, - locationRange, - seenReferences, - ) - if err != nil { - return false - } - values = append( - values, - exportedValue, - ) - return true - }) + v.Iterate( + inter, + func(value interpreter.Value) (resume bool) { + var exportedValue cadence.Value + exportedValue, err = exportValueWithInterpreter( + value, + inter, + locationRange, + seenReferences, + ) + if err != nil { + return false + } + values = append( + values, + exportedValue, + ) + return true + }, + false, + locationRange, + ) if err != nil { return nil, err @@ -374,6 +378,16 @@ func exportCompositeValue( } } + switch semaType := semaType.(type) { + case *sema.CompositeType: + // Continue. + case *sema.InclusiveRangeType: + // InclusiveRange is stored as a CompositeValue but isn't a CompositeType. + return exportCompositeValueAsInclusiveRange(v, semaType, inter, locationRange, seenReferences) + default: + panic(errors.NewUnreachableError()) + } + compositeType, ok := semaType.(*sema.CompositeType) if !ok { panic(errors.NewUnreachableError()) @@ -385,12 +399,12 @@ func exportCompositeValue( // NOTE: use the exported type's fields to ensure fields in type // and value are in sync - fieldNames := t.CompositeFields() + fields := getCompositeTypeFields(t) - makeFields := func() ([]cadence.Value, error) { - fields := make([]cadence.Value, len(fieldNames)) + makeFieldsValues := func() ([]cadence.Value, error) { + fieldValues := make([]cadence.Value, len(fields)) - for i, field := range fieldNames { + for i, field := range fields { fieldName := field.Identifier var fieldValue interpreter.Value @@ -406,10 +420,8 @@ func exportCompositeValue( case *interpreter.CompositeValue: fieldValue = v.GetField(inter, locationRange, fieldName) - if fieldValue == nil && v.ComputedFields != nil { - if computedField, ok := v.ComputedFields[fieldName]; ok { - fieldValue = computedField(inter, locationRange) - } + if fieldValue == nil { + fieldValue = v.GetComputedField(inter, locationRange, fieldName) } } @@ -422,7 +434,7 @@ func exportCompositeValue( if err != nil { return nil, err } - fields[i] = exportedFieldValue + fieldValues[i] = exportedFieldValue } if composite, ok := v.(*interpreter.CompositeValue); ok { @@ -436,11 +448,11 @@ func exportCompositeValue( if err != nil { return nil, err } - fields = append(fields, exportedAttachmentValue) + fieldValues = append(fieldValues, exportedAttachmentValue) } } - return fields, nil + return fieldValues, nil } compositeKind := compositeType.Kind @@ -452,8 +464,8 @@ func exportCompositeValue( case common.CompositeKindStructure: structure, err := cadence.NewMeteredStruct( inter, - len(fieldNames), - makeFields, + len(fields), + makeFieldsValues, ) if err != nil { return nil, err @@ -463,8 +475,8 @@ func exportCompositeValue( case common.CompositeKindResource: resource, err := cadence.NewMeteredResource( inter, - len(fieldNames), - makeFields, + len(fields), + makeFieldsValues, ) if err != nil { return nil, err @@ -474,8 +486,8 @@ func exportCompositeValue( case common.CompositeKindAttachment: attachment, err := cadence.NewMeteredAttachment( inter, - len(fieldNames), - makeFields, + len(fields), + makeFieldsValues, ) if err != nil { return nil, err @@ -485,8 +497,8 @@ func exportCompositeValue( case common.CompositeKindEvent: event, err := cadence.NewMeteredEvent( inter, - len(fieldNames), - makeFields, + len(fields), + makeFieldsValues, ) if err != nil { return nil, err @@ -496,8 +508,8 @@ func exportCompositeValue( case common.CompositeKindContract: contract, err := cadence.NewMeteredContract( inter, - len(fieldNames), - makeFields, + len(fields), + makeFieldsValues, ) if err != nil { return nil, err @@ -507,8 +519,8 @@ func exportCompositeValue( case common.CompositeKindEnum: enum, err := cadence.NewMeteredEnum( inter, - len(fieldNames), - makeFields, + len(fields), + makeFieldsValues, ) if err != nil { return nil, err @@ -582,7 +594,7 @@ func exportDictionaryValue( ) return true - }) + }, locationRange) if err != nil { return nil, err @@ -600,6 +612,63 @@ func exportDictionaryValue( return dictionary.WithType(exportType), err } +func exportCompositeValueAsInclusiveRange( + v interpreter.Value, + inclusiveRangeType *sema.InclusiveRangeType, + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + seenReferences seenReferences, +) ( + *cadence.InclusiveRange, + error, +) { + compositeValue, ok := v.(*interpreter.CompositeValue) + if !ok { + // InclusiveRange is stored as a CompositeValue. + panic(errors.NewUnreachableError()) + } + + getNonComputedField := func(fieldName string) (cadence.Value, error) { + fieldValue := compositeValue.GetField(inter, locationRange, fieldName) + if fieldValue == nil { + // Bug if the field is absent. + panic(errors.NewUnreachableError()) + } + + return exportValueWithInterpreter( + fieldValue, + inter, + locationRange, + seenReferences, + ) + } + + startValue, err := getNonComputedField(sema.InclusiveRangeTypeStartFieldName) + if err != nil { + return &cadence.InclusiveRange{}, err + } + + endValue, err := getNonComputedField(sema.InclusiveRangeTypeEndFieldName) + if err != nil { + return &cadence.InclusiveRange{}, err + } + + stepValue, err := getNonComputedField(sema.InclusiveRangeTypeStepFieldName) + if err != nil { + return &cadence.InclusiveRange{}, err + } + + inclusiveRange := cadence.NewMeteredInclusiveRange( + inter, + startValue, + endValue, + stepValue, + ) + + t := exportInclusiveRangeType(inter, inclusiveRangeType, map[sema.TypeID]cadence.Type{}) + return inclusiveRange.WithType(t), err +} + func exportPathValue(gauge common.MemoryGauge, v interpreter.PathValue) (cadence.Path, error) { return cadence.NewMeteredPath( gauge, @@ -620,7 +689,7 @@ func exportTypeValue(v interpreter.TypeValue, inter *interpreter.Interpreter) ca } func exportCapabilityValue( - v *interpreter.CapabilityValue, + v *interpreter.IDCapabilityValue, inter *interpreter.Interpreter, ) (cadence.Capability, error) { borrowType := inter.MustConvertStaticToSemaType(v.BorrowType) @@ -707,6 +776,12 @@ func ImportValue( }.importValue(value, expectedType) } +//go:linkname getCompositeFieldValues github.com/onflow/cadence.getCompositeFieldValues +func getCompositeFieldValues(cadence.Composite) []cadence.Value + +//go:linkname getCompositeTypeFields github.com/onflow/cadence.getCompositeTypeFields +func getCompositeTypeFields(cadence.CompositeType) []cadence.Field + func (i valueImporter) importValue(value cadence.Value, expectedType sema.Type) (interpreter.Value, error) { switch v := value.(type) { case cadence.Void: @@ -778,33 +853,35 @@ func (i valueImporter) importValue(value cadence.Value, expectedType sema.Type) common.CompositeKindStructure, v.StructType.Location, v.StructType.QualifiedIdentifier, - v.StructType.Fields, - v.Fields, + getCompositeTypeFields(v.StructType), + getCompositeFieldValues(v), ) case cadence.Resource: return i.importCompositeValue( common.CompositeKindResource, v.ResourceType.Location, v.ResourceType.QualifiedIdentifier, - v.ResourceType.Fields, - v.Fields, + getCompositeTypeFields(v.ResourceType), + getCompositeFieldValues(v), ) case cadence.Event: return i.importCompositeValue( common.CompositeKindEvent, v.EventType.Location, v.EventType.QualifiedIdentifier, - v.EventType.Fields, - v.Fields, + getCompositeTypeFields(v.EventType), + getCompositeFieldValues(v), ) case cadence.Enum: return i.importCompositeValue( common.CompositeKindEnum, v.EnumType.Location, v.EnumType.QualifiedIdentifier, - v.EnumType.Fields, - v.Fields, + getCompositeTypeFields(v.EnumType), + getCompositeFieldValues(v), ) + case *cadence.InclusiveRange: + return i.importInclusiveRangeValue(v, expectedType) case cadence.TypeValue: return i.importTypeValue(v.StaticType) case cadence.Capability: @@ -1097,7 +1174,7 @@ func (i valueImporter) importCapability( address cadence.Address, borrowType cadence.Type, ) ( - *interpreter.CapabilityValue, + *interpreter.IDCapabilityValue, error, ) { _, ok := borrowType.(*cadence.ReferenceType) @@ -1270,7 +1347,7 @@ func (i valueImporter) importDictionaryValue( keySuperType := sema.LeastCommonSuperType(keyTypes...) valueSuperType := sema.LeastCommonSuperType(valueTypes...) - if !sema.IsValidDictionaryKeyType(keySuperType) { + if !sema.IsSubType(keySuperType, sema.HashableStructType) { return nil, errors.NewDefaultUserError( "cannot import dictionary: keys does not belong to the same type", ) @@ -1295,6 +1372,95 @@ func (i valueImporter) importDictionaryValue( ), nil } +func (i valueImporter) importInclusiveRangeValue( + v *cadence.InclusiveRange, + expectedType sema.Type, +) ( + *interpreter.CompositeValue, + error, +) { + + var memberType sema.Type + + inclusiveRangeType, ok := expectedType.(*sema.InclusiveRangeType) + if ok { + memberType = inclusiveRangeType.MemberType + } + + inter := i.inter + locationRange := i.locationRange + + // start, end, and step. The order matters. + members := make([]interpreter.IntegerValue, 3) + + // import members. + for index, value := range []cadence.Value{v.Start, v.End, v.Step} { + importedValue, err := i.importValue(value, memberType) + if err != nil { + return nil, err + } + importedIntegerValue, ok := importedValue.(interpreter.IntegerValue) + if !ok { + return nil, errors.NewDefaultUserError( + "cannot import InclusiveRange: start, end and step must be integers", + ) + } + + members[index] = importedIntegerValue + } + + startValue := members[0] + endValue := members[1] + stepValue := members[2] + + startType := startValue.StaticType(inter) + + if inclusiveRangeType == nil { + memberSemaType, err := inter.ConvertStaticToSemaType(startType) + if err != nil { + return nil, err + } + + memberType = memberSemaType + inclusiveRangeType = sema.NewInclusiveRangeType( + inter, + memberType, + ) + } + + inclusiveRangeStaticType, ok := interpreter.ConvertSemaToStaticType( + inter, + inclusiveRangeType, + ).(interpreter.InclusiveRangeStaticType) + if !ok { + panic(errors.NewUnreachableError()) + } + + // Ensure that start, end and step have the same static type. + // Usually this validation would be done outside of this function in ConformsToStaticType but + // we do it here because the NewInclusiveRangeValueWithStep constructor performs validations + // which involve comparisons between these values and hence they need to be of the same static + // type. + + if !startType.Equal(endValue.StaticType(inter)) || + !startType.Equal(stepValue.StaticType(inter)) { + + return nil, errors.NewDefaultUserError( + "cannot import InclusiveRange: start, end and step must be of the same type", + ) + } + + return interpreter.NewInclusiveRangeValueWithStep( + inter, + locationRange, + startValue, + endValue, + stepValue, + inclusiveRangeStaticType, + inclusiveRangeType, + ), nil +} + func (i valueImporter) importCompositeValue( kind common.CompositeKind, location Location, @@ -1449,8 +1615,6 @@ func (i valueImporter) importPublicKey( publicKeyValue, signAlgoValue, i.standardLibraryHandler, - i.standardLibraryHandler, - i.standardLibraryHandler, ), nil } diff --git a/runtime/convertValues_test.go b/runtime/convertValues_test.go index c7ebb5bdc4..25848d3db1 100644 --- a/runtime/convertValues_test.go +++ b/runtime/convertValues_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,22 +83,25 @@ func TestRuntimeExportValue(t *testing.T) { } newSignatureAlgorithmType := func() *cadence.EnumType { - return &cadence.EnumType{ - QualifiedIdentifier: "SignatureAlgorithm", - RawType: cadence.UInt8Type, - Fields: []cadence.Field{ + return cadence.NewEnumType( + nil, + "SignatureAlgorithm", + cadence.UInt8Type, + []cadence.Field{ { Identifier: "rawValue", Type: cadence.UInt8Type, }, }, - } + nil, + ) } newPublicKeyType := func(signatureAlgorithmType cadence.Type) *cadence.StructType { - return &cadence.StructType{ - QualifiedIdentifier: "PublicKey", - Fields: []cadence.Field{ + return cadence.NewStructType( + nil, + "PublicKey", + []cadence.Field{ { Identifier: "publicKey", Type: &cadence.VariableSizedArrayType{ @@ -110,20 +113,23 @@ func TestRuntimeExportValue(t *testing.T) { Type: signatureAlgorithmType, }, }, - } + nil, + ) } newHashAlgorithmType := func() *cadence.EnumType { - return &cadence.EnumType{ - QualifiedIdentifier: "HashAlgorithm", - RawType: cadence.UInt8Type, - Fields: []cadence.Field{ + return cadence.NewEnumType( + nil, + "HashAlgorithm", + cadence.UInt8Type, + []cadence.Field{ { Identifier: "rawValue", Type: cadence.UInt8Type, }, }, - } + nil, + ) } testCharacter, _ := cadence.NewCharacter("a") @@ -221,6 +227,27 @@ func TestRuntimeExportValue(t *testing.T) { ElementType: cadence.AnyStructType, }), }, + { + label: "Array (non-empty) with HashableStruct", + valueFactory: func(inter *interpreter.Interpreter) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeHashableStruct, + }, + common.ZeroAddress, + interpreter.NewUnmeteredIntValueFromInt64(42), + interpreter.NewUnmeteredStringValue("foo"), + ) + }, + expected: cadence.NewArray([]cadence.Value{ + cadence.NewInt(42), + cadence.String("foo"), + }).WithType(&cadence.VariableSizedArrayType{ + ElementType: cadence.HashableStructType, + }), + }, { label: "Dictionary", valueFactory: func(inter *interpreter.Interpreter) interpreter.Value { @@ -441,8 +468,6 @@ func TestRuntimeExportValue(t *testing.T) { PublicKey: []byte{1, 2, 3}, SignAlgo: 2, }, - nil, - nil, ), hashAlgorithm, interpreter.NewUnmeteredUFix64ValueWithInteger(10, interpreter.EmptyLocationRange), @@ -455,62 +480,52 @@ func TestRuntimeExportValue(t *testing.T) { publicKeyType := newPublicKeyType(signatureAlgorithmType) hashAlgorithmType := newHashAlgorithmType() - return cadence.Struct{ - StructType: &cadence.StructType{ - QualifiedIdentifier: "AccountKey", - Fields: []cadence.Field{ - { - Identifier: "keyIndex", - Type: cadence.IntType, - }, - { - Identifier: "publicKey", - Type: publicKeyType, - }, - { - Identifier: "hashAlgorithm", - Type: hashAlgorithmType, - }, - { - Identifier: "weight", - Type: cadence.UFix64Type, - }, - { - Identifier: "isRevoked", - Type: cadence.BoolType, - }, + return cadence.NewStruct([]cadence.Value{ + cadence.NewInt(1), + cadence.NewStruct([]cadence.Value{ + cadence.NewArray([]cadence.Value{ + cadence.NewUInt8(1), + cadence.NewUInt8(2), + cadence.NewUInt8(3), + }).WithType(&cadence.VariableSizedArrayType{ + ElementType: cadence.UInt8Type, + }), + cadence.NewEnum([]cadence.Value{ + cadence.UInt8(2), + }).WithType(signatureAlgorithmType), + }).WithType(publicKeyType), + cadence.NewEnum([]cadence.Value{ + cadence.UInt8(1), + }).WithType(hashAlgorithmType), + cadence.UFix64(10_00000000), + cadence.Bool(false), + }).WithType(cadence.NewStructType( + nil, + "AccountKey", + []cadence.Field{ + { + Identifier: "keyIndex", + Type: cadence.IntType, }, - }, - Fields: []cadence.Value{ - cadence.NewInt(1), - cadence.Struct{ - StructType: publicKeyType, - Fields: []cadence.Value{ - cadence.NewArray([]cadence.Value{ - cadence.NewUInt8(1), - cadence.NewUInt8(2), - cadence.NewUInt8(3), - }).WithType(&cadence.VariableSizedArrayType{ - ElementType: cadence.UInt8Type, - }), - cadence.Enum{ - EnumType: signatureAlgorithmType, - Fields: []cadence.Value{ - cadence.UInt8(2), - }, - }, - }, + { + Identifier: "publicKey", + Type: publicKeyType, }, - cadence.Enum{ - EnumType: hashAlgorithmType, - Fields: []cadence.Value{ - cadence.UInt8(1), - }, + { + Identifier: "hashAlgorithm", + Type: hashAlgorithmType, + }, + { + Identifier: "weight", + Type: cadence.UFix64Type, + }, + { + Identifier: "isRevoked", + Type: cadence.BoolType, }, - cadence.UFix64(10_00000000), - cadence.Bool(false), }, - } + nil, + )) }(), }, { @@ -881,312 +896,52 @@ func TestRuntimeImportRuntimeType(t *testing.T) { t.Parallel() type importTest struct { - expected interpreter.StaticType - actual cadence.Type label string + expected interpreter.StaticType + input cadence.Type } test := func(tt importTest) { t.Run(tt.label, func(t *testing.T) { t.Parallel() - actual := ImportType(nil, tt.actual) + actual := ImportType(nil, tt.input) assert.Equal(t, tt.expected, actual) }) } - for _, tt := range []importTest{ - { - label: "Any", - actual: cadence.AnyType, - expected: interpreter.PrimitiveStaticTypeAny, - }, - { - label: "AnyStruct", - actual: cadence.AnyStructType, - expected: interpreter.PrimitiveStaticTypeAnyStruct, - }, - { - label: "AnyResource", - actual: cadence.AnyResourceType, - expected: interpreter.PrimitiveStaticTypeAnyResource, - }, - { - label: "MetaType", - actual: cadence.MetaType, - expected: interpreter.PrimitiveStaticTypeMetaType, - }, - { - label: "Void", - actual: cadence.VoidType, - expected: interpreter.PrimitiveStaticTypeVoid, - }, - { - label: "Never", - actual: cadence.NeverType, - expected: interpreter.PrimitiveStaticTypeNever, - }, - { - label: "Bool", - actual: cadence.BoolType, - expected: interpreter.PrimitiveStaticTypeBool, - }, - { - label: "String", - actual: cadence.StringType, - expected: interpreter.PrimitiveStaticTypeString, - }, - { - label: "Character", - actual: cadence.CharacterType, - expected: interpreter.PrimitiveStaticTypeCharacter, - }, - { - label: "Address", - actual: cadence.AddressType, - expected: interpreter.PrimitiveStaticTypeAddress, - }, - { - label: "Number", - actual: cadence.NumberType, - expected: interpreter.PrimitiveStaticTypeNumber, - }, - { - label: "SignedNumber", - actual: cadence.SignedNumberType, - expected: interpreter.PrimitiveStaticTypeSignedNumber, - }, - { - label: "Integer", - actual: cadence.IntegerType, - expected: interpreter.PrimitiveStaticTypeInteger, - }, - { - label: "SignedInteger", - actual: cadence.SignedIntegerType, - expected: interpreter.PrimitiveStaticTypeSignedInteger, - }, - { - label: "FixedPoint", - actual: cadence.FixedPointType, - expected: interpreter.PrimitiveStaticTypeFixedPoint, - }, - { - label: "SignedFixedPoint", - actual: cadence.SignedFixedPointType, - expected: interpreter.PrimitiveStaticTypeSignedFixedPoint, - }, - { - label: "Int", - actual: cadence.IntType, - expected: interpreter.PrimitiveStaticTypeInt, - }, - { - label: "Int8", - actual: cadence.Int8Type, - expected: interpreter.PrimitiveStaticTypeInt8, - }, - { - label: "Int16", - actual: cadence.Int16Type, - expected: interpreter.PrimitiveStaticTypeInt16, - }, - { - label: "Int32", - actual: cadence.Int32Type, - expected: interpreter.PrimitiveStaticTypeInt32, - }, - { - label: "Int64", - actual: cadence.Int64Type, - expected: interpreter.PrimitiveStaticTypeInt64, - }, - { - label: "Int128", - actual: cadence.Int128Type, - expected: interpreter.PrimitiveStaticTypeInt128, - }, - { - label: "Int256", - actual: cadence.Int256Type, - expected: interpreter.PrimitiveStaticTypeInt256, - }, - { - label: "UInt", - actual: cadence.UIntType, - expected: interpreter.PrimitiveStaticTypeUInt, - }, - { - label: "UInt8", - actual: cadence.UInt8Type, - expected: interpreter.PrimitiveStaticTypeUInt8, - }, - { - label: "UInt16", - actual: cadence.UInt16Type, - expected: interpreter.PrimitiveStaticTypeUInt16, - }, - { - label: "UInt32", - actual: cadence.UInt32Type, - expected: interpreter.PrimitiveStaticTypeUInt32, - }, - { - label: "UInt64", - actual: cadence.UInt64Type, - expected: interpreter.PrimitiveStaticTypeUInt64, - }, - { - label: "UInt128", - actual: cadence.UInt128Type, - expected: interpreter.PrimitiveStaticTypeUInt128, - }, - { - label: "UInt256", - actual: cadence.UInt256Type, - expected: interpreter.PrimitiveStaticTypeUInt256, - }, - { - label: "Word8", - actual: cadence.Word8Type, - expected: interpreter.PrimitiveStaticTypeWord8, - }, - { - label: "Word16", - actual: cadence.Word16Type, - expected: interpreter.PrimitiveStaticTypeWord16, - }, - { - label: "Word32", - actual: cadence.Word32Type, - expected: interpreter.PrimitiveStaticTypeWord32, - }, - { - label: "Word64", - actual: cadence.Word64Type, - expected: interpreter.PrimitiveStaticTypeWord64, - }, - { - label: "Word128", - actual: cadence.Word128Type, - expected: interpreter.PrimitiveStaticTypeWord128, - }, - { - label: "Word256", - actual: cadence.Word256Type, - expected: interpreter.PrimitiveStaticTypeWord256, - }, - { - label: "Fix64", - actual: cadence.Fix64Type, - expected: interpreter.PrimitiveStaticTypeFix64, - }, - { - label: "UFix64", - actual: cadence.UFix64Type, - expected: interpreter.PrimitiveStaticTypeUFix64, - }, - { - label: "Block", - actual: cadence.BlockType, - expected: interpreter.PrimitiveStaticTypeBlock, - }, - { - label: "CapabilityPath", - actual: cadence.CapabilityPathType, - expected: interpreter.PrimitiveStaticTypeCapabilityPath, - }, - { - label: "StoragePath", - actual: cadence.StoragePathType, - expected: interpreter.PrimitiveStaticTypeStoragePath, - }, - { - label: "PublicPath", - actual: cadence.PublicPathType, - expected: interpreter.PrimitiveStaticTypePublicPath, - }, - { - label: "PrivatePath", - actual: cadence.PrivatePathType, - expected: interpreter.PrimitiveStaticTypePrivatePath, - }, - { - label: "Account", - actual: cadence.AccountType, - expected: interpreter.PrimitiveStaticTypeAccount, - }, - { - label: "DeployedContract", - actual: cadence.DeployedContractType, - expected: interpreter.PrimitiveStaticTypeDeployedContract, - }, - { - label: "Account.Storage", - actual: cadence.Account_StorageType, - expected: interpreter.PrimitiveStaticTypeAccount_Storage, - }, - { - label: "Account.Keys", - actual: cadence.Account_KeysType, - expected: interpreter.PrimitiveStaticTypeAccount_Keys, - }, - { - label: "Account.Contracts", - actual: cadence.Account_ContractsType, - expected: interpreter.PrimitiveStaticTypeAccount_Contracts, - }, - { - label: "Account.Inbox", - actual: cadence.Account_InboxType, - expected: interpreter.PrimitiveStaticTypeAccount_Inbox, - }, - { - label: "Account.Capabilities", - actual: cadence.Account_CapabilitiesType, - expected: interpreter.PrimitiveStaticTypeAccount_Capabilities, - }, - { - label: "Account.StorageCapabilities", - actual: cadence.Account_StorageCapabilitiesType, - expected: interpreter.PrimitiveStaticTypeAccount_StorageCapabilities, - }, - { - label: "Account.AccountCapabilities", - actual: cadence.Account_AccountCapabilitiesType, - expected: interpreter.PrimitiveStaticTypeAccount_AccountCapabilities, - }, + tests := []importTest{ { label: "AccountKey", - actual: &cadence.StructType{ + input: &cadence.StructType{ QualifiedIdentifier: "AccountKey", }, expected: interpreter.NewCompositeStaticTypeComputeTypeID(nil, nil, "AccountKey"), }, { label: "PublicKey", - actual: &cadence.StructType{ + input: &cadence.StructType{ QualifiedIdentifier: "PublicKey", }, expected: interpreter.NewCompositeStaticTypeComputeTypeID(nil, nil, "PublicKey"), }, { label: "HashAlgorithm", - actual: &cadence.StructType{ + input: &cadence.StructType{ QualifiedIdentifier: "HashAlgorithm", }, expected: interpreter.NewCompositeStaticTypeComputeTypeID(nil, nil, "HashAlgorithm"), }, { label: "SignatureAlgorithm", - actual: &cadence.StructType{ + input: &cadence.StructType{ QualifiedIdentifier: "SignatureAlgorithm", }, expected: interpreter.NewCompositeStaticTypeComputeTypeID(nil, nil, "SignatureAlgorithm"), }, { label: "Optional", - actual: &cadence.OptionalType{ + input: &cadence.OptionalType{ Type: cadence.IntType, }, expected: &interpreter.OptionalStaticType{ @@ -1195,7 +950,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "VariableSizedArray", - actual: &cadence.VariableSizedArrayType{ + input: &cadence.VariableSizedArrayType{ ElementType: cadence.IntType, }, expected: &interpreter.VariableSizedStaticType{ @@ -1204,7 +959,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "ConstantSizedArray", - actual: &cadence.ConstantSizedArrayType{ + input: &cadence.ConstantSizedArrayType{ ElementType: cadence.IntType, Size: 3, }, @@ -1215,7 +970,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Dictionary", - actual: &cadence.DictionaryType{ + input: &cadence.DictionaryType{ ElementType: cadence.IntType, KeyType: cadence.StringType, }, @@ -1226,7 +981,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Unauthorized Reference", - actual: &cadence.ReferenceType{ + input: &cadence.ReferenceType{ Authorization: cadence.UnauthorizedAccess, Type: cadence.IntType, }, @@ -1237,8 +992,8 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Entitlement Set Reference", - actual: &cadence.ReferenceType{ - Authorization: cadence.EntitlementSetAuthorization{ + input: &cadence.ReferenceType{ + Authorization: &cadence.EntitlementSetAuthorization{ Kind: cadence.Conjunction, Entitlements: []common.TypeID{"E", "F"}, }, @@ -1254,11 +1009,10 @@ func TestRuntimeImportRuntimeType(t *testing.T) { ReferencedType: interpreter.PrimitiveStaticTypeInt, }, }, - { - label: "Entitlement Disjoint Set Reference", - actual: &cadence.ReferenceType{ - Authorization: cadence.EntitlementSetAuthorization{ + label: "Reference", + input: &cadence.ReferenceType{ + Authorization: &cadence.EntitlementSetAuthorization{ Kind: cadence.Disjunction, Entitlements: []common.TypeID{"E", "F"}, }, @@ -1275,7 +1029,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Entitlement Map Reference", - actual: &cadence.ReferenceType{ + input: &cadence.ReferenceType{ Authorization: cadence.EntitlementMapAuthorization{ TypeID: "M", }, @@ -1290,7 +1044,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Capability", - actual: &cadence.CapabilityType{ + input: &cadence.CapabilityType{ BorrowType: cadence.IntType, }, expected: &interpreter.CapabilityStaticType{ @@ -1299,7 +1053,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Struct", - actual: &cadence.StructType{ + input: &cadence.StructType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1307,7 +1061,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Resource", - actual: &cadence.ResourceType{ + input: &cadence.ResourceType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1315,7 +1069,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Contract", - actual: &cadence.ContractType{ + input: &cadence.ContractType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1323,7 +1077,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Event", - actual: &cadence.EventType{ + input: &cadence.EventType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1331,7 +1085,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "Enum", - actual: &cadence.EnumType{ + input: &cadence.EnumType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1339,7 +1093,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "StructInterface", - actual: &cadence.StructInterfaceType{ + input: &cadence.StructInterfaceType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1347,7 +1101,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "ResourceInterface", - actual: &cadence.ResourceInterfaceType{ + input: &cadence.ResourceInterfaceType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1355,7 +1109,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "ContractInterface", - actual: &cadence.ContractInterfaceType{ + input: &cadence.ContractInterfaceType{ Location: TestLocation, QualifiedIdentifier: "S", }, @@ -1363,7 +1117,7 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, { label: "IntersectionType", - actual: &cadence.IntersectionType{ + input: &cadence.IntersectionType{ Types: []cadence.Type{ &cadence.StructInterfaceType{ Location: TestLocation, @@ -1377,7 +1131,54 @@ func TestRuntimeImportRuntimeType(t *testing.T) { }, }, }, - } { + { + label: "InclusiveRange", + input: &cadence.InclusiveRangeType{ + ElementType: cadence.IntType, + }, + expected: interpreter.InclusiveRangeStaticType{ + ElementType: interpreter.PrimitiveStaticTypeInt, + }, + }, + } + + for ty := interpreter.PrimitiveStaticTypeUnknown + 1; ty < interpreter.PrimitiveStaticType_Count; ty++ { + if !ty.IsDefined() { + continue + } + + tests = append(tests, importTest{ + label: fmt.Sprintf("%s (primitive)", ty), + input: cadence.PrimitiveType(ty), + expected: ty, + }) + + typeID := ty.ID() + qualifiedIdentifier := string(typeID) + + var expectedForComposite interpreter.StaticType + if ty.IsDeprecated() { //nolint:staticcheck + expectedForComposite = interpreter.NewCompositeStaticType( + nil, + nil, + qualifiedIdentifier, + typeID, + ) + } else { + expectedForComposite = ty + } + + tests = append(tests, importTest{ + label: fmt.Sprintf("%s (composite)", ty), + input: &cadence.StructType{ + Location: nil, + QualifiedIdentifier: qualifiedIdentifier, + }, + expected: expectedForComposite, + }) + } + + for _, tt := range tests { test(tt) } } @@ -1438,35 +1239,214 @@ func TestRuntimeExportFixedPointValuesFromScript(t *testing.T) { }) } - for _, fixedPointType := range sema.AllFixedPointTypes { + for _, fixedPointType := range sema.AllFixedPointTypes { + + var literal string + if sema.IsSubType(fixedPointType, sema.SignedFixedPointType) { + literal = "-1.23" + } else { + literal = "1.23" + } + + test(fixedPointType, literal) + } +} + +func TestRuntimeExportAddressValue(t *testing.T) { + + t.Parallel() + + script := ` + access(all) fun main(): Address { + return 0x42 + } + ` + + actual := exportValueFromScript(t, script) + expected := cadence.BytesToAddress( + []byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42}, + ) + + assert.Equal(t, expected, actual) +} + +func TestExportInclusiveRangeValue(t *testing.T) { + + t.Parallel() + + t.Run("with step", func(t *testing.T) { + + t.Parallel() + + script := ` + access(all) fun main(): InclusiveRange { + return InclusiveRange(10, 20, step: 2) + } + ` + + inclusiveRangeType := cadence.NewInclusiveRangeType(cadence.IntType) + + actual := exportValueFromScript(t, script) + expected := cadence.NewInclusiveRange( + cadence.NewInt(10), + cadence.NewInt(20), + cadence.NewInt(2), + ).WithType(inclusiveRangeType) + + assert.Equal(t, expected, actual) + }) + + t.Run("without step", func(t *testing.T) { + + t.Parallel() + + script := ` + access(all) fun main(): InclusiveRange { + return InclusiveRange(10, 20) + } + ` + + inclusiveRangeType := cadence.NewInclusiveRangeType(cadence.IntType) + + actual := exportValueFromScript(t, script) + expected := cadence.NewInclusiveRange( + cadence.NewInt(10), + cadence.NewInt(20), + cadence.NewInt(1), + ).WithType(inclusiveRangeType) + + assert.Equal(t, expected, actual) + }) +} + +func TestImportInclusiveRangeValue(t *testing.T) { + + t.Parallel() + + t.Run("simple - InclusiveRange", func(t *testing.T) { + t.Parallel() + + value := cadence.NewInclusiveRange(cadence.NewInt(10), cadence.NewInt(-10), cadence.NewInt(-2)) + + inter := NewTestInterpreter(t) + + actual, err := ImportValue( + inter, + interpreter.EmptyLocationRange, + nil, + value, + sema.NewInclusiveRangeType(inter, sema.IntType), + ) + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewInclusiveRangeValueWithStep( + inter, + interpreter.EmptyLocationRange, + interpreter.NewIntValueFromInt64(inter, 10), + interpreter.NewIntValueFromInt64(inter, -10), + interpreter.NewIntValueFromInt64(inter, -2), + interpreter.InclusiveRangeStaticType{ + ElementType: interpreter.PrimitiveStaticTypeInt, + }, + sema.NewInclusiveRangeType(nil, sema.IntType), + ), + actual, + ) + }) + + t.Run("import with broader type - AnyStruct", func(t *testing.T) { + t.Parallel() + + value := cadence.NewInclusiveRange(cadence.NewInt(10), cadence.NewInt(-10), cadence.NewInt(-2)) + + inter := NewTestInterpreter(t) + + actual, err := ImportValue( + inter, + interpreter.EmptyLocationRange, + nil, + value, + sema.AnyStructType, + ) + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewInclusiveRangeValueWithStep( + inter, + interpreter.EmptyLocationRange, + interpreter.NewIntValueFromInt64(inter, 10), + interpreter.NewIntValueFromInt64(inter, -10), + interpreter.NewIntValueFromInt64(inter, -2), + interpreter.InclusiveRangeStaticType{ + ElementType: interpreter.PrimitiveStaticTypeInt, + }, + sema.NewInclusiveRangeType(nil, sema.IntType), + ), + actual, + ) + }) + + t.Run("invalid - mixed types", func(t *testing.T) { + t.Parallel() + + value := cadence.NewInclusiveRange(cadence.NewInt(10), cadence.NewUInt(100), cadence.NewUInt64(1)) + + inter := NewTestInterpreter(t) + + _, err := ImportValue( + inter, + interpreter.EmptyLocationRange, + nil, + value, + sema.AnyStructType, + ) + + RequireError(t, err) + assertUserError(t, err) + + var userError errors.DefaultUserError + require.ErrorAs(t, err, &userError) + require.Contains( + t, + userError.Error(), + "cannot import InclusiveRange: start, end and step must be of the same type", + ) + }) - var literal string - if sema.IsSubType(fixedPointType, sema.SignedFixedPointType) { - literal = "-1.23" - } else { - literal = "1.23" - } + t.Run("invalid - InclusiveRange", func(t *testing.T) { + t.Parallel() - test(fixedPointType, literal) - } -} + strValue, err := cadence.NewString("anything") + require.NoError(t, err) -func TestRuntimeExportAddressValue(t *testing.T) { + value := cadence.NewInclusiveRange(strValue, strValue, strValue) - t.Parallel() + inter := NewTestInterpreter(t) - script := ` - access(all) fun main(): Address { - return 0x42 - } - ` + _, err = ImportValue( + inter, + interpreter.EmptyLocationRange, + nil, + value, + sema.StringType, + ) - actual := exportValueFromScript(t, script) - expected := cadence.BytesToAddress( - []byte{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42}, - ) + RequireError(t, err) + assertUserError(t, err) - assert.Equal(t, expected, actual) + var userError errors.DefaultUserError + require.ErrorAs(t, err, &userError) + require.Contains( + t, + userError.Error(), + "cannot import InclusiveRange: start, end and step must be integers", + ) + }) } func TestRuntimeExportStructValue(t *testing.T) { @@ -1487,11 +1467,12 @@ func TestRuntimeExportStructValue(t *testing.T) { } ` - fooStructType := &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: fooFields, - } + fooStructType := cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + fooFields, + nil, + ) actual := exportValueFromScript(t, script) expected := cadence.NewStruct([]cadence.Value{ @@ -1559,11 +1540,11 @@ func TestRuntimeExportResourceArrayValue(t *testing.T) { cadence.NewUInt64(2), cadence.NewInt(4), }).WithType(fooResourceType), - }).WithType(&cadence.VariableSizedArrayType{ - ElementType: &cadence.ResourceType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + }).WithType(cadence.NewVariableSizedArrayType( + cadence.NewResourceType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "uuid", Type: cadence.UInt64Type, @@ -1573,8 +1554,9 @@ func TestRuntimeExportResourceArrayValue(t *testing.T) { Type: cadence.IntType, }, }, - }, - }) + nil, + ), + )) assert.Equal(t, expected, actual) } @@ -1621,10 +1603,10 @@ func TestRuntimeExportResourceDictionaryValue(t *testing.T) { }, }).WithType(&cadence.DictionaryType{ KeyType: cadence.StringType, - ElementType: &cadence.ResourceType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + ElementType: cadence.NewResourceType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "uuid", Type: cadence.UInt64Type, @@ -1634,7 +1616,8 @@ func TestRuntimeExportResourceDictionaryValue(t *testing.T) { Type: cadence.IntType, }, }, - }, + nil, + ), }) assert.Equal(t, expected, actual) @@ -1644,10 +1627,10 @@ func TestRuntimeExportNestedResourceValueFromScript(t *testing.T) { t.Parallel() - barResourceType := &cadence.ResourceType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Bar", - Fields: []cadence.Field{ + barResourceType := cadence.NewResourceType( + common.ScriptLocation{}, + "Bar", + []cadence.Field{ { Identifier: "uuid", Type: cadence.UInt64Type, @@ -1657,12 +1640,13 @@ func TestRuntimeExportNestedResourceValueFromScript(t *testing.T) { Type: cadence.IntType, }, }, - } + nil, + ) - fooResourceType := &cadence.ResourceType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + fooResourceType := cadence.NewResourceType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "uuid", Type: cadence.UInt64Type, @@ -1672,7 +1656,8 @@ func TestRuntimeExportNestedResourceValueFromScript(t *testing.T) { Type: barResourceType, }, }, - } + nil, + ) script := ` access(all) resource Bar { @@ -1689,10 +1674,6 @@ func TestRuntimeExportNestedResourceValueFromScript(t *testing.T) { init(bar: @Bar) { self.bar <- bar } - - destroy() { - destroy self.bar - } } access(all) fun main(): @Foo { @@ -1729,11 +1710,12 @@ func TestRuntimeExportEventValue(t *testing.T) { } ` - fooEventType := &cadence.EventType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: fooFields, - } + fooEventType := cadence.NewEventType( + common.ScriptLocation{}, + "Foo", + fooFields, + nil, + ) actual := exportEventFromScript(t, script) expected := cadence.NewEvent([]cadence.Value{ @@ -1752,14 +1734,14 @@ func TestRuntimeExportEventValue(t *testing.T) { access(all) fun main() { - emit Foo(bar: &42) + emit Foo(bar: &42 as &Int) } ` - fooEventType := &cadence.EventType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + fooEventType := cadence.NewEventType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "bar", Type: cadence.NewReferenceType( @@ -1768,7 +1750,8 @@ func TestRuntimeExportEventValue(t *testing.T) { ), }, }, - } + nil, + ) actual := exportEventFromScript(t, script) expected := cadence.NewEvent([]cadence.Value{ @@ -2054,11 +2037,12 @@ func TestRuntimeExportTypeValue(t *testing.T) { actual := exportValueFromScript(t, script) expected := cadence.TypeValue{ - StaticType: &cadence.StructType{ - QualifiedIdentifier: "S", - Location: common.ScriptLocation{}, - Fields: []cadence.Field{}, - }, + StaticType: cadence.NewStructType( + common.ScriptLocation{}, + "S", + []cadence.Field{}, + nil, + ), } assert.Equal(t, expected, actual) @@ -2145,11 +2129,12 @@ func TestRuntimeExportTypeValue(t *testing.T) { cadence.TypeValue{ StaticType: &cadence.IntersectionType{ Types: []cadence.Type{ - &cadence.StructInterfaceType{ - QualifiedIdentifier: "SI", - Location: TestLocation, - Fields: []cadence.Field{}, - }, + cadence.NewStructInterfaceType( + TestLocation, + "SI", + []cadence.Field{}, + nil, + ), }, }, }, @@ -2228,11 +2213,12 @@ func TestRuntimeExportCapabilityValue(t *testing.T) { expected := cadence.NewCapability( 3, cadence.Address{0x1}, - &cadence.StructType{ - QualifiedIdentifier: "S", - Location: TestLocation, - Fields: []cadence.Field{}, - }, + cadence.NewStructType( + TestLocation, + "S", + []cadence.Field{}, + nil, + ), ) assert.Equal(t, expected, actual) @@ -2259,10 +2245,10 @@ func TestRuntimeExportCompositeValueWithFunctionValueField(t *testing.T) { } ` - fooStructType := &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + fooStructType := cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "answer", Type: cadence.IntType, @@ -2274,7 +2260,8 @@ func TestRuntimeExportCompositeValueWithFunctionValueField(t *testing.T) { }, }, }, - } + nil, + ) actual := exportValueFromScript(t, script) @@ -2361,11 +2348,12 @@ var fooResourceFields = []cadence.Field{ } func newFooResourceType() *cadence.ResourceType { - return &cadence.ResourceType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: fooResourceFields, - } + return cadence.NewResourceType( + common.ScriptLocation{}, + "Foo", + fooResourceFields, + nil, + ) } func TestRuntimeEnumValue(t *testing.T) { @@ -2373,22 +2361,20 @@ func TestRuntimeEnumValue(t *testing.T) { t.Parallel() newEnumValue := func() cadence.Enum { - return cadence.Enum{ - EnumType: &cadence.EnumType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Direction", - Fields: []cadence.Field{ - { - Identifier: sema.EnumRawValueFieldName, - Type: cadence.IntType, - }, + return cadence.NewEnum([]cadence.Value{ + cadence.NewInt(3), + }).WithType(cadence.NewEnumType( + common.ScriptLocation{}, + "Direction", + cadence.IntType, + []cadence.Field{ + { + Identifier: sema.EnumRawValueFieldName, + Type: cadence.IntType, }, - RawType: cadence.IntType, - }, - Fields: []cadence.Value{ - cadence.NewInt(3), }, - } + nil, + )) } t.Run("test export", func(t *testing.T) { @@ -2540,6 +2526,17 @@ func TestRuntimeArgumentPassing(t *testing.T) { ElementType: cadence.StringType, }), }, + { + label: "InclusiveRange", + typeSignature: "InclusiveRange", + exportedValue: cadence.NewInclusiveRange( + cadence.NewUInt128(1), + cadence.NewUInt128(500), + cadence.NewUInt128(25), + ).WithType(&cadence.InclusiveRangeType{ + ElementType: cadence.UInt128Type, + }), + }, { label: "Int", typeSignature: "Int", @@ -2732,107 +2729,111 @@ func TestRuntimeComplexStructArgumentPassing(t *testing.T) { t.Parallel() // Complex struct value - complexStructValue := cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: &cadence.OptionalType{ - Type: cadence.StringType, - }, - }, - { - Identifier: "b", - Type: &cadence.DictionaryType{ - KeyType: cadence.StringType, - ElementType: cadence.StringType, - }, - }, - { - Identifier: "c", - Type: &cadence.VariableSizedArrayType{ - ElementType: cadence.StringType, - }, - }, - { - Identifier: "d", - Type: &cadence.ConstantSizedArrayType{ - ElementType: cadence.StringType, - Size: 2, - }, - }, - { - Identifier: "e", - Type: cadence.AddressType, - }, - { - Identifier: "f", - Type: cadence.BoolType, - }, - { - Identifier: "g", - Type: cadence.StoragePathType, - }, - { - Identifier: "h", - Type: cadence.PublicPathType, + structType := cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ + { + Identifier: "a", + Type: &cadence.OptionalType{ + Type: cadence.StringType, }, - { - Identifier: "i", - Type: cadence.PrivatePathType, + }, + { + Identifier: "b", + Type: &cadence.DictionaryType{ + KeyType: cadence.StringType, + ElementType: cadence.StringType, }, - { - Identifier: "j", - Type: cadence.AnyStructType, + }, + { + Identifier: "c", + Type: &cadence.VariableSizedArrayType{ + ElementType: cadence.StringType, }, }, - }, - - Fields: []cadence.Value{ - cadence.NewOptional( - cadence.String("John"), - ), - cadence.NewDictionary([]cadence.KeyValuePair{ - { - Key: cadence.String("name"), - Value: cadence.String("Doe"), + { + Identifier: "d", + Type: &cadence.ConstantSizedArrayType{ + ElementType: cadence.StringType, + Size: 2, }, - }).WithType(&cadence.DictionaryType{ - KeyType: cadence.StringType, - ElementType: cadence.StringType, - }), - cadence.NewArray([]cadence.Value{ - cadence.String("foo"), - cadence.String("bar"), - }).WithType(&cadence.VariableSizedArrayType{ - ElementType: cadence.StringType, - }), - cadence.NewArray([]cadence.Value{ - cadence.String("foo"), - cadence.String("bar"), - }).WithType(&cadence.ConstantSizedArrayType{ - ElementType: cadence.StringType, - Size: 2, - }), - cadence.NewAddress([8]byte{0, 0, 0, 0, 0, 1, 0, 2}), - cadence.NewBool(true), - cadence.Path{ - Domain: common.PathDomainStorage, - Identifier: "foo", }, - cadence.Path{ - Domain: common.PathDomainPublic, - Identifier: "foo", + { + Identifier: "e", + Type: cadence.AddressType, }, - cadence.Path{ - Domain: common.PathDomainPrivate, - Identifier: "foo", + { + Identifier: "f", + Type: cadence.BoolType, + }, + { + Identifier: "g", + Type: cadence.StoragePathType, + }, + { + Identifier: "h", + Type: cadence.PublicPathType, }, + { + Identifier: "i", + Type: cadence.PrivatePathType, + }, + { + Identifier: "j", + Type: cadence.AnyStructType, + }, + { + Identifier: "k", + Type: cadence.HashableStructType, + }, + }, + nil, + ) + + complexStructValue := cadence.NewStruct([]cadence.Value{ + cadence.NewOptional( + cadence.String("John"), + ), + cadence.NewDictionary([]cadence.KeyValuePair{ + { + Key: cadence.String("name"), + Value: cadence.String("Doe"), + }, + }).WithType(&cadence.DictionaryType{ + KeyType: cadence.StringType, + ElementType: cadence.StringType, + }), + cadence.NewArray([]cadence.Value{ cadence.String("foo"), + cadence.String("bar"), + }).WithType(&cadence.VariableSizedArrayType{ + ElementType: cadence.StringType, + }), + cadence.NewArray([]cadence.Value{ + cadence.String("foo"), + cadence.String("bar"), + }).WithType(&cadence.ConstantSizedArrayType{ + ElementType: cadence.StringType, + Size: 2, + }), + cadence.NewAddress([8]byte{0, 0, 0, 0, 0, 1, 0, 2}), + cadence.NewBool(true), + cadence.Path{ + Domain: common.PathDomainStorage, + Identifier: "foo", + }, + cadence.Path{ + Domain: common.PathDomainPublic, + Identifier: "foo", + }, + cadence.Path{ + Domain: common.PathDomainPrivate, + Identifier: "foo", }, - } + cadence.String("foo"), + cadence.String("foo"), + }).WithType(structType) script := fmt.Sprintf( ` @@ -2856,20 +2857,133 @@ func TestRuntimeComplexStructArgumentPassing(t *testing.T) { access(all) var h: PublicPath access(all) var i: PrivatePath access(all) var j: AnyStruct + access(all) var k: HashableStruct + + init() { + self.a = "Hello" + self.b = {} + self.c = [] + self.d = ["foo", "bar"] + self.e = 0x42 + self.f = true + self.g = /storage/foo + self.h = /public/foo + self.i = /private/foo + self.j = nil + self.k = "hashable_struct_value" + } + } + `, + "Foo", + ) + + actual, err := executeTestScript(t, script, complexStructValue) + require.NoError(t, err) + + expected := complexStructValue + assert.Equal(t, expected, actual) + +} + +func TestRuntimeComplexStructWithAnyStructFields(t *testing.T) { + + t.Parallel() + + // Complex struct value + structType := cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ + { + Identifier: "a", + Type: &cadence.OptionalType{ + Type: cadence.AnyStructType, + }, + }, + { + Identifier: "b", + Type: &cadence.DictionaryType{ + KeyType: cadence.StringType, + ElementType: cadence.AnyStructType, + }, + }, + { + Identifier: "c", + Type: &cadence.VariableSizedArrayType{ + ElementType: cadence.AnyStructType, + }, + }, + { + Identifier: "d", + Type: &cadence.ConstantSizedArrayType{ + ElementType: cadence.AnyStructType, + Size: 2, + }, + }, + { + Identifier: "e", + Type: cadence.AnyStructType, + }, + }, + nil, + ) + + complexStructValue := cadence.NewStruct([]cadence.Value{ + cadence.NewOptional(cadence.String("John")), + cadence.NewDictionary([]cadence.KeyValuePair{ + { + Key: cadence.String("name"), + Value: cadence.String("Doe"), + }, + }).WithType(&cadence.DictionaryType{ + KeyType: cadence.StringType, + ElementType: cadence.AnyStructType, + }), + cadence.NewArray([]cadence.Value{ + cadence.String("foo"), + cadence.String("bar"), + }).WithType(&cadence.VariableSizedArrayType{ + ElementType: cadence.AnyStructType, + }), + cadence.NewArray([]cadence.Value{ + cadence.String("foo"), + cadence.String("bar"), + }).WithType(&cadence.ConstantSizedArrayType{ + ElementType: cadence.AnyStructType, + Size: 2, + }), + cadence.Path{ + Domain: common.PathDomainStorage, + Identifier: "foo", + }, + }).WithType(structType) + + script := fmt.Sprintf( + ` + access(all) fun main(arg: %[1]s): %[1]s { + + if !arg.isInstance(Type<%[1]s>()) { + panic("Not a %[1]s value") + } + + return arg + } + + access(all) struct Foo { + access(all) var a: AnyStruct? + access(all) var b: {String: AnyStruct} + access(all) var c: [AnyStruct] + access(all) var d: [AnyStruct; 2] + access(all) var e: AnyStruct init() { self.a = "Hello" self.b = {} self.c = [] self.d = ["foo", "bar"] - self.e = 0x42 - self.f = true - self.g = /storage/foo - self.h = /public/foo - self.i = /private/foo - self.j = nil + self.e = /storage/foo } - } + } `, "Foo", ) @@ -2877,111 +2991,106 @@ func TestRuntimeComplexStructArgumentPassing(t *testing.T) { actual, err := executeTestScript(t, script, complexStructValue) require.NoError(t, err) - expected := complexStructValue - assert.Equal(t, expected, actual) - + assert.Equal(t, complexStructValue, actual) } -func TestRuntimeComplexStructWithAnyStructFields(t *testing.T) { +func TestRuntimeComplexStructWithHashableStructFields(t *testing.T) { t.Parallel() // Complex struct value - complexStructValue := cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: &cadence.OptionalType{ - Type: cadence.AnyStructType, - }, - }, - { - Identifier: "b", - Type: &cadence.DictionaryType{ - KeyType: cadence.StringType, - ElementType: cadence.AnyStructType, - }, + structType := cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ + { + Identifier: "a", + Type: &cadence.OptionalType{ + Type: cadence.HashableStructType, }, - { - Identifier: "c", - Type: &cadence.VariableSizedArrayType{ - ElementType: cadence.AnyStructType, - }, + }, + { + Identifier: "b", + Type: &cadence.DictionaryType{ + KeyType: cadence.StringType, + ElementType: cadence.HashableStructType, }, - { - Identifier: "d", - Type: &cadence.ConstantSizedArrayType{ - ElementType: cadence.AnyStructType, - Size: 2, - }, + }, + { + Identifier: "c", + Type: &cadence.VariableSizedArrayType{ + ElementType: cadence.HashableStructType, }, - { - Identifier: "e", - Type: cadence.AnyStructType, + }, + { + Identifier: "d", + Type: &cadence.ConstantSizedArrayType{ + ElementType: cadence.HashableStructType, + Size: 2, }, }, + { + Identifier: "e", + Type: cadence.HashableStructType, + }, }, + nil, + ) - Fields: []cadence.Value{ - cadence.NewOptional(cadence.String("John")), - cadence.NewDictionary([]cadence.KeyValuePair{ - { - Key: cadence.String("name"), - Value: cadence.String("Doe"), - }, - }).WithType(&cadence.DictionaryType{ - KeyType: cadence.StringType, - ElementType: cadence.AnyStructType, - }), - cadence.NewArray([]cadence.Value{ - cadence.String("foo"), - cadence.String("bar"), - }).WithType(&cadence.VariableSizedArrayType{ - ElementType: cadence.AnyStructType, - }), - cadence.NewArray([]cadence.Value{ - cadence.String("foo"), - cadence.String("bar"), - }).WithType(&cadence.ConstantSizedArrayType{ - ElementType: cadence.AnyStructType, - Size: 2, - }), - cadence.Path{ - Domain: common.PathDomainStorage, - Identifier: "foo", - }, + complexStructValue := cadence.NewStruct([]cadence.Value{ + cadence.NewOptional(cadence.String("John")), + cadence.NewDictionary([]cadence.KeyValuePair{ + { + Key: cadence.String("name"), + Value: cadence.String("Doe"), + }, + }).WithType(&cadence.DictionaryType{ + KeyType: cadence.StringType, + ElementType: cadence.HashableStructType, + }), + cadence.NewArray([]cadence.Value{ + cadence.String("foo"), + cadence.String("bar"), + }).WithType(&cadence.VariableSizedArrayType{ + ElementType: cadence.HashableStructType, + }), + cadence.NewArray([]cadence.Value{ + cadence.String("foo"), + cadence.String("bar"), + }).WithType(&cadence.ConstantSizedArrayType{ + ElementType: cadence.HashableStructType, + Size: 2, + }), + cadence.Path{ + Domain: common.PathDomainStorage, + Identifier: "foo", }, - } + }).WithType(structType) script := fmt.Sprintf( ` access(all) fun main(arg: %[1]s): %[1]s { - if !arg.isInstance(Type<%[1]s>()) { panic("Not a %[1]s value") } - return arg } access(all) struct Foo { - access(all) var a: AnyStruct? - access(all) var b: {String: AnyStruct} - access(all) var c: [AnyStruct] - access(all) var d: [AnyStruct; 2] - access(all) var e: AnyStruct + access(all) var a: HashableStruct? + access(all) var b: {String: HashableStruct} + access(all) var c: [HashableStruct] + access(all) var d: [HashableStruct; 2] + access(all) var e: HashableStruct - init() { - self.a = "Hello" - self.b = {} - self.c = [] - self.d = ["foo", "bar"] - self.e = /storage/foo - } - } + init() { + self.a = "Hello" + self.b = {} + self.c = [] + self.d = ["foo", "bar"] + self.e = /storage/foo + } + } `, "Foo", ) @@ -3000,118 +3109,108 @@ func TestRuntimeMalformedArgumentPassing(t *testing.T) { // Struct with wrong field type newMalformedStructType1 := func() *cadence.StructType { - return &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + return cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "a", Type: cadence.IntType, }, }, - } + nil, + ) } newMalformedStruct1 := func() cadence.Struct { - return cadence.Struct{ - StructType: newMalformedStructType1(), - Fields: []cadence.Value{ - cadence.NewInt(3), - }, - } + return cadence.NewStruct([]cadence.Value{ + cadence.NewInt(3), + }).WithType(newMalformedStructType1()) } // Struct with wrong field name newMalformedStruct2 := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "nonExisting", - Type: cadence.StringType, - }, + return cadence.NewStruct([]cadence.Value{ + cadence.String("John"), + }).WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ + { + Identifier: "nonExisting", + Type: cadence.StringType, }, }, - Fields: []cadence.Value{ - cadence.String("John"), - }, - } + nil, + )) } // Struct with nested malformed array value newMalformedStruct3 := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Bar", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: &cadence.VariableSizedArrayType{ - ElementType: newMalformedStructType1(), - }, + return cadence.NewStruct([]cadence.Value{ + cadence.NewArray([]cadence.Value{ + newMalformedStruct1(), + }), + }).WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Bar", + []cadence.Field{ + { + Identifier: "a", + Type: &cadence.VariableSizedArrayType{ + ElementType: newMalformedStructType1(), }, }, }, - Fields: []cadence.Value{ - cadence.NewArray([]cadence.Value{ - newMalformedStruct1(), - }), - }, - } + nil, + )) } // Struct with nested malformed dictionary value newMalformedStruct4 := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Baz", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: &cadence.DictionaryType{ - KeyType: cadence.StringType, - ElementType: newMalformedStructType1(), - }, - }, + return cadence.NewStruct([]cadence.Value{ + cadence.NewDictionary([]cadence.KeyValuePair{ + { + Key: cadence.String("foo"), + Value: newMalformedStruct1(), }, - }, - Fields: []cadence.Value{ - cadence.NewDictionary([]cadence.KeyValuePair{ - { - Key: cadence.String("foo"), - Value: newMalformedStruct1(), + }), + }).WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Baz", + []cadence.Field{ + { + Identifier: "a", + Type: &cadence.DictionaryType{ + KeyType: cadence.StringType, + ElementType: newMalformedStructType1(), }, - }), + }, }, - } + nil, + )) } // Struct with nested array with mismatching element type newMalformedStruct5 := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Bar", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: &cadence.VariableSizedArrayType{ - ElementType: newMalformedStructType1(), - }, + return cadence.NewStruct([]cadence.Value{ + cadence.NewArray([]cadence.Value{ + cadence.String("mismatching value"), + }), + }).WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Bar", + []cadence.Field{ + { + Identifier: "a", + Type: &cadence.VariableSizedArrayType{ + ElementType: newMalformedStructType1(), }, }, }, - Fields: []cadence.Value{ - cadence.NewArray([]cadence.Value{ - cadence.String("mismatching value"), - }), - }, - } + nil, + )) } type argumentPassingTest struct { @@ -3220,6 +3319,16 @@ func TestRuntimeMalformedArgumentPassing(t *testing.T) { }), expectedInvalidEntryPointArgumentErrType: &MalformedValueError{}, }, + { + label: "Malformed InclusiveRange", + typeSignature: "InclusiveRange", + exportedValue: cadence.NewInclusiveRange( + cadence.NewUInt(1), + cadence.NewUInt(10), + cadence.NewUInt(3), + ), + expectedInvalidEntryPointArgumentErrType: &MalformedValueError{}, + }, } testArgumentPassing := func(test argumentPassingTest) { @@ -3710,7 +3819,7 @@ func TestRuntimeImportExportDictionaryValue(t *testing.T) { KeyType: interpreter.PrimitiveStaticTypeString, ValueType: &interpreter.DictionaryStaticType{ KeyType: interpreter.PrimitiveStaticTypeSignedInteger, - ValueType: interpreter.PrimitiveStaticTypeAnyStruct, + ValueType: interpreter.PrimitiveStaticTypeHashableStruct, }, }, @@ -3720,7 +3829,7 @@ func TestRuntimeImportExportDictionaryValue(t *testing.T) { interpreter.EmptyLocationRange, &interpreter.DictionaryStaticType{ KeyType: interpreter.PrimitiveStaticTypeInt8, - ValueType: interpreter.PrimitiveStaticTypeAnyStruct, + ValueType: interpreter.PrimitiveStaticTypeHashableStruct, }, interpreter.NewUnmeteredInt8Value(1), interpreter.NewUnmeteredIntValueFromInt64(100), interpreter.NewUnmeteredInt8Value(2), interpreter.NewUnmeteredStringValue("hello"), @@ -3732,7 +3841,7 @@ func TestRuntimeImportExportDictionaryValue(t *testing.T) { interpreter.EmptyLocationRange, &interpreter.DictionaryStaticType{ KeyType: interpreter.PrimitiveStaticTypeSignedInteger, - ValueType: interpreter.PrimitiveStaticTypeAnyStruct, + ValueType: interpreter.PrimitiveStaticTypeHashableStruct, }, interpreter.NewUnmeteredInt8Value(1), interpreter.NewUnmeteredStringValue("foo"), interpreter.NewUnmeteredIntValueFromInt64(2), interpreter.NewUnmeteredIntValueFromInt64(50), @@ -3745,52 +3854,47 @@ func TestRuntimeImportExportDictionaryValue(t *testing.T) { t.Run("import dictionary with heterogeneous keys", func(t *testing.T) { t.Parallel() - script := - `access(all) fun main(arg: Foo) { - } - - access(all) struct Foo { - access(all) var a: AnyStruct - - init() { - self.a = nil - } - }` - - // Struct with nested malformed dictionary value - malformedStruct := cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: cadence.AnyStructType, - }, - }, + dictionaryWithHeterogenousKeys := cadence.NewDictionary([]cadence.KeyValuePair{ + { + Key: cadence.String("foo"), + Value: cadence.String("value1"), }, - Fields: []cadence.Value{ - cadence.NewDictionary([]cadence.KeyValuePair{ - { - Key: cadence.String("foo"), - Value: cadence.String("value1"), - }, - { - Key: cadence.NewInt(5), - Value: cadence.String("value2"), - }, - }), + { + Key: cadence.NewInt(5), + Value: cadence.String("value2"), }, - } + }) - _, err := executeTestScript(t, script, malformedStruct) - RequireError(t, err) - assertUserError(t, err) + inter := NewTestInterpreter(t) - var argErr *InvalidEntryPointArgumentError - require.ErrorAs(t, err, &argErr) + actual, err := ImportValue( + inter, + interpreter.EmptyLocationRange, + nil, + dictionaryWithHeterogenousKeys, + sema.AnyStructType, + ) + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.DictionaryStaticType{ + KeyType: interpreter.PrimitiveStaticTypeHashableStruct, + ValueType: interpreter.PrimitiveStaticTypeString, + }, - assert.Contains(t, argErr.Error(), "cannot import dictionary: keys does not belong to the same type") + interpreter.NewUnmeteredStringValue("foo"), + interpreter.NewUnmeteredStringValue("value1"), + + interpreter.NewIntValueFromInt64(nil, 5), + interpreter.NewUnmeteredStringValue("value2"), + ), + actual, + ) }) t.Run("nested dictionary with mismatching element", func(t *testing.T) { @@ -3932,12 +4036,12 @@ func TestRuntimeTypeValueImport(t *testing.T) { t.Parallel() - typeValue := cadence.NewTypeValue(&cadence.StructType{ - QualifiedIdentifier: "S", - Location: TestLocation, - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, - }) + typeValue := cadence.NewTypeValue(cadence.NewStructType( + TestLocation, + "S", + []cadence.Field{}, + [][]cadence.Parameter{}, + )) script := ` access(all) fun main(s: Type) { @@ -4062,12 +4166,12 @@ func TestRuntimeCapabilityValueImport(t *testing.T) { t.Parallel() - borrowType := &cadence.StructType{ - QualifiedIdentifier: "S", - Location: TestLocation, - Fields: []cadence.Field{}, - Initializers: [][]cadence.Parameter{}, - } + borrowType := cadence.NewStructType( + TestLocation, + "S", + []cadence.Field{}, + [][]cadence.Parameter{}, + ) capabilityValue := cadence.NewCapability( 42, @@ -4810,16 +4914,17 @@ func TestRuntimeImportExportComplex(t *testing.T) { ), ) - externalCompositeType := &cadence.StructType{ - Location: TestLocation, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + externalCompositeType := cadence.NewStructType( + TestLocation, + "Foo", + []cadence.Field{ { Identifier: "dictionary", Type: externalDictionaryType, }, }, - } + nil, + ) internalCompositeValueFields := []interpreter.CompositeField{ { @@ -4838,12 +4943,9 @@ func TestRuntimeImportExportComplex(t *testing.T) { common.ZeroAddress, ) - externalCompositeValue := cadence.Struct{ - StructType: externalCompositeType, - Fields: []cadence.Value{ - externalDictionaryValue, - }, - } + externalCompositeValue := cadence.NewStruct([]cadence.Value{ + externalDictionaryValue, + }).WithType(externalCompositeType) t.Run("export", func(t *testing.T) { @@ -4914,25 +5016,22 @@ func TestRuntimeStaticTypeAvailability(t *testing.T) { } ` - structValue := cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: cadence.AnyStructType, - }, + structValue := cadence.NewStruct([]cadence.Value{ + cadence.NewArray([]cadence.Value{ + cadence.String("foo"), + cadence.String("bar"), + }), + }).WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ + { + Identifier: "a", + Type: cadence.AnyStructType, }, }, - - Fields: []cadence.Value{ - cadence.NewArray([]cadence.Value{ - cadence.String("foo"), - cadence.String("bar"), - }), - }, - } + nil, + )) _, err := executeTestScript(t, script, structValue) require.NoError(t, err) @@ -4952,27 +5051,24 @@ func TestRuntimeStaticTypeAvailability(t *testing.T) { } ` - structValue := cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ - { - Identifier: "a", - Type: cadence.AnyStructType, - }, + structValue := cadence.NewStruct([]cadence.Value{ + cadence.NewDictionary([]cadence.KeyValuePair{ + { + Key: cadence.String("foo"), + Value: cadence.String("bar"), + }, + }), + }).WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ + { + Identifier: "a", + Type: cadence.AnyStructType, }, }, - - Fields: []cadence.Value{ - cadence.NewDictionary([]cadence.KeyValuePair{ - { - Key: cadence.String("foo"), - Value: cadence.String("bar"), - }, - }), - }, - } + nil, + )) _, err := executeTestScript(t, script, structValue) require.NoError(t, err) @@ -5156,7 +5252,7 @@ func TestRuntimeDestroyedResourceReferenceExport(t *testing.T) { }, ) require.Error(t, err) - require.ErrorAs(t, err, &interpreter.DestroyedResourceError{}) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) } func TestRuntimeDeploymentResultValueImportExport(t *testing.T) { @@ -5236,15 +5332,17 @@ func TestRuntimeDeploymentResultTypeImportExport(t *testing.T) { rt := NewTestInterpreterRuntime() - typeValue := cadence.NewTypeValue(&cadence.StructType{ - QualifiedIdentifier: "DeploymentResult", - Fields: []cadence.Field{ + typeValue := cadence.NewTypeValue(cadence.NewStructType( + nil, + "DeploymentResult", + []cadence.Field{ { Type: cadence.NewOptionalType(cadence.DeployedContractType), Identifier: "deployedContract", }, }, - }) + nil, + )) encodedArg, err := json.Encode(typeValue) require.NoError(t, err) @@ -5295,15 +5393,17 @@ func TestRuntimeDeploymentResultTypeImportExport(t *testing.T) { require.NoError(t, err) assert.Equal(t, - cadence.NewTypeValue(&cadence.StructType{ - QualifiedIdentifier: "DeploymentResult", - Fields: []cadence.Field{ + cadence.NewTypeValue(cadence.NewStructType( + nil, + "DeploymentResult", + []cadence.Field{ { Type: cadence.NewOptionalType(cadence.DeployedContractType), Identifier: "deployedContract", }, }, - }), + nil, + )), result, ) }) diff --git a/runtime/coverage.go b/runtime/coverage.go index f73f5da11a..6be14155e1 100644 --- a/runtime/coverage.go +++ b/runtime/coverage.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -112,14 +112,17 @@ type LocationFilter func(location Location) bool // locations from coverage collection. type CoverageReport struct { // Contains a *LocationCoverage per location. - Coverage map[common.Location]*LocationCoverage `json:"-"` + Coverage map[common.Location]*LocationCoverage // Contains locations whose programs are already inspected. - Locations map[common.Location]struct{} `json:"-"` + Locations map[common.Location]struct{} // Contains locations excluded from coverage collection. - ExcludedLocations map[common.Location]struct{} `json:"-"` + ExcludedLocations map[common.Location]struct{} // This filter can be used to inject custom logic on // each location/program inspection. - LocationFilter LocationFilter `json:"-"` + locationFilter LocationFilter + // Contains a mapping with source paths for each + // location. + locationMappings map[string]string } // WithLocationFilter sets the LocationFilter for the current @@ -127,7 +130,15 @@ type CoverageReport struct { func (r *CoverageReport) WithLocationFilter( locationFilter LocationFilter, ) { - r.LocationFilter = locationFilter + r.locationFilter = locationFilter +} + +// WithLocationMappings sets the LocationMappings for the current +// CoverageReport. +func (r *CoverageReport) WithLocationMappings( + locationMappings map[string]string, +) { + r.locationMappings = locationMappings } // ExcludeLocation adds the given location to the map of excluded @@ -167,7 +178,7 @@ func (r *CoverageReport) AddLineHit(location Location, line int) { // If the CoverageReport.LocationFilter is present, and calling it with the given // location results to false, the method call also results in a NO-OP. func (r *CoverageReport) InspectProgram(location Location, program *ast.Program) { - if r.LocationFilter != nil && !r.LocationFilter(location) { + if r.locationFilter != nil && !r.locationFilter(location) { return } if r.IsLocationExcluded(location) { @@ -405,8 +416,6 @@ func NewCoverageReport() *CoverageReport { } } -type crAlias CoverageReport - // To avoid the overhead of having the Percentage & MissedLines // as fields in the LocationCoverage struct, we simply populate // this lcAlias struct, with the corresponding methods, upon marshalling. @@ -423,7 +432,8 @@ type lcAlias struct { func (r *CoverageReport) MarshalJSON() ([]byte, error) { coverage := make(map[string]lcAlias, len(r.Coverage)) for location, locationCoverage := range r.Coverage { // nolint:maprange - coverage[location.ID()] = lcAlias{ + locationSource := r.sourcePathForLocation(location) + coverage[locationSource] = lcAlias{ LineHits: locationCoverage.LineHits, MissedLines: locationCoverage.MissedLines(), Statements: locationCoverage.Statements, @@ -433,11 +443,9 @@ func (r *CoverageReport) MarshalJSON() ([]byte, error) { return json.Marshal(&struct { Coverage map[string]lcAlias `json:"coverage"` ExcludedLocations []string `json:"excluded_locations"` - *crAlias }{ Coverage: coverage, ExcludedLocations: r.ExcludedLocationIDs(), - crAlias: (*crAlias)(r), }) } @@ -448,10 +456,7 @@ func (r *CoverageReport) UnmarshalJSON(data []byte) error { cr := &struct { Coverage map[string]lcAlias `json:"coverage"` ExcludedLocations []string `json:"excluded_locations"` - *crAlias - }{ - crAlias: (*crAlias)(r), - } + }{} if err := json.Unmarshal(data, cr); err != nil { return err @@ -505,7 +510,8 @@ func (r *CoverageReport) MarshalLCOV() ([]byte, error) { buf := new(bytes.Buffer) for _, location := range locations { coverage := r.Coverage[location] - _, err := fmt.Fprintf(buf, "TN:\nSF:%s\n", location.ID()) + locationSource := r.sourcePathForLocation(location) + _, err := fmt.Fprintf(buf, "TN:\nSF:%s\n", locationSource) if err != nil { return nil, err } @@ -539,3 +545,27 @@ func (r *CoverageReport) MarshalLCOV() ([]byte, error) { return buf.Bytes(), nil } + +// Given a common.Location, returns its mapped source, if any. +// Defaults to the location's ID(). +func (r *CoverageReport) sourcePathForLocation(location common.Location) string { + var locationIdentifier string + + switch loc := location.(type) { + case common.AddressLocation: + locationIdentifier = loc.Name + case common.StringLocation: + locationIdentifier = loc.String() + case common.IdentifierLocation: + locationIdentifier = loc.String() + default: + locationIdentifier = loc.ID() + } + + locationSource, ok := r.locationMappings[locationIdentifier] + if !ok { + locationSource = location.ID() + } + + return locationSource +} diff --git a/runtime/coverage_test.go b/runtime/coverage_test.go index e8b304e733..05fed6e3aa 100644 --- a/runtime/coverage_test.go +++ b/runtime/coverage_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,6 +32,7 @@ import ( "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/stdlib" . "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" ) func TestRuntimeNewLocationCoverage(t *testing.T) { @@ -623,6 +624,117 @@ func TestRuntimeCoverageReportWithAddressLocation(t *testing.T) { require.JSONEq(t, expected, string(actual)) } +func TestCoverageReportWithLocationMappings(t *testing.T) { + + t.Parallel() + + script := []byte(` + access(all) fun answer(): Int { + var i = 0 + while i < 42 { + i = i + 1 + } + return i + } + `) + + program, err := parser.ParseProgram(nil, script, parser.Config{}) + require.NoError(t, err) + + locationMappings := map[string]string{ + "Answer": "cadence/scripts/answer.cdc", + } + coverageReport := NewCoverageReport() + coverageReport.WithLocationMappings(locationMappings) + + t.Run("with AddressLocation", func(t *testing.T) { + location := common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{1, 2}), + Name: "Answer", + } + coverageReport.InspectProgram(location, program) + + actual, err := json.Marshal(coverageReport) + require.NoError(t, err) + + expected := ` + { + "coverage": { + "cadence/scripts/answer.cdc": { + "line_hits": { + "3": 0, + "4": 0, + "5": 0, + "7": 0 + }, + "missed_lines": [3, 4, 5, 7], + "statements": 4, + "percentage": "0.0%" + } + }, + "excluded_locations": [] + } + ` + require.JSONEq(t, expected, string(actual)) + }) + + t.Run("with StringLocation", func(t *testing.T) { + location := common.StringLocation("Answer") + coverageReport.InspectProgram(location, program) + + actual, err := json.Marshal(coverageReport) + require.NoError(t, err) + + expected := ` + { + "coverage": { + "cadence/scripts/answer.cdc": { + "line_hits": { + "3": 0, + "4": 0, + "5": 0, + "7": 0 + }, + "missed_lines": [3, 4, 5, 7], + "statements": 4, + "percentage": "0.0%" + } + }, + "excluded_locations": [] + } + ` + require.JSONEq(t, expected, string(actual)) + }) + + t.Run("with IdentifierLocation", func(t *testing.T) { + location := common.IdentifierLocation("Answer") + coverageReport.InspectProgram(location, program) + + actual, err := json.Marshal(coverageReport) + require.NoError(t, err) + + expected := ` + { + "coverage": { + "cadence/scripts/answer.cdc": { + "line_hits": { + "3": 0, + "4": 0, + "5": 0, + "7": 0 + }, + "missed_lines": [3, 4, 5, 7], + "statements": 4, + "percentage": "0.0%" + } + }, + "excluded_locations": [] + } + ` + require.JSONEq(t, expected, string(actual)) + }) +} + func TestRuntimeCoverageReportReset(t *testing.T) { t.Parallel() @@ -1657,7 +1769,7 @@ func TestRuntimeCoverageWithNoStatements(t *testing.T) { t.Parallel() - importedScript := []byte(` + contract := []byte(` access(all) contract FooContract { access(all) resource interface Receiver { } @@ -1665,7 +1777,7 @@ func TestRuntimeCoverageWithNoStatements(t *testing.T) { `) script := []byte(` - import "FooContract" + import FooContract from 0x1 access(all) fun main(): Int { Type<@{FooContract.Receiver}>().identifier return 42 @@ -1673,30 +1785,58 @@ func TestRuntimeCoverageWithNoStatements(t *testing.T) { `) coverageReport := NewCoverageReport() + runtime := NewInterpreterRuntime(Config{ + CoverageReport: coverageReport, + }) - scriptlocation := common.ScriptLocation{0x1b, 0x2c} + scriptLocation := common.ScriptLocation{0x1b, 0x2c} + + transactionLocation := NewTransactionLocationGenerator() + txLocation := transactionLocation() + + authorizers := []Address{{0, 0, 0, 0, 0, 0, 0, 1}} + accountCodes := map[Location][]byte{} runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - switch location { - case common.StringLocation("FooContract"): - return importedScript, nil - default: - return nil, fmt.Errorf("unknown import location: %s", location) - } + Storage: NewTestLedger(nil, nil), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnGetSigningAccounts: func() ([]Address, error) { + return authorizers, nil }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), } - runtime := NewInterpreterRuntime(Config{ - CoverageReport: coverageReport, - }) - coverageReport.ExcludeLocation(scriptlocation) + + coverageReport.ExcludeLocation(txLocation) + deploy := utils.DeploymentTransaction("FooContract", contract) + err := runtime.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: txLocation, + CoverageReport: coverageReport, + }, + ) + require.NoError(t, err) + + coverageReport.ExcludeLocation(scriptLocation) value, err := runtime.ExecuteScript( Script{ Source: script, }, Context{ Interface: runtimeInterface, - Location: scriptlocation, + Location: scriptLocation, CoverageReport: coverageReport, }, ) @@ -1794,44 +1934,116 @@ func TestRuntimeCoverageReportLCOVFormat(t *testing.T) { } `) - coverageReport := NewCoverageReport() - scriptlocation := common.ScriptLocation{} - coverageReport.ExcludeLocation(scriptlocation) - - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - switch location { - case common.StringLocation("IntegerTraits"): - return integerTraits, nil - default: - return nil, fmt.Errorf("unknown import location: %s", location) - } - }, - } - - config := DefaultTestInterpreterConfig - config.CoverageReport = coverageReport - runtime := NewTestInterpreterRuntimeWithConfig(config) - - value, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: scriptlocation, - CoverageReport: coverageReport, - }, - ) - require.NoError(t, err) + t.Run("without location mappings", func(t *testing.T) { + coverageReport := NewCoverageReport() + scriptlocation := common.ScriptLocation{} + coverageReport.ExcludeLocation(scriptlocation) + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + switch location { + case common.StringLocation("IntegerTraits"): + return integerTraits, nil + default: + return nil, fmt.Errorf("unknown import location: %s", location) + } + }, + } + + config := DefaultTestInterpreterConfig + config.CoverageReport = coverageReport + runtime := NewTestInterpreterRuntimeWithConfig(config) + + value, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: scriptlocation, + CoverageReport: coverageReport, + }, + ) + require.NoError(t, err) + + assert.Equal(t, cadence.NewInt(42), value) + + actual, err := coverageReport.MarshalLCOV() + require.NoError(t, err) + + expected := `TN: +SF:S.IntegerTraits +DA:9,1 +DA:13,10 +DA:14,1 +DA:15,9 +DA:16,1 +DA:17,8 +DA:18,1 +DA:19,7 +DA:20,1 +DA:21,6 +DA:22,1 +DA:25,5 +DA:26,4 +DA:29,1 +LF:14 +LH:14 +end_of_record +` - assert.Equal(t, cadence.NewInt(42), value) + require.Equal(t, expected, string(actual)) - actual, err := coverageReport.MarshalLCOV() - require.NoError(t, err) + assert.Equal( + t, + "Coverage: 100.0% of statements", + coverageReport.String(), + ) + }) - expected := `TN: -SF:S.IntegerTraits + t.Run("with location mappings", func(t *testing.T) { + locationMappings := map[string]string{ + "IntegerTraits": "cadence/contracts/IntegerTraits.cdc", + } + coverageReport := NewCoverageReport() + coverageReport.WithLocationMappings(locationMappings) + scriptlocation := common.ScriptLocation{} + coverageReport.ExcludeLocation(scriptlocation) + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + switch location { + case common.StringLocation("IntegerTraits"): + return integerTraits, nil + default: + return nil, fmt.Errorf("unknown import location: %s", location) + } + }, + } + + config := DefaultTestInterpreterConfig + config.CoverageReport = coverageReport + runtime := NewTestInterpreterRuntimeWithConfig(config) + + value, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: scriptlocation, + CoverageReport: coverageReport, + }, + ) + require.NoError(t, err) + + assert.Equal(t, cadence.NewInt(42), value) + + actual, err := coverageReport.MarshalLCOV() + require.NoError(t, err) + + expected := `TN: +SF:cadence/contracts/IntegerTraits.cdc DA:9,1 DA:13,10 DA:14,1 @@ -1850,11 +2062,13 @@ LF:14 LH:14 end_of_record ` - require.Equal(t, expected, string(actual)) + require.Equal(t, expected, string(actual)) + + assert.Equal( + t, + "Coverage: 100.0% of statements", + coverageReport.String(), + ) + }) - assert.Equal( - t, - "Coverage: 100.0% of statements", - coverageReport.String(), - ) } diff --git a/runtime/crypto_test.go b/runtime/crypto_test.go index 059b31c0d0..f155fd0122 100644 --- a/runtime/crypto_test.go +++ b/runtime/crypto_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -67,7 +67,8 @@ func TestRuntimeCrypto_verify(t *testing.T) { return keyList.verify( signatureSet: signatureSet, - signedData: "0506".decodeHex() + signedData: "0506".decodeHex(), + domainSeparationTag: "foo" ) } `) @@ -88,7 +89,7 @@ func TestRuntimeCrypto_verify(t *testing.T) { ) (bool, error) { called = true assert.Equal(t, []byte{3, 4}, signature) - assert.Equal(t, "FLOW-V0.0-user", tag) + assert.Equal(t, "foo", tag) assert.Equal(t, []byte{5, 6}, signedData) assert.Equal(t, []byte{1, 2}, publicKey) assert.Equal(t, SignatureAlgorithmECDSA_P256, signatureAlgorithm) @@ -275,8 +276,12 @@ func TestRuntimeHashingAlgorithmExport(t *testing.T) { require.IsType(t, cadence.Enum{}, value) enumValue := value.(cadence.Enum) - require.Len(t, enumValue.Fields, 1) - assert.Equal(t, cadence.NewUInt8(algo.RawValue()), enumValue.Fields[0]) + fields := cadence.FieldsMappedByName(enumValue) + require.Len(t, fields, 1) + assert.Equal(t, + cadence.NewUInt8(algo.RawValue()), + fields[sema.EnumRawValueFieldName], + ) } for _, algo := range sema.HashAlgorithms { @@ -316,8 +321,12 @@ func TestRuntimeSignatureAlgorithmExport(t *testing.T) { require.IsType(t, cadence.Enum{}, value) enumValue := value.(cadence.Enum) - require.Len(t, enumValue.Fields, 1) - assert.Equal(t, cadence.NewUInt8(algo.RawValue()), enumValue.Fields[0]) + fields := cadence.FieldsMappedByName(enumValue) + require.Len(t, fields, 1) + assert.Equal(t, + cadence.NewUInt8(algo.RawValue()), + fields[sema.EnumRawValueFieldName], + ) } for _, algo := range sema.SignatureAlgorithms { @@ -352,16 +361,18 @@ func TestRuntimeSignatureAlgorithmImport(t *testing.T) { Arguments: encodeArgs( cadence.NewEnum([]cadence.Value{ cadence.UInt8(algo.RawValue()), - }).WithType(&cadence.EnumType{ - QualifiedIdentifier: "SignatureAlgorithm", - RawType: cadence.UInt8Type, - Fields: []cadence.Field{ + }).WithType(cadence.NewEnumType( + nil, + "SignatureAlgorithm", + cadence.UInt8Type, + []cadence.Field{ { Identifier: "rawValue", Type: cadence.UInt8Type, }, }, - }), + nil, + )), ), }, Context{ @@ -431,16 +442,18 @@ func TestRuntimeHashAlgorithmImport(t *testing.T) { Arguments: encodeArgs( cadence.NewEnum([]cadence.Value{ cadence.UInt8(algo.RawValue()), - }).WithType(&cadence.EnumType{ - QualifiedIdentifier: "HashAlgorithm", - RawType: cadence.UInt8Type, - Fields: []cadence.Field{ + }).WithType(cadence.NewEnumType( + nil, + "HashAlgorithm", + cadence.UInt8Type, + []cadence.Field{ { Identifier: "rawValue", Type: cadence.UInt8Type, }, }, - }), + nil, + )), ), }, Context{ @@ -654,6 +667,7 @@ func TestRuntimeBLSAggregatePublicKeys(t *testing.T) { ) require.NoError(t, err) + fields := cadence.FieldsMappedByName(result.(cadence.Optional).Value.(cadence.Struct)) assert.Equal(t, cadence.NewArray([]cadence.Value{ cadence.UInt8(1), @@ -663,7 +677,7 @@ func TestRuntimeBLSAggregatePublicKeys(t *testing.T) { }).WithType(&cadence.VariableSizedArrayType{ ElementType: cadence.UInt8Type, }), - result.(cadence.Optional).Value.(cadence.Struct).Fields[0], + fields[sema.PublicKeyTypePublicKeyFieldName], ) assert.True(t, called) @@ -789,7 +803,7 @@ func TestRuntimeTraversingMerkleProof(t *testing.T) { return hex.DecodeString("b6979620706f8c652cfb6bf6e923f5156eadd5abaf4022a0b19d52ada089475f") } - return nil, errors.New("Unknown input to the hash method") + return nil, errors.New("unknown input to the hash method") }, OnProgramLog: func(message string) { logMessages = append(logMessages, message) diff --git a/runtime/debugger_test.go b/runtime/debugger_test.go index 68b05e4d06..62a44a5659 100644 --- a/runtime/debugger_test.go +++ b/runtime/debugger_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -106,7 +106,7 @@ func TestRuntimeDebugger(t *testing.T) { variable := activation.Find("answer") require.NotNil(t, variable) - value := variable.GetValue() + value := variable.GetValue(stop.Interpreter) require.Equal( t, interpreter.NewUnmeteredIntValueFromInt64(42), @@ -192,7 +192,7 @@ func TestRuntimeDebuggerBreakpoints(t *testing.T) { variable := activation.Find("answer") require.NotNil(t, variable) - value := variable.GetValue() + value := variable.GetValue(stop.Interpreter) require.Equal( t, interpreter.NewUnmeteredIntValueFromInt64(42), diff --git a/runtime/deployedcontract_test.go b/runtime/deployedcontract_test.go index 4fbdd7a6d8..47acbe0d36 100644 --- a/runtime/deployedcontract_test.go +++ b/runtime/deployedcontract_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/deployment_test.go b/runtime/deployment_test.go index 25bd1b7b76..68678dface 100644 --- a/runtime/deployment_test.go +++ b/runtime/deployment_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,24 +55,10 @@ func TestRuntimeTransactionWithContractDeployment(t *testing.T) { require.Equal(t, event.Type(), expectedEventType) - expectedEventCompositeType := expectedEventType.(*cadence.EventType) - - codeHashParameterIndex := -1 - - for i, field := range expectedEventCompositeType.Fields { - if field.Identifier != stdlib.AccountEventCodeHashParameter.Identifier { - continue - } - codeHashParameterIndex = i - } - - if codeHashParameterIndex < 0 { - t.Error("couldn't find code hash parameter in event type") - } - expectedCodeHash := sha3.Sum256(accountCode) - codeHashValue := event.Fields[codeHashParameterIndex] + fields := cadence.FieldsMappedByName(event) + codeHashValue := fields["codeHash"] inter := NewTestInterpreter(t) @@ -107,8 +93,6 @@ func TestRuntimeTransactionWithContractDeployment(t *testing.T) { var runtimeErr Error require.ErrorAs(t, err, &runtimeErr) - println(runtimeErr.Error()) - assert.EqualError(t, runtimeErr, expectedErrorMessage) assert.Len(t, runtimeErr.Codes, 2) diff --git a/runtime/entitlements_test.go b/runtime/entitlements_test.go index b9cfb672a3..52e592683e 100644 --- a/runtime/entitlements_test.go +++ b/runtime/entitlements_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -217,7 +217,7 @@ func TestRuntimeAccountEntitlementSaveAndLoadFail(t *testing.T) { require.ErrorAs(t, err, &interpreter.ForceCastTypeMismatchError{}) } -func TestRuntimeAccountEntitlementAttachmentMap(t *testing.T) { +func TestRuntimeAccountEntitlementAttachment(t *testing.T) { t.Parallel() storage := NewTestLedger(nil, nil) @@ -226,16 +226,13 @@ func TestRuntimeAccountEntitlementAttachmentMap(t *testing.T) { deployTx := DeploymentTransaction("Test", []byte(` access(all) contract Test { - access(all) entitlement X access(all) entitlement Y - access(all) entitlement mapping M { - X -> Y - } - - access(all) resource R {} + access(all) resource R { + access(Y) fun foo() {} + } - access(M) attachment A for R { + access(all) attachment A for R { access(Y) fun foo() {} } @@ -252,7 +249,7 @@ func TestRuntimeAccountEntitlementAttachmentMap(t *testing.T) { prepare(signer: auth(Storage, Capabilities) &Account) { let r <- Test.createRWithA() signer.storage.save(<-r, to: /storage/foo) - let cap = signer.capabilities.storage.issue(/storage/foo) + let cap = signer.capabilities.storage.issue(/storage/foo) signer.capabilities.publish(cap, at: /public/foo) } } @@ -263,7 +260,7 @@ func TestRuntimeAccountEntitlementAttachmentMap(t *testing.T) { transaction { prepare(signer: &Account) { - let ref = signer.capabilities.borrow(/public/foo)! + let ref = signer.capabilities.borrow(/public/foo)! ref[Test.A]!.foo() } } @@ -542,7 +539,7 @@ func TestRuntimeAccountEntitlementCapabilityCasting(t *testing.T) { import Test from 0x1 transaction { prepare(signer: &Account) { - let capX = signer.capabilities.get(/public/foo)! + let capX = signer.capabilities.get(/public/foo) let upCap = capX as Capability<&Test.R> let downCap = upCap as! Capability } @@ -650,8 +647,8 @@ func TestRuntimeAccountEntitlementCapabilityDictionary(t *testing.T) { import Test from 0x1 transaction { prepare(signer: &Account) { - let capX = signer.capabilities.get(/public/foo)! - let capY = signer.capabilities.get(/public/bar)! + let capX = signer.capabilities.get(/public/foo) + let capY = signer.capabilities.get(/public/bar) let dict: {Type: Capability<&Test.R>} = {} dict[capX.getType()] = capX @@ -765,8 +762,8 @@ func TestRuntimeAccountEntitlementGenericCapabilityDictionary(t *testing.T) { import Test from 0x1 transaction { prepare(signer: &Account) { - let capX = signer.capabilities.get(/public/foo)! - let capY = signer.capabilities.get(/public/bar)! + let capX = signer.capabilities.get(/public/foo) + let capY = signer.capabilities.get(/public/bar) let dict: {Type: Capability} = {} dict[capX.getType()] = capX @@ -991,7 +988,7 @@ func TestRuntimeCapabilityEntitlements(t *testing.T) { let issuedCap = account.capabilities.storage.issue(/storage/foo) account.capabilities.publish(issuedCap, at: /public/foo) - let cap: Capability = account.capabilities.get(/public/foo)! + let cap: Capability = account.capabilities.get(/public/foo) let runtimeType = cap.getType() @@ -1020,7 +1017,7 @@ func TestRuntimeCapabilityEntitlements(t *testing.T) { let issuedCap = account.capabilities.storage.issue<&S>(/storage/foo) account.capabilities.publish(issuedCap, at: /public/foo) - let cap: Capability<&S> = account.capabilities.get<&S>(/public/foo)! + let cap: Capability<&S> = account.capabilities.get<&S>(/public/foo) let runtimeType = cap.getType() let upcastCap = cap as Capability<&AnyStruct> @@ -1053,7 +1050,7 @@ func TestRuntimeCapabilityEntitlements(t *testing.T) { let issuedCap = account.capabilities.storage.issue(/storage/foo) account.capabilities.publish(issuedCap, at: /public/foo) - let cap = account.capabilities.get(/public/foo)! + let cap = account.capabilities.get(/public/foo) assert(cap.check()) } `) @@ -1112,7 +1109,7 @@ func TestRuntimeCapabilityEntitlements(t *testing.T) { account.capabilities.publish(issuedCap, at: /public/foo) let cap = account.capabilities.get(/public/foo) - assert(cap == nil) + assert(!cap.check()) } `) }) @@ -1172,7 +1169,7 @@ func TestRuntimeImportedEntitlementMapInclude(t *testing.T) { } access(all) struct S { - access(M) fun performMap(): auth(M) &Int { + access(mapping M) fun performMap(): auth(mapping M) &Int { return &1 } } diff --git a/runtime/environment.go b/runtime/environment.go index 916651947c..dfef846efe 100644 --- a/runtime/environment.go +++ b/runtime/environment.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,8 +38,18 @@ import ( type Environment interface { ArgumentDecoder - DeclareValue(valueDeclaration stdlib.StandardLibraryValue) - DeclareType(typeDeclaration stdlib.StandardLibraryType) + SetCompositeValueFunctionsHandler( + typeID common.TypeID, + handler stdlib.CompositeValueFunctionsHandler, + ) + DeclareValue( + valueDeclaration stdlib.StandardLibraryValue, + location common.Location, + ) + DeclareType( + typeDeclaration stdlib.StandardLibraryType, + location common.Location, + ) Configure( runtimeInterface Interface, codesAndPrograms CodesAndPrograms, @@ -64,7 +74,7 @@ type Environment interface { error, ) CommitStorage(inter *interpreter.Interpreter) error - NewAccountValue(address interpreter.AddressValue) interpreter.Value + NewAccountValue(inter *interpreter.Interpreter, address interpreter.AddressValue) interpreter.Value } // interpreterEnvironmentReconfigured is the portion of interpreterEnvironment @@ -78,20 +88,50 @@ type interpreterEnvironmentReconfigured struct { type interpreterEnvironment struct { interpreterEnvironmentReconfigured - baseTypeActivation *sema.VariableActivation - baseValueActivation *sema.VariableActivation - baseActivation *interpreter.VariableActivation + + // defaultBaseTypeActivation is the base type activation that applies to all locations by default. + defaultBaseTypeActivation *sema.VariableActivation + // The base type activations for individual locations. + // location == nil is the base type activation that applies to all locations, + // unless there is a base type activation for the given location. + // + // Base type activations are lazily / implicitly created + // by DeclareType / semaBaseActivationFor + baseTypeActivationsByLocation map[common.Location]*sema.VariableActivation + + // defaultBaseValueActivation is the base value activation that applies to all locations by default. + defaultBaseValueActivation *sema.VariableActivation + // The base value activations for individual locations. + // location == nil is the base value activation that applies to all locations, + // unless there is a base value activation for the given location. + // + // Base value activations are lazily / implicitly created + // by DeclareValue / semaBaseActivationFor + baseValueActivationsByLocation map[common.Location]*sema.VariableActivation + + // defaultBaseActivation is the base activation that applies to all locations by default + defaultBaseActivation *interpreter.VariableActivation + // The base activations for individual locations. + // location == nil is the base activation that applies to all locations, + // unless there is a base activation for the given location. + // + // Base activations are lazily / implicitly created + // by DeclareValue / interpreterBaseActivationFor + baseActivationsByLocation map[common.Location]*interpreter.VariableActivation + InterpreterConfig *interpreter.Config CheckerConfig *sema.Config deployedContractConstructorInvocation *stdlib.DeployedContractConstructorInvocation stackDepthLimiter *stackDepthLimiter checkedImports importResolutionResults + compositeValueFunctionsHandlers stdlib.CompositeValueFunctionsHandlers config Config + deployedContracts map[Location]struct{} } var _ Environment = &interpreterEnvironment{} var _ stdlib.Logger = &interpreterEnvironment{} -var _ stdlib.UnsafeRandomGenerator = &interpreterEnvironment{} +var _ stdlib.RandomGenerator = &interpreterEnvironment{} var _ stdlib.BlockAtHeightProvider = &interpreterEnvironment{} var _ stdlib.CurrentBlockProvider = &interpreterEnvironment{} var _ stdlib.AccountHandler = &interpreterEnvironment{} @@ -107,64 +147,68 @@ var _ ArgumentDecoder = &interpreterEnvironment{} var _ common.MemoryGauge = &interpreterEnvironment{} func newInterpreterEnvironment(config Config) *interpreterEnvironment { - baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) - baseTypeActivation := sema.NewVariableActivation(sema.BaseTypeActivation) - baseActivation := activations.NewActivation[*interpreter.Variable](nil, interpreter.BaseActivation) + defaultBaseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + defaultBaseTypeActivation := sema.NewVariableActivation(sema.BaseTypeActivation) + defaultBaseActivation := activations.NewActivation(nil, interpreter.BaseActivation) env := &interpreterEnvironment{ - config: config, - baseValueActivation: baseValueActivation, - baseTypeActivation: baseTypeActivation, - baseActivation: baseActivation, - stackDepthLimiter: newStackDepthLimiter(config.StackDepthLimit), + config: config, + defaultBaseValueActivation: defaultBaseValueActivation, + defaultBaseTypeActivation: defaultBaseTypeActivation, + defaultBaseActivation: defaultBaseActivation, + stackDepthLimiter: newStackDepthLimiter(config.StackDepthLimit), } env.InterpreterConfig = env.newInterpreterConfig() env.CheckerConfig = env.newCheckerConfig() if config.WebAssemblyEnabled { - env.DeclareValue(stdlib.NewWebAssemblyContract(nil, env)) - env.DeclareType(stdlib.WebAssemblyContractType) + env.DeclareValue(stdlib.NewWebAssemblyContract(nil, env), nil) + env.DeclareType(stdlib.WebAssemblyContractType, nil) } + env.compositeValueFunctionsHandlers = stdlib.DefaultStandardLibraryCompositeValueFunctionHandlers(env) + return env } func (e *interpreterEnvironment) newInterpreterConfig() *interpreter.Config { return &interpreter.Config{ - InvalidatedResourceValidationEnabled: true, - MemoryGauge: e, - BaseActivation: e.baseActivation, - OnEventEmitted: e.newOnEventEmittedHandler(), - InjectedCompositeFieldsHandler: e.newInjectedCompositeFieldsHandler(), - UUIDHandler: e.newUUIDHandler(), - ContractValueHandler: e.newContractValueHandler(), - ImportLocationHandler: e.newImportLocationHandler(), - AccountHandler: e.NewAccountValue, - OnRecordTrace: e.newOnRecordTraceHandler(), - OnResourceOwnerChange: e.newResourceOwnerChangedHandler(), - CompositeTypeHandler: e.newCompositeTypeHandler(), - TracingEnabled: e.config.TracingEnabled, - AtreeValueValidationEnabled: e.config.AtreeValidationEnabled, + MemoryGauge: e, + BaseActivationHandler: e.getBaseActivation, + OnEventEmitted: e.newOnEventEmittedHandler(), + InjectedCompositeFieldsHandler: e.newInjectedCompositeFieldsHandler(), + UUIDHandler: e.newUUIDHandler(), + ContractValueHandler: e.newContractValueHandler(), + ImportLocationHandler: e.newImportLocationHandler(), + AccountHandler: e.NewAccountValue, + OnRecordTrace: e.newOnRecordTraceHandler(), + OnResourceOwnerChange: e.newResourceOwnerChangedHandler(), + CompositeTypeHandler: e.newCompositeTypeHandler(), + CompositeValueFunctionsHandler: e.newCompositeValueFunctionsHandler(), + TracingEnabled: e.config.TracingEnabled, + AtreeValueValidationEnabled: e.config.AtreeValidationEnabled, // NOTE: ignore e.config.AtreeValidationEnabled here, // and disable storage validation after each value modification. // Instead, storage is validated after commits (if validation is enabled), // see interpreterEnvironment.CommitStorage - AtreeStorageValidationEnabled: false, - Debugger: e.config.Debugger, - OnStatement: e.newOnStatementHandler(), - OnMeterComputation: e.newOnMeterComputation(), - OnFunctionInvocation: e.newOnFunctionInvocationHandler(), - OnInvokedFunctionReturn: e.newOnInvokedFunctionReturnHandler(), - CapabilityBorrowHandler: stdlib.BorrowCapabilityController, - CapabilityCheckHandler: stdlib.CheckCapabilityController, + AtreeStorageValidationEnabled: false, + Debugger: e.config.Debugger, + OnStatement: e.newOnStatementHandler(), + OnMeterComputation: e.newOnMeterComputation(), + OnFunctionInvocation: e.newOnFunctionInvocationHandler(), + OnInvokedFunctionReturn: e.newOnInvokedFunctionReturnHandler(), + CapabilityBorrowHandler: stdlib.BorrowCapabilityController, + CapabilityCheckHandler: stdlib.CheckCapabilityController, + LegacyContractUpgradeEnabled: e.config.LegacyContractUpgradeEnabled, + ContractUpdateTypeRemovalEnabled: e.config.ContractUpdateTypeRemovalEnabled, } } func (e *interpreterEnvironment) newCheckerConfig() *sema.Config { return &sema.Config{ AccessCheckMode: sema.AccessCheckModeStrict, - BaseValueActivation: e.baseValueActivation, - BaseTypeActivation: e.baseTypeActivation, + BaseValueActivationHandler: e.getBaseValueActivation, + BaseTypeActivationHandler: e.getBaseTypeActivation, ValidTopLevelDeclarationsHandler: validTopLevelDeclarations, LocationHandler: e.newLocationHandler(), ImportHandler: e.resolveImport, @@ -176,7 +220,7 @@ func (e *interpreterEnvironment) newCheckerConfig() *sema.Config { func NewBaseInterpreterEnvironment(config Config) *interpreterEnvironment { env := newInterpreterEnvironment(config) for _, valueDeclaration := range stdlib.DefaultStandardLibraryValues(env) { - env.DeclareValue(valueDeclaration) + env.DeclareValue(valueDeclaration, nil) } return env } @@ -184,7 +228,7 @@ func NewBaseInterpreterEnvironment(config Config) *interpreterEnvironment { func NewScriptInterpreterEnvironment(config Config) Environment { env := newInterpreterEnvironment(config) for _, valueDeclaration := range stdlib.DefaultScriptStandardLibraryValues(env) { - env.DeclareValue(valueDeclaration) + env.DeclareValue(valueDeclaration, nil) } return env } @@ -203,13 +247,70 @@ func (e *interpreterEnvironment) Configure( e.stackDepthLimiter.depth = 0 } -func (e *interpreterEnvironment) DeclareValue(valueDeclaration stdlib.StandardLibraryValue) { - e.baseValueActivation.DeclareValue(valueDeclaration) - interpreter.Declare(e.baseActivation, valueDeclaration) +func (e *interpreterEnvironment) DeclareValue(valueDeclaration stdlib.StandardLibraryValue, location common.Location) { + e.semaBaseActivationFor( + location, + &e.baseValueActivationsByLocation, + e.defaultBaseValueActivation, + ).DeclareValue(valueDeclaration) + + activation := e.interpreterBaseActivationFor(location) + interpreter.Declare(activation, valueDeclaration) } -func (e *interpreterEnvironment) DeclareType(typeDeclaration stdlib.StandardLibraryType) { - e.baseTypeActivation.DeclareType(typeDeclaration) +func (e *interpreterEnvironment) DeclareType(typeDeclaration stdlib.StandardLibraryType, location common.Location) { + e.semaBaseActivationFor( + location, + &e.baseTypeActivationsByLocation, + e.defaultBaseTypeActivation, + ).DeclareType(typeDeclaration) +} + +func (e *interpreterEnvironment) semaBaseActivationFor( + location common.Location, + baseActivationsByLocation *map[Location]*sema.VariableActivation, + defaultBaseActivation *sema.VariableActivation, +) (baseActivation *sema.VariableActivation) { + if location == nil { + return defaultBaseActivation + } + + if *baseActivationsByLocation == nil { + *baseActivationsByLocation = map[Location]*sema.VariableActivation{} + } else { + baseActivation = (*baseActivationsByLocation)[location] + } + if baseActivation == nil { + baseActivation = sema.NewVariableActivation(defaultBaseActivation) + (*baseActivationsByLocation)[location] = baseActivation + } + return baseActivation +} + +func (e *interpreterEnvironment) interpreterBaseActivationFor( + location common.Location, +) *interpreter.VariableActivation { + defaultBaseActivation := e.defaultBaseActivation + if location == nil { + return defaultBaseActivation + } + + baseActivation := e.baseActivationsByLocation[location] + if baseActivation == nil { + baseActivation = activations.NewActivation[interpreter.Variable](nil, defaultBaseActivation) + if e.baseActivationsByLocation == nil { + e.baseActivationsByLocation = map[common.Location]*interpreter.VariableActivation{} + } + e.baseActivationsByLocation[location] = baseActivation + } + return baseActivation +} + +func (e *interpreterEnvironment) SetCompositeValueFunctionsHandler( + typeID common.TypeID, + handler stdlib.CompositeValueFunctionsHandler, +) { + e.compositeValueFunctionsHandlers[typeID] = handler } func (e *interpreterEnvironment) MeterMemory(usage common.MemoryUsage) error { @@ -328,6 +429,23 @@ func (e *interpreterEnvironment) ContractUpdateRecorded(location common.AddressL return e.storage.contractUpdateRecorded(location) } +func (e *interpreterEnvironment) StartContractAddition(location common.AddressLocation) { + if e.deployedContracts == nil { + e.deployedContracts = map[Location]struct{}{} + } + + e.deployedContracts[location] = struct{}{} +} + +func (e *interpreterEnvironment) EndContractAddition(location common.AddressLocation) { + delete(e.deployedContracts, location) +} + +func (e *interpreterEnvironment) IsContractBeingAdded(location common.AddressLocation) bool { + _, contains := e.deployedContracts[location] + return contains +} + func (e *interpreterEnvironment) TemporarilyRecordCode(location common.AddressLocation, code []byte) { e.codesAndPrograms.setCode(location, code) } @@ -658,8 +776,11 @@ func (e *interpreterEnvironment) newOnRecordTraceHandler() interpreter.OnRecordT } } -func (e *interpreterEnvironment) NewAccountValue(address interpreter.AddressValue) interpreter.Value { - return stdlib.NewAccountValue(e, e, address) +func (e *interpreterEnvironment) NewAccountValue( + inter *interpreter.Interpreter, + address interpreter.AddressValue, +) interpreter.Value { + return stdlib.NewAccountValue(inter, e, address) } func (e *interpreterEnvironment) ValidatePublicKey(publicKey *stdlib.PublicKey) error { @@ -818,6 +939,7 @@ func (e *interpreterEnvironment) newInjectedCompositeFieldsHandler() interpreter e, addressValue, interpreter.FullyEntitledAccountAccess, + interpreter.EmptyLocationRange, ), } } @@ -873,7 +995,8 @@ func (e *interpreterEnvironment) newCompositeTypeHandler() interpreter.Composite case nil: qualifiedIdentifier := string(typeID) - ty := sema.TypeActivationNestedType(e.baseTypeActivation, qualifiedIdentifier) + baseTypeActivation := e.getBaseTypeActivation(location) + ty := sema.TypeActivationNestedType(baseTypeActivation, qualifiedIdentifier) if ty == nil { return nil } @@ -887,6 +1010,22 @@ func (e *interpreterEnvironment) newCompositeTypeHandler() interpreter.Composite } } +func (e *interpreterEnvironment) newCompositeValueFunctionsHandler() interpreter.CompositeValueFunctionsHandlerFunc { + return func( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + compositeValue *interpreter.CompositeValue, + ) *interpreter.FunctionOrderedMap { + + handler := e.compositeValueFunctionsHandlers[compositeValue.TypeID()] + if handler == nil { + return nil + } + + return handler(inter, locationRange, compositeValue) + } +} + func (e *interpreterEnvironment) loadContract( inter *interpreter.Interpreter, compositeType *sema.CompositeType, @@ -982,7 +1121,7 @@ func (e *interpreterEnvironment) InterpretContract( ) } - contract = variable.GetValue().(*interpreter.CompositeValue) + contract = variable.GetValue(inter).(*interpreter.CompositeValue) return } @@ -1061,3 +1200,70 @@ func (e *interpreterEnvironment) CommitStorage(inter *interpreter.Interpreter) e return nil } + +// getBaseValueActivation returns the base activation for the given location. +// If a value was declared for the location (using DeclareValue), +// then the specific base value activation for this location is returned. +// Otherwise, the default base activation that applies for all locations is returned. +func (e *interpreterEnvironment) getBaseValueActivation( + location common.Location, +) ( + baseValueActivation *sema.VariableActivation, +) { + baseValueActivationsByLocation := e.baseValueActivationsByLocation + // Use the base value activation for the location, if any + // (previously implicitly created using DeclareValue) + baseValueActivation = baseValueActivationsByLocation[location] + if baseValueActivation == nil { + // If no base value activation for the location exists + // (no value was previously, specifically declared for the location using DeclareValue), + // return the base value activation that applies to all locations by default + baseValueActivation = e.defaultBaseValueActivation + } + return + +} + +// getBaseTypeActivation returns the base activation for the given location. +// If a type was declared for the location (using DeclareType), +// then the specific base type activation for this location is returned. +// Otherwise, the default base activation that applies for all locations is returned. +func (e *interpreterEnvironment) getBaseTypeActivation( + location common.Location, +) ( + baseTypeActivation *sema.VariableActivation, +) { + // Use the base type activation for the location, if any + // (previously implicitly created using DeclareType) + baseTypeActivationsByLocation := e.baseTypeActivationsByLocation + baseTypeActivation = baseTypeActivationsByLocation[location] + if baseTypeActivation == nil { + // If no base type activation for the location exists + // (no type was previously, specifically declared for the location using DeclareType), + // return the base type activation that applies to all locations by default + baseTypeActivation = e.defaultBaseTypeActivation + } + return +} + +// getBaseActivation returns the base activation for the given location. +// If a value was declared for the location (using DeclareValue), +// then the specific base activation for this location is returned. +// Otherwise, the default base activation that applies for all locations is returned. +func (e *interpreterEnvironment) getBaseActivation( + location common.Location, +) ( + baseActivation *interpreter.VariableActivation, +) { + // Use the base activation for the location, if any + // (previously implicitly created using DeclareValue) + baseActivationsByLocation := e.baseActivationsByLocation + baseActivation = baseActivationsByLocation[location] + if baseActivation == nil { + // If no base activation for the location exists + // (no value was previously, specifically declared for the location using DeclareValue), + // return the base activation that applies to all locations by default + baseActivation = e.defaultBaseActivation + } + return +} diff --git a/runtime/error_test.go b/runtime/error_test.go index bd609782fd..9ad623e625 100644 --- a/runtime/error_test.go +++ b/runtime/error_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -485,133 +485,6 @@ func TestRuntimeError(t *testing.T) { }) } -func TestRuntimeDefaultFunctionConflictPrintingError(t *testing.T) { - t.Parallel() - - runtime := NewTestInterpreterRuntime() - - makeDeployTransaction := func(name, code string) []byte { - return []byte(fmt.Sprintf( - ` - transaction { - prepare(signer: auth(BorrowValue) &Account) { - let acct = Account(payer: signer) - acct.contracts.add(name: "%s", code: "%s".decodeHex()) - } - } - `, - name, - hex.EncodeToString([]byte(code)), - )) - } - - contractInterfaceCode := ` - access(all) contract TestInterfaces { - - access(all) resource interface A { - access(all) fun foo() { - let x = 3 - } - } - - access(all) resource interface B { - access(all) fun foo() - } - } - ` - - contractCode := ` - import TestInterfaces from 0x2 - access(all) contract TestContract { - access(all) resource R: TestInterfaces.A, TestInterfaces.B {} - // fill space - // fill space - // fill space - // fill space - // fill space - // fill space - // filling lots of space - // filling lots of space - // filling lots of space - } - ` - - accountCodes := map[Location][]byte{} - var events []cadence.Event - - var nextAccount byte = 0x2 - - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: NewTestLedger(nil, nil), - OnCreateAccount: func(payer Address) (address Address, err error) { - result := interpreter.NewUnmeteredAddressValueFromBytes([]byte{nextAccount}) - nextAccount++ - return result.ToAddress(), nil - }, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{{0x1}}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - } - - nextTransactionLocation := NewTransactionLocationGenerator() - - deployTransaction := makeDeployTransaction("TestInterfaces", contractInterfaceCode) - err := runtime.ExecuteTransaction( - Script{ - Source: deployTransaction, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) - - deployTransaction = makeDeployTransaction("TestContract", contractCode) - err = runtime.ExecuteTransaction( - Script{ - Source: deployTransaction, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.Error(t, err) - require.Contains(t, err.Error(), "access(all) resource R: TestInterfaces.A, TestInterfaces.B {}") - - var errType *sema.CheckerError - require.ErrorAs(t, err, &errType) - - checkerErr := err.(Error). - Err.(interpreter.Error). - Err.(*stdlib.InvalidContractDeploymentError). - Err.(*ParsingCheckingError). - Err.(*sema.CheckerError) - - var specificErrType *sema.DefaultFunctionConflictError - require.ErrorAs(t, checkerErr.Errors[0], &specificErrType) - - errorRange := checkerErr.Errors[0].(*sema.DefaultFunctionConflictError).Range - - require.Equal(t, errorRange.StartPos.Line, 4) -} - func TestRuntimeMultipleInterfaceDefaultImplementationsError(t *testing.T) { t.Parallel() diff --git a/runtime/errors.go b/runtime/errors.go index 183642b259..df00e11ff8 100644 --- a/runtime/errors.go +++ b/runtime/errors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/errors/errors.go b/runtime/errors/errors.go index 0a298a88dc..949f4896d9 100644 --- a/runtime/errors/errors.go +++ b/runtime/errors/errors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ package errors import ( "fmt" - "runtime/debug" "golang.org/x/xerrors" ) @@ -142,8 +141,7 @@ func (e MemoryError) Error() string { // // NOTE: This error is not used for errors occur due to bugs in a user-provided program. type UnexpectedError struct { - Err error - Stack []byte + Err error } var _ InternalError = UnexpectedError{} @@ -152,15 +150,13 @@ func (UnexpectedError) IsInternalError() {} func NewUnexpectedError(message string, arg ...any) UnexpectedError { return UnexpectedError{ - Err: fmt.Errorf(message, arg...), - Stack: debug.Stack(), + Err: fmt.Errorf(message, arg...), } } func NewUnexpectedErrorFromCause(err error) UnexpectedError { return UnexpectedError{ - Err: err, - Stack: debug.Stack(), + Err: err, } } @@ -169,7 +165,7 @@ func (e UnexpectedError) Unwrap() error { } func (e UnexpectedError) Error() string { - return fmt.Sprintf("internal error: %s\n%s", e.Err.Error(), e.Stack) + return fmt.Sprintf("internal error: %s", e.Err.Error()) } // DefaultUserError is the default implementation of UserError interface. diff --git a/runtime/errors/wrappanic.go b/runtime/errors/wrappanic.go index 81bbffb855..06c493cd8b 100644 --- a/runtime/errors/wrappanic.go +++ b/runtime/errors/wrappanic.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/events.go b/runtime/events.go index 4738902bc8..b6badb393f 100644 --- a/runtime/events.go +++ b/runtime/events.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/address.go b/runtime/format/address.go index 8a292a057b..ac21faafc9 100644 --- a/runtime/format/address.go +++ b/runtime/format/address.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/array.go b/runtime/format/array.go index bda4ec2830..7a7d2ac4b6 100644 --- a/runtime/format/array.go +++ b/runtime/format/array.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/bool.go b/runtime/format/bool.go index 1d0c7cea72..ea2149f14a 100644 --- a/runtime/format/bool.go +++ b/runtime/format/bool.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/bytes.go b/runtime/format/bytes.go index 81b71844c3..6cdf413dcd 100644 --- a/runtime/format/bytes.go +++ b/runtime/format/bytes.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/bytes_test.go b/runtime/format/bytes_test.go index 6087624c21..ad18728573 100644 --- a/runtime/format/bytes_test.go +++ b/runtime/format/bytes_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/capability.go b/runtime/format/capability.go index d4bb4f5009..ca2ab7bfff 100644 --- a/runtime/format/capability.go +++ b/runtime/format/capability.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,21 @@ import ( "fmt" ) +// PathCapability returns the string representation of a path capability. Deprecated and removed in v1.0.0. +func DeprecatedPathCapability(borrowType string, address string, path string) string { + var typeArgument string + if borrowType != "" { + typeArgument = fmt.Sprintf("<%s>", borrowType) + } + + return fmt.Sprintf( + "Capability%s(address: %s, path: %s)", + typeArgument, + address, + path, + ) +} + func Capability(borrowType string, address string, id string) string { return fmt.Sprintf( "Capability<%s>(address: %s, id: %s)", @@ -33,7 +48,7 @@ func Capability(borrowType string, address string, id string) string { func StorageCapabilityController(borrowType string, capabilityID string, target string) string { return fmt.Sprintf( - "StorageCapabilityController(borrowType: %s, capabilityID: %s, target: %s)", + "StorageCapabilityController(borrowType: Type<%s>(), capabilityID: %s, target: %s)", borrowType, capabilityID, target, @@ -42,7 +57,7 @@ func StorageCapabilityController(borrowType string, capabilityID string, target func AccountCapabilityController(borrowType string, capabilityID string) string { return fmt.Sprintf( - "AccountCapabilityController(borrowType: %s, capabilityID: %s)", + "AccountCapabilityController(borrowType: Type<%s>(), capabilityID: %s)", borrowType, capabilityID, ) diff --git a/runtime/format/composite.go b/runtime/format/composite.go index 5af9132902..b3d2f843e4 100644 --- a/runtime/format/composite.go +++ b/runtime/format/composite.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/dictionary.go b/runtime/format/dictionary.go index 30af2f2197..194697a018 100644 --- a/runtime/format/dictionary.go +++ b/runtime/format/dictionary.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/fix.go b/runtime/format/fix.go index 7e42a638bb..4f2c2d6f3f 100644 --- a/runtime/format/fix.go +++ b/runtime/format/fix.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/fix_test.go b/runtime/format/fix_test.go index d6ea209a58..7b3ad9c5fd 100644 --- a/runtime/format/fix_test.go +++ b/runtime/format/fix_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/int.go b/runtime/format/int.go index 1f57bc0e11..98c42a2051 100644 --- a/runtime/format/int.go +++ b/runtime/format/int.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/nil.go b/runtime/format/nil.go index abfacba842..59df92cce1 100644 --- a/runtime/format/nil.go +++ b/runtime/format/nil.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/pad.go b/runtime/format/pad.go index 9af487296a..b56a31246c 100644 --- a/runtime/format/pad.go +++ b/runtime/format/pad.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/path.go b/runtime/format/path.go index aec55a59db..d17149dcb3 100644 --- a/runtime/format/path.go +++ b/runtime/format/path.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/reference.go b/runtime/format/reference.go index 16bc271807..7b1030c23a 100644 --- a/runtime/format/reference.go +++ b/runtime/format/reference.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/string.go b/runtime/format/string.go index 4090eefd4e..2bea75f9b3 100644 --- a/runtime/format/string.go +++ b/runtime/format/string.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/type.go b/runtime/format/type.go index 5d61d7013a..9171bd4989 100644 --- a/runtime/format/type.go +++ b/runtime/format/type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/format/void.go b/runtime/format/void.go index fa2525c628..b8d98427a2 100644 --- a/runtime/format/void.go +++ b/runtime/format/void.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/ft_test.go b/runtime/ft_test.go index 0f6b257bcd..f325ad217e 100644 --- a/runtime/ft_test.go +++ b/runtime/ft_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -274,10 +274,6 @@ access(all) contract FlowToken: FungibleToken { vault.balance = 0.0 destroy vault } - - destroy() { - FlowToken.totalSupply = FlowToken.totalSupply - self.balance - } } // createEmptyVault diff --git a/runtime/import_test.go b/runtime/import_test.go index 5b1c0e874d..9b4de3be58 100644 --- a/runtime/import_test.go +++ b/runtime/import_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -406,3 +406,96 @@ func TestRuntimeCheckCyclicImportToSelfDuringDeploy(t *testing.T) { errs := checker.RequireCheckerErrors(t, checkerErr, 1) require.IsType(t, &sema.CyclicImportsError{}, errs[0]) } + +func TestRuntimeContractImport(t *testing.T) { + + t.Parallel() + + addressValue := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } + + runtime := NewTestInterpreterRuntime() + + contract := []byte(` + access(all) contract Foo { + access(all) let x: [Int] + + access(all) fun answer(): Int { + return 42 + } + + access(all) struct Bar {} + + init() { + self.x = [] + } + }`, + ) + + deploy := DeploymentTransaction("Foo", contract) + + script := []byte(` + import Foo from 0x01 + + access(all) fun main() { + var foo: &Foo = Foo + var x: &[Int] = Foo.x + var bar: Foo.Bar = Foo.Bar() + } + `) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{addressValue}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnCreateAccount: func(payer Address) (address Address, err error) { + return addressValue, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := runtime.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + nextScriptLocation := NewScriptLocationGenerator() + + _, err = runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) +} diff --git a/runtime/imported_values_memory_metering_test.go b/runtime/imported_values_memory_metering_test.go index cce9afbf0e..da52dd10fc 100644 --- a/runtime/imported_values_memory_metering_test.go +++ b/runtime/imported_values_memory_metering_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -192,6 +192,18 @@ func TestRuntimeImportedValueMemoryMetering(t *testing.T) { assert.Equal(t, uint64(32), meter[common.MemoryKindBigInt]) }) + t.Run("FixedSizeUnsignedInteger", func(t *testing.T) { + t.Parallel() + + script := []byte(` + access(all) fun main(x: FixedSizeUnsignedInteger) {} + `) + + meter := make(map[common.MemoryKind]uint64) + executeScript(t, script, meter, cadence.NewUInt256(2)) + assert.Equal(t, uint64(32), meter[common.MemoryKindBigInt]) + }) + t.Run("Int", func(t *testing.T) { t.Parallel() @@ -400,6 +412,29 @@ func TestRuntimeImportedValueMemoryMetering(t *testing.T) { assert.Equal(t, uint64(1), meter[common.MemoryKindCompositeValueBase]) assert.Equal(t, uint64(71), meter[common.MemoryKindRawString]) }) + + t.Run("InclusiveRange", func(t *testing.T) { + t.Parallel() + + script := []byte(` + access(all) fun main(x: InclusiveRange) {} + `) + + meter := make(map[common.MemoryKind]uint64) + inclusiveRangeValue := &cadence.InclusiveRange{ + InclusiveRangeType: &cadence.InclusiveRangeType{ + ElementType: cadence.IntType, + }, + Start: cadence.NewInt(1), + End: cadence.NewInt(50), + Step: cadence.NewInt(2), + } + + executeScript(t, script, meter, inclusiveRangeValue) + assert.Equal(t, uint64(1), meter[common.MemoryKindCompositeValueBase]) + assert.Equal(t, uint64(1), meter[common.MemoryKindInclusiveRangeStaticType]) + assert.Equal(t, uint64(1), meter[common.MemoryKindCadenceInclusiveRangeValue]) + }) } type testMemoryError struct{} diff --git a/runtime/inbox_test.go b/runtime/inbox_test.go index c3c5583b8c..c7880808d2 100644 --- a/runtime/inbox_test.go +++ b/runtime/inbox_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,13 +19,16 @@ package runtime_test import ( + "strings" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/onflow/cadence" + "github.com/onflow/cadence/encoding/json" . "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" . "github.com/onflow/cadence/runtime/tests/runtime_utils" ) @@ -111,8 +114,8 @@ func TestRuntimeAccountInboxPublishUnpublish(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", - "flow.InboxValueUnpublished(provider: 0x0000000000000001, name: \"foo\")", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, + `flow.InboxValueUnpublished(provider: 0x0000000000000001, name: "foo")`, }, events, ) @@ -191,7 +194,7 @@ func TestRuntimeAccountInboxUnpublishWrongType(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, ) @@ -280,7 +283,7 @@ func TestRuntimeAccountInboxUnpublishAbsent(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, ) @@ -296,26 +299,28 @@ func TestRuntimeAccountInboxUnpublishRemove(t *testing.T) { var events []string transaction1 := []byte(` - transaction { + transaction(name: String) { prepare(signer: auth(Storage, Capabilities, Inbox) &Account) { signer.storage.save([3], to: /storage/foo) let cap = signer.capabilities.storage.issue<&[Int]>(/storage/foo) - log(signer.inbox.publish(cap, name: "foo", recipient: 0x2)) + log(signer.inbox.publish(cap, name: name, recipient: 0x2)) } } `) transaction2 := []byte(` - transaction { + transaction(name: String) { prepare(signer: auth(Inbox) &Account) { - let cap = signer.inbox.unpublish<&[Int]>("foo")! + let cap = signer.inbox.unpublish<&[Int]>(name)! log(cap.borrow()![0]) - let cap2 = signer.inbox.unpublish<&[Int]>("foo") + let cap2 = signer.inbox.unpublish<&[Int]>(name) log(cap2) } } `) + address := common.MustBytesToAddress([]byte{0x1}) + runtimeInterface1 := &TestRuntimeInterface{ Storage: storage, OnProgramLog: func(message string) { @@ -326,35 +331,45 @@ func TestRuntimeAccountInboxUnpublishRemove(t *testing.T) { return nil }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{[8]byte{0, 0, 0, 0, 0, 0, 0, 1}}, nil + return []Address{address}, nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { + return json.Decode(nil, b) }, } + // NOTE: generate a long name + nameArgument, err := cadence.NewString(strings.Repeat("x", 10_000)) + require.NoError(t, err) + + args := encodeArgs(nameArgument) + nextTransactionLocation := NewTransactionLocationGenerator() // publish from 1 to 2 - err := rt.ExecuteTransaction( + err = rt.ExecuteTransaction( Script{ - Source: transaction1, + Source: transaction1, + Arguments: args, }, Context{ Interface: runtimeInterface1, Location: nextTransactionLocation(), }, ) - require.NoError(t, err) // unpublish from 1 + err = rt.ExecuteTransaction( Script{ - Source: transaction2, + Source: transaction2, + Arguments: args, }, Context{ Interface: runtimeInterface1, Location: nextTransactionLocation(), }, ) - require.NoError(t, err) require.Equal(t, @@ -373,8 +388,12 @@ func TestRuntimeAccountInboxUnpublishRemove(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", - "flow.InboxValueUnpublished(provider: 0x0000000000000001, name: \"foo\")", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: ` + + nameArgument.String() + + `, type: Type>())`, + `flow.InboxValueUnpublished(provider: 0x0000000000000001, name: ` + + nameArgument.String() + + `)`, }, events, ) @@ -417,6 +436,8 @@ func TestRuntimeAccountInboxUnpublishWrongAccount(t *testing.T) { } `) + address1 := common.MustBytesToAddress([]byte{0x1}) + runtimeInterface1 := &TestRuntimeInterface{ Storage: storage, OnProgramLog: func(message string) { @@ -427,10 +448,12 @@ func TestRuntimeAccountInboxUnpublishWrongAccount(t *testing.T) { return nil }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{[8]byte{0, 0, 0, 0, 0, 0, 0, 1}}, nil + return []Address{address1}, nil }, } + address2 := common.MustBytesToAddress([]byte{0x2}) + runtimeInterface2 := &TestRuntimeInterface{ Storage: storage, OnProgramLog: func(message string) { @@ -441,7 +464,7 @@ func TestRuntimeAccountInboxUnpublishWrongAccount(t *testing.T) { return nil }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{[8]byte{0, 0, 0, 0, 0, 0, 0, 2}}, nil + return []Address{address2}, nil }, } @@ -500,8 +523,8 @@ func TestRuntimeAccountInboxUnpublishWrongAccount(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", - "flow.InboxValueUnpublished(provider: 0x0000000000000001, name: \"foo\")", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, + `flow.InboxValueUnpublished(provider: 0x0000000000000001, name: "foo")`, }, events, ) @@ -535,6 +558,8 @@ func TestRuntimeAccountInboxPublishClaim(t *testing.T) { } `) + address1 := common.MustBytesToAddress([]byte{0x1}) + runtimeInterface1 := &TestRuntimeInterface{ Storage: storage, OnProgramLog: func(message string) { @@ -545,13 +570,16 @@ func TestRuntimeAccountInboxPublishClaim(t *testing.T) { return nil }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{[8]byte{0, 0, 0, 0, 0, 0, 0, 1}}, nil + return []Address{address1}, nil }, } + address2 := common.MustBytesToAddress([]byte{0x2}) + runtimeInterface2 := &TestRuntimeInterface{ Storage: storage, OnProgramLog: func(message string) { + logs = append(logs, message) }, OnEmitEvent: func(event cadence.Event) error { @@ -559,7 +587,7 @@ func TestRuntimeAccountInboxPublishClaim(t *testing.T) { return nil }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{[8]byte{0, 0, 0, 0, 0, 0, 0, 2}}, nil + return []Address{address2}, nil }, } @@ -604,8 +632,8 @@ func TestRuntimeAccountInboxPublishClaim(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", - "flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\")", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, + `flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo")`, }, events, ) @@ -706,7 +734,7 @@ func TestRuntimeAccountInboxPublishClaimWrongType(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, ) @@ -808,7 +836,7 @@ func TestRuntimeAccountInboxPublishClaimWrongName(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, }, events, ) @@ -934,8 +962,8 @@ func TestRuntimeAccountInboxPublishClaimRemove(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", - "flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\")", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, + `flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo")`, }, events, ) @@ -1075,8 +1103,8 @@ func TestRuntimeAccountInboxPublishClaimWrongAccount(t *testing.T) { require.Equal(t, []string{ - "flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\", type: Type>())", - "flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: \"foo\")", + `flow.InboxValuePublished(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo", type: Type>())`, + `flow.InboxValueClaimed(provider: 0x0000000000000001, recipient: 0x0000000000000002, name: "foo")`, }, events, ) diff --git a/runtime/interface.go b/runtime/interface.go index 59ec6e3bb7..fa13fd17c6 100644 --- a/runtime/interface.go +++ b/runtime/interface.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/big.go b/runtime/interpreter/big.go index efb359d500..5a503a2a14 100644 --- a/runtime/interpreter/big.go +++ b/runtime/interpreter/big.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/config.go b/runtime/interpreter/config.go index c04e8ca59b..f9d322bd7f 100644 --- a/runtime/interpreter/config.go +++ b/runtime/interpreter/config.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,14 +49,16 @@ type Config struct { UUIDHandler UUIDHandlerFunc // CompositeTypeHandler is used to load composite types CompositeTypeHandler CompositeTypeHandlerFunc - BaseActivation *VariableActivation - Debugger *Debugger + // InterfaceTypeHandler is used to load interface types + InterfaceTypeHandler InterfaceTypeHandlerFunc + // CompositeValueFunctionsHandler is used to load composite value functions + CompositeValueFunctionsHandler CompositeValueFunctionsHandlerFunc + BaseActivationHandler func(location common.Location) *VariableActivation + Debugger *Debugger // OnStatement is triggered when a statement is about to be executed OnStatement OnStatementFunc // OnLoopIteration is triggered when a loop iteration is about to be executed OnLoopIteration OnLoopIterationFunc - // InvalidatedResourceValidationEnabled determines if the validation of invalidated resources is enabled - InvalidatedResourceValidationEnabled bool // TracingEnabled determines if tracing is enabled. // Tracing reports certain operations, e.g. composite value transfers TracingEnabled bool @@ -68,4 +70,8 @@ type Config struct { CapabilityCheckHandler CapabilityCheckHandlerFunc // CapabilityBorrowHandler is used to borrow ID capabilities CapabilityBorrowHandler CapabilityBorrowHandlerFunc + // LegacyContractUpgradeEnabled specifies whether to fall back to the old parser when attempting a contract upgrade + LegacyContractUpgradeEnabled bool + // ContractUpdateTypeRemovalEnabled specifies if type removal is enabled in contract updates + ContractUpdateTypeRemovalEnabled bool } diff --git a/runtime/interpreter/conversion.go b/runtime/interpreter/conversion.go index 448462acca..4e43b56c04 100644 --- a/runtime/interpreter/conversion.go +++ b/runtime/interpreter/conversion.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,17 +38,22 @@ func ByteArrayValueToByteSlice(interpreter *Interpreter, value Value, locationRa result = make([]byte, 0, count) var err error - array.Iterate(interpreter, func(element Value) (resume bool) { - var b byte - b, err = ByteValueToByte(interpreter, element, locationRange) - if err != nil { - return false - } - - result = append(result, b) - - return true - }) + array.Iterate( + interpreter, + func(element Value) (resume bool) { + var b byte + b, err = ByteValueToByte(interpreter, element, locationRange) + if err != nil { + return false + } + + result = append(result, b) + + return true + }, + false, + locationRange, + ) if err != nil { return nil, err } diff --git a/runtime/interpreter/conversion_test.go b/runtime/interpreter/conversion_test.go index b9d63b7e9b..35de4bc0e9 100644 --- a/runtime/interpreter/conversion_test.go +++ b/runtime/interpreter/conversion_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/debugger.go b/runtime/interpreter/debugger.go index 73eda09ccd..541a5cefaa 100644 --- a/runtime/interpreter/debugger.go +++ b/runtime/interpreter/debugger.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/decode.go b/runtime/interpreter/decode.go index acb204ea96..592589781a 100644 --- a/runtime/interpreter/decode.go +++ b/runtime/interpreter/decode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -324,6 +324,15 @@ func (d StorableDecoder) decodeStorable() (atree.Storable, error) { case CBORTagAccountCapabilityControllerValue: storable, err = d.decodeAccountCapabilityController() + case CBORTagPathCapabilityValue: + storable, err = d.decodePathCapability() + + case CBORTagPathLinkValue: + storable, err = d.decodePathLink() + + case CBORTagAccountLinkValue: + storable, err = d.decodeAccountLink() + default: return nil, UnsupportedTagDecodingError{ Tag: num, @@ -348,15 +357,15 @@ func (d StorableDecoder) decodeCharacter() (CharacterValue, error) { v, err := decodeCharacter(d.decoder, d.memoryGauge) if err != nil { if err, ok := err.(*cbor.WrongTypeError); ok { - return "", errors.NewUnexpectedError( + return CharacterValue{}, errors.NewUnexpectedError( "invalid Character encoding: %s", err.ActualType.String(), ) } - return "", err + return CharacterValue{}, err } if !sema.IsValidCharacter(v) { - return "", errors.NewUnexpectedError( + return CharacterValue{}, errors.NewUnexpectedError( "invalid character encoding: %s", v, ) @@ -921,7 +930,7 @@ func (d StorableDecoder) decodePath() (PathValue, error) { ), nil } -func (d StorableDecoder) decodeCapability() (*CapabilityValue, error) { +func (d StorableDecoder) decodeCapability() (*IDCapabilityValue, error) { const expectedLength = encodedCapabilityValueLength @@ -1168,7 +1177,7 @@ func (d StorableDecoder) decodePublishedValue() (*PublishedValue, error) { return nil, errors.NewUnexpectedError("invalid published value value encoding: %w", err) } - capabilityValue, ok := value.(*CapabilityValue) + capabilityValue, ok := value.(CapabilityValue) if !ok { return nil, errors.NewUnexpectedError( "invalid published value value encoding: expected capability, got %T", @@ -1220,6 +1229,156 @@ func (d StorableDecoder) decodeType() (TypeValue, error) { return NewTypeValue(d.memoryGauge, staticType), nil } +// Deprecated: decodePathCapability +func (d StorableDecoder) decodePathCapability() (*PathCapabilityValue, error) { + + const expectedLength = encodedPathCapabilityValueLength + + size, err := d.decoder.DecodeArrayHead() + if err != nil { + if e, ok := err.(*cbor.WrongTypeError); ok { + return nil, errors.NewUnexpectedError( + "invalid capability encoding: expected [%d]any, got %s", + expectedLength, + e.ActualType.String(), + ) + } + return nil, err + } + + if size != expectedLength { + return nil, errors.NewUnexpectedError( + "invalid capability encoding: expected [%d]any, got [%d]any", + expectedLength, + size, + ) + } + + // address + + // Decode address at array index encodedPathCapabilityValueAddressFieldKey + var num uint64 + num, err = d.decoder.DecodeTagNumber() + if err != nil { + return nil, errors.NewUnexpectedError( + "invalid capability address: %w", + err, + ) + } + if num != CBORTagAddressValue { + return nil, errors.NewUnexpectedError( + "invalid capability address: wrong tag %d", + num, + ) + } + address, err := d.decodeAddress() + if err != nil { + return nil, errors.NewUnexpectedError( + "invalid capability address: %w", + err, + ) + } + + // path + + // Decode path at array index encodedPathCapabilityValuePathFieldKey + pathStorable, err := d.decodeStorable() + if err != nil { + return nil, errors.NewUnexpectedError("invalid capability path: %w", err) + } + pathValue, ok := pathStorable.(PathValue) + if !ok { + return nil, errors.NewUnexpectedError("invalid capability path: invalid type %T", pathValue) + } + + // Decode borrow type at array index encodedPathCapabilityValueBorrowTypeFieldKey + + // borrow type (optional, for backwards compatibility) + // Capabilities used to be untyped, i.e. they didn't have a borrow type. + // Later an optional type parameter, the borrow type, was added to it, + // which specifies as what type the capability should be borrowed. + // + // The decoding must be backwards-compatible and support both capability values + // with a borrow type and ones without + + var borrowType StaticType + + // Optional borrow type can be CBOR nil. + err = d.decoder.DecodeNil() + if _, ok := err.(*cbor.WrongTypeError); ok { + borrowType, err = d.DecodeStaticType() + } + if err != nil { + return nil, errors.NewUnexpectedError("invalid capability borrow type encoding: %w", err) + } + + return &PathCapabilityValue{ + Address: address, + Path: pathValue, + BorrowType: borrowType, + }, nil +} + +// Deprecated: decodePathLink +func (d StorableDecoder) decodePathLink() (PathLinkValue, error) { + + const expectedLength = encodedPathLinkValueLength + + size, err := d.decoder.DecodeArrayHead() + if err != nil { + if e, ok := err.(*cbor.WrongTypeError); ok { + return EmptyPathLinkValue, errors.NewUnexpectedError( + "invalid link encoding: expected [%d]any, got %s", + expectedLength, + e.ActualType.String(), + ) + } + return EmptyPathLinkValue, err + } + + if size != expectedLength { + return EmptyPathLinkValue, errors.NewUnexpectedError( + "invalid link encoding: expected [%d]any, got [%d]any", + expectedLength, + size, + ) + } + + // Decode path at array index encodedPathLinkValueTargetPathFieldKey + num, err := d.decoder.DecodeTagNumber() + if err != nil { + return EmptyPathLinkValue, errors.NewUnexpectedError("invalid link target path encoding: %w", err) + } + if num != CBORTagPathValue { + return EmptyPathLinkValue, errors.NewUnexpectedError("invalid link target path encoding: expected CBOR tag %d, got %d", CBORTagPathValue, num) + } + pathValue, err := d.decodePath() + if err != nil { + return EmptyPathLinkValue, errors.NewUnexpectedError("invalid link target path encoding: %w", err) + } + + // Decode type at array index encodedPathLinkValueTypeFieldKey + staticType, err := d.DecodeStaticType() + if err != nil { + return EmptyPathLinkValue, errors.NewUnexpectedError("invalid link type encoding: %w", err) + } + + return PathLinkValue{ + Type: staticType, + TargetPath: pathValue, + }, nil +} + +// Deprecated: decodeAccountLink +func (d StorableDecoder) decodeAccountLink() (AccountLinkValue, error) { + err := d.decoder.Skip() + if err != nil { + return AccountLinkValue{}, err + } + + return AccountLinkValue{}, nil +} + type TypeDecoder struct { decoder *cbor.StreamDecoder memoryGauge common.MemoryGauge @@ -1283,6 +1442,9 @@ func (d TypeDecoder) DecodeStaticType() (StaticType, error) { case CBORTagCapabilityStaticType: return d.decodeCapabilityStaticType() + case CBORTagInclusiveRangeStaticType: + return d.decodeInclusiveRangeStaticType() + default: return nil, errors.NewUnexpectedError("invalid static type encoding tag: %d", number) } @@ -1496,6 +1658,12 @@ func (d TypeDecoder) decodeStaticAuthorization() (Authorization, error) { return nil, err } return UnauthorizedAccess, nil + case CBORTagInaccessibleStaticAuthorization: + err := d.decoder.DecodeNil() + if err != nil { + return nil, err + } + return InaccessibleAccess, nil case CBORTagEntitlementMapStaticAuthorization: typeID, err := d.decoder.DecodeString() if err != nil { @@ -1610,14 +1778,18 @@ func (d TypeDecoder) decodeReferenceStaticType() (StaticType, error) { return nil, err } + var hasLegacyIsAuthorized bool + var legacyIsAuthorized bool + if t == cbor.BoolType { // if we saw a bool here, this is a reference encoded in the old format - _, err := d.decoder.DecodeBool() + hasLegacyIsAuthorized = true + + legacyIsAuthorized, err = d.decoder.DecodeBool() if err != nil { return nil, err } - // TODO: better decoding for old values to compute new, sensible authorizations for them. authorization = UnauthorizedAccess } else { // Decode authorized at array index encodedReferenceStaticTypeAuthorizationFieldKey @@ -1642,11 +1814,16 @@ func (d TypeDecoder) decodeReferenceStaticType() (StaticType, error) { ) } - return NewReferenceStaticType( + referenceType := NewReferenceStaticType( d.memoryGauge, authorization, staticType, - ), nil + ) + + referenceType.HasLegacyIsAuthorized = hasLegacyIsAuthorized + referenceType.LegacyIsAuthorized = legacyIsAuthorized + + return referenceType, nil } func (d TypeDecoder) decodeDictionaryStaticType() (StaticType, error) { @@ -1867,6 +2044,17 @@ func (d TypeDecoder) decodeCompositeTypeInfo() (atree.TypeInfo, error) { ), nil } +func (d TypeDecoder) decodeInclusiveRangeStaticType() (StaticType, error) { + elementType, err := d.DecodeStaticType() + if err != nil { + return nil, errors.NewUnexpectedError( + "invalid inclusive range static type encoding: %w", + err, + ) + } + return NewInclusiveRangeStaticType(d.memoryGauge, elementType), nil +} + func DecodeTypeInfo(decoder *cbor.StreamDecoder, memoryGauge common.MemoryGauge) (atree.TypeInfo, error) { d := NewTypeDecoder(decoder, memoryGauge) diff --git a/runtime/interpreter/deepcopyremove_test.go b/runtime/interpreter/deepcopyremove_test.go index 1ad7473852..f00f35e8da 100644 --- a/runtime/interpreter/deepcopyremove_test.go +++ b/runtime/interpreter/deepcopyremove_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/div_mod_test.go b/runtime/interpreter/div_mod_test.go index eeb2ca6d38..9b84104fdf 100644 --- a/runtime/interpreter/div_mod_test.go +++ b/runtime/interpreter/div_mod_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/encode.go b/runtime/interpreter/encode.go index 997f6d5bf7..968c6514b6 100644 --- a/runtime/interpreter/encode.go +++ b/runtime/interpreter/encode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -195,11 +195,14 @@ const ( // Storage CBORTagPathValue - _ // DO NOT REPLACE! used to be used for path capabilities + // Deprecated: CBORTagPathCapabilityValue + CBORTagPathCapabilityValue _ // DO NOT REPLACE! used to be used for storage references - _ // DO NOT REPLACE! used to be used for path links + // Deprecated: CBORTagPathLinkValue + CBORTagPathLinkValue CBORTagPublishedValue - _ // DO NOT REPLACE! used to be used for account links + // Deprecated: CBORTagAccountLinkValue + CBORTagAccountLinkValue CBORTagStorageCapabilityControllerValue CBORTagAccountCapabilityControllerValue CBORTagCapabilityValue @@ -221,6 +224,14 @@ const ( CBORTagUnauthorizedStaticAuthorization CBORTagEntitlementMapStaticAuthorization CBORTagEntitlementSetStaticAuthorization + CBORTagInaccessibleStaticAuthorization + + _ + _ + _ + _ + + CBORTagInclusiveRangeStaticType // !!! *WARNING* !!! // ADD NEW TYPES *BEFORE* THIS WARNING. @@ -263,7 +274,7 @@ func (v CharacterValue) Encode(e *atree.Encoder) error { if err != nil { return err } - return e.CBOR.EncodeString(string(v)) + return e.CBOR.EncodeString(v.Str) } // Encode encodes the value as a CBOR string @@ -775,7 +786,7 @@ const ( encodedCapabilityValueLength = 3 ) -// Encode encodes CapabilityValue as +// Encode encodes IDCapabilityValue as // // cbor.Tag{ // Number: CBORTagCapabilityValue, @@ -785,7 +796,7 @@ const ( // encodedCapabilityValueBorrowTypeFieldKey: StaticType(v.BorrowType), // }, // } -func (v *CapabilityValue) Encode(e *atree.Encoder) error { +func (v *IDCapabilityValue) Encode(e *atree.Encoder) error { // Encode tag number and array head err := e.CBOR.EncodeRawBytes([]byte{ // tag number @@ -1313,6 +1324,17 @@ func (t Unauthorized) Encode(e *cbor.StreamEncoder) error { return e.EncodeNil() } +func (t Inaccessible) Encode(e *cbor.StreamEncoder) error { + err := e.EncodeRawBytes([]byte{ + // tag number + 0xd8, CBORTagInaccessibleStaticAuthorization, + }) + if err != nil { + return err + } + return e.EncodeNil() +} + func (a EntitlementMapAuthorization) Encode(e *cbor.StreamEncoder) error { err := e.EncodeRawBytes([]byte{ // tag number @@ -1444,6 +1466,25 @@ func (t *DictionaryStaticType) Encode(e *cbor.StreamEncoder) error { return t.ValueType.Encode(e) } +// Encode encodes InclusiveRangeStaticType as +// +// cbor.Tag{ +// Number: CBORTagInclusiveRangeStaticType, +// Content: StaticType(v.Type), +// } +func (t InclusiveRangeStaticType) Encode(e *cbor.StreamEncoder) error { + // Encode tag number and array head + err := e.EncodeRawBytes([]byte{ + // tag number + 0xd8, CBORTagInclusiveRangeStaticType, + }) + if err != nil { + return err + } + + return t.ElementType.Encode(e) +} + // NOTE: NEVER change, only add/increment; ensure uint64 const ( // encodedIntersectionStaticTypeLegacyTypeFieldKey uint64 = 0 diff --git a/runtime/interpreter/encoding_benchmark_test.go b/runtime/interpreter/encoding_benchmark_test.go index 85dcc84f4c..3c00608d65 100644 --- a/runtime/interpreter/encoding_benchmark_test.go +++ b/runtime/interpreter/encoding_benchmark_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/encoding_test.go b/runtime/interpreter/encoding_test.go index 6ad603fddb..e7a4b9c548 100644 --- a/runtime/interpreter/encoding_test.go +++ b/runtime/interpreter/encoding_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -3422,6 +3422,68 @@ func TestEncodeDecodeTypeValue(t *testing.T) { ) }) + t.Run("InclusiveRange, Int", func(t *testing.T) { + + t.Parallel() + + value := TypeValue{ + Type: InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeInt, + }, + } + + encoded := []byte{ + // tag + 0xd8, CBORTagTypeValue, + // array, 1 items follow + 0x81, + // tag + 0xd8, CBORTagInclusiveRangeStaticType, + // tag + 0xd8, CBORTagPrimitiveStaticType, + // positive integer 36 + 0x18, 0x24, + } + + testEncodeDecode(t, + encodeDecodeTest{ + value: value, + encoded: encoded, + }, + ) + }) + + t.Run("InclusiveRange, UInt256", func(t *testing.T) { + + t.Parallel() + + value := TypeValue{ + Type: InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeUInt256, + }, + } + + encoded := []byte{ + // tag + 0xd8, CBORTagTypeValue, + // array, 1 items follow + 0x81, + // tag + 0xd8, CBORTagInclusiveRangeStaticType, + // tag + 0xd8, CBORTagPrimitiveStaticType, + // positive integer 50 + 0x18, 0x32, + } + + testEncodeDecode(t, + encodeDecodeTest{ + value: value, + encoded: encoded, + }, + ) + }) + t.Run("without static type", func(t *testing.T) { t.Parallel() @@ -3525,7 +3587,7 @@ func TestCBORTagValue(t *testing.T) { t.Parallel() t.Run("No new types added in between", func(t *testing.T) { - require.Equal(t, byte(225), byte(CBORTag_Count)) + require.Equal(t, byte(231), byte(CBORTag_Count)) }) } diff --git a/runtime/interpreter/errors.go b/runtime/interpreter/errors.go index 123b553402..0e568b1f3f 100644 --- a/runtime/interpreter/errors.go +++ b/runtime/interpreter/errors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -340,19 +340,6 @@ func (e DestroyedResourceError) Error() string { return "resource was destroyed and cannot be used anymore" } -// ForceAssignmentToNonNilResourceError -type ForceAssignmentToNonNilResourceError struct { - LocationRange -} - -var _ errors.UserError = ForceAssignmentToNonNilResourceError{} - -func (ForceAssignmentToNonNilResourceError) IsUserError() {} - -func (e ForceAssignmentToNonNilResourceError) Error() string { - return "force assignment to non-nil resource-typed value" -} - // ForceNilError type ForceNilError struct { LocationRange @@ -414,6 +401,30 @@ func (e TypeMismatchError) Error() string { ) } +// InvalidMemberReferenceError +type InvalidMemberReferenceError struct { + ExpectedType sema.Type + ActualType sema.Type + LocationRange +} + +var _ errors.UserError = InvalidMemberReferenceError{} + +func (InvalidMemberReferenceError) IsUserError() {} + +func (e InvalidMemberReferenceError) Error() string { + expected, actual := sema.ErrorMessageExpectedActualTypes( + e.ExpectedType, + e.ActualType, + ) + + return fmt.Sprintf( + "cannot create reference: expected `%s`, got `%s`", + expected, + actual, + ) +} + // InvalidPathDomainError type InvalidPathDomainError struct { LocationRange @@ -671,6 +682,23 @@ func (e ValueTransferTypeError) Error() string { ) } +// UnexpectedMappedEntitlementError +type UnexpectedMappedEntitlementError struct { + Type sema.Type + LocationRange +} + +var _ errors.InternalError = UnexpectedMappedEntitlementError{} + +func (UnexpectedMappedEntitlementError) IsInternalError() {} + +func (e UnexpectedMappedEntitlementError) Error() string { + return fmt.Sprintf( + "invalid transfer of value: found an unexpected runtime mapped entitlement `%s`", + e.Type.QualifiedString(), + ) +} + // ResourceConstructionError type ResourceConstructionError struct { CompositeType *sema.CompositeType @@ -979,3 +1007,128 @@ func WrappedExternalError(err error) error { return errors.NewExternalError(err) } } + +// CapabilityAddressPublishingError +type CapabilityAddressPublishingError struct { + LocationRange + CapabilityAddress AddressValue + AccountAddress AddressValue +} + +var _ errors.UserError = CapabilityAddressPublishingError{} + +func (CapabilityAddressPublishingError) IsUserError() {} + +func (e CapabilityAddressPublishingError) Error() string { + return fmt.Sprintf( + "cannot publish capability of account %s in account %s", + e.CapabilityAddress.String(), + e.AccountAddress.String(), + ) +} + +// NestedReferenceError +type NestedReferenceError struct { + Value ReferenceValue + LocationRange +} + +var _ errors.UserError = NestedReferenceError{} + +func (NestedReferenceError) IsUserError() {} + +func (e NestedReferenceError) Error() string { + return fmt.Sprintf( + "cannot create a nested reference to %s", + e.Value.String(), + ) +} + +// InclusiveRangeConstructionError + +type InclusiveRangeConstructionError struct { + LocationRange + Message string +} + +var _ errors.UserError = InclusiveRangeConstructionError{} + +func (InclusiveRangeConstructionError) IsUserError() {} + +func (e InclusiveRangeConstructionError) Error() string { + const message = "InclusiveRange construction failed" + if e.Message == "" { + return message + } + return fmt.Sprintf("%s: %s", message, e.Message) +} + +// InvalidCapabilityIssueTypeError +type InvalidCapabilityIssueTypeError struct { + ExpectedTypeDescription string + ActualType sema.Type + LocationRange +} + +var _ errors.UserError = InvalidCapabilityIssueTypeError{} + +func (InvalidCapabilityIssueTypeError) IsUserError() {} + +func (e InvalidCapabilityIssueTypeError) Error() string { + return fmt.Sprintf( + "invalid type: expected %s, got `%s`", + e.ExpectedTypeDescription, + e.ActualType.QualifiedString(), + ) +} + +// ResourceReferenceDereferenceError +type ResourceReferenceDereferenceError struct { + LocationRange +} + +var _ errors.InternalError = ResourceReferenceDereferenceError{} + +func (ResourceReferenceDereferenceError) IsInternalError() {} + +func (e ResourceReferenceDereferenceError) Error() string { + return "internal error: resource-references cannot be dereferenced" +} + +// ResourceLossError +type ResourceLossError struct { + LocationRange +} + +var _ errors.UserError = ResourceLossError{} + +func (ResourceLossError) IsUserError() {} + +func (e ResourceLossError) Error() string { + return "resource loss: attempting to assign to non-nil resource-typed value" +} + +// InvalidCapabilityIDError + +type InvalidCapabilityIDError struct{} + +var _ errors.InternalError = InvalidCapabilityIDError{} + +func (InvalidCapabilityIDError) IsInternalError() {} + +func (e InvalidCapabilityIDError) Error() string { + return "capability created with invalid ID" +} + +// ReferencedValueChangedError +type ReferencedValueChangedError struct { + LocationRange +} + +var _ errors.UserError = ReferencedValueChangedError{} + +func (ReferencedValueChangedError) IsUserError() {} + +func (e ReferencedValueChangedError) Error() string { + return "referenced value has been changed after taking the reference" +} diff --git a/runtime/interpreter/errors_test.go b/runtime/interpreter/errors_test.go index 6e97e8f1a1..7ade010b1d 100644 --- a/runtime/interpreter/errors_test.go +++ b/runtime/interpreter/errors_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/globalvariables.go b/runtime/interpreter/globalvariables.go index b2b8033f1c..4bc326ccab 100644 --- a/runtime/interpreter/globalvariables.go +++ b/runtime/interpreter/globalvariables.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ package interpreter // GlobalVariables represents global variables defined in a program. type GlobalVariables struct { - variables map[string]*Variable + variables map[string]Variable } func (g *GlobalVariables) Contains(name string) bool { @@ -31,16 +31,16 @@ func (g *GlobalVariables) Contains(name string) bool { return ok } -func (g *GlobalVariables) Get(name string) *Variable { +func (g *GlobalVariables) Get(name string) Variable { if g.variables == nil { return nil } return g.variables[name] } -func (g *GlobalVariables) Set(name string, variable *Variable) { +func (g *GlobalVariables) Set(name string, variable Variable) { if g.variables == nil { - g.variables = map[string]*Variable{} + g.variables = map[string]Variable{} } g.variables[name] = variable } diff --git a/runtime/interpreter/hashablevalue.go b/runtime/interpreter/hashablevalue.go index 05983e2b8f..1040a052a0 100644 --- a/runtime/interpreter/hashablevalue.go +++ b/runtime/interpreter/hashablevalue.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/hashablevalue_test.go b/runtime/interpreter/hashablevalue_test.go index 3140216067..f60b06e201 100644 --- a/runtime/interpreter/hashablevalue_test.go +++ b/runtime/interpreter/hashablevalue_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/import.go b/runtime/interpreter/import.go index 0d98f1d30a..6ae7582d85 100644 --- a/runtime/interpreter/import.go +++ b/runtime/interpreter/import.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/inspect.go b/runtime/interpreter/inspect.go index c18de009b5..5922f3d550 100644 --- a/runtime/interpreter/inspect.go +++ b/runtime/interpreter/inspect.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,6 +28,11 @@ func (f valueInspector) WalkValue(_ *Interpreter, value Value) ValueWalker { return nil } -func InspectValue(interpreter *Interpreter, value Value, f func(Value) bool) { - WalkValue(interpreter, valueInspector(f), value) +func InspectValue(interpreter *Interpreter, value Value, f func(Value) bool, locationRange LocationRange) { + WalkValue( + interpreter, + valueInspector(f), + value, + locationRange, + ) } diff --git a/runtime/interpreter/inspect_test.go b/runtime/interpreter/inspect_test.go index e348fc7eb7..afb4862f2c 100644 --- a/runtime/interpreter/inspect_test.go +++ b/runtime/interpreter/inspect_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,6 +91,7 @@ func TestInspectValue(t *testing.T) { inspectedValues = append(inspectedValues, value) return true }, + EmptyLocationRange, ) AssertValueSlicesEqual( @@ -119,6 +120,7 @@ func TestInspectValue(t *testing.T) { inspectedValues = append(inspectedValues, value) return true }, + EmptyLocationRange, ) AssertValueSlicesEqual( diff --git a/runtime/interpreter/integer.go b/runtime/interpreter/integer.go new file mode 100644 index 0000000000..873b8c0028 --- /dev/null +++ b/runtime/interpreter/integer.go @@ -0,0 +1,114 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package interpreter + +import ( + "sync" + + "github.com/onflow/cadence/runtime/errors" +) + +func GetSmallIntegerValue(value int8, staticType StaticType) IntegerValue { + return cachedSmallIntegerValues.Get(value, staticType) +} + +type integerValueCacheKey struct { + value int8 + staticType StaticType +} + +type smallIntegerValueCache struct { + m sync.Map +} + +var cachedSmallIntegerValues = smallIntegerValueCache{} + +func (c *smallIntegerValueCache) Get(value int8, staticType StaticType) IntegerValue { + key := integerValueCacheKey{ + value: value, + staticType: staticType, + } + + existingValue, ok := c.m.Load(key) + if ok { + return existingValue.(IntegerValue) + } + + newValue := c.new(value, staticType) + c.m.Store(key, newValue) + return newValue +} + +// getValueForIntegerType returns a Cadence integer value +// of the given Cadence static type for the given Go integer value. +// +// It is important NOT to meter the memory usage in this function, +// as it would lead to non-determinism as the values produced by this function are cached. +// It could happen that on some execution nodes the value might be cached due to executing a +// transaction or script that needed the value previously, while on other execution nodes it might +// not be cached yet. +func (c *smallIntegerValueCache) new(value int8, staticType StaticType) IntegerValue { + switch staticType { + case PrimitiveStaticTypeInt: + return NewUnmeteredIntValueFromInt64(int64(value)) + case PrimitiveStaticTypeInt8: + return NewUnmeteredInt8Value(value) + case PrimitiveStaticTypeInt16: + return NewUnmeteredInt16Value(int16(value)) + case PrimitiveStaticTypeInt32: + return NewUnmeteredInt32Value(int32(value)) + case PrimitiveStaticTypeInt64: + return NewUnmeteredInt64Value(int64(value)) + case PrimitiveStaticTypeInt128: + return NewUnmeteredInt128ValueFromInt64(int64(value)) + case PrimitiveStaticTypeInt256: + return NewUnmeteredInt256ValueFromInt64(int64(value)) + + case PrimitiveStaticTypeUInt: + return NewUnmeteredUIntValueFromUint64(uint64(value)) + case PrimitiveStaticTypeUInt8: + return NewUnmeteredUInt8Value(uint8(value)) + case PrimitiveStaticTypeUInt16: + return NewUnmeteredUInt16Value(uint16(value)) + case PrimitiveStaticTypeUInt32: + return NewUnmeteredUInt32Value(uint32(value)) + case PrimitiveStaticTypeUInt64: + return NewUnmeteredUInt64Value(uint64(value)) + case PrimitiveStaticTypeUInt128: + return NewUnmeteredUInt128ValueFromUint64(uint64(value)) + case PrimitiveStaticTypeUInt256: + return NewUnmeteredUInt256ValueFromUint64(uint64(value)) + + case PrimitiveStaticTypeWord8: + return NewUnmeteredWord8Value(uint8(value)) + case PrimitiveStaticTypeWord16: + return NewUnmeteredWord16Value(uint16(value)) + case PrimitiveStaticTypeWord32: + return NewUnmeteredWord32Value(uint32(value)) + case PrimitiveStaticTypeWord64: + return NewUnmeteredWord64Value(uint64(value)) + case PrimitiveStaticTypeWord128: + return NewUnmeteredWord128ValueFromUint64(uint64(value)) + case PrimitiveStaticTypeWord256: + return NewUnmeteredWord256ValueFromUint64(uint64(value)) + + default: + panic(errors.NewUnreachableError()) + } +} diff --git a/runtime/interpreter/interpreter.go b/runtime/interpreter/interpreter.go index e35845802d..46edcb3d48 100644 --- a/runtime/interpreter/interpreter.go +++ b/runtime/interpreter/interpreter.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import ( "fmt" "math" "math/big" + "sort" "strconv" "time" @@ -37,20 +38,11 @@ import ( "github.com/onflow/cadence/runtime/activations" "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/sema" ) -// - -var emptyImpureFunctionType = sema.NewSimpleFunctionType( - sema.FunctionPurityImpure, - nil, - sema.VoidTypeAnnotation, -) - -// - type getterSetter struct { target Value // allowMissing may be true when the got value is nil. @@ -159,6 +151,7 @@ type ImportLocationHandlerFunc func( // AccountHandlerFunc is a function that handles retrieving an auth account at a given address. // The account returned must be of type `Account`. type AccountHandlerFunc func( + inter *Interpreter, address AddressValue, ) Value @@ -168,6 +161,16 @@ type UUIDHandlerFunc func() (uint64, error) // CompositeTypeHandlerFunc is a function that loads composite types. type CompositeTypeHandlerFunc func(location common.Location, typeID TypeID) *sema.CompositeType +// InterfaceTypeHandlerFunc is a function that loads interface types. +type InterfaceTypeHandlerFunc func(location common.Location, typeID TypeID) *sema.InterfaceType + +// CompositeValueFunctionsHandlerFunc is a function that loads composite value functions. +type CompositeValueFunctionsHandlerFunc func( + inter *Interpreter, + locationRange LocationRange, + compositeValue *CompositeValue, +) *FunctionOrderedMap + // CompositeTypeCode contains the "prepared" / "callable" "code" // for the functions and the destructor of a composite // (contract, struct, resource, event). @@ -175,8 +178,7 @@ type CompositeTypeHandlerFunc func(location common.Location, typeID TypeID) *sem // As there is no support for inheritance of concrete types, // these are the "leaf" nodes in the call chain, and are functions. type CompositeTypeCode struct { - CompositeFunctions map[string]FunctionValue - DestructorFunction FunctionValue + CompositeFunctions *FunctionOrderedMap } type FunctionWrapper = func(inner FunctionValue) FunctionValue @@ -187,10 +189,10 @@ type FunctionWrapper = func(inner FunctionValue) FunctionValue // These are "branch" nodes in the call chain, and are function wrappers, // i.e. they wrap the functions / function wrappers that inherit them. type WrapperCode struct { - InitializerFunctionWrapper FunctionWrapper - DestructorFunctionWrapper FunctionWrapper - FunctionWrappers map[string]FunctionWrapper - Functions map[string]FunctionValue + InitializerFunctionWrapper FunctionWrapper + FunctionWrappers map[string]FunctionWrapper + Functions *FunctionOrderedMap + DefaultDestroyEventConstructor FunctionValue } // TypeCodes is the value which stores the "prepared" / "callable" "code" @@ -220,7 +222,7 @@ type Storage interface { CheckHealth() error } -type ReferencedResourceKindedValues map[atree.StorageID]map[ReferenceTrackedResourceKindedValue]struct{} +type ReferencedResourceKindedValues map[atree.StorageID]map[*EphemeralReferenceValue]struct{} type Interpreter struct { Location common.Location @@ -244,7 +246,7 @@ var BaseActivation *VariableActivation func init() { // No need to meter since this is only created once - BaseActivation = activations.NewActivation[*Variable](nil, nil) + BaseActivation = activations.NewActivation[Variable](nil, nil) defineBaseFunctions(BaseActivation) } @@ -277,9 +279,15 @@ func NewInterpreterWithSharedState( sharedState.allInterpreters[location] = interpreter } - interpreter.activations = activations.NewActivations[*Variable](interpreter) + // Initialize activations + + interpreter.activations = activations.NewActivations[Variable](interpreter) - baseActivation := sharedState.Config.BaseActivation + var baseActivation *VariableActivation + baseActivationHandler := sharedState.Config.BaseActivationHandler + if baseActivationHandler != nil { + baseActivation = baseActivationHandler(location) + } if baseActivation == nil { baseActivation = BaseActivation } @@ -289,11 +297,11 @@ func NewInterpreterWithSharedState( return interpreter, nil } -func (interpreter *Interpreter) FindVariable(name string) *Variable { +func (interpreter *Interpreter) FindVariable(name string) Variable { return interpreter.activations.Find(name) } -func (interpreter *Interpreter) findOrDeclareVariable(name string) *Variable { +func (interpreter *Interpreter) findOrDeclareVariable(name string) Variable { variable := interpreter.FindVariable(name) if variable == nil { variable = interpreter.declareVariable(name, nil) @@ -301,7 +309,7 @@ func (interpreter *Interpreter) findOrDeclareVariable(name string) *Variable { return variable } -func (interpreter *Interpreter) setVariable(name string, variable *Variable) { +func (interpreter *Interpreter) setVariable(name string, variable Variable) { interpreter.activations.Set(name, variable) } @@ -360,7 +368,7 @@ func (interpreter *Interpreter) invokeVariable( } } - variableValue := variable.GetValue() + variableValue := variable.GetValue(interpreter) // the global variable must be declared as a function functionValue, ok := variableValue.(FunctionValue) @@ -433,7 +441,7 @@ func (interpreter *Interpreter) InvokeExternally( } } - var self *MemberAccessibleValue + var self *Value var base *EphemeralReferenceValue var boundAuth Authorization if boundFunc, ok := functionValue.(BoundFunctionValue); ok { @@ -619,11 +627,11 @@ func (interpreter *Interpreter) VisitProgram(program *ast.Program) { // which will evaluate the variable declaration. The resulting value // is reused for subsequent reads of the variable. - var variableDeclarationVariables []*Variable + var variableDeclarationVariables []Variable variableDeclarationCount := len(program.VariableDeclarations()) if variableDeclarationCount > 0 { - variableDeclarationVariables = make([]*Variable, 0, variableDeclarationCount) + variableDeclarationVariables = make([]Variable, 0, variableDeclarationCount) for _, declaration := range program.VariableDeclarations() { @@ -634,13 +642,10 @@ func (interpreter *Interpreter) VisitProgram(program *ast.Program) { identifier := declaration.Identifier.Identifier - var variable *Variable + var variable Variable variable = NewVariableWithGetter(interpreter, func() Value { - var result Value - interpreter.visitVariableDeclaration(declaration, func(_ string, value Value) { - result = value - }) + result := interpreter.visitVariableDeclaration(declaration, false) // Global variables are lazily loaded. Therefore, start resource tracking also // lazily when the resource is used for the first time. @@ -665,7 +670,7 @@ func (interpreter *Interpreter) VisitProgram(program *ast.Program) { // in the order they were declared. for _, variable := range variableDeclarationVariables { - _ = variable.GetValue() + _ = variable.GetValue(interpreter) } } @@ -688,12 +693,19 @@ func (interpreter *Interpreter) VisitFunctionDeclaration(declaration *ast.Functi // make the function itself available inside the function lexicalScope.Set(identifier, variable) + value := interpreter.functionDeclarationValue( + declaration, + functionType, + lexicalScope, + ) + variable.SetValue( - interpreter.functionDeclarationValue( - declaration, - functionType, - lexicalScope, - ), + interpreter, + LocationRange{ + Location: interpreter.Location, + HasPosition: declaration, + }, + value, ) return nil @@ -747,6 +759,7 @@ func (interpreter *Interpreter) visitFunctionBody( body func() StatementResult, postConditions ast.Conditions, returnType sema.Type, + declarationLocationRange LocationRange, ) Value { // block scope: each function block gets an activation record @@ -776,7 +789,7 @@ func (interpreter *Interpreter) visitFunctionBody( // If there is a return type, declare the constant `result`. if returnType != sema.VoidType { - resultValue := interpreter.resultValue(returnValue, returnType) + resultValue := interpreter.resultValue(returnValue, returnType, declarationLocationRange) interpreter.declareVariable( sema.ResultIdentifier, resultValue, @@ -796,23 +809,17 @@ func (interpreter *Interpreter) visitFunctionBody( // If the return type is a resource: // - The constant has the same type as a reference to the return type. // - `result` value is a reference to the return value. -func (interpreter *Interpreter) resultValue(returnValue Value, returnType sema.Type) Value { +func (interpreter *Interpreter) resultValue(returnValue Value, returnType sema.Type, declarationLocationRange LocationRange) Value { if !returnType.IsResourceType() { return returnValue } resultAuth := func(ty sema.Type) Authorization { - var auth Authorization = UnauthorizedAccess + auth := UnauthorizedAccess // reference is authorized to the entire resource, since it is only accessible in a function where a resource value is owned if entitlementSupportingType, ok := ty.(sema.EntitlementSupportingType); ok { - supportedEntitlements := entitlementSupportingType.SupportedEntitlements() - if supportedEntitlements != nil && supportedEntitlements.Len() > 0 { - access := sema.EntitlementSetAccess{ - SetKind: sema.Conjunction, - Entitlements: supportedEntitlements, - } - auth = ConvertSemaAccessToStaticAuthorization(interpreter, access) - } + access := entitlementSupportingType.SupportedEntitlements().Access() + auth = ConvertSemaAccessToStaticAuthorization(interpreter, access) } return auth } @@ -827,17 +834,22 @@ func (interpreter *Interpreter) resultValue(returnValue Value, returnType sema.T resultAuth(returnType), returnValue.value, optionalType.Type, + declarationLocationRange, ) - interpreter.maybeTrackReferencedResourceKindedValue(returnValue.value) return NewSomeValueNonCopying(interpreter, innerValue) case NilValue: return NilValue{} } } - interpreter.maybeTrackReferencedResourceKindedValue(returnValue) - return NewEphemeralReferenceValue(interpreter, resultAuth(returnType), returnValue, returnType) + return NewEphemeralReferenceValue( + interpreter, + resultAuth(returnType), + returnValue, + returnType, + declarationLocationRange, + ) } func (interpreter *Interpreter) visitConditions(conditions ast.Conditions, kind ast.ConditionKind) { @@ -893,8 +905,9 @@ func (interpreter *Interpreter) visitCondition(condition ast.Condition, kind ast } // declareVariable declares a variable in the latest scope -func (interpreter *Interpreter) declareVariable(identifier string, value Value) *Variable { +func (interpreter *Interpreter) declareVariable(identifier string, value Value) Variable { // NOTE: semantic analysis already checked possible invalid redeclaration + variable := NewVariableWithValue(interpreter, value) interpreter.setVariable(identifier, variable) @@ -904,47 +917,58 @@ func (interpreter *Interpreter) declareVariable(identifier string, value Value) return variable } +// declareSelfVariable declares a special "self" variable in the latest scope +func (interpreter *Interpreter) declareSelfVariable(value Value, locationRange LocationRange) Variable { + identifier := sema.SelfIdentifier + + // If the self variable is already a reference (e.g: in attachments), + // then declare it as a normal variable. + // No need to explicitly create a new reference for tracking. + + switch value := value.(type) { + case ReferenceValue: + return interpreter.declareVariable(identifier, value) + case *SimpleCompositeValue: + if value.isTransaction { + return interpreter.declareVariable(identifier, value) + } + } + + // NOTE: semantic analysis already checked possible invalid redeclaration + variable := NewSelfVariableWithValue(interpreter, value, locationRange) + interpreter.setVariable(identifier, variable) + + interpreter.startResourceTracking(value, variable, identifier, locationRange) + + return variable +} + func (interpreter *Interpreter) visitAssignment( transferOperation ast.TransferOperation, - targetExpression ast.Expression, targetType sema.Type, + targetGetterSetter getterSetter, targetType sema.Type, valueExpression ast.Expression, valueType sema.Type, position ast.HasPosition, ) { - // First evaluate the target, which results in a getter/setter function pair - getterSetter := interpreter.assignmentGetterSetter(targetExpression) - locationRange := LocationRange{ Location: interpreter.Location, HasPosition: position, } - // If the assignment is a forced move, - // ensure that the target is nil, - // otherwise panic - - if transferOperation == ast.TransferOperationMoveForced { + // Evaluate the value, and assign it using the setter function - // If the force-move assignment is used for the initialization of a field, - // then there is no prior value for the field, so allow missing - - const allowMissing = true - - target := getterSetter.get(allowMissing) - - if _, ok := target.(NilValue); !ok && target != nil { - panic(ForceAssignmentToNonNilResourceError{ - LocationRange: locationRange, - }) - } - } - - // Finally, evaluate the value, and assign it using the setter function + // Here it is too early to check whether the existing value is a + // valid non-nil resource (i.e: causing a resource loss), because + // evaluating the `valueExpression` could change things, and + // a `nil`/invalid resource at this point could be valid after + // the evaluation of `valueExpression`. + // Therefore, delay the checking of resource loss as much as possible, + // and check it at the 'setter', at the point where the value is assigned. value := interpreter.evalExpression(valueExpression) transferredValue := interpreter.transferAndConvert(value, valueType, targetType, locationRange) - getterSetter.set(transferredValue) + targetGetterSetter.set(transferredValue) } // NOTE: only called for top-level composite declarations @@ -970,11 +994,70 @@ func (interpreter *Interpreter) declareAttachmentValue( lexicalScope *VariableActivation, ) ( scope *VariableActivation, - variable *Variable, + variable Variable, ) { return interpreter.declareCompositeValue(declaration, lexicalScope) } +// evaluateDefaultDestroyEvent evaluates all the implicit default arguments to the default destroy event. +// +// the handling of default arguments makes a number of assumptions to simplify the implementation; +// namely that a) all default arguments are lazily evaluated at the site of the invocation, +// b) that either all the parameters or none of the parameters of a function have default arguments, +// and c) functions cannot currently be explicitly invoked if they have default arguments +// +// if we plan to generalize this further, we will need to relax those assumptions +func (interpreter *Interpreter) evaluateDefaultDestroyEvent( + containingResourceComposite *CompositeValue, + eventDecl *ast.CompositeDeclaration, + declarationActivation *VariableActivation, +) (arguments []Value) { + + declarationInterpreter := interpreter + parameters := eventDecl.DeclarationMembers().Initializers()[0].FunctionDeclaration.ParameterList.Parameters + + declarationInterpreter.activations.PushNewWithParent(declarationActivation) + defer declarationInterpreter.activations.Pop() + + locationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: eventDecl, + } + + var self MemberAccessibleValue = containingResourceComposite + if containingResourceComposite.Kind == common.CompositeKindAttachment { + var base *EphemeralReferenceValue + // in evaluation of destroy events, base and self are fully entitled, as the value must be owned + entitlementSupportingType, ok := interpreter.MustSemaTypeOfValue(containingResourceComposite).(sema.EntitlementSupportingType) + if !ok { + panic(errors.NewUnreachableError()) + } + supportedEntitlements := entitlementSupportingType.SupportedEntitlements() + access := supportedEntitlements.Access() + base, self = attachmentBaseAndSelfValues( + declarationInterpreter, + access, + containingResourceComposite, + locationRange, + ) + declarationInterpreter.declareVariable(sema.BaseIdentifier, base) + } + declarationInterpreter.declareSelfVariable(self, locationRange) + + for _, parameter := range parameters { + // "lazily" evaluate the default argument expressions. + // This is "lazy" with respect to the event's declaration: + // if we declare a default event `ResourceDestroyed(foo: Int = self.x)`, + // `self.x` is evaluated in the context that exists when the event is destroyed, + // not the context when it is declared. This function is only called after the destroy + // triggers the event emission, so with respect to this function it's "eager". + defaultArg := declarationInterpreter.evalExpression(parameter.DefaultArgument) + arguments = append(arguments, defaultArg) + } + + return +} + // declareCompositeValue creates and declares the value for // the composite declaration. // @@ -996,7 +1079,7 @@ func (interpreter *Interpreter) declareCompositeValue( lexicalScope *VariableActivation, ) ( scope *VariableActivation, - variable *Variable, + variable Variable, ) { if declaration.Kind() == common.CompositeKindEnum { return interpreter.declareEnumConstructor(declaration.(*ast.CompositeDeclaration), lexicalScope) @@ -1005,16 +1088,16 @@ func (interpreter *Interpreter) declareCompositeValue( } } -func (interpreter *Interpreter) declareNonEnumCompositeValue( +func (declarationInterpreter *Interpreter) declareNonEnumCompositeValue( declaration ast.CompositeLikeDeclaration, lexicalScope *VariableActivation, ) ( scope *VariableActivation, - variable *Variable, + variable Variable, ) { identifier := declaration.DeclarationIdentifier().Identifier // NOTE: find *or* declare, as the function might have not been pre-declared (e.g. in the REPL) - variable = interpreter.findOrDeclareVariable(identifier) + variable = declarationInterpreter.findOrDeclareVariable(identifier) // Make the value available in the initializer lexicalScope.Set(identifier, variable) @@ -1022,18 +1105,20 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( // Evaluate nested declarations in a new scope, so values // of nested declarations won't be visible after the containing declaration - nestedVariables := map[string]*Variable{} + nestedVariables := map[string]Variable{} + + var destroyEventConstructor FunctionValue (func() { - interpreter.activations.PushNewWithCurrent() - defer interpreter.activations.Pop() + declarationInterpreter.activations.PushNewWithCurrent() + defer declarationInterpreter.activations.Pop() // Pre-declare empty variables for all interfaces, composites, and function declarations predeclare := func(identifier ast.Identifier) { name := identifier.Identifier lexicalScope.Set( name, - interpreter.declareVariable(name, nil), + declarationInterpreter.declareVariable(name, nil), ) } @@ -1052,7 +1137,7 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( } for _, nestedInterfaceDeclaration := range members.Interfaces() { - interpreter.declareInterface(nestedInterfaceDeclaration, lexicalScope) + declarationInterpreter.declareInterface(nestedInterfaceDeclaration, lexicalScope) } for _, nestedCompositeDeclaration := range members.Composites() { @@ -1061,15 +1146,20 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( // to the nested declarations so they can refer to it, and update the lexical scope // so the container's functions can refer to the nested composite's value - var nestedVariable *Variable + var nestedVariable Variable lexicalScope, nestedVariable = - interpreter.declareCompositeValue( + declarationInterpreter.declareCompositeValue( nestedCompositeDeclaration, lexicalScope, ) memberIdentifier := nestedCompositeDeclaration.Identifier.Identifier nestedVariables[memberIdentifier] = nestedVariable + + // statically we know there is at most one of these + if nestedCompositeDeclaration.IsResourceDestructionDefaultEvent() { + destroyEventConstructor = nestedVariable.GetValue(declarationInterpreter).(FunctionValue) + } } for _, nestedAttachmentDeclaration := range members.Attachments() { @@ -1078,9 +1168,9 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( // to the nested declarations so they can refer to it, and update the lexical scope // so the container's functions can refer to the nested composite's value - var nestedVariable *Variable + var nestedVariable Variable lexicalScope, nestedVariable = - interpreter.declareAttachmentValue( + declarationInterpreter.declareAttachmentValue( nestedAttachmentDeclaration, lexicalScope, ) @@ -1090,24 +1180,53 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( } })() - compositeType := interpreter.Program.Elaboration.CompositeDeclarationType(declaration) + compositeType := declarationInterpreter.Program.Elaboration.CompositeDeclarationType(declaration) initializerType := compositeType.InitializerFunctionType() + declarationActivation := declarationInterpreter.activations.CurrentOrNew() + var initializerFunction FunctionValue if declaration.Kind() == common.CompositeKindEvent { - initializerFunction = NewHostFunctionValue( - interpreter, + // Initializer could ideally be a bound function. + // However, since it is created and being called here itself, and + // because it is never passed around, it is OK to just create as static function + // without the bound-function wrapper. + initializerFunction = NewStaticHostFunctionValue( + declarationInterpreter, initializerType, func(invocation Invocation) Value { - inter := invocation.Interpreter + invocationInterpreter := invocation.Interpreter locationRange := invocation.LocationRange self := *invocation.Self + compositeSelf, ok := self.(*CompositeValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + if len(compositeType.ConstructorParameters) < 1 { + return nil + } + + // event interfaces do not exist + compositeDecl := declaration.(*ast.CompositeDeclaration) + if compositeDecl.IsResourceDestructionDefaultEvent() { + // we implicitly pass the containing composite value as an argument to this invocation + containerComposite := invocation.Arguments[0].(*CompositeValue) + invocation.Arguments = declarationInterpreter.evaluateDefaultDestroyEvent( + containerComposite, + compositeDecl, + // to properly lexically scope the evaluation of default arguments, we capture the + // activations existing at the time when the event was defined and use them here + declarationActivation, + ) + } + for i, argument := range invocation.Arguments { parameter := compositeType.ConstructorParameters[i] - self.SetMember( - inter, + compositeSelf.SetMember( + invocationInterpreter, locationRange, parameter.Identifier, argument, @@ -1117,21 +1236,19 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( }, ) } else { - compositeInitializerFunction := interpreter.compositeInitializerFunction(declaration, lexicalScope) + compositeInitializerFunction := declarationInterpreter.compositeInitializerFunction(declaration, lexicalScope) if compositeInitializerFunction != nil { initializerFunction = compositeInitializerFunction } } - var destructorFunction FunctionValue - compositeDestructorFunction := interpreter.compositeDestructorFunction(declaration, lexicalScope) - if compositeDestructorFunction != nil { - destructorFunction = compositeDestructorFunction - } + functions := declarationInterpreter.compositeFunctions(declaration, lexicalScope) - functions := interpreter.compositeFunctions(declaration, lexicalScope) + if destroyEventConstructor != nil { + functions.Set(resourceDefaultDestroyEventName(compositeType), destroyEventConstructor) + } - wrapFunctions := func(code WrapperCode) { + wrapFunctions := func(ty *sema.InterfaceType, code WrapperCode) { // Wrap initializer @@ -1142,29 +1259,22 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( initializerFunction = initializerFunctionWrapper(initializerFunction) } - // Wrap destructor - - destructorFunctionWrapper := - code.DestructorFunctionWrapper - - if destructorFunctionWrapper != nil { - destructorFunction = destructorFunctionWrapper(destructorFunction) - } - // Apply default functions, if conforming type does not provide the function // Iterating over the map in a non-deterministic way is OK, // we only apply the function wrapper to each function, // the order does not matter. - for name, function := range code.Functions { //nolint:maprange - if functions[name] != nil { - continue - } - if functions == nil { - functions = map[string]FunctionValue{} - } - functions[name] = function + if code.Functions != nil { + code.Functions.Foreach(func(name string, function FunctionValue) { + if functions == nil { + functions = orderedmap.New[FunctionOrderedMap](code.Functions.Len()) + } + if functions.Contains(name) { + return + } + functions.Set(name, function) + }) } // Wrap functions @@ -1174,32 +1284,37 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( // the order does not matter. for name, functionWrapper := range code.FunctionWrappers { //nolint:maprange - functions[name] = functionWrapper(functions[name]) + fn, _ := functions.Get(name) + functions.Set(name, functionWrapper(fn)) + } + + if code.DefaultDestroyEventConstructor != nil { + functions.Set(resourceDefaultDestroyEventName(ty), code.DefaultDestroyEventConstructor) } } conformances := compositeType.EffectiveInterfaceConformances() for i := len(conformances) - 1; i >= 0; i-- { conformance := conformances[i].InterfaceType - wrapFunctions(interpreter.SharedState.typeCodes.InterfaceCodes[conformance.ID()]) + wrapFunctions(conformance, declarationInterpreter.SharedState.typeCodes.InterfaceCodes[conformance.ID()]) } - interpreter.SharedState.typeCodes.CompositeCodes[compositeType.ID()] = CompositeTypeCode{ - DestructorFunction: destructorFunction, + declarationInterpreter.SharedState.typeCodes.CompositeCodes[compositeType.ID()] = CompositeTypeCode{ CompositeFunctions: functions, } - location := interpreter.Location + location := declarationInterpreter.Location qualifiedIdentifier := compositeType.QualifiedIdentifier() - config := interpreter.SharedState.Config + config := declarationInterpreter.SharedState.Config constructorType := compositeType.ConstructorFunctionType() constructorGenerator := func(address common.Address) *HostFunctionValue { - return NewHostFunctionValue( - interpreter, + // Constructor is a static function. + return NewStaticHostFunctionValue( + declarationInterpreter, constructorType, func(invocation Invocation) Value { @@ -1273,26 +1388,31 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( address, ) - value.InjectedFields = injectedFields + value.injectedFields = injectedFields value.Functions = functions - value.Destructor = destructorFunction - var self MemberAccessibleValue = value + var self Value = value if declaration.Kind() == common.CompositeKindAttachment { - var auth Authorization = UnauthorizedAccess attachmentType := interpreter.MustSemaTypeOfValue(value).(*sema.CompositeType) - // Self's type in the constructor is codomain of the attachment's entitlement map, since + // Self's type in the constructor is fully entitled, since // the constructor can only be called when in possession of the base resource - // if the attachment is declared with access(all) access, then self is unauthorized - if attachmentType.AttachmentEntitlementAccess != nil { - auth = ConvertSemaAccessToStaticAuthorization(interpreter, attachmentType.AttachmentEntitlementAccess.Codomain()) - } - self = NewEphemeralReferenceValue(interpreter, auth, value, attachmentType) + + access := attachmentType.SupportedEntitlements().Access() + auth := ConvertSemaAccessToStaticAuthorization(interpreter, access) + + self = NewEphemeralReferenceValue(interpreter, auth, value, attachmentType, locationRange) // set the base to the implicitly provided value, and remove this implicit argument from the list implicitArgumentPos := len(invocation.Arguments) - 1 invocation.Base = invocation.Arguments[implicitArgumentPos].(*EphemeralReferenceValue) + + var ok bool + value.base, ok = invocation.Base.Value.(*CompositeValue) + if !ok { + panic(errors.NewUnreachableError()) + } + invocation.Arguments[implicitArgumentPos] = nil invocation.Arguments = invocation.Arguments[:implicitArgumentPos] invocation.ArgumentTypes[implicitArgumentPos] = nil @@ -1304,7 +1424,7 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( // NOTE: set the variable value immediately, as the contract value // needs to be available for nested declarations - variable.SetValue(value) + variable.InitializeWithValue(value) // Also, immediately set the nested values, // as the initializer of the contract may use nested declarations @@ -1326,11 +1446,11 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( // for all other composite kinds, the constructor is declared if declaration.Kind() == common.CompositeKindContract { - variable.getter = func() Value { - positioned := ast.NewRangeFromPositioned(interpreter, declaration.DeclarationIdentifier()) + variable.InitializeWithGetter(func() Value { + positioned := ast.NewRangeFromPositioned(declarationInterpreter, declaration.DeclarationIdentifier()) contractValue := config.ContractValueHandler( - interpreter, + declarationInterpreter, compositeType, constructorGenerator, positioned, @@ -1338,11 +1458,18 @@ func (interpreter *Interpreter) declareNonEnumCompositeValue( contractValue.SetNestedVariables(nestedVariables) return contractValue - } + }) } else { constructor := constructorGenerator(common.ZeroAddress) constructor.NestedVariables = nestedVariables - variable.SetValue(constructor) + variable.SetValue( + declarationInterpreter, + LocationRange{ + Location: location, + HasPosition: declaration, + }, + constructor, + ) } return lexicalScope, variable @@ -1358,7 +1485,7 @@ func (interpreter *Interpreter) declareEnumConstructor( lexicalScope *VariableActivation, ) ( scope *VariableActivation, - variable *Variable, + variable Variable, ) { identifier := declaration.Identifier.Identifier // NOTE: find *or* declare, as the function might have not been pre-declared (e.g. in the REPL) @@ -1376,7 +1503,7 @@ func (interpreter *Interpreter) declareEnumConstructor( enumCases := declaration.Members.EnumCases() caseValues := make([]EnumCase, len(enumCases)) - constructorNestedVariables := map[string]*Variable{} + constructorNestedVariables := map[string]Variable{} for i, enumCase := range enumCases { @@ -1433,7 +1560,11 @@ func (interpreter *Interpreter) declareEnumConstructor( caseValues, constructorNestedVariables, ) - variable.SetValue(value) + variable.SetValue( + interpreter, + locationRange, + value, + ) return lexicalScope, variable } @@ -1443,7 +1574,7 @@ func EnumConstructorFunction( locationRange LocationRange, enumType *sema.CompositeType, cases []EnumCase, - nestedVariables map[string]*Variable, + nestedVariables map[string]Variable, ) *HostFunctionValue { // Prepare a lookup table based on the big-endian byte representation @@ -1457,7 +1588,8 @@ func EnumConstructorFunction( // Prepare the constructor function which performs a lookup in the lookup table - constructor := NewHostFunctionValue( + // Constructor is a static function. + constructor := NewStaticHostFunctionValue( gauge, sema.EnumConstructorType(enumType), func(invocation Invocation) Value { @@ -1531,53 +1663,10 @@ func (interpreter *Interpreter) compositeInitializerFunction( ) } -func (interpreter *Interpreter) compositeDestructorFunction( - compositeDeclaration ast.CompositeLikeDeclaration, - lexicalScope *VariableActivation, -) *InterpretedFunctionValue { - - destructor := compositeDeclaration.DeclarationMembers().Destructor() - if destructor == nil { - return nil - } - - statements := destructor.FunctionDeclaration.FunctionBlock.Block.Statements - - var preConditions ast.Conditions - - conditions := destructor.FunctionDeclaration.FunctionBlock.PreConditions - if conditions != nil { - preConditions = *conditions - } - - var beforeStatements []ast.Statement - var rewrittenPostConditions ast.Conditions - - postConditions := destructor.FunctionDeclaration.FunctionBlock.PostConditions - if postConditions != nil { - postConditionsRewrite := - interpreter.Program.Elaboration.PostConditionsRewrite(postConditions) - - beforeStatements = postConditionsRewrite.BeforeStatements - rewrittenPostConditions = postConditionsRewrite.RewrittenPostConditions - } - - return NewInterpretedFunctionValue( - interpreter, - nil, - emptyImpureFunctionType, - lexicalScope, - beforeStatements, - preConditions, - statements, - rewrittenPostConditions, - ) -} - func (interpreter *Interpreter) defaultFunctions( members *ast.Members, lexicalScope *VariableActivation, -) map[string]FunctionValue { +) *FunctionOrderedMap { functionDeclarations := members.Functions() functionCount := len(functionDeclarations) @@ -1586,7 +1675,7 @@ func (interpreter *Interpreter) defaultFunctions( return nil } - functions := make(map[string]FunctionValue, functionCount) + functions := orderedmap.New[FunctionOrderedMap](functionCount) for _, functionDeclaration := range functionDeclarations { name := functionDeclaration.Identifier.Identifier @@ -1594,9 +1683,12 @@ func (interpreter *Interpreter) defaultFunctions( continue } - functions[name] = interpreter.compositeFunction( - functionDeclaration, - lexicalScope, + functions.Set( + name, + interpreter.compositeFunction( + functionDeclaration, + lexicalScope, + ), ) } @@ -1606,17 +1698,19 @@ func (interpreter *Interpreter) defaultFunctions( func (interpreter *Interpreter) compositeFunctions( compositeDeclaration ast.CompositeLikeDeclaration, lexicalScope *VariableActivation, -) map[string]FunctionValue { +) *FunctionOrderedMap { - functions := map[string]FunctionValue{} + functions := orderedmap.New[FunctionOrderedMap](len(compositeDeclaration.DeclarationMembers().Functions())) for _, functionDeclaration := range compositeDeclaration.DeclarationMembers().Functions() { name := functionDeclaration.Identifier.Identifier - functions[name] = + functions.Set( + name, interpreter.compositeFunction( functionDeclaration, lexicalScope, - ) + ), + ) } return functions @@ -2095,9 +2189,12 @@ func (interpreter *Interpreter) convert(value Value, valueType, targetType sema. targetBorrowType := unwrappedTargetType.BorrowType.(*sema.ReferenceType) switch capability := value.(type) { - case *CapabilityValue: + case *IDCapabilityValue: valueBorrowType := capability.BorrowType.(*ReferenceStaticType) borrowType := interpreter.convertStaticType(valueBorrowType, targetBorrowType) + if capability.isInvalid() { + return NewInvalidCapabilityValue(interpreter, capability.Address, borrowType) + } return NewCapabilityValue( interpreter, capability.ID, @@ -2111,37 +2208,64 @@ func (interpreter *Interpreter) convert(value Value, valueType, targetType sema. } case *sema.ReferenceType: - if !valueType.Equal(unwrappedTargetType) { - // transferring a reference at runtime does not change its entitlements; this is so that an upcast reference - // can later be downcast back to its original entitlement set - - switch ref := value.(type) { - case *EphemeralReferenceValue: + targetAuthorization := ConvertSemaAccessToStaticAuthorization(interpreter, unwrappedTargetType.Authorization) + switch ref := value.(type) { + case *EphemeralReferenceValue: + if interpreter.shouldConvertReference(ref, valueType, unwrappedTargetType, targetAuthorization) { + checkMappedEntitlements(unwrappedTargetType, locationRange) return NewEphemeralReferenceValue( interpreter, - ConvertSemaAccessToStaticAuthorization(interpreter, unwrappedTargetType.Authorization), + targetAuthorization, ref.Value, unwrappedTargetType.Type, + locationRange, ) + } - case *StorageReferenceValue: + case *StorageReferenceValue: + if interpreter.shouldConvertReference(ref, valueType, unwrappedTargetType, targetAuthorization) { + checkMappedEntitlements(unwrappedTargetType, locationRange) return NewStorageReferenceValue( interpreter, - ConvertSemaAccessToStaticAuthorization(interpreter, unwrappedTargetType.Authorization), + targetAuthorization, ref.TargetStorageAddress, ref.TargetPath, unwrappedTargetType.Type, ) - - default: - panic(errors.NewUnexpectedError("unsupported reference value: %T", ref)) } + + default: + panic(errors.NewUnexpectedError("unsupported reference value: %T", ref)) } } return value } +func (interpreter *Interpreter) shouldConvertReference( + ref ReferenceValue, + valueType sema.Type, + unwrappedTargetType *sema.ReferenceType, + targetAuthorization Authorization, +) bool { + if !valueType.Equal(unwrappedTargetType) { + return true + } + + return !ref.BorrowType().Equal(unwrappedTargetType.Type) || + !ref.GetAuthorization().Equal(targetAuthorization) +} + +func checkMappedEntitlements(unwrappedTargetType *sema.ReferenceType, locationRange LocationRange) { + // check defensively that we never create a runtime mapped entitlement value + if _, isMappedAuth := unwrappedTargetType.Authorization.(*sema.EntitlementMapAccess); isMappedAuth { + panic(UnexpectedMappedEntitlementError{ + Type: unwrappedTargetType, + LocationRange: locationRange, + }) + } +} + // BoxOptional boxes a value in optionals, if necessary func (interpreter *Interpreter) BoxOptional( locationRange LocationRange, @@ -2229,15 +2353,25 @@ func (interpreter *Interpreter) declareInterface( interfaceType.InitializerParameters, lexicalScope, ) - destructorFunctionWrapper := interpreter.destructorFunctionWrapper(declaration.Members, lexicalScope) + + var defaultDestroyEventConstructor FunctionValue + if defautlDestroyEvent := interpreter.Program.Elaboration.DefaultDestroyDeclaration(declaration); defautlDestroyEvent != nil { + var nestedVariable Variable + lexicalScope, nestedVariable = interpreter.declareCompositeValue( + defautlDestroyEvent, + lexicalScope, + ) + defaultDestroyEventConstructor = nestedVariable.GetValue(interpreter).(FunctionValue) + } + functionWrappers := interpreter.functionWrappers(declaration.Members, lexicalScope) defaultFunctions := interpreter.defaultFunctions(declaration.Members, lexicalScope) interpreter.SharedState.typeCodes.InterfaceCodes[typeID] = WrapperCode{ - InitializerFunctionWrapper: initializerFunctionWrapper, - DestructorFunctionWrapper: destructorFunctionWrapper, - FunctionWrappers: functionWrappers, - Functions: defaultFunctions, + InitializerFunctionWrapper: initializerFunctionWrapper, + FunctionWrappers: functionWrappers, + Functions: defaultFunctions, + DefaultDestroyEventConstructor: defaultDestroyEventConstructor, } } @@ -2269,27 +2403,6 @@ func (interpreter *Interpreter) initializerFunctionWrapper( ) } -var voidFunctionType = &sema.FunctionType{ - ReturnTypeAnnotation: sema.VoidTypeAnnotation, -} - -func (interpreter *Interpreter) destructorFunctionWrapper( - members *ast.Members, - lexicalScope *VariableActivation, -) FunctionWrapper { - - destructor := members.Destructor() - if destructor == nil { - return nil - } - - return interpreter.functionConditionsWrapper( - destructor.FunctionDeclaration, - voidFunctionType, - lexicalScope, - ) -} - func (interpreter *Interpreter) functionConditionsWrapper( declaration *ast.FunctionDeclaration, functionType *sema.FunctionType, @@ -2318,7 +2431,8 @@ func (interpreter *Interpreter) functionConditionsWrapper( } return func(inner FunctionValue) FunctionValue { - return NewHostFunctionValue( + // Condition wrapper is a static function. + return NewStaticHostFunctionValue( interpreter, functionType, func(invocation Invocation) Value { @@ -2336,7 +2450,7 @@ func (interpreter *Interpreter) functionConditionsWrapper( } if invocation.Self != nil { - interpreter.declareVariable(sema.SelfIdentifier, *invocation.Self) + interpreter.declareSelfVariable(*invocation.Self, invocation.LocationRange) } if invocation.Base != nil { interpreter.declareVariable(sema.BaseIdentifier, invocation.Base) @@ -2371,7 +2485,7 @@ func (interpreter *Interpreter) functionConditionsWrapper( // for use by the post-condition block. type argumentVariable struct { - variable *Variable + variable Variable value ResourceKindedValue } @@ -2410,12 +2524,18 @@ func (interpreter *Interpreter) functionConditionsWrapper( } } + declarationLocationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: declaration, + } + return interpreter.visitFunctionBody( beforeStatements, preConditions, body, rewrittenPostConditions, functionType.ReturnTypeAnnotation.Type, + declarationLocationRange, ) }, ) @@ -2557,7 +2677,7 @@ type stringValueParser func(*Interpreter, string) OptionalValue func newFromStringFunction(ty sema.Type, parser stringValueParser) fromStringFunctionValue { functionType := sema.FromStringFunctionType(ty) - hostFunctionImpl := NewUnmeteredHostFunctionValue( + hostFunctionImpl := NewUnmeteredStaticHostFunctionValue( functionType, func(invocation Invocation) Value { argument, ok := invocation.Arguments[0].(*StringValue) @@ -2791,7 +2911,8 @@ func newFromBigEndianBytesFunction( converter bigEndianBytesConverter) fromBigEndianBytesFunctionValue { functionType := sema.FromBigEndianBytesFunctionType(ty) - hostFunctionImpl := NewUnmeteredHostFunctionValue( + // Converter functions are static functions. + hostFunctionImpl := NewUnmeteredStaticHostFunctionValue( functionType, func(invocation Invocation) Value { argument, ok := invocation.Arguments[0].(*ArrayValue) @@ -3193,16 +3314,17 @@ var ConverterDeclarations = []ValueConverterDeclaration{ Name string Value Value }{ + // Converter functions are static functions. { Name: sema.AddressTypeFromBytesFunctionName, - Value: NewUnmeteredHostFunctionValue( + Value: NewUnmeteredStaticHostFunctionValue( sema.AddressTypeFromBytesFunctionType, AddressFromBytes, ), }, { Name: sema.AddressTypeFromStringFunctionName, - Value: NewUnmeteredHostFunctionValue( + Value: NewUnmeteredStaticHostFunctionValue( sema.AddressTypeFromStringFunctionType, AddressFromString, ), @@ -3213,21 +3335,21 @@ var ConverterDeclarations = []ValueConverterDeclaration{ name: sema.PublicPathType.Name, functionType: sema.PublicPathConversionFunctionType, convert: func(interpreter *Interpreter, value Value, _ LocationRange) Value { - return ConvertPublicPath(interpreter, value) + return newPathFromStringValue(interpreter, common.PathDomainPublic, value) }, }, { name: sema.PrivatePathType.Name, functionType: sema.PrivatePathConversionFunctionType, convert: func(interpreter *Interpreter, value Value, _ LocationRange) Value { - return ConvertPrivatePath(interpreter, value) + return newPathFromStringValue(interpreter, common.PathDomainPrivate, value) }, }, { name: sema.StoragePathType.Name, functionType: sema.StoragePathConversionFunctionType, convert: func(interpreter *Interpreter, value Value, _ LocationRange) Value { - return ConvertStoragePath(interpreter, value) + return newPathFromStringValue(interpreter, common.PathDomainStorage, value) }, }, } @@ -3269,7 +3391,7 @@ func lookupEntitlement(interpreter *Interpreter, typeID string) (*sema.Entitleme return nil, err } - typ, err := interpreter.getEntitlement(common.TypeID(typeID)) + typ, err := interpreter.GetEntitlementType(common.TypeID(typeID)) if err != nil { return nil, err } @@ -3292,7 +3414,7 @@ func init() { switch numberType { case sema.NumberType, sema.SignedNumberType, - sema.IntegerType, sema.SignedIntegerType, + sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType, sema.FixedPointType, sema.SignedFixedPointType: continue } @@ -3314,10 +3436,12 @@ func init() { } // We assign this here because it depends on the interpreter, so this breaks the initialization cycle + + // All of the following methods are static functions. defineBaseValue( BaseActivation, sema.DictionaryTypeFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.DictionaryTypeFunctionType, dictionaryTypeFunction, )) @@ -3325,7 +3449,7 @@ func init() { defineBaseValue( BaseActivation, sema.CompositeTypeFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.CompositeTypeFunctionType, compositeTypeFunction, ), @@ -3334,25 +3458,16 @@ func init() { defineBaseValue( BaseActivation, sema.ReferenceTypeFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.ReferenceTypeFunctionType, referenceTypeFunction, ), ) - defineBaseValue( - BaseActivation, - sema.InterfaceTypeFunctionName, - NewUnmeteredHostFunctionValue( - sema.InterfaceTypeFunctionType, - interfaceTypeFunction, - ), - ) - defineBaseValue( BaseActivation, sema.FunctionTypeFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.FunctionTypeFunctionType, functionTypeFunction, ), @@ -3361,7 +3476,7 @@ func init() { defineBaseValue( BaseActivation, sema.IntersectionTypeFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.IntersectionTypeFunctionType, intersectionTypeFunction, ), @@ -3384,7 +3499,10 @@ func dictionaryTypeFunction(invocation Invocation) Value { // if the given key is not a valid dictionary key, it wouldn't make sense to create this type if keyType == nil || - !sema.IsValidDictionaryKeyType(invocation.Interpreter.MustConvertStaticToSemaType(keyType)) { + !sema.IsSubType( + invocation.Interpreter.MustConvertStaticToSemaType(keyType), + sema.HashableStructType, + ) { return Nil } @@ -3421,22 +3539,27 @@ func referenceTypeFunction(invocation Invocation) Value { invocation.Interpreter, func() []common.TypeID { entitlements := make([]common.TypeID, 0, entitlementsCount) - entitlementValues.Iterate(invocation.Interpreter, func(element Value) (resume bool) { - entitlementString, isString := element.(*StringValue) - if !isString { - errInIteration = true - return false - } + entitlementValues.Iterate( + invocation.Interpreter, + func(element Value) (resume bool) { + entitlementString, isString := element.(*StringValue) + if !isString { + errInIteration = true + return false + } - _, err := lookupEntitlement(invocation.Interpreter, entitlementString.Str) - if err != nil { - errInIteration = true - return false - } - entitlements = append(entitlements, common.TypeID(entitlementString.Str)) + _, err := lookupEntitlement(invocation.Interpreter, entitlementString.Str) + if err != nil { + errInIteration = true + return false + } + entitlements = append(entitlements, common.TypeID(entitlementString.Str)) - return true - }) + return true + }, + false, + invocation.LocationRange, + ) return entitlements }, entitlementsCount, @@ -3482,27 +3605,6 @@ func compositeTypeFunction(invocation Invocation) Value { ) } -func interfaceTypeFunction(invocation Invocation) Value { - typeIDValue, ok := invocation.Arguments[0].(*StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } - typeID := typeIDValue.Str - - interfaceType, err := lookupInterface(invocation.Interpreter, typeID) - if err != nil { - return Nil - } - - return NewSomeValueNonCopying( - invocation.Interpreter, - NewTypeValue( - invocation.Interpreter, - ConvertSemaToStaticType(invocation.Interpreter, interfaceType), - ), - ) -} - func functionTypeFunction(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -3522,18 +3624,23 @@ func functionTypeFunction(invocation Invocation) Value { parameterCount := parameters.Count() if parameterCount > 0 { parameterTypes = make([]sema.Parameter, 0, parameterCount) - parameters.Iterate(interpreter, func(param Value) bool { - semaType := interpreter.MustConvertStaticToSemaType(param.(TypeValue).Type) - parameterTypes = append( - parameterTypes, - sema.Parameter{ - TypeAnnotation: sema.NewTypeAnnotation(semaType), - }, - ) + parameters.Iterate( + interpreter, + func(param Value) bool { + semaType := interpreter.MustConvertStaticToSemaType(param.(TypeValue).Type) + parameterTypes = append( + parameterTypes, + sema.Parameter{ + TypeAnnotation: sema.NewTypeAnnotation(semaType), + }, + ) - // Continue iteration - return true - }) + // Continue iteration + return true + }, + false, + invocation.LocationRange, + ) } functionStaticType := NewFunctionStaticType( interpreter, @@ -3561,27 +3668,32 @@ func intersectionTypeFunction(invocation Invocation) Value { semaIntersections = make([]*sema.InterfaceType, 0, count) var invalidIntersectionID bool - intersectionIDs.Iterate(invocation.Interpreter, func(typeID Value) bool { - typeIDValue, ok := typeID.(*StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } + intersectionIDs.Iterate( + invocation.Interpreter, + func(typeID Value) bool { + typeIDValue, ok := typeID.(*StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } - intersectedInterface, err := lookupInterface(invocation.Interpreter, typeIDValue.Str) - if err != nil { - invalidIntersectionID = true - return true - } + intersectedInterface, err := lookupInterface(invocation.Interpreter, typeIDValue.Str) + if err != nil { + invalidIntersectionID = true + return true + } - staticIntersections = append( - staticIntersections, - ConvertSemaToStaticType(invocation.Interpreter, intersectedInterface).(*InterfaceStaticType), - ) - semaIntersections = append(semaIntersections, intersectedInterface) + staticIntersections = append( + staticIntersections, + ConvertSemaToStaticType(invocation.Interpreter, intersectedInterface).(*InterfaceStaticType), + ) + semaIntersections = append(semaIntersections, intersectedInterface) - // Continue iteration - return true - }) + // Continue iteration + return true + }, + false, + invocation.LocationRange, + ) // If there are any invalid interfaces, // then return nil @@ -3637,7 +3749,7 @@ var converterFunctionValues = func() []converterFunction { for index, declaration := range ConverterDeclarations { // NOTE: declare in loop, as captured in closure below convert := declaration.convert - converterFunctionValue := NewUnmeteredHostFunctionValue( + converterFunctionValue := NewUnmeteredStaticHostFunctionValue( declaration.functionType, func(invocation Invocation) Value { return convert(invocation.Interpreter, invocation.Arguments[0], invocation.LocationRange) @@ -3646,7 +3758,7 @@ var converterFunctionValues = func() []converterFunction { addMember := func(name string, value Value) { if converterFunctionValue.NestedVariables == nil { - converterFunctionValue.NestedVariables = map[string]*Variable{} + converterFunctionValue.NestedVariables = map[string]Variable{} } // these variables are not needed to be metered as they are only ever declared once, // and can be considered base interpreter overhead @@ -3696,10 +3808,11 @@ type runtimeTypeConstructor struct { } // Constructor functions are stateless functions. Hence they can be re-used across interpreters. +// They are also static functions. var runtimeTypeConstructors = []runtimeTypeConstructor{ { name: sema.OptionalTypeFunctionName, - converter: NewUnmeteredHostFunctionValue( + converter: NewUnmeteredStaticHostFunctionValue( sema.OptionalTypeFunctionType, func(invocation Invocation) Value { typeValue, ok := invocation.Arguments[0].(TypeValue) @@ -3719,7 +3832,7 @@ var runtimeTypeConstructors = []runtimeTypeConstructor{ }, { name: sema.VariableSizedArrayTypeFunctionName, - converter: NewUnmeteredHostFunctionValue( + converter: NewUnmeteredStaticHostFunctionValue( sema.VariableSizedArrayTypeFunctionType, func(invocation Invocation) Value { typeValue, ok := invocation.Arguments[0].(TypeValue) @@ -3740,7 +3853,7 @@ var runtimeTypeConstructors = []runtimeTypeConstructor{ }, { name: sema.ConstantSizedArrayTypeFunctionName, - converter: NewUnmeteredHostFunctionValue( + converter: NewUnmeteredStaticHostFunctionValue( sema.ConstantSizedArrayTypeFunctionType, func(invocation Invocation) Value { typeValue, ok := invocation.Arguments[0].(TypeValue) @@ -3766,7 +3879,7 @@ var runtimeTypeConstructors = []runtimeTypeConstructor{ }, { name: sema.CapabilityTypeFunctionName, - converter: NewUnmeteredHostFunctionValue( + converter: NewUnmeteredStaticHostFunctionValue( sema.CapabilityTypeFunctionType, func(invocation Invocation) Value { typeValue, ok := invocation.Arguments[0].(TypeValue) @@ -3794,6 +3907,38 @@ var runtimeTypeConstructors = []runtimeTypeConstructor{ }, ), }, + { + name: sema.InclusiveRangeTypeFunctionName, + converter: NewUnmeteredStaticHostFunctionValue( + sema.InclusiveRangeTypeFunctionType, + func(invocation Invocation) Value { + typeValue, ok := invocation.Arguments[0].(TypeValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + inter := invocation.Interpreter + + ty := typeValue.Type + // InclusiveRanges must hold integers + elemSemaTy := inter.MustConvertStaticToSemaType(ty) + if !sema.IsSameTypeKind(elemSemaTy, sema.IntegerType) { + return Nil + } + + return NewSomeValueNonCopying( + inter, + NewTypeValue( + inter, + NewInclusiveRangeStaticType( + inter, + ty, + ), + ), + ) + }, + ), + }, } func defineRuntimeTypeConstructorFunctions(activation *VariableActivation) { @@ -3803,7 +3948,8 @@ func defineRuntimeTypeConstructorFunctions(activation *VariableActivation) { } // typeFunction is the `Type` function. It is stateless, hence it can be re-used across interpreters. -var typeFunction = NewUnmeteredHostFunctionValue( +// It's also a static function. +var typeFunction = NewUnmeteredStaticHostFunctionValue( sema.MetaTypeFunctionType, func(invocation Invocation) Value { typeParameterPair := invocation.TypeParameterTypes.Oldest() @@ -3955,17 +4101,19 @@ func (interpreter *Interpreter) recordStorageMutation() { } func (interpreter *Interpreter) newStorageIterationFunction( + storageValue *SimpleCompositeValue, functionType *sema.FunctionType, addressValue AddressValue, domain common.PathDomain, pathType sema.Type, -) *HostFunctionValue { +) BoundFunctionValue { address := addressValue.ToAddress() config := interpreter.SharedState.Config - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + storageValue, functionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -3994,7 +4142,7 @@ func (interpreter *Interpreter) newStorageIterationFunction( for key, value := storageIterator.Next(); key != nil && value != nil; key, value = storageIterator.Next() { - staticType := value.StaticType(inter) + staticType := value.StaticType(interpreter) // Perform a forced value de-referencing to see if the associated type is not broken. // If broken, skip this value from the iteration. @@ -4081,7 +4229,7 @@ func (interpreter *Interpreter) checkValue( // 1) The actual stored value (storage path) // 2) A capability to the value at the storage (private/public paths) - if capability, ok := value.(*CapabilityValue); ok { + if capability, ok := value.(*IDCapabilityValue); ok { // If, the value is a capability, try to load the value at the capability target. // However, borrow type is not statically known. // So take the borrow type from the value itself @@ -4118,13 +4266,17 @@ func (interpreter *Interpreter) checkValue( return } -func (interpreter *Interpreter) authAccountSaveFunction(addressValue AddressValue) *HostFunctionValue { +func (interpreter *Interpreter) authAccountSaveFunction( + storageValue *SimpleCompositeValue, + addressValue AddressValue, +) BoundFunctionValue { // Converted addresses can be cached and don't have to be recomputed on each function invocation address := addressValue.ToAddress() - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + storageValue, sema.Account_StorageTypeSaveFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -4178,13 +4330,17 @@ func (interpreter *Interpreter) authAccountSaveFunction(addressValue AddressValu ) } -func (interpreter *Interpreter) authAccountTypeFunction(addressValue AddressValue) *HostFunctionValue { +func (interpreter *Interpreter) authAccountTypeFunction( + storageValue *SimpleCompositeValue, + addressValue AddressValue, +) BoundFunctionValue { // Converted addresses can be cached and don't have to be recomputed on each function invocation address := addressValue.ToAddress() - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + storageValue, sema.Account_StorageTypeTypeFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -4216,21 +4372,32 @@ func (interpreter *Interpreter) authAccountTypeFunction(addressValue AddressValu ) } -func (interpreter *Interpreter) authAccountLoadFunction(addressValue AddressValue) *HostFunctionValue { - return interpreter.authAccountReadFunction(addressValue, true) +func (interpreter *Interpreter) authAccountLoadFunction( + storageValue *SimpleCompositeValue, + addressValue AddressValue, +) BoundFunctionValue { + return interpreter.authAccountReadFunction(storageValue, addressValue, true) } -func (interpreter *Interpreter) authAccountCopyFunction(addressValue AddressValue) *HostFunctionValue { - return interpreter.authAccountReadFunction(addressValue, false) +func (interpreter *Interpreter) authAccountCopyFunction( + storageValue *SimpleCompositeValue, + addressValue AddressValue, +) BoundFunctionValue { + return interpreter.authAccountReadFunction(storageValue, addressValue, false) } -func (interpreter *Interpreter) authAccountReadFunction(addressValue AddressValue, clear bool) *HostFunctionValue { +func (interpreter *Interpreter) authAccountReadFunction( + storageValue *SimpleCompositeValue, + addressValue AddressValue, + clear bool, +) BoundFunctionValue { // Converted addresses can be cached and don't have to be recomputed on each function invocation address := addressValue.ToAddress() - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + storageValue, // same as sema.Account_StorageTypeCopyFunctionType sema.Account_StorageTypeLoadFunctionType, func(invocation Invocation) Value { @@ -4304,13 +4471,17 @@ func (interpreter *Interpreter) authAccountReadFunction(addressValue AddressValu ) } -func (interpreter *Interpreter) authAccountBorrowFunction(addressValue AddressValue) *HostFunctionValue { +func (interpreter *Interpreter) authAccountBorrowFunction( + storageValue *SimpleCompositeValue, + addressValue AddressValue, +) BoundFunctionValue { // Converted addresses can be cached and don't have to be recomputed on each function invocation address := addressValue.ToAddress() - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + storageValue, sema.Account_StorageTypeBorrowFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -4357,13 +4528,17 @@ func (interpreter *Interpreter) authAccountBorrowFunction(addressValue AddressVa ) } -func (interpreter *Interpreter) authAccountCheckFunction(addressValue AddressValue) *HostFunctionValue { +func (interpreter *Interpreter) authAccountCheckFunction( + storageValue *SimpleCompositeValue, + addressValue AddressValue, +) BoundFunctionValue { // Converted addresses can be cached and don't have to be recomputed on each function invocation address := addressValue.ToAddress() - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + storageValue, sema.Account_StorageTypeCheckFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -4401,7 +4576,7 @@ func (interpreter *Interpreter) authAccountCheckFunction(addressValue AddressVal ) } -func (interpreter *Interpreter) getEntitlement(typeID common.TypeID) (*sema.EntitlementType, error) { +func (interpreter *Interpreter) GetEntitlementType(typeID common.TypeID) (*sema.EntitlementType, error) { location, qualifiedIdentifier, err := common.DecodeTypeID(interpreter, string(typeID)) if err != nil { return nil, err @@ -4435,7 +4610,7 @@ func (interpreter *Interpreter) getEntitlement(typeID common.TypeID) (*sema.Enti return ty, nil } -func (interpreter *Interpreter) getEntitlementMapType(typeID common.TypeID) (*sema.EntitlementMapType, error) { +func (interpreter *Interpreter) GetEntitlementMapType(typeID common.TypeID) (*sema.EntitlementMapType, error) { location, qualifiedIdentifier, err := common.DecodeTypeID(interpreter, string(typeID)) if err != nil { return nil, err @@ -4474,14 +4649,7 @@ func (interpreter *Interpreter) ConvertStaticToSemaType(staticType StaticType) ( return ConvertStaticToSemaType( config.MemoryGauge, staticType, - func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.InterfaceType, error) { - return interpreter.GetInterfaceType(location, qualifiedIdentifier, typeID) - }, - func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.CompositeType, error) { - return interpreter.GetCompositeType(location, qualifiedIdentifier, typeID) - }, - interpreter.getEntitlement, - interpreter.getEntitlementMapType, + interpreter, ) } @@ -4501,8 +4669,7 @@ func (interpreter *Interpreter) MustConvertStaticAuthorizationToSemaAccess(auth access, err := ConvertStaticAuthorizationToSemaAccess( interpreter, auth, - interpreter.getEntitlement, - interpreter.getEntitlementMapType, + interpreter, ) if err != nil { panic(err) @@ -4525,6 +4692,35 @@ func (interpreter *Interpreter) getElaboration(location common.Location) *sema.E return subInterpreter.Program.Elaboration } +func (interpreter *Interpreter) AllElaborations() (elaborations map[common.Location]*sema.Elaboration) { + + elaborations = map[common.Location]*sema.Elaboration{} + + allInterpreters := interpreter.SharedState.allInterpreters + + locations := make([]common.Location, 0, len(allInterpreters)) + + for location := range allInterpreters { //nolint:maprange + locations = append(locations, location) + } + + sort.Slice(locations, func(i, j int) bool { + a := locations[i] + b := locations[j] + return a.ID() < b.ID() + }) + + for _, location := range locations { + elaboration := interpreter.getElaboration(location) + if elaboration == nil { + panic(errors.NewUnexpectedError("missing elaboration for location %s", location)) + } + elaborations[location] = elaboration + } + + return +} + // GetContractComposite gets the composite value of the contract at the address location. func (interpreter *Interpreter) GetContractComposite(contractLocation common.AddressLocation) (*CompositeValue, error) { contractGlobal := interpreter.Globals.Get(contractLocation.Name) @@ -4536,7 +4732,7 @@ func (interpreter *Interpreter) GetContractComposite(contractLocation common.Add } // get contract value - contractValue, ok := contractGlobal.GetValue().(*CompositeValue) + contractValue, ok := contractGlobal.GetValue(interpreter).(*CompositeValue) if !ok { return nil, NotDeclaredError{ ExpectedKind: common.DeclarationKindContract, @@ -4547,6 +4743,84 @@ func (interpreter *Interpreter) GetContractComposite(contractLocation common.Add return contractValue, nil } +func GetNativeCompositeValueComputedFields(qualifiedIdentifier string) map[string]ComputedField { + switch qualifiedIdentifier { + case sema.PublicKeyType.Identifier: + return map[string]ComputedField{ + sema.PublicKeyTypePublicKeyFieldName: func( + interpreter *Interpreter, + locationRange LocationRange, + v *CompositeValue, + ) Value { + publicKeyValue := v.GetField(interpreter, locationRange, sema.PublicKeyTypePublicKeyFieldName) + return publicKeyValue.Transfer( + interpreter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ) + }, + } + } + + return nil +} + +func (interpreter *Interpreter) GetCompositeValueComputedFields(v *CompositeValue) map[string]ComputedField { + + var computedFields map[string]ComputedField + if v.Location == nil { + computedFields = GetNativeCompositeValueComputedFields(v.QualifiedIdentifier) + if computedFields != nil { + return computedFields + } + } + + // TODO: add handler to config + + return nil +} + +func (interpreter *Interpreter) GetCompositeValueInjectedFields(v *CompositeValue) map[string]Value { + config := interpreter.SharedState.Config + injectedCompositeFieldsHandler := config.InjectedCompositeFieldsHandler + if injectedCompositeFieldsHandler == nil { + return nil + } + + return injectedCompositeFieldsHandler( + interpreter, + v.Location, + v.QualifiedIdentifier, + v.Kind, + ) +} + +func (interpreter *Interpreter) GetCompositeValueFunctions( + v *CompositeValue, + locationRange LocationRange, +) *FunctionOrderedMap { + + var functions *FunctionOrderedMap + + typeID := v.TypeID() + + sharedState := interpreter.SharedState + + compositeValueFunctionsHandler := sharedState.Config.CompositeValueFunctionsHandler + if compositeValueFunctionsHandler != nil { + functions = compositeValueFunctionsHandler(interpreter, locationRange, v) + if functions != nil { + return functions + } + } + + compositeCodes := sharedState.typeCodes.CompositeCodes + return compositeCodes[typeID].CompositeFunctions +} + func (interpreter *Interpreter) GetCompositeType( location common.Location, qualifiedIdentifier string, @@ -4596,7 +4870,18 @@ func (interpreter *Interpreter) GetInterfaceType( typeID TypeID, ) (*sema.InterfaceType, error) { if location == nil { - return nil, InterfaceMissingLocationError{QualifiedIdentifier: qualifiedIdentifier} + return nil, InterfaceMissingLocationError{ + QualifiedIdentifier: qualifiedIdentifier, + } + } + + config := interpreter.SharedState.Config + interfaceTypeHandler := config.InterfaceTypeHandler + if interfaceTypeHandler != nil { + interfaceType := interfaceTypeHandler(location, typeID) + if interfaceType != nil { + return interfaceType, nil + } } elaboration := interpreter.getElaboration(location) @@ -4665,34 +4950,35 @@ func (interpreter *Interpreter) ReportComputation(compKind common.ComputationKin } } -func (interpreter *Interpreter) getAccessOfMember(self Value, identifier string) *sema.Access { +func (interpreter *Interpreter) getAccessOfMember(self Value, identifier string) sema.Access { typ, err := interpreter.ConvertStaticToSemaType(self.StaticType(interpreter)) // some values (like transactions) do not have types that can be looked up this way. These types // do not support entitled members, so their access is always unauthorized if err != nil { - return &sema.UnauthorizedAccess + return sema.UnauthorizedAccess } member, hasMember := typ.GetMembers()[identifier] // certain values (like functions) have builtin members that are not present on the type // in such cases the access is always unauthorized if !hasMember { - return &sema.UnauthorizedAccess + return sema.UnauthorizedAccess } - return &member.Resolve(interpreter, identifier, ast.EmptyRange, func(err error) {}).Access + return member.Resolve(interpreter, identifier, ast.EmptyRange, func(err error) {}).Access } func (interpreter *Interpreter) mapMemberValueAuthorization( self Value, - memberAccess *sema.Access, + memberAccess sema.Access, resultValue Value, resultingType sema.Type, + locationRange LocationRange, ) Value { if memberAccess == nil { return resultValue } - if mappedAccess, isMappedAccess := (*memberAccess).(*sema.EntitlementMapAccess); isMappedAccess { + if mappedAccess, isMappedAccess := (memberAccess).(*sema.EntitlementMapAccess); isMappedAccess { var auth Authorization switch selfValue := self.(type) { case AuthorizedValue: @@ -4705,7 +4991,7 @@ func (interpreter *Interpreter) mapMemberValueAuthorization( default: var access sema.Access - if mappedAccess.Type == sema.IdentityType { + if mappedAccess.Type.IncludesIdentity { access = sema.AllSupportedEntitlements(resultingType) } @@ -4718,7 +5004,7 @@ func (interpreter *Interpreter) mapMemberValueAuthorization( switch refValue := resultValue.(type) { case *EphemeralReferenceValue: - return NewEphemeralReferenceValue(interpreter, auth, refValue.Value, refValue.BorrowedType) + return NewEphemeralReferenceValue(interpreter, auth, refValue.Value, refValue.BorrowedType, locationRange) case *StorageReferenceValue: return NewStorageReferenceValue(interpreter, auth, refValue.TargetStorageAddress, refValue.TargetPath, refValue.BorrowedType) case BoundFunctionValue: @@ -4742,7 +5028,7 @@ func (interpreter *Interpreter) getMemberWithAuthMapping( // once we have obtained the member, if it was declared with entitlement-mapped access, we must compute the output of the map based // on the runtime authorizations of the accessing reference or composite memberAccess := interpreter.getAccessOfMember(self, identifier) - return interpreter.mapMemberValueAuthorization(self, memberAccess, result, memberAccessInfo.ResultingType) + return interpreter.mapMemberValueAuthorization(self, memberAccess, result, memberAccessInfo.ResultingType, locationRange) } // getMember gets the member value by the given identifier from the given Value depending on its type. @@ -4772,9 +5058,10 @@ func (interpreter *Interpreter) getMember(self Value, locationRange LocationRang return result } -func (interpreter *Interpreter) isInstanceFunction(self Value) *HostFunctionValue { - return NewHostFunctionValue( +func (interpreter *Interpreter) isInstanceFunction(self Value) FunctionValue { + return NewBoundHostFunctionValue( interpreter, + self, sema.IsInstanceFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -4802,9 +5089,10 @@ func (interpreter *Interpreter) isInstanceFunction(self Value) *HostFunctionValu ) } -func (interpreter *Interpreter) getTypeFunction(self Value) *HostFunctionValue { - return NewHostFunctionValue( +func (interpreter *Interpreter) getTypeFunction(self Value) FunctionValue { + return NewBoundHostFunctionValue( interpreter, + self, sema.GetTypeFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -4850,41 +5138,6 @@ func (interpreter *Interpreter) checkContainerMutation( } } -func (interpreter *Interpreter) checkReferencedResourceNotDestroyed(value Value, locationRange LocationRange) { - resourceKindedValue, ok := value.(ResourceKindedValue) - if !ok || !resourceKindedValue.IsDestroyed() { - return - } - - panic(DestroyedResourceError{ - LocationRange: locationRange, - }) -} - -func (interpreter *Interpreter) checkReferencedResourceNotMovedOrDestroyed( - referencedValue Value, - locationRange LocationRange, -) { - - // First check if the referencedValue is a resource. - // This is to handle optionals, since optionals does not - // belong to `ReferenceTrackedResourceKindedValue` - - resourceKindedValue, ok := referencedValue.(ResourceKindedValue) - if ok && resourceKindedValue.IsDestroyed() { - panic(DestroyedResourceError{ - LocationRange: locationRange, - }) - } - - referenceTrackedResourceKindedValue, ok := referencedValue.(ReferenceTrackedResourceKindedValue) - if ok && referenceTrackedResourceKindedValue.IsStaleResource(interpreter) { - panic(InvalidatedResourceReferenceError{ - LocationRange: locationRange, - }) - } -} - func (interpreter *Interpreter) RemoveReferencedSlab(storable atree.Storable) { storageIDStorable, ok := storable.(atree.StorageIDStorable) if !ok { @@ -5044,24 +5297,30 @@ func (interpreter *Interpreter) ValidateAtreeValue(value atree.Value) { } func (interpreter *Interpreter) maybeTrackReferencedResourceKindedValue(value Value) { - if value, ok := value.(ReferenceTrackedResourceKindedValue); ok { - interpreter.trackReferencedResourceKindedValue(value.StorageID(), value) + if referenceValue, ok := value.(*EphemeralReferenceValue); ok { + if value, ok := referenceValue.Value.(ReferenceTrackedResourceKindedValue); ok { + interpreter.trackReferencedResourceKindedValue(value.StorageID(), referenceValue) + } } } func (interpreter *Interpreter) trackReferencedResourceKindedValue( id atree.StorageID, - value ReferenceTrackedResourceKindedValue, + value *EphemeralReferenceValue, ) { values := interpreter.SharedState.referencedResourceKindedValues[id] if values == nil { - values = map[ReferenceTrackedResourceKindedValue]struct{}{} + values = map[*EphemeralReferenceValue]struct{}{} interpreter.SharedState.referencedResourceKindedValues[id] = values } values[value] = struct{}{} } -func (interpreter *Interpreter) invalidateReferencedResources(value Value, destroyed bool) { +// TODO: Remove the `destroyed` flag +func (interpreter *Interpreter) invalidateReferencedResources( + value Value, + locationRange LocationRange, +) { // skip non-resource typed values if !value.IsResourceKinded(interpreter) { return @@ -5072,25 +5331,29 @@ func (interpreter *Interpreter) invalidateReferencedResources(value Value, destr switch value := value.(type) { case *CompositeValue: value.ForEachLoadedField(interpreter, func(_ string, fieldValue Value) (resume bool) { - interpreter.invalidateReferencedResources(fieldValue, destroyed) + interpreter.invalidateReferencedResources(fieldValue, locationRange) // continue iteration return true - }) + }, locationRange) storageID = value.StorageID() case *DictionaryValue: value.IterateLoaded(interpreter, func(_, value Value) (resume bool) { - interpreter.invalidateReferencedResources(value, destroyed) + interpreter.invalidateReferencedResources(value, locationRange) return true - }) + }, locationRange) storageID = value.StorageID() case *ArrayValue: - value.IterateLoaded(interpreter, func(element Value) (resume bool) { - interpreter.invalidateReferencedResources(element, destroyed) - return true - }) + value.IterateLoaded( + interpreter, + func(element Value) (resume bool) { + interpreter.invalidateReferencedResources(element, locationRange) + return true + }, + locationRange, + ) storageID = value.StorageID() case *SomeValue: - interpreter.invalidateReferencedResources(value.value, destroyed) + interpreter.invalidateReferencedResources(value.value, locationRange) return default: // skip non-container typed values. @@ -5103,19 +5366,7 @@ func (interpreter *Interpreter) invalidateReferencedResources(value Value, destr } for value := range values { //nolint:maprange - switch value := value.(type) { - case *CompositeValue: - value.dictionary = nil - value.isDestroyed = destroyed - case *DictionaryValue: - value.dictionary = nil - value.isDestroyed = destroyed - case *ArrayValue: - value.array = nil - value.isDestroyed = destroyed - default: - panic(errors.NewUnreachableError()) - } + value.Value = nil } // The old resource instances are already cleared/invalidated above. @@ -5129,15 +5380,12 @@ func (interpreter *Interpreter) invalidateReferencedResources(value Value, destr // A resource can only be associated with one variable at most, at a given time. func (interpreter *Interpreter) startResourceTracking( value Value, - variable *Variable, + variable Variable, identifier string, hasPosition ast.HasPosition, ) { - config := interpreter.SharedState.Config - - if !config.InvalidatedResourceValidationEnabled || - identifier == sema.SelfIdentifier { + if identifier == sema.SelfIdentifier { return } @@ -5165,14 +5413,12 @@ func (interpreter *Interpreter) startResourceTracking( // checkInvalidatedResourceUse checks whether a resource variable is used after invalidation. func (interpreter *Interpreter) checkInvalidatedResourceUse( value Value, - variable *Variable, + variable Variable, identifier string, hasPosition ast.HasPosition, ) { - config := interpreter.SharedState.Config - if !config.InvalidatedResourceValidationEnabled || - identifier == sema.SelfIdentifier { + if identifier == sema.SelfIdentifier { return } @@ -5215,12 +5461,6 @@ func (interpreter *Interpreter) resourceForValidation(value Value) ResourceKinde } func (interpreter *Interpreter) invalidateResource(value Value) { - config := interpreter.SharedState.Config - - if !config.InvalidatedResourceValidationEnabled { - return - } - if value == nil || !value.IsResourceKinded(interpreter) { return } @@ -5236,8 +5476,10 @@ func (interpreter *Interpreter) invalidateResource(value Value) { // MeterMemory delegates the memory usage to the interpreter's memory gauge, if any. func (interpreter *Interpreter) MeterMemory(usage common.MemoryUsage) error { - config := interpreter.SharedState.Config - common.UseMemory(config.MemoryGauge, usage) + if interpreter != nil { + config := interpreter.SharedState.Config + common.UseMemory(config.MemoryGauge, usage) + } return nil } @@ -5260,19 +5502,25 @@ func (interpreter *Interpreter) Storage() Storage { } func (interpreter *Interpreter) capabilityBorrowFunction( + capabilityValue CapabilityValue, addressValue AddressValue, capabilityID UInt64Value, capabilityBorrowType *sema.ReferenceType, -) *HostFunctionValue { +) FunctionValue { - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + capabilityValue, sema.CapabilityTypeBorrowFunctionType(capabilityBorrowType), func(invocation Invocation) Value { inter := invocation.Interpreter locationRange := invocation.LocationRange + if capabilityID == InvalidCapabilityID { + return Nil + } + var wantedBorrowType *sema.ReferenceType typeParameterPair := invocation.TypeParameterTypes.Oldest() if typeParameterPair != nil { @@ -5301,16 +5549,22 @@ func (interpreter *Interpreter) capabilityBorrowFunction( } func (interpreter *Interpreter) capabilityCheckFunction( + capabilityValue CapabilityValue, addressValue AddressValue, capabilityID UInt64Value, capabilityBorrowType *sema.ReferenceType, -) *HostFunctionValue { +) FunctionValue { - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + capabilityValue, sema.CapabilityTypeCheckFunctionType(capabilityBorrowType), func(invocation Invocation) Value { + if capabilityID == InvalidCapabilityID { + return FalseValue + } + inter := invocation.Interpreter locationRange := invocation.LocationRange @@ -5351,6 +5605,10 @@ func (interpreter *Interpreter) validateMutation(storageID atree.StorageID, loca } func (interpreter *Interpreter) withMutationPrevention(storageID atree.StorageID, f func()) { + if interpreter == nil { + f() + return + } oldIteration, present := interpreter.SharedState.containerValueIteration[storageID] interpreter.SharedState.containerValueIteration[storageID] = struct{}{} @@ -5363,10 +5621,9 @@ func (interpreter *Interpreter) withMutationPrevention(storageID atree.StorageID } } -func (interpreter *Interpreter) withResourceDestruction( +func (interpreter *Interpreter) enforceNotResourceDestruction( storageID atree.StorageID, locationRange LocationRange, - f func(), ) { _, exists := interpreter.SharedState.destroyedResources[storageID] if exists { @@ -5374,8 +5631,44 @@ func (interpreter *Interpreter) withResourceDestruction( LocationRange: locationRange, }) } +} + +func (interpreter *Interpreter) withResourceDestruction( + storageID atree.StorageID, + locationRange LocationRange, + f func(), +) { + interpreter.enforceNotResourceDestruction(storageID, locationRange) interpreter.SharedState.destroyedResources[storageID] = struct{}{} f() } + +func (interpreter *Interpreter) checkResourceLoss(value Value, locationRange LocationRange) { + if !value.IsResourceKinded(interpreter) { + return + } + + var resourceKindedValue ResourceKindedValue + + switch existingValue := value.(type) { + case *CompositeValue: + // A dedicated error is thrown when setting duplicate attachments. + // So don't throw an error here. + if existingValue.Kind == common.CompositeKindAttachment { + return + } + resourceKindedValue = existingValue + case ResourceKindedValue: + resourceKindedValue = existingValue + default: + panic(errors.NewUnreachableError()) + } + + if !resourceKindedValue.isInvalidatedResource(interpreter) { + panic(ResourceLossError{ + LocationRange: locationRange, + }) + } +} diff --git a/runtime/interpreter/interpreter_expression.go b/runtime/interpreter/interpreter_expression.go index 171695b532..99205ea251 100644 --- a/runtime/interpreter/interpreter_expression.go +++ b/runtime/interpreter/interpreter_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,19 +33,19 @@ import ( // assignmentGetterSetter returns a getter/setter function pair // for the target expression -func (interpreter *Interpreter) assignmentGetterSetter(expression ast.Expression) getterSetter { +func (interpreter *Interpreter) assignmentGetterSetter(expression ast.Expression, locationRange LocationRange) getterSetter { switch expression := expression.(type) { case *ast.IdentifierExpression: - return interpreter.identifierExpressionGetterSetter(expression) + return interpreter.identifierExpressionGetterSetter(expression, locationRange) case *ast.IndexExpression: if attachmentType, ok := interpreter.Program.Elaboration.AttachmentAccessTypes(expression); ok { return interpreter.typeIndexExpressionGetterSetter(expression, attachmentType) } - return interpreter.valueIndexExpressionGetterSetter(expression) + return interpreter.valueIndexExpressionGetterSetter(expression, locationRange) case *ast.MemberExpression: - return interpreter.memberExpressionGetterSetter(expression) + return interpreter.memberExpressionGetterSetter(expression, locationRange) default: return getterSetter{ @@ -61,19 +61,26 @@ func (interpreter *Interpreter) assignmentGetterSetter(expression ast.Expression // identifierExpressionGetterSetter returns a getter/setter function pair // for the target identifier expression -func (interpreter *Interpreter) identifierExpressionGetterSetter(identifierExpression *ast.IdentifierExpression) getterSetter { +func (interpreter *Interpreter) identifierExpressionGetterSetter( + identifierExpression *ast.IdentifierExpression, + locationRange LocationRange, +) getterSetter { identifier := identifierExpression.Identifier.Identifier variable := interpreter.FindVariable(identifier) return getterSetter{ get: func(_ bool) Value { - value := variable.GetValue() + value := variable.GetValue(interpreter) interpreter.checkInvalidatedResourceUse(value, variable, identifier, identifierExpression) return value }, set: func(value Value) { interpreter.startResourceTracking(value, variable, identifier, identifierExpression) - variable.SetValue(value) + variable.SetValue( + interpreter, + locationRange, + value, + ) }, } } @@ -95,9 +102,11 @@ func (interpreter *Interpreter) typeIndexExpressionGetterSetter( return getterSetter{ target: target, get: func(_ bool) Value { + interpreter.checkInvalidatedResourceOrResourceReference(target, indexExpression) return target.GetTypeKey(interpreter, locationRange, attachmentType) }, set: func(_ Value) { + interpreter.checkInvalidatedResourceOrResourceReference(target, indexExpression) // writing to composites with indexing syntax is not supported panic(errors.NewUnreachableError()) }, @@ -106,17 +115,34 @@ func (interpreter *Interpreter) typeIndexExpressionGetterSetter( // valueIndexExpressionGetterSetter returns a getter/setter function pair // for the target index expression -func (interpreter *Interpreter) valueIndexExpressionGetterSetter(indexExpression *ast.IndexExpression) getterSetter { - target, ok := interpreter.evalExpression(indexExpression.TargetExpression).(ValueIndexableValue) +func (interpreter *Interpreter) valueIndexExpressionGetterSetter( + indexExpression *ast.IndexExpression, + locationRange LocationRange, +) getterSetter { + + // Use getter/setter functions to evaluate the target expression, + // instead of evaluating it directly. + // + // In a swap statement, the left or right side may be an index expression, + // and the indexed type (type of the target expression) may be a resource type. + // In that case, the target expression must be considered as a nested resource move expression, + // i.e. needs to be temporarily moved out (get) + // and back in (set) after the index expression got evaluated. + // + // This is because the evaluation of the index expression + // should not be able to access/move the target resource. + // + // For example, if a side is `a.b[c()]`, then `a.b` is the target expression. + // If `a.b` is a resource, then `c()` should not be able to access/move it. + + targetExpression := indexExpression.TargetExpression + targetGetterSetter := interpreter.assignmentGetterSetter(targetExpression, locationRange) + const allowMissing = false + target, ok := targetGetterSetter.get(allowMissing).(ValueIndexableValue) if !ok { panic(errors.NewUnreachableError()) } - locationRange := LocationRange{ - Location: interpreter.Location, - HasPosition: indexExpression, - } - // Evaluate, transfer, and convert the indexing value, // as it is essentially an "argument" of the get/set operation @@ -136,6 +162,11 @@ func (interpreter *Interpreter) valueIndexExpressionGetterSetter(indexExpression }, ) + isTargetNestedResourceMove := elaboration.IsNestedResourceMoveExpression(targetExpression) + if isTargetNestedResourceMove { + targetGetterSetter.set(target) + } + // Normally, moves of nested resources (e.g `let r <- rs[0]`) are statically rejected. // // However, there are cases in which we do allow moves of nested resources: @@ -165,12 +196,14 @@ func (interpreter *Interpreter) valueIndexExpressionGetterSetter(indexExpression if isNestedResourceMove { get = func(_ bool) Value { + interpreter.checkInvalidatedResourceOrResourceReference(target, targetExpression) value := target.RemoveKey(interpreter, locationRange, transferredIndexingValue) target.InsertKey(interpreter, locationRange, transferredIndexingValue, placeholder) return value } } else { get = func(_ bool) Value { + interpreter.checkInvalidatedResourceOrResourceReference(target, targetExpression) value := target.GetKey(interpreter, locationRange, transferredIndexingValue) // If the indexing value is a reference, then return a reference for the resulting value. @@ -182,6 +215,7 @@ func (interpreter *Interpreter) valueIndexExpressionGetterSetter(indexExpression target: target, get: get, set: func(value Value) { + interpreter.checkInvalidatedResourceOrResourceReference(target, targetExpression) target.SetKey(interpreter, locationRange, transferredIndexingValue, value) }, } @@ -189,13 +223,13 @@ func (interpreter *Interpreter) valueIndexExpressionGetterSetter(indexExpression // memberExpressionGetterSetter returns a getter/setter function pair // for the target member expression -func (interpreter *Interpreter) memberExpressionGetterSetter(memberExpression *ast.MemberExpression) getterSetter { +func (interpreter *Interpreter) memberExpressionGetterSetter( + memberExpression *ast.MemberExpression, + locationRange LocationRange, +) getterSetter { + target := interpreter.evalExpression(memberExpression.Expression) identifier := memberExpression.Identifier.Identifier - locationRange := LocationRange{ - Location: interpreter.Location, - HasPosition: memberExpression, - } isNestedResourceMove := interpreter.Program.Elaboration.IsNestedResourceMoveExpression(memberExpression) @@ -252,14 +286,13 @@ func (interpreter *Interpreter) memberExpressionGetterSetter(memberExpression *a // This is pre-computed at the checker. if memberAccessInfo.ReturnReference { // Get a reference to the value - resultValue = interpreter.getReferenceValue(resultValue, memberAccessInfo.ResultingType) + resultValue = interpreter.getReferenceValue(resultValue, memberAccessInfo.ResultingType, locationRange) } return resultValue }, set: func(value Value) { interpreter.checkMemberAccess(memberExpression, target, locationRange) - interpreter.setMember(target, locationRange, identifier, value) }, } @@ -270,28 +303,42 @@ func (interpreter *Interpreter) memberExpressionGetterSetter(memberExpression *a // This has to be done recursively for nested optionals. // e.g.1: Given type T, this method returns &T. // e.g.2: Given T?, this returns (&T)? -func (interpreter *Interpreter) getReferenceValue(value Value, resultType sema.Type) Value { +func (interpreter *Interpreter) getReferenceValue(value Value, resultType sema.Type, locationRange LocationRange) Value { + + // `resultType` is always an [optional] reference. + // This is guaranteed by the checker. + referenceType, ok := sema.UnwrapOptionalType(resultType).(*sema.ReferenceType) + if !ok { + panic(errors.NewUnreachableError()) + } + switch value := value.(type) { case NilValue, ReferenceValue: // Reference to a nil, should return a nil. // If the value is already a reference then return the same reference. + // However, we need to make sure that this reference is actually a subtype of the resultType, + // since the checker may not be aware that we are "short-circuiting" in this case + // Additionally, it is only safe to "compress" reference types like this when the desired + // result reference type is unauthorized + + staticType := value.StaticType(interpreter) + if referenceType.Authorization != sema.UnauthorizedAccess || !interpreter.IsSubTypeOfSemaType(staticType, resultType) { + panic(InvalidMemberReferenceError{ + ExpectedType: resultType, + ActualType: interpreter.MustConvertStaticToSemaType(staticType), + LocationRange: locationRange, + }) + } + return value case *SomeValue: - innerValue := interpreter.getReferenceValue(value.value, resultType) + innerValue := interpreter.getReferenceValue(value.value, resultType, locationRange) return NewSomeValueNonCopying(interpreter, innerValue) } - // `resultType` is always an [optional] reference. - // This is guaranteed by the checker. - referenceType, ok := sema.UnwrapOptionalType(resultType).(*sema.ReferenceType) - if !ok { - panic(errors.NewUnreachableError()) - } - auth := interpreter.getEffectiveAuthorization(referenceType) - interpreter.maybeTrackReferencedResourceKindedValue(value) - return NewEphemeralReferenceValue(interpreter, auth, value, referenceType.Type) + return NewEphemeralReferenceValue(interpreter, auth, value, referenceType.Type, locationRange) } func (interpreter *Interpreter) getEffectiveAuthorization(referenceType *sema.ReferenceType) Authorization { @@ -309,6 +356,9 @@ func (interpreter *Interpreter) checkMemberAccess( target Value, locationRange LocationRange, ) { + + interpreter.checkInvalidatedResourceOrResourceReference(target, memberExpression) + memberInfo, _ := interpreter.Program.Elaboration.MemberExpressionMemberAccessInfo(memberExpression) expectedType := memberInfo.AccessedType @@ -329,8 +379,15 @@ func (interpreter *Interpreter) checkMemberAccess( } } - if _, ok := target.(*StorageReferenceValue); ok { - // NOTE: Storage reference value accesses are already checked in StorageReferenceValue.dereference + // NOTE: accesses of (optional) storage reference values + // are already checked in StorageReferenceValue.dereference + _, isStorageReference := target.(*StorageReferenceValue) + if !isStorageReference { + if optional, ok := target.(*SomeValue); ok { + _, isStorageReference = optional.value.(*StorageReferenceValue) + } + } + if isStorageReference { return } @@ -350,7 +407,7 @@ func (interpreter *Interpreter) checkMemberAccess( func (interpreter *Interpreter) VisitIdentifierExpression(expression *ast.IdentifierExpression) Value { name := expression.Identifier.Identifier variable := interpreter.FindVariable(name) - value := variable.GetValue() + value := variable.GetValue(interpreter) interpreter.checkInvalidatedResourceUse(value, variable, name, expression) @@ -358,7 +415,49 @@ func (interpreter *Interpreter) VisitIdentifierExpression(expression *ast.Identi } func (interpreter *Interpreter) evalExpression(expression ast.Expression) Value { - return ast.AcceptExpression[Value](expression, interpreter) + result := ast.AcceptExpression[Value](expression, interpreter) + interpreter.checkInvalidatedResourceOrResourceReference(result, expression) + return result +} + +func (interpreter *Interpreter) checkInvalidatedResourceOrResourceReference(value Value, hasPosition ast.HasPosition) { + if interpreter == nil { + return + } + + // Unwrap SomeValue, to access references wrapped inside optionals. + someValue, isSomeValue := value.(*SomeValue) + for isSomeValue && someValue.value != nil { + value = someValue.value + someValue, isSomeValue = value.(*SomeValue) + } + + switch value := value.(type) { + case ResourceKindedValue: + if value.isInvalidatedResource(interpreter) { + panic(InvalidatedResourceError{ + LocationRange: LocationRange{ + Location: interpreter.Location, + HasPosition: hasPosition, + }, + }) + } + case *EphemeralReferenceValue: + if value.Value == nil { + panic(InvalidatedResourceReferenceError{ + LocationRange: LocationRange{ + Location: interpreter.Location, + HasPosition: hasPosition, + }, + }) + } else { + // If the value is there, check whether the referenced value is an invalidated one. + // This step is not really needed, since reference tracking is supposed to clear the + // `value.Value` if the referenced-value was moved/deleted. + // However, have this as a second layer of defensive. + interpreter.checkInvalidatedResourceOrResourceReference(value.Value, hasPosition) + } + } } func (interpreter *Interpreter) VisitBinaryExpression(expression *ast.BinaryExpression) Value { @@ -651,10 +750,42 @@ func (interpreter *Interpreter) VisitUnaryExpression(expression *ast.UnaryExpres if !ok { panic(errors.NewUnreachableError()) } - return integerValue.Negate(interpreter, LocationRange{ + return integerValue.Negate( + interpreter, + LocationRange{ + Location: interpreter.Location, + HasPosition: expression, + }, + ) + + case ast.OperationMul: + + if _, ok := value.(NilValue); ok { + return Nil + } + + locationRange := LocationRange{ Location: interpreter.Location, HasPosition: expression, - }) + } + var isOptional bool + + if someValue, ok := value.(*SomeValue); ok { + isOptional = true + value = someValue.InnerValue(interpreter, locationRange) + } + + referenceValue, ok := value.(ReferenceValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + dereferencedValue := DereferenceValue(interpreter, locationRange, referenceValue) + if isOptional { + return NewSomeValueNonCopying(interpreter, dereferencedValue) + } else { + return dereferencedValue + } case ast.OperationMove: interpreter.invalidateResource(value) @@ -747,7 +878,7 @@ func (interpreter *Interpreter) NewIntegerValueFromBigInt(value *big.Int, intege case sema.UInt128Type: // BigInt value is already metered at parser. return NewUnmeteredUInt128ValueFromBigInt(value) - case sema.UInt256Type: + case sema.UInt256Type, sema.FixedSizeUnsignedIntegerType: // BigInt value is already metered at parser. return NewUnmeteredUInt256ValueFromBigInt(value) @@ -914,7 +1045,13 @@ func (interpreter *Interpreter) VisitDictionaryExpression(expression *ast.Dictio func (interpreter *Interpreter) VisitMemberExpression(expression *ast.MemberExpression) Value { const allowMissing = false - return interpreter.memberExpressionGetterSetter(expression).get(allowMissing) + + locationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: expression, + } + + return interpreter.memberExpressionGetterSetter(expression, locationRange).get(allowMissing) } func (interpreter *Interpreter) VisitIndexExpression(expression *ast.IndexExpression) Value { @@ -954,11 +1091,17 @@ func (interpreter *Interpreter) maybeGetReference( memberValue Value, ) Value { indexExpressionTypes := interpreter.Program.Elaboration.IndexExpressionTypes(expression) + if indexExpressionTypes.ReturnReference { expectedType := indexExpressionTypes.ResultType + locationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: expression, + } + // Get a reference to the value - memberValue = interpreter.getReferenceValue(memberValue, expectedType) + memberValue = interpreter.getReferenceValue(memberValue, expectedType, locationRange) } return memberValue @@ -1033,15 +1176,6 @@ func (interpreter *Interpreter) visitInvocationExpressionWithImplicitArgument(in panic(errors.NewUnreachableError()) } - // Bound functions - if boundFunction, ok := function.(BoundFunctionValue); ok && boundFunction.Self != nil { - self := *boundFunction.Self - if resource, ok := self.(ReferenceTrackedResourceKindedValue); ok { - storageID := resource.StorageID() - interpreter.trackReferencedResourceKindedValue(storageID, resource) - } - } - // NOTE: evaluate all argument expressions in call-site scope, not in function body var argumentExpressions []ast.Expression @@ -1177,12 +1311,22 @@ func (interpreter *Interpreter) VisitCastingExpression(expression *ast.CastingEx HasPosition: expression.Expression, } - expectedType := interpreter.substituteMappedEntitlements(interpreter.Program.Elaboration.CastingExpressionTypes(expression).TargetType) + castingExpressionTypes := interpreter.Program.Elaboration.CastingExpressionTypes(expression) + expectedType := interpreter.substituteMappedEntitlements(castingExpressionTypes.TargetType) switch expression.Operation { case ast.OperationFailableCast, ast.OperationForceCast: - valueStaticType := value.StaticType(interpreter) - valueSemaType := interpreter.MustConvertStaticToSemaType(valueStaticType) + // if the value itself has a mapped entitlement type in its authorization + // (e.g. if it is a reference to `self` or `base` in an attachment function with mapped access) + // substitution must also be performed on its entitlements + // + // we do this here (as opposed to in `IsSubTypeOfSemaType`) because casting is the only way that + // an entitlement can "traverse the boundary", so to speak, between runtime and static types, and + // thus this is the only place where it becomes necessary to "instantiate" the result of a map to its + // concrete outputs. In other places (e.g. interface conformance checks) we want to leave maps generic, + // so we don't substitute them. + valueSemaType := interpreter.substituteMappedEntitlements(interpreter.MustSemaTypeOfValue(value)) + valueStaticType := ConvertSemaToStaticType(interpreter, valueSemaType) isSubType := interpreter.IsSubTypeOfSemaType(valueStaticType, expectedType) switch expression.Operation { @@ -1191,11 +1335,6 @@ func (interpreter *Interpreter) VisitCastingExpression(expression *ast.CastingEx return Nil } - // The failable cast may upcast to an optional type, e.g. `1 as? Int?`, so box - value = interpreter.ConvertAndBox(locationRange, value, valueSemaType, expectedType) - - return NewSomeValueNonCopying(interpreter, value) - case ast.OperationForceCast: if !isSubType { locationRange := LocationRange{ @@ -1210,15 +1349,24 @@ func (interpreter *Interpreter) VisitCastingExpression(expression *ast.CastingEx }) } - // The failable cast may upcast to an optional type, e.g. `1 as? Int?`, so box - return interpreter.ConvertAndBox(locationRange, value, valueSemaType, expectedType) - default: panic(errors.NewUnreachableError()) } + // The failable cast may upcast to an optional type, e.g. `1 as? Int?`, so box + value = interpreter.ConvertAndBox(locationRange, value, valueSemaType, expectedType) + + if expression.Operation == ast.OperationFailableCast { + // Failable casting is a resource invalidation + interpreter.invalidateResource(value) + + value = NewSomeValueNonCopying(interpreter, value) + } + + return value + case ast.OperationCast: - staticValueType := interpreter.Program.Elaboration.CastingExpressionTypes(expression).StaticValueType + staticValueType := castingExpressionTypes.StaticValueType // The cast may upcast to an optional type, e.g. `1 as Int?`, so box return interpreter.ConvertAndBox(locationRange, value, staticValueType, expectedType) @@ -1252,20 +1400,14 @@ func (interpreter *Interpreter) VisitReferenceExpression(referenceExpression *as result := interpreter.evalExpression(referenceExpression.Expression) - interpreter.maybeTrackReferencedResourceKindedValue(result) - - makeReference := func(value Value, typ *sema.ReferenceType) *EphemeralReferenceValue { - // if we are currently interpretering a function that was declared with mapped entitlement access, any appearances - // of that mapped access in the body of the function should be replaced with the computed output of the map - auth := interpreter.getEffectiveAuthorization(typ) + return interpreter.createReference(borrowType, result, referenceExpression) +} - return NewEphemeralReferenceValue( - interpreter, - auth, - value, - typ.Type, - ) - } +func (interpreter *Interpreter) createReference( + borrowType sema.Type, + value Value, + hasPosition ast.HasPosition, +) Value { // There are four potential cases: // 1) Target type is optional, actual value is also optional (nil/SomeValue) @@ -1275,13 +1417,10 @@ func (interpreter *Interpreter) VisitReferenceExpression(referenceExpression *as switch typ := borrowType.(type) { case *sema.OptionalType: - innerBorrowType, ok := typ.Type.(*sema.ReferenceType) - // we enforce this in the checker - if !ok { - panic(errors.NewUnreachableError()) - } - switch result := result.(type) { + innerType := typ.Type + + switch value := value.(type) { case *SomeValue: // Case (1): // References to optionals are transformed into optional references, @@ -1289,16 +1428,15 @@ func (interpreter *Interpreter) VisitReferenceExpression(referenceExpression *as locationRange := LocationRange{ Location: interpreter.Location, - HasPosition: referenceExpression.Expression, + HasPosition: hasPosition, } - innerValue := result.InnerValue(interpreter, locationRange) - interpreter.maybeTrackReferencedResourceKindedValue(innerValue) + innerValue := value.InnerValue(interpreter, locationRange) - return NewSomeValueNonCopying( - interpreter, - makeReference(innerValue, innerBorrowType), - ) + referenceValue := interpreter.createReference(innerType, innerValue, hasPosition) + + // Wrap the reference with an optional (since an optional is expected). + return NewSomeValueNonCopying(interpreter, referenceValue) case NilValue: return Nil @@ -1306,38 +1444,54 @@ func (interpreter *Interpreter) VisitReferenceExpression(referenceExpression *as default: // Case (2): // If the referenced value is non-optional, - // but the target type is optional, - // then box the reference properly - - locationRange := LocationRange{ - Location: interpreter.Location, - HasPosition: referenceExpression, - } + // but the target type is optional. + referenceValue := interpreter.createReference(innerType, value, hasPosition) - return interpreter.BoxOptional( - locationRange, - makeReference(result, innerBorrowType), - borrowType, - ) + // Wrap the reference with an optional (since an optional is expected). + return NewSomeValueNonCopying(interpreter, referenceValue) } case *sema.ReferenceType: // Case (3): target type is non-optional, actual value is optional. - // Unwrap the optional and add it to reference tracking. - if someValue, ok := result.(*SomeValue); ok { + if someValue, ok := value.(*SomeValue); ok { locationRange := LocationRange{ Location: interpreter.Location, - HasPosition: referenceExpression.Expression, + HasPosition: hasPosition, } innerValue := someValue.InnerValue(interpreter, locationRange) - interpreter.maybeTrackReferencedResourceKindedValue(innerValue) + + return interpreter.createReference(typ, innerValue, hasPosition) } - // Case (4): target type is non-optional, actual value is also non-optional - return makeReference(result, typ) + // Case (4): target type is non-optional, actual value is also non-optional. + return interpreter.newEphemeralReference(value, typ, hasPosition) + + default: + panic(errors.NewUnreachableError()) + } +} + +func (interpreter *Interpreter) newEphemeralReference( + value Value, + typ *sema.ReferenceType, + hasPosition ast.HasPosition, +) *EphemeralReferenceValue { + // If we are currently interpreting a function that was declared with mapped entitlement access, any appearances + // of that mapped access in the body of the function should be replaced with the computed output of the map + auth := interpreter.getEffectiveAuthorization(typ) + + locationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: hasPosition, } - panic(errors.NewUnreachableError()) + return NewEphemeralReferenceValue( + interpreter, + auth, + value, + typ.Type, + locationRange, + ) } func (interpreter *Interpreter) VisitForceExpression(expression *ast.ForceExpression) Value { @@ -1408,24 +1562,21 @@ func (interpreter *Interpreter) VisitAttachExpression(attachExpression *ast.Atta // set it on the attachment's `CompositeValue` yet, because the value does not exist. // Instead, we create an implicit constructor argument containing a reference to the base. - var auth Authorization = UnauthorizedAccess - attachmentType := interpreter.Program.Elaboration.AttachTypes(attachExpression) + // within the constructor, the attachment's base and self references should be fully entitled, + // as the constructor of the attachment is only callable by the owner of the base + baseType := interpreter.MustSemaTypeOfValue(base).(sema.EntitlementSupportingType) + baseAccess := baseType.SupportedEntitlements().Access() + auth := ConvertSemaAccessToStaticAuthorization(interpreter, baseAccess) - if attachmentType.RequiredEntitlements.Len() > 0 { - baseAccess := sema.EntitlementSetAccess{ - SetKind: sema.Conjunction, - Entitlements: attachmentType.RequiredEntitlements, - } - auth = ConvertSemaAccessToStaticAuthorization(interpreter, baseAccess) - } + attachmentType := interpreter.Program.Elaboration.AttachTypes(attachExpression) var baseValue Value = NewEphemeralReferenceValue( interpreter, auth, base, interpreter.MustSemaTypeOfValue(base).(*sema.CompositeType), + locationRange, ) - interpreter.trackReferencedResourceKindedValue(base.StorageID(), base) attachment, ok := interpreter.visitInvocationExpressionWithImplicitArgument( attachExpression.Attachment, @@ -1436,9 +1587,6 @@ func (interpreter *Interpreter) VisitAttachExpression(attachExpression *ast.Atta panic(errors.NewUnreachableError()) } - // Because `self` in attachments is a reference, we need to track the attachment if it's a resource - interpreter.trackReferencedResourceKindedValue(attachment.StorageID(), attachment) - base = base.Transfer( interpreter, locationRange, @@ -1448,6 +1596,8 @@ func (interpreter *Interpreter) VisitAttachExpression(attachExpression *ast.Atta nil, ).(*CompositeValue) + attachment.setBaseValue(interpreter, base) + // we enforce this in the checker if !ok { panic(errors.NewUnreachableError()) diff --git a/runtime/interpreter/interpreter_import.go b/runtime/interpreter/interpreter_import.go index bda0d10ca1..1318a43466 100644 --- a/runtime/interpreter/interpreter_import.go +++ b/runtime/interpreter/interpreter_import.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import ( "time" "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" ) @@ -56,10 +57,10 @@ func (interpreter *Interpreter) importResolvedLocation(resolvedLocation sema.Res // determine which identifiers are imported / // which variables need to be declared - var variables map[string]*Variable + var variables map[string]Variable identifierLength := len(resolvedLocation.Identifiers) if identifierLength > 0 { - variables = make(map[string]*Variable, identifierLength) + variables = make(map[string]Variable, identifierLength) for _, identifier := range resolvedLocation.Identifiers { variables[identifier.Identifier] = subInterpreter.Globals.Get(identifier.Identifier) @@ -83,9 +84,40 @@ func (interpreter *Interpreter) importResolvedLocation(resolvedLocation sema.Res for _, name := range names { variable := variables[name] + if variable == nil { + continue + } - interpreter.setVariable(name, variable) - interpreter.Globals.Set(name, variable) - } + // Lazily load the value + getter := func() Value { + value := variable.GetValue(interpreter) + + // If the variable is a contract value, then import it as a reference. + // This must be done at the type of importing, rather than when declaring the contract value. + compositeValue, ok := value.(*CompositeValue) + if !ok || compositeValue.Kind != common.CompositeKindContract { + return value + } + + staticType := compositeValue.StaticType(interpreter) + semaType, err := interpreter.ConvertStaticToSemaType(staticType) + if err != nil { + panic(err) + } + + return NewEphemeralReferenceValue( + interpreter, + UnauthorizedAccess, + compositeValue, + semaType, + LocationRange{ + Location: interpreter.Location, + }, + ) + } + importedVariable := NewVariableWithGetter(interpreter, getter) + interpreter.setVariable(name, importedVariable) + interpreter.Globals.Set(name, importedVariable) + } } diff --git a/runtime/interpreter/interpreter_invocation.go b/runtime/interpreter/interpreter_invocation.go index 8f4fb6dbed..b68c397211 100644 --- a/runtime/interpreter/interpreter_invocation.go +++ b/runtime/interpreter/interpreter_invocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -140,7 +140,7 @@ func (interpreter *Interpreter) invokeInterpretedFunction( // Make `self` available, if any if invocation.Self != nil { - interpreter.declareVariable(sema.SelfIdentifier, *invocation.Self) + interpreter.declareSelfVariable(*invocation.Self, invocation.LocationRange) } if invocation.Base != nil { interpreter.declareVariable(sema.BaseIdentifier, invocation.Base) @@ -153,13 +153,14 @@ func (interpreter *Interpreter) invokeInterpretedFunction( }() } - return interpreter.invokeInterpretedFunctionActivated(function, invocation.Arguments) + return interpreter.invokeInterpretedFunctionActivated(function, invocation.Arguments, invocation.LocationRange) } // NOTE: assumes the function's activation (or an extension of it) is pushed! func (interpreter *Interpreter) invokeInterpretedFunctionActivated( function *InterpretedFunctionValue, arguments []Value, + declarationLocationRange LocationRange, ) Value { defer func() { // Only unwind the call stack if there was no error @@ -182,6 +183,7 @@ func (interpreter *Interpreter) invokeInterpretedFunctionActivated( }, function.PostConditions, function.Type.ReturnTypeAnnotation.Type, + declarationLocationRange, ) } diff --git a/runtime/interpreter/interpreter_statement.go b/runtime/interpreter/interpreter_statement.go index ca1ea8cedd..9170eaa0ce 100644 --- a/runtime/interpreter/interpreter_statement.go +++ b/runtime/interpreter/interpreter_statement.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,11 +19,10 @@ package interpreter import ( - "github.com/onflow/atree" - "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/sema" ) func (interpreter *Interpreter) evalStatement(statement ast.Statement) StatementResult { @@ -151,66 +150,22 @@ func (interpreter *Interpreter) visitIfStatementWithVariableDeclaration( thenBlock, elseBlock *ast.Block, ) StatementResult { - // NOTE: It is *REQUIRED* that the getter for the value is used - // instead of just evaluating value expression, - // as the value may be an access expression (member access, index access), - // which implicitly removes a resource. - // - // Performing the removal from the container is essential - // (and just evaluating the expression does not perform the removal), - // because if there is a second value, - // the assignment to the value will cause an overwrite of the value. - // If the resource was not moved ou of the container, - // its contents get deleted. - - getterSetter := interpreter.assignmentGetterSetter(declaration.Value) - - const allowMissing = false - value := getterSetter.get(allowMissing) - if value == nil { - panic(errors.NewUnreachableError()) - } - - variableDeclarationTypes := interpreter.Program.Elaboration.VariableDeclarationTypes(declaration) - valueType := variableDeclarationTypes.ValueType - - if declaration.SecondValue != nil { - secondValueType := variableDeclarationTypes.SecondValueType - - interpreter.visitAssignment( - declaration.Transfer.Operation, - declaration.Value, - valueType, - declaration.SecondValue, - secondValueType, - declaration, - ) - } + value := interpreter.visitVariableDeclaration(declaration, true) if someValue, ok := value.(*SomeValue); ok { - - targetType := variableDeclarationTypes.TargetType locationRange := LocationRange{ Location: interpreter.Location, HasPosition: declaration.Value, } + innerValue := someValue.InnerValue(interpreter, locationRange) - transferredUnwrappedValue := interpreter.transferAndConvert( - innerValue, - valueType, - targetType, - locationRange, - ) interpreter.activations.PushNewWithCurrent() defer interpreter.activations.Pop() - // Assignment can also be a resource move. - interpreter.invalidateResource(innerValue) - interpreter.declareVariable( declaration.Identifier.Identifier, - transferredUnwrappedValue, + innerValue, ) return interpreter.visitBlock(thenBlock) @@ -313,7 +268,7 @@ func (interpreter *Interpreter) VisitWhileStatement(statement *ast.WhileStatemen var intOne = NewUnmeteredIntValueFromInt64(1) -func (interpreter *Interpreter) VisitForStatement(statement *ast.ForStatement) StatementResult { +func (interpreter *Interpreter) VisitForStatement(statement *ast.ForStatement) (result StatementResult) { interpreter.activations.PushNewWithCurrent() defer interpreter.activations.Pop() @@ -324,42 +279,50 @@ func (interpreter *Interpreter) VisitForStatement(statement *ast.ForStatement) S } value := interpreter.evalExpression(statement.Value) - transferredValue := value.Transfer( - interpreter, - locationRange, - atree.Address{}, - false, - nil, - nil, - ) - iterable, ok := transferredValue.(IterableValue) + // Do not transfer the iterable value. + // Instead, transfer each iterating element. + // This is done in `ForEach` method. + + iterable, ok := value.(IterableValue) if !ok { panic(errors.NewUnreachableError()) } - iterator := iterable.Iterator(interpreter) + forStmtTypes := interpreter.Program.Elaboration.ForStatementType(statement) var index IntValue if statement.Index != nil { index = NewIntValueFromInt64(interpreter, 0) } - for { - value := iterator.Next(interpreter) - if value == nil { - return nil - } - + executeBody := func(value Value) (resume bool) { statementResult, done := interpreter.visitForStatementBody(statement, index, value) if done { - return statementResult + result = statementResult } + resume = !done + if statement.Index != nil { index = index.Plus(interpreter, intOne, locationRange).(IntValue) } + + return } + + // Transfer the elements before pass onto the loop-body. + const transferElements = true + + iterable.ForEach( + interpreter, + forStmtTypes.ValueVariableType, + executeBody, + transferElements, + locationRange, + ) + + return } func (interpreter *Interpreter) visitForStatementBody( @@ -403,18 +366,7 @@ func (interpreter *Interpreter) visitForStatementBody( return nil, false } -func (interpreter *Interpreter) VisitEmitStatement(statement *ast.EmitStatement) StatementResult { - event, ok := interpreter.evalExpression(statement.InvocationExpression).(*CompositeValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - eventType := interpreter.Program.Elaboration.EmitStatementEventType(statement) - - locationRange := LocationRange{ - Location: interpreter.Location, - HasPosition: statement, - } +func (interpreter *Interpreter) emitEvent(event *CompositeValue, eventType *sema.CompositeType, locationRange LocationRange) { config := interpreter.SharedState.Config @@ -429,6 +381,23 @@ func (interpreter *Interpreter) VisitEmitStatement(statement *ast.EmitStatement) if err != nil { panic(err) } +} + +func (interpreter *Interpreter) VisitEmitStatement(statement *ast.EmitStatement) StatementResult { + + event, ok := interpreter.evalExpression(statement.InvocationExpression).(*CompositeValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + eventType := interpreter.Program.Elaboration.EmitStatementEventType(statement) + + locationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: statement, + } + + interpreter.emitEvent(event, eventType, locationRange) return nil } @@ -490,18 +459,14 @@ func (interpreter *Interpreter) VisitPragmaDeclaration(_ *ast.PragmaDeclaration) // then declares the variable with the name bound to the value func (interpreter *Interpreter) VisitVariableDeclaration(declaration *ast.VariableDeclaration) StatementResult { - interpreter.visitVariableDeclaration( - declaration, - func(identifier string, value Value) { + value := interpreter.visitVariableDeclaration(declaration, false) - // NOTE: lexical scope, always declare a new variable. - // Do not find an existing variable and assign the value! + // NOTE: lexical scope, always declare a new variable. + // Do not find an existing variable and assign the value! - _ = interpreter.declareVariable( - identifier, - value, - ) - }, + _ = interpreter.declareVariable( + declaration.Identifier.Identifier, + value, ) return nil @@ -509,8 +474,8 @@ func (interpreter *Interpreter) VisitVariableDeclaration(declaration *ast.Variab func (interpreter *Interpreter) visitVariableDeclaration( declaration *ast.VariableDeclaration, - valueCallback func(identifier string, value Value), -) { + isOptionalBinding bool, +) Value { variableDeclarationTypes := interpreter.Program.Elaboration.VariableDeclarationTypes(declaration) targetType := variableDeclarationTypes.TargetType @@ -526,10 +491,15 @@ func (interpreter *Interpreter) visitVariableDeclaration( // (and just evaluating the expression does not perform the removal), // because if there is a second value, // the assignment to the value will cause an overwrite of the value. - // If the resource was not moved ou of the container, + // If the resource was not moved out of the container, // its contents get deleted. - getterSetter := interpreter.assignmentGetterSetter(declaration.Value) + locationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: declaration.Value, + } + + getterSetter := interpreter.assignmentGetterSetter(declaration.Value, locationRange) const allowMissing = false result := getterSetter.get(allowMissing) @@ -537,33 +507,34 @@ func (interpreter *Interpreter) visitVariableDeclaration( panic(errors.NewUnreachableError()) } - // Assignment is a potential resource move. - interpreter.invalidateResource(result) - - locationRange := LocationRange{ - Location: interpreter.Location, - HasPosition: declaration.Value, + if isOptionalBinding { + targetType = &sema.OptionalType{ + Type: targetType, + } } - transferredValue := interpreter.transferAndConvert(result, valueType, targetType, locationRange) - - valueCallback( - declaration.Identifier.Identifier, - transferredValue, + transferredValue := interpreter.transferAndConvert( + result, + valueType, + targetType, + locationRange, ) - if declaration.SecondValue == nil { - return + // Assignment is a potential resource move. + interpreter.invalidateResource(result) + + if declaration.SecondValue != nil { + interpreter.visitAssignment( + declaration.Transfer.Operation, + getterSetter, + valueType, + declaration.SecondValue, + secondValueType, + declaration, + ) } - interpreter.visitAssignment( - declaration.Transfer.Operation, - declaration.Value, - valueType, - declaration.SecondValue, - secondValueType, - declaration, - ) + return transferredValue } func (interpreter *Interpreter) VisitAssignmentStatement(assignment *ast.AssignmentStatement) StatementResult { @@ -574,9 +545,16 @@ func (interpreter *Interpreter) VisitAssignmentStatement(assignment *ast.Assignm target := assignment.Target value := assignment.Value + locationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: target, + } + + getterSetter := interpreter.assignmentGetterSetter(target, locationRange) + interpreter.visitAssignment( assignment.Transfer.Operation, - target, targetType, + getterSetter, targetType, value, valueType, assignment, ) @@ -594,11 +572,21 @@ func (interpreter *Interpreter) VisitSwapStatement(swap *ast.SwapStatement) Stat // Evaluate the left side (target and key) - leftGetterSetter := interpreter.assignmentGetterSetter(swap.Left) + leftLocationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: swap.Left, + } + + leftGetterSetter := interpreter.assignmentGetterSetter(swap.Left, leftLocationRange) // Evaluate the right side (target and key) - rightGetterSetter := interpreter.assignmentGetterSetter(swap.Right) + rightLocationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: swap.Right, + } + + rightGetterSetter := interpreter.assignmentGetterSetter(swap.Right, rightLocationRange) // Get left and right values @@ -613,17 +601,11 @@ func (interpreter *Interpreter) VisitSwapStatement(swap *ast.SwapStatement) Stat // Set right value to left target, // and left value to right target - locationRange := LocationRange{ - Location: interpreter.Location, - HasPosition: swap.Right, - } - transferredRightValue := interpreter.transferAndConvert(rightValue, rightType, leftType, locationRange) + interpreter.checkInvalidatedResourceOrResourceReference(rightValue, swap.Right) + transferredRightValue := interpreter.transferAndConvert(rightValue, rightType, leftType, rightLocationRange) - locationRange = LocationRange{ - Location: interpreter.Location, - HasPosition: swap.Left, - } - transferredLeftValue := interpreter.transferAndConvert(leftValue, leftType, rightType, locationRange) + interpreter.checkInvalidatedResourceOrResourceReference(leftValue, swap.Left) + transferredLeftValue := interpreter.transferAndConvert(leftValue, leftType, rightType, leftLocationRange) leftGetterSetter.set(transferredRightValue) rightGetterSetter.set(transferredLeftValue) diff --git a/runtime/interpreter/interpreter_test.go b/runtime/interpreter/interpreter_test.go index 395e0dd91a..bf79b8b9ba 100644 --- a/runtime/interpreter/interpreter_test.go +++ b/runtime/interpreter/interpreter_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/interpreter_tracing.go b/runtime/interpreter/interpreter_tracing.go index 554fc82bbf..365eebed42 100644 --- a/runtime/interpreter/interpreter_tracing.go +++ b/runtime/interpreter/interpreter_tracing.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/interpreter_tracing_test.go b/runtime/interpreter/interpreter_tracing_test.go index e4739797c9..fa79e4c805 100644 --- a/runtime/interpreter/interpreter_tracing_test.go +++ b/runtime/interpreter/interpreter_tracing_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/interpreter_transaction.go b/runtime/interpreter/interpreter_transaction.go index 3d93c9a3ac..6a5f0f932d 100644 --- a/runtime/interpreter/interpreter_transaction.go +++ b/runtime/interpreter/interpreter_transaction.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -65,6 +65,8 @@ func (interpreter *Interpreter) declareTransactionEntryPoint(declaration *ast.Tr nil, ) + self.isTransaction = true + // Construct a raw HostFunctionValue without a type, // instead of using NewHostFunctionValue, which requires a type. // @@ -76,9 +78,9 @@ func (interpreter *Interpreter) declareTransactionEntryPoint(declaration *ast.Tr Function: func(invocation Invocation) Value { interpreter.activations.PushNewWithParent(lexicalScope) - self := MemberAccessibleValue(self) + self := Value(self) invocation.Self = &self - interpreter.declareVariable(sema.SelfIdentifier, self) + interpreter.declareSelfVariable(self, invocation.LocationRange) if declaration.ParameterList != nil { // If the transaction has a parameter list of N parameters, @@ -132,12 +134,18 @@ func (interpreter *Interpreter) declareTransactionEntryPoint(declaration *ast.Tr preConditions = *declaration.PreConditions } + declarationLocationRange := LocationRange{ + Location: interpreter.Location, + HasPosition: declaration, + } + return interpreter.visitFunctionBody( postConditionsRewrite.BeforeStatements, preConditions, body, postConditionsRewrite.RewrittenPostConditions, sema.VoidType, + declarationLocationRange, ) }, } diff --git a/runtime/interpreter/invocation.go b/runtime/interpreter/invocation.go index 5acfa45785..7fde502b71 100644 --- a/runtime/interpreter/invocation.go +++ b/runtime/interpreter/invocation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ import ( // Invocation type Invocation struct { LocationRange LocationRange - Self *MemberAccessibleValue + Self *Value Base *EphemeralReferenceValue BoundAuthorization Authorization TypeParameterTypes *sema.TypeParameterTypeOrderedMap @@ -37,7 +37,7 @@ type Invocation struct { func NewInvocation( interpreter *Interpreter, - self *MemberAccessibleValue, + self *Value, base *EphemeralReferenceValue, boundAuth Authorization, arguments []Value, diff --git a/runtime/interpreter/location.go b/runtime/interpreter/location.go index 4186c84c3e..674ebb8842 100644 --- a/runtime/interpreter/location.go +++ b/runtime/interpreter/location.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/location_test.go b/runtime/interpreter/location_test.go index 50a85d4ee7..35eac77d2e 100644 --- a/runtime/interpreter/location_test.go +++ b/runtime/interpreter/location_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/minus_test.go b/runtime/interpreter/minus_test.go index 8047ef36f1..541b269740 100644 --- a/runtime/interpreter/minus_test.go +++ b/runtime/interpreter/minus_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/mul_test.go b/runtime/interpreter/mul_test.go index faf357aa99..172b21fdb9 100644 --- a/runtime/interpreter/mul_test.go +++ b/runtime/interpreter/mul_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/negate_test.go b/runtime/interpreter/negate_test.go index f6b285b5b8..668a66b4b9 100644 --- a/runtime/interpreter/negate_test.go +++ b/runtime/interpreter/negate_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/number.go b/runtime/interpreter/number.go index b16bce2e3c..c0149567c6 100644 --- a/runtime/interpreter/number.go +++ b/runtime/interpreter/number.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/number_test.go b/runtime/interpreter/number_test.go index c375ed6144..effb6573bf 100644 --- a/runtime/interpreter/number_test.go +++ b/runtime/interpreter/number_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/plus_test.go b/runtime/interpreter/plus_test.go index 20cd88e620..61d72f25d9 100644 --- a/runtime/interpreter/plus_test.go +++ b/runtime/interpreter/plus_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/primitivestatictype.go b/runtime/interpreter/primitivestatictype.go index 9bc6bc2614..1bb5234b24 100644 --- a/runtime/interpreter/primitivestatictype.go +++ b/runtime/interpreter/primitivestatictype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -81,7 +81,7 @@ const ( PrimitiveStaticTypeBlock PrimitiveStaticTypeAnyResourceAttachment PrimitiveStaticTypeAnyStructAttachment - _ + PrimitiveStaticTypeHashableStruct _ _ _ @@ -97,7 +97,7 @@ const ( // Integer PrimitiveStaticTypeInteger PrimitiveStaticTypeSignedInteger - _ + PrimitiveStaticTypeFixedSizeUnsignedInteger _ _ _ @@ -266,7 +266,8 @@ func (t PrimitiveStaticType) elementSize() uint { PrimitiveStaticTypeAnyResource, PrimitiveStaticTypeAny, PrimitiveStaticTypeAnyStructAttachment, - PrimitiveStaticTypeAnyResourceAttachment: + PrimitiveStaticTypeAnyResourceAttachment, + PrimitiveStaticTypeHashableStruct: return UnknownElementSize case PrimitiveStaticTypeVoid: @@ -302,6 +303,7 @@ func (t PrimitiveStaticType) elementSize() uint { PrimitiveStaticTypeWord256, PrimitiveStaticTypeInteger, PrimitiveStaticTypeSignedInteger, + PrimitiveStaticTypeFixedSizeUnsignedInteger, PrimitiveStaticTypeNumber, PrimitiveStaticTypeSignedNumber: return UnknownElementSize @@ -392,6 +394,9 @@ func (t PrimitiveStaticType) elementSize() uint { PrimitiveStaticTypeAccountKey: // These types are deprecated, and only exist for migration purposes return UnknownElementSize + + case PrimitiveStaticTypeUnknown: + case PrimitiveStaticType_Count: } panic(errors.NewUnexpectedError("missing case for %s", t)) @@ -420,6 +425,35 @@ func (t PrimitiveStaticType) MeteredString(memoryGauge common.MemoryGauge) strin } func (t PrimitiveStaticType) ID() TypeID { + + // Handle deprecated types specially, because they do not have a sema type equivalent anymore + switch t { + case PrimitiveStaticTypeAuthAccount: //nolint:staticcheck + return "AuthAccount" + case PrimitiveStaticTypePublicAccount: //nolint:staticcheck + return "PublicAccount" + case PrimitiveStaticTypeAuthAccountContracts: //nolint:staticcheck + return "AuthAccount.Contracts" + case PrimitiveStaticTypePublicAccountContracts: //nolint:staticcheck + return "PublicAccount.Contracts" + case PrimitiveStaticTypeAuthAccountKeys: //nolint:staticcheck + return "AuthAccount.Keys" + case PrimitiveStaticTypePublicAccountKeys: //nolint:staticcheck + return "PublicAccount.Keys" + case PrimitiveStaticTypeAuthAccountInbox: //nolint:staticcheck + return "AuthAccount.Inbox" + case PrimitiveStaticTypeAuthAccountStorageCapabilities: //nolint:staticcheck + return "AuthAccount.StorageCapabilities" + case PrimitiveStaticTypeAuthAccountAccountCapabilities: //nolint:staticcheck + return "AuthAccount.AccountCapabilities" + case PrimitiveStaticTypeAuthAccountCapabilities: //nolint:staticcheck + return "AuthAccount.Capabilities" + case PrimitiveStaticTypePublicAccountCapabilities: //nolint:staticcheck + return "PublicAccount.Capabilities" + case PrimitiveStaticTypeAccountKey: //nolint:staticcheck + return "AccountKey" + } + return t.SemaType().ID() } @@ -437,6 +471,9 @@ func (t PrimitiveStaticType) SemaType() sema.Type { case PrimitiveStaticTypeAnyStruct: return sema.AnyStructType + case PrimitiveStaticTypeHashableStruct: + return sema.HashableStructType + case PrimitiveStaticTypeAnyResource: return sema.AnyResourceType @@ -476,6 +513,8 @@ func (t PrimitiveStaticType) SemaType() sema.Type { return sema.IntegerType case PrimitiveStaticTypeSignedInteger: return sema.SignedIntegerType + case PrimitiveStaticTypeFixedSizeUnsignedInteger: + return sema.FixedSizeUnsignedIntegerType // FixedPoint case PrimitiveStaticTypeFixedPoint: @@ -559,21 +598,6 @@ func (t PrimitiveStaticType) SemaType() sema.Type { case PrimitiveStaticTypeAccountCapabilityController: return sema.AccountCapabilityControllerType - case PrimitiveStaticTypeAuthAccount, - PrimitiveStaticTypePublicAccount, - PrimitiveStaticTypeAuthAccountContracts, - PrimitiveStaticTypePublicAccountContracts, - PrimitiveStaticTypeAuthAccountKeys, - PrimitiveStaticTypePublicAccountKeys, - PrimitiveStaticTypeAuthAccountInbox, - PrimitiveStaticTypeAuthAccountStorageCapabilities, - PrimitiveStaticTypeAuthAccountAccountCapabilities, - PrimitiveStaticTypeAuthAccountCapabilities, - PrimitiveStaticTypePublicAccountCapabilities, - PrimitiveStaticTypeAccountKey: - // These types are deprecated, and only exist for migration purposes - return nil - case PrimitiveStaticTypeAccount: return sema.AccountType case PrimitiveStaticTypeAccount_Contracts: @@ -655,6 +679,32 @@ func (t PrimitiveStaticType) SemaType() sema.Type { return sema.CapabilitiesMappingType case PrimitiveStaticTypeAccountMapping: return sema.AccountMappingType + + case PrimitiveStaticTypeAuthAccount: //nolint:staticcheck + // deprecated, but needed for migration purposes + return sema.FullyEntitledAccountReferenceType + case PrimitiveStaticTypePublicAccount: //nolint:staticcheck + // deprecated, but needed for migration purposes + return sema.AccountReferenceType + + case PrimitiveStaticTypeAuthAccountContracts: + case PrimitiveStaticTypePublicAccountContracts: + case PrimitiveStaticTypeAuthAccountKeys: + case PrimitiveStaticTypePublicAccountKeys: + case PrimitiveStaticTypeAccountKey: + case PrimitiveStaticTypeAuthAccountInbox: + case PrimitiveStaticTypeAuthAccountStorageCapabilities: + case PrimitiveStaticTypeAuthAccountAccountCapabilities: + case PrimitiveStaticTypeAuthAccountCapabilities: + case PrimitiveStaticTypePublicAccountCapabilities: + panic(errors.NewUnexpectedError("cannot convert deprecated type %s", t)) + + case PrimitiveStaticTypeUnknown: + case PrimitiveStaticType_Count: + } + + if t.IsDeprecated() { + panic(errors.NewUnexpectedError("cannot convert deprecated type %s", t)) } panic(errors.NewUnexpectedError("missing case for %s", t)) @@ -665,6 +715,27 @@ func (t PrimitiveStaticType) IsDefined() bool { return ok } +// Deprecated: IsDeprecated only exists for migration purposes. +func (t PrimitiveStaticType) IsDeprecated() bool { + switch t { + case PrimitiveStaticTypeAuthAccount, //nolint:staticcheck + PrimitiveStaticTypePublicAccount, //nolint:staticcheck + PrimitiveStaticTypeAuthAccountContracts, //nolint:staticcheck + PrimitiveStaticTypePublicAccountContracts, //nolint:staticcheck + PrimitiveStaticTypeAuthAccountKeys, //nolint:staticcheck + PrimitiveStaticTypePublicAccountKeys, //nolint:staticcheck + PrimitiveStaticTypeAuthAccountInbox, //nolint:staticcheck + PrimitiveStaticTypeAuthAccountStorageCapabilities, //nolint:staticcheck + PrimitiveStaticTypeAuthAccountAccountCapabilities, //nolint:staticcheck + PrimitiveStaticTypeAuthAccountCapabilities, //nolint:staticcheck + PrimitiveStaticTypePublicAccountCapabilities, //nolint:staticcheck + PrimitiveStaticTypeAccountKey: //nolint:staticcheck + return true + } + + return false +} + // ConvertSemaToPrimitiveStaticType converts a `sema.Type` to a `PrimitiveStaticType`. // // Returns `PrimitiveStaticTypeUnknown` if the given type is not a primitive type. @@ -689,6 +760,8 @@ func ConvertSemaToPrimitiveStaticType( typ = PrimitiveStaticTypeInteger case sema.SignedIntegerType: typ = PrimitiveStaticTypeSignedInteger + case sema.FixedSizeUnsignedIntegerType: + typ = PrimitiveStaticTypeFixedSizeUnsignedInteger // FixedPoint case sema.FixedPointType: @@ -774,6 +847,8 @@ func ConvertSemaToPrimitiveStaticType( typ = PrimitiveStaticTypeAny case sema.AnyStructType: typ = PrimitiveStaticTypeAnyStruct + case sema.HashableStructType: + typ = PrimitiveStaticTypeHashableStruct case sema.AnyResourceType: typ = PrimitiveStaticTypeAnyResource case sema.AnyStructAttachmentType: @@ -885,8 +960,33 @@ func ConvertSemaToPrimitiveStaticType( } if typ == PrimitiveStaticTypeUnknown { + // default is 0 aka PrimitiveStaticTypeUnknown return } - return NewPrimitiveStaticType(memoryGauge, typ) // default is 0 aka PrimitiveStaticTypeUnknown + return NewPrimitiveStaticType(memoryGauge, typ) +} + +var primitiveStaticTypesByTypeID = map[TypeID]PrimitiveStaticType{} + +func init() { + // Check all defined primitive static types, + // and construct a type ID to primitive static type mapping + for ty := PrimitiveStaticTypeUnknown + 1; ty < PrimitiveStaticType_Count; ty++ { + if !ty.IsDefined() { + continue + } + + _ = ty.elementSize() + + primitiveStaticTypesByTypeID[ty.ID()] = ty + } +} + +func PrimitiveStaticTypeFromTypeID(typeID TypeID) PrimitiveStaticType { + ty, ok := primitiveStaticTypesByTypeID[typeID] + if !ok { + return PrimitiveStaticTypeUnknown + } + return ty } diff --git a/runtime/interpreter/primitivestatictype_string.go b/runtime/interpreter/primitivestatictype_string.go index 7cf219b6cd..23e7b7875e 100644 --- a/runtime/interpreter/primitivestatictype_string.go +++ b/runtime/interpreter/primitivestatictype_string.go @@ -22,10 +22,12 @@ func _() { _ = x[PrimitiveStaticTypeBlock-11] _ = x[PrimitiveStaticTypeAnyResourceAttachment-12] _ = x[PrimitiveStaticTypeAnyStructAttachment-13] + _ = x[PrimitiveStaticTypeHashableStruct-14] _ = x[PrimitiveStaticTypeNumber-18] _ = x[PrimitiveStaticTypeSignedNumber-19] _ = x[PrimitiveStaticTypeInteger-24] _ = x[PrimitiveStaticTypeSignedInteger-25] + _ = x[PrimitiveStaticTypeFixedSizeUnsignedInteger-26] _ = x[PrimitiveStaticTypeFixedPoint-30] _ = x[PrimitiveStaticTypeSignedFixedPoint-31] _ = x[PrimitiveStaticTypeInt-36] @@ -113,7 +115,7 @@ func _() { _ = x[PrimitiveStaticType_Count-152] } -const _PrimitiveStaticType_name = "UnknownVoidAnyNeverAnyStructAnyResourceBoolAddressStringCharacterMetaTypeBlockAnyResourceAttachmentAnyStructAttachmentNumberSignedNumberIntegerSignedIntegerFixedPointSignedFixedPointIntInt8Int16Int32Int64Int128Int256UIntUInt8UInt16UInt32UInt64UInt128UInt256Word8Word16Word32Word64Word128Word256Fix64UFix64PathCapabilityStoragePathCapabilityPathPublicPathPrivatePathAuthAccountPublicAccountDeployedContractAuthAccountContractsPublicAccountContractsAuthAccountKeysPublicAccountKeysAccountKeyAuthAccountInboxStorageCapabilityControllerAccountCapabilityControllerAuthAccountStorageCapabilitiesAuthAccountAccountCapabilitiesAuthAccountCapabilitiesPublicAccountCapabilitiesAccountAccount_ContractsAccount_KeysAccount_InboxAccount_StorageCapabilitiesAccount_AccountCapabilitiesAccount_CapabilitiesAccount_StorageMutateInsertRemoveIdentityStorageSaveValueLoadValueCopyValueBorrowValueContractsAddContractUpdateContractRemoveContractKeysAddKeyRevokeKeyInboxPublishInboxCapabilityUnpublishInboxCapabilityClaimInboxCapabilityCapabilitiesStorageCapabilitiesAccountCapabilitiesPublishCapabilityUnpublishCapabilityGetStorageCapabilityControllerIssueStorageCapabilityControllerGetAccountCapabilityControllerIssueAccountCapabilityControllerCapabilitiesMappingAccountMapping_Count" +const _PrimitiveStaticType_name = "UnknownVoidAnyNeverAnyStructAnyResourceBoolAddressStringCharacterMetaTypeBlockAnyResourceAttachmentAnyStructAttachmentHashableStructNumberSignedNumberIntegerSignedIntegerFixedSizeUnsignedIntegerFixedPointSignedFixedPointIntInt8Int16Int32Int64Int128Int256UIntUInt8UInt16UInt32UInt64UInt128UInt256Word8Word16Word32Word64Word128Word256Fix64UFix64PathCapabilityStoragePathCapabilityPathPublicPathPrivatePathAuthAccountPublicAccountDeployedContractAuthAccountContractsPublicAccountContractsAuthAccountKeysPublicAccountKeysAccountKeyAuthAccountInboxStorageCapabilityControllerAccountCapabilityControllerAuthAccountStorageCapabilitiesAuthAccountAccountCapabilitiesAuthAccountCapabilitiesPublicAccountCapabilitiesAccountAccount_ContractsAccount_KeysAccount_InboxAccount_StorageCapabilitiesAccount_AccountCapabilitiesAccount_CapabilitiesAccount_StorageMutateInsertRemoveIdentityStorageSaveValueLoadValueCopyValueBorrowValueContractsAddContractUpdateContractRemoveContractKeysAddKeyRevokeKeyInboxPublishInboxCapabilityUnpublishInboxCapabilityClaimInboxCapabilityCapabilitiesStorageCapabilitiesAccountCapabilitiesPublishCapabilityUnpublishCapabilityGetStorageCapabilityControllerIssueStorageCapabilityControllerGetAccountCapabilityControllerIssueAccountCapabilityControllerCapabilitiesMappingAccountMapping_Count" var _PrimitiveStaticType_map = map[PrimitiveStaticType]string{ 0: _PrimitiveStaticType_name[0:7], @@ -130,95 +132,97 @@ var _PrimitiveStaticType_map = map[PrimitiveStaticType]string{ 11: _PrimitiveStaticType_name[73:78], 12: _PrimitiveStaticType_name[78:99], 13: _PrimitiveStaticType_name[99:118], - 18: _PrimitiveStaticType_name[118:124], - 19: _PrimitiveStaticType_name[124:136], - 24: _PrimitiveStaticType_name[136:143], - 25: _PrimitiveStaticType_name[143:156], - 30: _PrimitiveStaticType_name[156:166], - 31: _PrimitiveStaticType_name[166:182], - 36: _PrimitiveStaticType_name[182:185], - 37: _PrimitiveStaticType_name[185:189], - 38: _PrimitiveStaticType_name[189:194], - 39: _PrimitiveStaticType_name[194:199], - 40: _PrimitiveStaticType_name[199:204], - 41: _PrimitiveStaticType_name[204:210], - 42: _PrimitiveStaticType_name[210:216], - 44: _PrimitiveStaticType_name[216:220], - 45: _PrimitiveStaticType_name[220:225], - 46: _PrimitiveStaticType_name[225:231], - 47: _PrimitiveStaticType_name[231:237], - 48: _PrimitiveStaticType_name[237:243], - 49: _PrimitiveStaticType_name[243:250], - 50: _PrimitiveStaticType_name[250:257], - 53: _PrimitiveStaticType_name[257:262], - 54: _PrimitiveStaticType_name[262:268], - 55: _PrimitiveStaticType_name[268:274], - 56: _PrimitiveStaticType_name[274:280], - 57: _PrimitiveStaticType_name[280:287], - 58: _PrimitiveStaticType_name[287:294], - 64: _PrimitiveStaticType_name[294:299], - 72: _PrimitiveStaticType_name[299:305], - 76: _PrimitiveStaticType_name[305:309], - 77: _PrimitiveStaticType_name[309:319], - 78: _PrimitiveStaticType_name[319:330], - 79: _PrimitiveStaticType_name[330:344], - 80: _PrimitiveStaticType_name[344:354], - 81: _PrimitiveStaticType_name[354:365], - 90: _PrimitiveStaticType_name[365:376], - 91: _PrimitiveStaticType_name[376:389], - 92: _PrimitiveStaticType_name[389:405], - 93: _PrimitiveStaticType_name[405:425], - 94: _PrimitiveStaticType_name[425:447], - 95: _PrimitiveStaticType_name[447:462], - 96: _PrimitiveStaticType_name[462:479], - 97: _PrimitiveStaticType_name[479:489], - 98: _PrimitiveStaticType_name[489:505], - 99: _PrimitiveStaticType_name[505:532], - 100: _PrimitiveStaticType_name[532:559], - 101: _PrimitiveStaticType_name[559:589], - 102: _PrimitiveStaticType_name[589:619], - 103: _PrimitiveStaticType_name[619:642], - 104: _PrimitiveStaticType_name[642:667], - 105: _PrimitiveStaticType_name[667:674], - 106: _PrimitiveStaticType_name[674:691], - 107: _PrimitiveStaticType_name[691:703], - 108: _PrimitiveStaticType_name[703:716], - 109: _PrimitiveStaticType_name[716:743], - 110: _PrimitiveStaticType_name[743:770], - 111: _PrimitiveStaticType_name[770:790], - 112: _PrimitiveStaticType_name[790:805], - 118: _PrimitiveStaticType_name[805:811], - 119: _PrimitiveStaticType_name[811:817], - 120: _PrimitiveStaticType_name[817:823], - 121: _PrimitiveStaticType_name[823:831], - 125: _PrimitiveStaticType_name[831:838], - 126: _PrimitiveStaticType_name[838:847], - 127: _PrimitiveStaticType_name[847:856], - 128: _PrimitiveStaticType_name[856:865], - 129: _PrimitiveStaticType_name[865:876], - 130: _PrimitiveStaticType_name[876:885], - 131: _PrimitiveStaticType_name[885:896], - 132: _PrimitiveStaticType_name[896:910], - 133: _PrimitiveStaticType_name[910:924], - 134: _PrimitiveStaticType_name[924:928], - 135: _PrimitiveStaticType_name[928:934], - 136: _PrimitiveStaticType_name[934:943], - 137: _PrimitiveStaticType_name[943:948], - 138: _PrimitiveStaticType_name[948:970], - 139: _PrimitiveStaticType_name[970:994], - 140: _PrimitiveStaticType_name[994:1014], - 141: _PrimitiveStaticType_name[1014:1026], - 142: _PrimitiveStaticType_name[1026:1045], - 143: _PrimitiveStaticType_name[1045:1064], - 144: _PrimitiveStaticType_name[1064:1081], - 145: _PrimitiveStaticType_name[1081:1100], - 146: _PrimitiveStaticType_name[1100:1130], - 147: _PrimitiveStaticType_name[1130:1162], - 148: _PrimitiveStaticType_name[1162:1192], - 149: _PrimitiveStaticType_name[1192:1224], - 150: _PrimitiveStaticType_name[1224:1243], - 151: _PrimitiveStaticType_name[1243:1257], - 152: _PrimitiveStaticType_name[1257:1263], + 14: _PrimitiveStaticType_name[118:132], + 18: _PrimitiveStaticType_name[132:138], + 19: _PrimitiveStaticType_name[138:150], + 24: _PrimitiveStaticType_name[150:157], + 25: _PrimitiveStaticType_name[157:170], + 26: _PrimitiveStaticType_name[170:194], + 30: _PrimitiveStaticType_name[194:204], + 31: _PrimitiveStaticType_name[204:220], + 36: _PrimitiveStaticType_name[220:223], + 37: _PrimitiveStaticType_name[223:227], + 38: _PrimitiveStaticType_name[227:232], + 39: _PrimitiveStaticType_name[232:237], + 40: _PrimitiveStaticType_name[237:242], + 41: _PrimitiveStaticType_name[242:248], + 42: _PrimitiveStaticType_name[248:254], + 44: _PrimitiveStaticType_name[254:258], + 45: _PrimitiveStaticType_name[258:263], + 46: _PrimitiveStaticType_name[263:269], + 47: _PrimitiveStaticType_name[269:275], + 48: _PrimitiveStaticType_name[275:281], + 49: _PrimitiveStaticType_name[281:288], + 50: _PrimitiveStaticType_name[288:295], + 53: _PrimitiveStaticType_name[295:300], + 54: _PrimitiveStaticType_name[300:306], + 55: _PrimitiveStaticType_name[306:312], + 56: _PrimitiveStaticType_name[312:318], + 57: _PrimitiveStaticType_name[318:325], + 58: _PrimitiveStaticType_name[325:332], + 64: _PrimitiveStaticType_name[332:337], + 72: _PrimitiveStaticType_name[337:343], + 76: _PrimitiveStaticType_name[343:347], + 77: _PrimitiveStaticType_name[347:357], + 78: _PrimitiveStaticType_name[357:368], + 79: _PrimitiveStaticType_name[368:382], + 80: _PrimitiveStaticType_name[382:392], + 81: _PrimitiveStaticType_name[392:403], + 90: _PrimitiveStaticType_name[403:414], + 91: _PrimitiveStaticType_name[414:427], + 92: _PrimitiveStaticType_name[427:443], + 93: _PrimitiveStaticType_name[443:463], + 94: _PrimitiveStaticType_name[463:485], + 95: _PrimitiveStaticType_name[485:500], + 96: _PrimitiveStaticType_name[500:517], + 97: _PrimitiveStaticType_name[517:527], + 98: _PrimitiveStaticType_name[527:543], + 99: _PrimitiveStaticType_name[543:570], + 100: _PrimitiveStaticType_name[570:597], + 101: _PrimitiveStaticType_name[597:627], + 102: _PrimitiveStaticType_name[627:657], + 103: _PrimitiveStaticType_name[657:680], + 104: _PrimitiveStaticType_name[680:705], + 105: _PrimitiveStaticType_name[705:712], + 106: _PrimitiveStaticType_name[712:729], + 107: _PrimitiveStaticType_name[729:741], + 108: _PrimitiveStaticType_name[741:754], + 109: _PrimitiveStaticType_name[754:781], + 110: _PrimitiveStaticType_name[781:808], + 111: _PrimitiveStaticType_name[808:828], + 112: _PrimitiveStaticType_name[828:843], + 118: _PrimitiveStaticType_name[843:849], + 119: _PrimitiveStaticType_name[849:855], + 120: _PrimitiveStaticType_name[855:861], + 121: _PrimitiveStaticType_name[861:869], + 125: _PrimitiveStaticType_name[869:876], + 126: _PrimitiveStaticType_name[876:885], + 127: _PrimitiveStaticType_name[885:894], + 128: _PrimitiveStaticType_name[894:903], + 129: _PrimitiveStaticType_name[903:914], + 130: _PrimitiveStaticType_name[914:923], + 131: _PrimitiveStaticType_name[923:934], + 132: _PrimitiveStaticType_name[934:948], + 133: _PrimitiveStaticType_name[948:962], + 134: _PrimitiveStaticType_name[962:966], + 135: _PrimitiveStaticType_name[966:972], + 136: _PrimitiveStaticType_name[972:981], + 137: _PrimitiveStaticType_name[981:986], + 138: _PrimitiveStaticType_name[986:1008], + 139: _PrimitiveStaticType_name[1008:1032], + 140: _PrimitiveStaticType_name[1032:1052], + 141: _PrimitiveStaticType_name[1052:1064], + 142: _PrimitiveStaticType_name[1064:1083], + 143: _PrimitiveStaticType_name[1083:1102], + 144: _PrimitiveStaticType_name[1102:1119], + 145: _PrimitiveStaticType_name[1119:1138], + 146: _PrimitiveStaticType_name[1138:1168], + 147: _PrimitiveStaticType_name[1168:1200], + 148: _PrimitiveStaticType_name[1200:1230], + 149: _PrimitiveStaticType_name[1230:1262], + 150: _PrimitiveStaticType_name[1262:1281], + 151: _PrimitiveStaticType_name[1281:1295], + 152: _PrimitiveStaticType_name[1295:1301], } func (i PrimitiveStaticType) String() string { diff --git a/runtime/interpreter/primitivestatictype_test.go b/runtime/interpreter/primitivestatictype_test.go index 9dca22c6d0..5af6000727 100644 --- a/runtime/interpreter/primitivestatictype_test.go +++ b/runtime/interpreter/primitivestatictype_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,25 +29,22 @@ func TestPrimitiveStaticTypeSemaTypeConversion(t *testing.T) { t.Parallel() test := func(ty PrimitiveStaticType) { + if ty.IsDeprecated() { //nolint:staticcheck + return + } + t.Run(ty.String(), func(t *testing.T) { t.Parallel() semaType := ty.SemaType() - // Some primitive static types are deprecated, - // and only exist for migration purposes, - // so do not have an equivalent sema type - if semaType == nil { - return - } - ty2 := ConvertSemaToPrimitiveStaticType(nil, semaType) require.True(t, ty2.Equal(ty)) }) } for ty := PrimitiveStaticType(1); ty < PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } test(ty) @@ -67,7 +64,7 @@ func TestPrimitiveStaticType_elementSize(t *testing.T) { } for ty := PrimitiveStaticType(1); ty < PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } test(ty) diff --git a/runtime/interpreter/program.go b/runtime/interpreter/program.go index 3072c3ee7d..3ec1b59583 100644 --- a/runtime/interpreter/program.go +++ b/runtime/interpreter/program.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/sharedstate.go b/runtime/interpreter/sharedstate.go index 9f2822a168..48c80ac0cd 100644 --- a/runtime/interpreter/sharedstate.go +++ b/runtime/interpreter/sharedstate.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,7 +38,7 @@ type SharedState struct { callStack *CallStack // TODO: ideally this would be a weak map, but Go has no weak references referencedResourceKindedValues ReferencedResourceKindedValues - resourceVariables map[ResourceKindedValue]*Variable + resourceVariables map[ResourceKindedValue]Variable inStorageIteration bool storageMutatedDuringIteration bool CapabilityControllerIterations map[AddressPath]int @@ -59,8 +59,8 @@ func NewSharedState(config *Config) *SharedState { }, inStorageIteration: false, storageMutatedDuringIteration: false, - referencedResourceKindedValues: map[atree.StorageID]map[ReferenceTrackedResourceKindedValue]struct{}{}, - resourceVariables: map[ResourceKindedValue]*Variable{}, + referencedResourceKindedValues: map[atree.StorageID]map[*EphemeralReferenceValue]struct{}{}, + resourceVariables: map[ResourceKindedValue]Variable{}, CapabilityControllerIterations: map[AddressPath]int{}, containerValueIteration: map[atree.StorageID]struct{}{}, destroyedResources: map[atree.StorageID]struct{}{}, diff --git a/runtime/interpreter/simplecompositevalue.go b/runtime/interpreter/simplecompositevalue.go index 42ab2e928e..26189d8bdd 100644 --- a/runtime/interpreter/simplecompositevalue.go +++ b/runtime/interpreter/simplecompositevalue.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import ( "github.com/onflow/atree" "github.com/onflow/cadence/runtime/common" - "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/format" "github.com/onflow/cadence/runtime/sema" ) @@ -36,10 +35,14 @@ type SimpleCompositeValue struct { fieldFormatters map[string]func(common.MemoryGauge, Value, SeenReferences) string // stringer is an optional function that is used to produce the string representation of the value. // If nil, the FieldNames are used. - stringer func(common.MemoryGauge, SeenReferences) string + stringer func(*Interpreter, SeenReferences, LocationRange) string TypeID sema.TypeID // FieldNames are the names of the field members (i.e. not functions, and not computed fields), in order FieldNames []string + + // This is used for distinguishing between transaction values and other composite values. + // TODO: maybe cleanup if there is an alternative/better way. + isTransaction bool } var _ Value = &SimpleCompositeValue{} @@ -53,7 +56,7 @@ func NewSimpleCompositeValue( fields map[string]Value, computeField func(name string, interpreter *Interpreter, locationRange LocationRange) Value, fieldFormatters map[string]func(common.MemoryGauge, Value, SeenReferences) string, - stringer func(common.MemoryGauge, SeenReferences) string, + stringer func(*Interpreter, SeenReferences, LocationRange) string, ) *SimpleCompositeValue { common.UseMemory(gauge, common.SimpleCompositeValueBaseMemoryUsage) @@ -72,7 +75,7 @@ func NewSimpleCompositeValue( func (*SimpleCompositeValue) isValue() {} -func (v *SimpleCompositeValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *SimpleCompositeValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitSimpleCompositeValue(interpreter, v) } @@ -91,7 +94,7 @@ func (v *SimpleCompositeValue) ForEachField( // Walk iterates over all field values of the composite value. // It does NOT walk the computed fields and functions! -func (v *SimpleCompositeValue) Walk(_ *Interpreter, walkChild func(Value)) { +func (v *SimpleCompositeValue) Walk(_ *Interpreter, walkChild func(Value), _ LocationRange) { v.ForEachField(func(_ string, fieldValue Value) (resume bool) { walkChild(fieldValue) @@ -104,7 +107,7 @@ func (v *SimpleCompositeValue) StaticType(_ *Interpreter) StaticType { return v.staticType } -func (v *SimpleCompositeValue) IsImportable(inter *Interpreter) bool { +func (v *SimpleCompositeValue) IsImportable(inter *Interpreter, locationRange LocationRange) bool { // Check type is importable staticType := v.StaticType(inter) semaType := inter.MustConvertStaticToSemaType(staticType) @@ -115,7 +118,7 @@ func (v *SimpleCompositeValue) IsImportable(inter *Interpreter) bool { // Check all field values are importable importable := true v.ForEachField(func(_ string, value Value) (resume bool) { - if !value.IsImportable(inter) { + if !value.IsImportable(inter, locationRange) { importable = false // stop iteration return false @@ -147,9 +150,10 @@ func (v *SimpleCompositeValue) GetMember( return nil } -func (*SimpleCompositeValue) RemoveMember(_ *Interpreter, _ LocationRange, _ string) Value { - // Simple composite values have no removable members (fields / functions) - panic(errors.NewUnreachableError()) +func (v *SimpleCompositeValue) RemoveMember(_ *Interpreter, _ LocationRange, name string) Value { + value := v.Fields[name] + delete(v.Fields, name) + return value } func (v *SimpleCompositeValue) SetMember(_ *Interpreter, _ LocationRange, name string, value Value) bool { @@ -163,13 +167,13 @@ func (v *SimpleCompositeValue) String() string { } func (v *SimpleCompositeValue) RecursiveString(seenReferences SeenReferences) string { - return v.MeteredString(nil, seenReferences) + return v.MeteredString(nil, seenReferences, EmptyLocationRange) } -func (v *SimpleCompositeValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { +func (v *SimpleCompositeValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if v.stringer != nil { - return v.stringer(memoryGauge, seenReferences) + return v.stringer(interpreter, seenReferences, locationRange) } var fields []struct { @@ -185,11 +189,11 @@ func (v *SimpleCompositeValue) MeteredString(memoryGauge common.MemoryGauge, see var value string if v.fieldFormatters != nil { if fieldFormatter, ok := v.fieldFormatters[fieldName]; ok { - value = fieldFormatter(memoryGauge, fieldValue, seenReferences) + value = fieldFormatter(interpreter, fieldValue, seenReferences) } } if value == "" { - value = fieldValue.MeteredString(memoryGauge, seenReferences) + value = fieldValue.MeteredString(interpreter, seenReferences, locationRange) } fields = append(fields, struct { @@ -215,7 +219,7 @@ func (v *SimpleCompositeValue) MeteredString(memoryGauge common.MemoryGauge, see // Value of each field is metered separately. strLen = strLen + len(typeId) + len(fields)*4 - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(strLen)) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(strLen)) return format.Composite(typeId, fields) } @@ -267,6 +271,13 @@ func (v *SimpleCompositeValue) Transfer( if remove { interpreter.RemoveReferencedSlab(storable) } + + if v.isTransaction { + panic(NonTransferableValueError{ + Value: v, + }) + } + return v } diff --git a/runtime/interpreter/statementresult.go b/runtime/interpreter/statementresult.go index 8a59c19919..0d6322fa5a 100644 --- a/runtime/interpreter/statementresult.go +++ b/runtime/interpreter/statementresult.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/statictype.go b/runtime/interpreter/statictype.go index 975ecbd29d..ab5514425c 100644 --- a/runtime/interpreter/statictype.go +++ b/runtime/interpreter/statictype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,6 +49,7 @@ type StaticType interface { Encode(e *cbor.StreamEncoder) error MeteredString(memoryGauge common.MemoryGauge) string ID() TypeID + IsDeprecated() bool } type TypeID = common.TypeID @@ -129,6 +130,10 @@ func (t *CompositeStaticType) ID() TypeID { return t.TypeID } +func (*CompositeStaticType) IsDeprecated() bool { + return false +} + // InterfaceStaticType type InterfaceStaticType struct { @@ -205,6 +210,10 @@ func (t *InterfaceStaticType) ID() TypeID { return t.TypeID } +func (*InterfaceStaticType) IsDeprecated() bool { + return false +} + // ArrayStaticType type ArrayStaticType interface { @@ -269,6 +278,65 @@ func (t *VariableSizedStaticType) ID() TypeID { return sema.FormatVariableSizedTypeID(t.Type.ID()) } +func (t *VariableSizedStaticType) IsDeprecated() bool { + return t.Type.IsDeprecated() +} + +// InclusiveRangeStaticType + +type InclusiveRangeStaticType struct { + ElementType StaticType +} + +var _ StaticType = InclusiveRangeStaticType{} +var _ atree.TypeInfo = InclusiveRangeStaticType{} + +func NewInclusiveRangeStaticType( + memoryGauge common.MemoryGauge, + elementType StaticType, +) InclusiveRangeStaticType { + common.UseMemory(memoryGauge, common.InclusiveRangeStaticTypeMemoryUsage) + + return InclusiveRangeStaticType{ + ElementType: elementType, + } +} + +func (InclusiveRangeStaticType) isStaticType() {} + +func (InclusiveRangeStaticType) elementSize() uint { + return UnknownElementSize +} + +func (t InclusiveRangeStaticType) String() string { + return t.MeteredString(nil) +} + +func (t InclusiveRangeStaticType) MeteredString(memoryGauge common.MemoryGauge) string { + common.UseMemory(memoryGauge, common.InclusiveRangeStaticTypeStringMemoryUsage) + + elementStr := t.ElementType.MeteredString(memoryGauge) + + return fmt.Sprintf("InclusiveRange<%s>", elementStr) +} + +func (t InclusiveRangeStaticType) Equal(other StaticType) bool { + otherRangeType, ok := other.(InclusiveRangeStaticType) + if !ok { + return false + } + + return t.ElementType.Equal(otherRangeType.ElementType) +} + +func (t InclusiveRangeStaticType) ID() TypeID { + return sema.InclusiveRangeTypeID(string(t.ElementType.ID())) +} + +func (t InclusiveRangeStaticType) IsDeprecated() bool { + return t.ElementType.IsDeprecated() +} + // ConstantSizedStaticType type ConstantSizedStaticType struct { @@ -335,6 +403,10 @@ func (t *ConstantSizedStaticType) ID() TypeID { return sema.FormatConstantSizedTypeID(t.Type.ID(), t.Size) } +func (t *ConstantSizedStaticType) IsDeprecated() bool { + return t.Type.IsDeprecated() +} + // DictionaryStaticType type DictionaryStaticType struct { @@ -392,6 +464,11 @@ func (t *DictionaryStaticType) ID() TypeID { ) } +func (t *DictionaryStaticType) IsDeprecated() bool { + return t.KeyType.IsDeprecated() || + t.ValueType.IsDeprecated() +} + // OptionalStaticType type OptionalStaticType struct { @@ -439,6 +516,10 @@ func (t *OptionalStaticType) ID() TypeID { return sema.FormatOptionalTypeID(t.Type.ID()) } +func (t *OptionalStaticType) IsDeprecated() bool { + return t.Type.IsDeprecated() +} + var NilStaticType = &OptionalStaticType{ Type: PrimitiveStaticTypeNever, } @@ -532,6 +613,16 @@ func (t *IntersectionStaticType) ID() TypeID { return sema.FormatIntersectionTypeID(interfaceTypeIDs) } +func (t *IntersectionStaticType) IsDeprecated() bool { + for _, typ := range t.Types { + if typ.IsDeprecated() { + return true + } + } + + return false +} + // Authorization type Authorization interface { @@ -552,11 +643,11 @@ var FullyEntitledAccountAccess = ConvertSemaAccessToStaticAuthorization(nil, sem func (Unauthorized) isAuthorization() {} func (Unauthorized) String() string { - return "" + return "Unauthorized" } -func (Unauthorized) MeteredString(_ common.MemoryGauge) string { - return "" +func (a Unauthorized) MeteredString(_ common.MemoryGauge) string { + return "Unauthorized" } func (Unauthorized) ID() TypeID { @@ -568,6 +659,29 @@ func (Unauthorized) Equal(auth Authorization) bool { return ok } +type Inaccessible struct{} + +var InaccessibleAccess Authorization = Inaccessible{} + +func (Inaccessible) isAuthorization() {} + +func (Inaccessible) String() string { + return "Inaccessible" +} + +func (Inaccessible) MeteredString(_ common.MemoryGauge) string { + return "Inaccessible" +} + +func (Inaccessible) ID() TypeID { + panic(errors.NewUnreachableError()) +} + +func (Inaccessible) Equal(auth Authorization) bool { + _, ok := auth.(Inaccessible) + return ok +} + type EntitlementSetAuthorization struct { Entitlements *sema.TypeIDOrderedSet SetKind sema.EntitlementSetKind @@ -706,9 +820,11 @@ func (a EntitlementMapAuthorization) Equal(other Authorization) bool { // ReferenceStaticType type ReferenceStaticType struct { + Authorization Authorization // ReferencedType is type of the referenced value (the type of the target) - ReferencedType StaticType - Authorization Authorization + ReferencedType StaticType + HasLegacyIsAuthorized bool + LegacyIsAuthorized bool } var _ StaticType = &ReferenceStaticType{} @@ -738,7 +854,10 @@ func (t *ReferenceStaticType) String() string { func (t *ReferenceStaticType) MeteredString(memoryGauge common.MemoryGauge) string { typeStr := t.ReferencedType.MeteredString(memoryGauge) - authString := t.Authorization.MeteredString(memoryGauge) + authString := "" + if !t.Authorization.Equal(InaccessibleAccess) && !t.Authorization.Equal(UnauthorizedAccess) { + authString = t.Authorization.MeteredString(memoryGauge) + } common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(len(typeStr)+1+len(authString))) return fmt.Sprintf("%s&%s", authString, typeStr) @@ -765,6 +884,10 @@ func (t *ReferenceStaticType) ID() TypeID { ) } +func (t *ReferenceStaticType) IsDeprecated() bool { + return t.ReferencedType.IsDeprecated() +} + // CapabilityStaticType type CapabilityStaticType struct { @@ -830,6 +953,13 @@ func (t *CapabilityStaticType) ID() TypeID { return sema.FormatCapabilityTypeID(borrowTypeID) } +func (t *CapabilityStaticType) IsDeprecated() bool { + if t.BorrowType == nil { + return false + } + return t.BorrowType.IsDeprecated() +} + // Conversion func ConvertSemaToStaticType(memoryGauge common.MemoryGauge, t sema.Type) StaticType { @@ -869,11 +999,18 @@ func ConvertSemaToStaticType(memoryGauge common.MemoryGauge, t sema.Type) Static } } - return NewIntersectionStaticType( + intersectionType := NewIntersectionStaticType( memoryGauge, intersectedTypes, ) + legacyType := t.LegacyType //nolint:staticcheck + if legacyType != nil { + intersectionType.LegacyType = ConvertSemaToStaticType(memoryGauge, legacyType) + } + + return intersectionType + case *sema.ReferenceType: return ConvertSemaReferenceTypeToStaticReferenceType(memoryGauge, t) @@ -886,6 +1023,10 @@ func ConvertSemaToStaticType(memoryGauge common.MemoryGauge, t sema.Type) Static borrowType := ConvertSemaToStaticType(memoryGauge, t.BorrowType) return NewCapabilityStaticType(memoryGauge, borrowType) + case *sema.InclusiveRangeType: + memberType := ConvertSemaToStaticType(memoryGauge, t.MemberType) + return NewInclusiveRangeStaticType(memoryGauge, memberType) + case *sema.FunctionType: return NewFunctionStaticType(memoryGauge, t) } @@ -934,6 +1075,9 @@ func ConvertSemaAccessToStaticAuthorization( if access.Equal(sema.UnauthorizedAccess) { return UnauthorizedAccess } + if access.Equal(sema.InaccessibleAccess) { + return InaccessibleAccess + } case sema.EntitlementSetAccess: var entitlements []common.TypeID @@ -999,14 +1143,21 @@ func ConvertSemaInterfaceTypeToStaticInterfaceType( func ConvertStaticAuthorizationToSemaAccess( memoryGauge common.MemoryGauge, auth Authorization, - getEntitlement func(typeID common.TypeID) (*sema.EntitlementType, error), - getEntitlementMapType func(typeID common.TypeID) (*sema.EntitlementMapType, error), -) (sema.Access, error) { + handler StaticAuthorizationConversionHandler, +) ( + sema.Access, + error, +) { + switch auth := auth.(type) { case Unauthorized: return sema.UnauthorizedAccess, nil + + case Inaccessible: + return sema.InaccessibleAccess, nil + case EntitlementMapAuthorization: - entitlement, err := getEntitlementMapType(auth.TypeID) + entitlement, err := handler.GetEntitlementMapType(auth.TypeID) if err != nil { return nil, err } @@ -1015,7 +1166,7 @@ func ConvertStaticAuthorizationToSemaAccess( case EntitlementSetAuthorization: var entitlements []*sema.EntitlementType err := auth.Entitlements.ForeachWithError(func(id common.TypeID, value struct{}) error { - entitlement, err := getEntitlement(id) + entitlement, err := handler.GetEntitlementType(id) if err != nil { return err } @@ -1031,29 +1182,42 @@ func ConvertStaticAuthorizationToSemaAccess( panic(errors.NewUnreachableError()) } +type StaticAuthorizationConversionHandler interface { + GetEntitlementType(typeID TypeID) (*sema.EntitlementType, error) + GetEntitlementMapType(typeID TypeID) (*sema.EntitlementMapType, error) +} + +type StaticTypeConversionHandler interface { + StaticAuthorizationConversionHandler + GetInterfaceType(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.InterfaceType, error) + GetCompositeType(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.CompositeType, error) +} + func ConvertStaticToSemaType( memoryGauge common.MemoryGauge, typ StaticType, - getInterface func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.InterfaceType, error), - getComposite func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.CompositeType, error), - getEntitlement func(typeID TypeID) (*sema.EntitlementType, error), - getEntitlementMapType func(typeID TypeID) (*sema.EntitlementMapType, error), + handler StaticTypeConversionHandler, ) (_ sema.Type, err error) { switch t := typ.(type) { case *CompositeStaticType: - return getComposite(t.Location, t.QualifiedIdentifier, t.TypeID) + return handler.GetCompositeType( + t.Location, + t.QualifiedIdentifier, + t.TypeID, + ) case *InterfaceStaticType: - return getInterface(t.Location, t.QualifiedIdentifier, t.TypeID) + return handler.GetInterfaceType( + t.Location, + t.QualifiedIdentifier, + t.TypeID, + ) case *VariableSizedStaticType: ty, err := ConvertStaticToSemaType( memoryGauge, t.Type, - getInterface, - getComposite, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { return nil, err @@ -1064,10 +1228,7 @@ func ConvertStaticToSemaType( ty, err := ConvertStaticToSemaType( memoryGauge, t.Type, - getInterface, - getComposite, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { return nil, err @@ -1083,10 +1244,7 @@ func ConvertStaticToSemaType( keyType, err := ConvertStaticToSemaType( memoryGauge, t.KeyType, - getInterface, - getComposite, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { return nil, err @@ -1095,10 +1253,7 @@ func ConvertStaticToSemaType( valueType, err := ConvertStaticToSemaType( memoryGauge, t.ValueType, - getInterface, - getComposite, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { return nil, err @@ -1110,14 +1265,26 @@ func ConvertStaticToSemaType( valueType, ), nil + case InclusiveRangeStaticType: + elementType, err := ConvertStaticToSemaType( + memoryGauge, + t.ElementType, + handler, + ) + if err != nil { + return nil, err + } + + return sema.NewInclusiveRangeType( + memoryGauge, + elementType, + ), nil + case *OptionalStaticType: ty, err := ConvertStaticToSemaType( memoryGauge, t.Type, - getInterface, - getComposite, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { return nil, err @@ -1125,6 +1292,19 @@ func ConvertStaticToSemaType( return sema.NewOptionalType(memoryGauge, ty), err case *IntersectionStaticType: + var convertedLegacyType sema.Type + legacyType := t.LegacyType + if legacyType != nil { + convertedLegacyType, err = ConvertStaticToSemaType( + memoryGauge, + legacyType, + handler, + ) + if err != nil { + return nil, err + } + } + var intersectedTypes []*sema.InterfaceType typeCount := len(t.Types) @@ -1132,7 +1312,11 @@ func ConvertStaticToSemaType( intersectedTypes = make([]*sema.InterfaceType, typeCount) for i, typ := range t.Types { - intersectedTypes[i], err = getInterface(typ.Location, typ.QualifiedIdentifier, typ.TypeID) + intersectedTypes[i], err = handler.GetInterfaceType( + typ.Location, + typ.QualifiedIdentifier, + typ.TypeID, + ) if err != nil { return nil, err } @@ -1141,6 +1325,7 @@ func ConvertStaticToSemaType( return sema.NewIntersectionType( memoryGauge, + convertedLegacyType, intersectedTypes, ), nil @@ -1148,10 +1333,7 @@ func ConvertStaticToSemaType( ty, err := ConvertStaticToSemaType( memoryGauge, t.ReferencedType, - getInterface, - getComposite, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { return nil, err @@ -1160,8 +1342,7 @@ func ConvertStaticToSemaType( access, err := ConvertStaticAuthorizationToSemaAccess( memoryGauge, t.Authorization, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { @@ -1176,10 +1357,7 @@ func ConvertStaticToSemaType( borrowType, err = ConvertStaticToSemaType( memoryGauge, t.BorrowType, - getInterface, - getComposite, - getEntitlement, - getEntitlementMapType, + handler, ) if err != nil { return nil, err @@ -1218,10 +1396,10 @@ func NewFunctionStaticType( } } -func (t FunctionStaticType) ReturnType(interpreter *Interpreter) StaticType { +func (t FunctionStaticType) ReturnType(gauge common.MemoryGauge) StaticType { var returnType StaticType if t.Type.ReturnTypeAnnotation.Type != nil { - returnType = ConvertSemaToStaticType(interpreter, t.Type.ReturnTypeAnnotation.Type) + returnType = ConvertSemaToStaticType(gauge, t.Type.ReturnTypeAnnotation.Type) } return returnType @@ -1257,6 +1435,12 @@ func (t FunctionStaticType) ID() TypeID { return t.Type.ID() } +func (FunctionStaticType) IsDeprecated() bool { + return false +} + +// TypeParameter + type TypeParameter struct { TypeBound StaticType Name string diff --git a/runtime/interpreter/statictype_test.go b/runtime/interpreter/statictype_test.go index 742dc185d1..9a2517c99f 100644 --- a/runtime/interpreter/statictype_test.go +++ b/runtime/interpreter/statictype_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -688,6 +688,56 @@ func TestDictionaryStaticType_Equal(t *testing.T) { }) } +func TestInclusiveRangeStaticType_Equal(t *testing.T) { + + t.Parallel() + + t.Run("equal", func(t *testing.T) { + + t.Parallel() + + require.True(t, + InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeInt256, + }.Equal( + InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeInt256, + }, + ), + ) + }) + + t.Run("different member types", func(t *testing.T) { + + t.Parallel() + + require.False(t, + InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeInt, + }.Equal( + InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeWord256, + }, + ), + ) + }) + + t.Run("different kind", func(t *testing.T) { + + t.Parallel() + + require.False(t, + InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeInt, + }.Equal( + &VariableSizedStaticType{ + Type: PrimitiveStaticTypeInt, + }, + ), + ) + }) +} + func TestIntersectionStaticType_Equal(t *testing.T) { t.Parallel() @@ -919,10 +969,11 @@ func TestStaticTypeConversion(t *testing.T) { testFunctionType := &sema.FunctionType{} type testCase struct { - name string - semaType sema.Type - staticType StaticType - getInterface func( + name string + semaType sema.Type + staticType StaticType + noSemaToStatic bool + getInterface func( t *testing.T, location common.Location, qualifiedIdentifier string, @@ -1020,6 +1071,11 @@ func TestStaticTypeConversion(t *testing.T) { semaType: sema.SignedIntegerType, staticType: PrimitiveStaticTypeSignedInteger, }, + { + name: "FixedSizeUnsignedInteger", + semaType: sema.FixedSizeUnsignedIntegerType, + staticType: PrimitiveStaticTypeFixedSizeUnsignedInteger, + }, { name: "FixedPoint", @@ -1541,67 +1597,32 @@ func TestStaticTypeConversion(t *testing.T) { Type: testFunctionType, }, }, - - // Deprecated primitive static types, only exist for migration purposes { - name: "AuthAccount", - semaType: nil, - staticType: PrimitiveStaticTypeAuthAccount, + name: "HashableStruct", + semaType: sema.HashableStructType, + staticType: PrimitiveStaticTypeHashableStruct, }, { - name: "PublicAccount", - semaType: nil, - staticType: PrimitiveStaticTypePublicAccount, - }, - { - name: "AuthAccount.Contracts", - staticType: PrimitiveStaticTypeAuthAccountContracts, - semaType: nil, - }, - { - name: "PublicAccount.Contracts", - staticType: PrimitiveStaticTypePublicAccountContracts, - semaType: nil, - }, - { - name: "AuthAccount.Keys", - staticType: PrimitiveStaticTypeAuthAccountKeys, - semaType: nil, - }, - { - name: "PublicAccount.Keys", - staticType: PrimitiveStaticTypePublicAccountKeys, - semaType: nil, - }, - { - name: "AuthAccount.Inbox", - staticType: PrimitiveStaticTypeAuthAccountInbox, - semaType: nil, - }, - { - name: "AuthAccount.StorageCapabilities", - staticType: PrimitiveStaticTypeAuthAccountStorageCapabilities, - semaType: nil, - }, - { - name: "AuthAccount.AccountCapabilities", - staticType: PrimitiveStaticTypeAuthAccountAccountCapabilities, - semaType: nil, - }, - { - name: "AuthAccount.Capabilities", - staticType: PrimitiveStaticTypeAuthAccountCapabilities, - semaType: nil, + name: "InclusiveRange", + semaType: &sema.InclusiveRangeType{ + MemberType: sema.IntType, + }, + staticType: InclusiveRangeStaticType{ + ElementType: PrimitiveStaticTypeInt, + }, }, + // Deprecated primitive static types, only exist for migration purposes { - name: "PublicAccount.Capabilities", - staticType: PrimitiveStaticTypePublicAccountCapabilities, - semaType: nil, + name: "AuthAccount", + semaType: sema.FullyEntitledAccountReferenceType, + staticType: PrimitiveStaticTypeAuthAccount, + noSemaToStatic: true, }, { - name: "AccountKey", - staticType: PrimitiveStaticTypeAccountKey, - semaType: nil, + name: "PublicAccount", + semaType: sema.AccountReferenceType, + staticType: PrimitiveStaticTypePublicAccount, + noSemaToStatic: true, }, } @@ -1612,7 +1633,7 @@ func TestStaticTypeConversion(t *testing.T) { // Test sema to static - if test.semaType != nil { + if !test.noSemaToStatic { convertedStaticType := ConvertSemaToStaticType(nil, test.semaType) require.Equal(t, test.staticType, @@ -1622,9 +1643,9 @@ func TestStaticTypeConversion(t *testing.T) { // Test static to sema - getInterface := test.getInterface - if getInterface == nil { - getInterface = func( + getInterfaceType := test.getInterface + if getInterfaceType == nil { + getInterfaceType = func( _ *testing.T, _ common.Location, _ string, @@ -1635,40 +1656,48 @@ func TestStaticTypeConversion(t *testing.T) { } } - getComposite := test.getComposite - if getComposite == nil { - getComposite = func( + getCompositeType := test.getComposite + if getCompositeType == nil { + getCompositeType = func( _ *testing.T, _ common.Location, _ string, _ TypeID, ) (*sema.CompositeType, error) { - require.FailNow(t, "getComposite should not be called") + require.FailNow(t, "getCompositeType should not be called") return nil, nil } } - getEntitlement := func(_ common.TypeID) (*sema.EntitlementType, error) { - require.FailNow(t, "getComposite should not be called") - return nil, nil - } - - getEntitlementMap := func(_ common.TypeID) (*sema.EntitlementMapType, error) { - require.FailNow(t, "getComposite should not be called") - return nil, nil + handler := staticTypeConversionHandler{ + getInterfaceType: func( + location common.Location, + qualifiedIdentifier string, + typeID TypeID, + ) (*sema.InterfaceType, error) { + return getInterfaceType(t, location, qualifiedIdentifier, typeID) + }, + getCompositeType: func( + location common.Location, + qualifiedIdentifier string, + typeID TypeID, + ) (*sema.CompositeType, error) { + return getCompositeType(t, location, qualifiedIdentifier, typeID) + }, + getEntitlementType: func(_ common.TypeID) (*sema.EntitlementType, error) { + require.FailNow(t, "getEntitlementType should not be called") + return nil, nil + }, + getEntitlementMapType: func(_ common.TypeID) (*sema.EntitlementMapType, error) { + require.FailNow(t, "getEntitlementMapType should not be called") + return nil, nil + }, } convertedSemaType, err := ConvertStaticToSemaType( nil, test.staticType, - func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.InterfaceType, error) { - return getInterface(t, location, qualifiedIdentifier, typeID) - }, - func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.CompositeType, error) { - return getComposite(t, location, qualifiedIdentifier, typeID) - }, - getEntitlement, - getEntitlementMap, + handler, ) require.NoError(t, err) require.Equal(t, @@ -1686,7 +1715,7 @@ func TestStaticTypeConversion(t *testing.T) { } for ty := PrimitiveStaticType(1); ty < PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } if _, ok := testedStaticTypes[ty]; !ok { @@ -1696,6 +1725,39 @@ func TestStaticTypeConversion(t *testing.T) { } +type staticTypeConversionHandler struct { + getInterfaceType func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.InterfaceType, error) + getCompositeType func(location common.Location, qualifiedIdentifier string, typeID TypeID) (*sema.CompositeType, error) + getEntitlementType func(typeID common.TypeID) (*sema.EntitlementType, error) + getEntitlementMapType func(typeID common.TypeID) (*sema.EntitlementMapType, error) +} + +var _ StaticTypeConversionHandler = staticTypeConversionHandler{} + +func (s staticTypeConversionHandler) GetInterfaceType( + location common.Location, + qualifiedIdentifier string, + typeID TypeID, +) (*sema.InterfaceType, error) { + return s.getInterfaceType(location, qualifiedIdentifier, typeID) +} + +func (s staticTypeConversionHandler) GetCompositeType( + location common.Location, + qualifiedIdentifier string, + typeID TypeID, +) (*sema.CompositeType, error) { + return s.getCompositeType(location, qualifiedIdentifier, typeID) +} + +func (s staticTypeConversionHandler) GetEntitlementType(typeID TypeID) (*sema.EntitlementType, error) { + return s.getEntitlementType(typeID) +} + +func (s staticTypeConversionHandler) GetEntitlementMapType(typeID TypeID) (*sema.EntitlementMapType, error) { + return s.getEntitlementMapType(typeID) +} + func TestIntersectionStaticType_ID(t *testing.T) { t.Parallel() @@ -2286,3 +2348,136 @@ func TestReferenceStaticType_String(t *testing.T) { ) }) } + +func TestStaticType_IsDeprecated(t *testing.T) { + + t.Parallel() + + type testCase struct { + name string + ty StaticType + expected bool + genTy func(innerType PrimitiveStaticType) StaticType + } + + tests := []testCase{ + { + name: "Capability, with type", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &CapabilityStaticType{ + BorrowType: innerType, + } + }, + }, + { + name: "Capability, without type", + ty: &CapabilityStaticType{}, + expected: false, + }, + { + name: "Variable-sized array", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &VariableSizedStaticType{ + Type: innerType, + } + }, + }, + { + name: "Constant-sized array", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &ConstantSizedStaticType{ + Type: innerType, + Size: 42, + } + }, + }, + { + name: "Optional", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &OptionalStaticType{ + Type: innerType, + } + }, + }, + { + name: "Reference", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &ReferenceStaticType{ + ReferencedType: innerType, + } + }, + }, + { + name: "Dictionary, key", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &DictionaryStaticType{ + KeyType: innerType, + ValueType: PrimitiveStaticTypeVoid, + } + }, + }, + { + name: "Dictionary, value", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &DictionaryStaticType{ + KeyType: PrimitiveStaticTypeVoid, + ValueType: innerType, + } + }, + }, + { + name: "Function", + ty: FunctionStaticType{}, + expected: false, + }, + { + name: "Interface", + ty: &InterfaceStaticType{}, + expected: false, + }, + { + name: "Composite", + ty: &CompositeStaticType{}, + expected: false, + }, + { + name: "InclusiveRange", + genTy: func(innerType PrimitiveStaticType) StaticType { + return &InclusiveRangeStaticType{ + ElementType: innerType, + } + }, + }, + } + + test := func(test testCase) { + t.Run(test.name, func(t *testing.T) { + + t.Parallel() + + if test.genTy != nil { + for ty := PrimitiveStaticType(1); ty < PrimitiveStaticType_Count; ty++ { + if !ty.IsDefined() { + continue + } + + t.Run(ty.String(), func(t *testing.T) { + assert.Equal(t, + ty.IsDeprecated(), + test.genTy(ty).IsDeprecated(), //nolint:staticcheck + ) + }) + } + } else { + assert.Equal(t, + test.expected, + test.ty.IsDeprecated(), //nolint:staticcheck + ) + } + }) + } + + for _, testCase := range tests { + test(testCase) + } +} diff --git a/runtime/interpreter/storage.go b/runtime/interpreter/storage.go index a252321324..21fb4789a8 100644 --- a/runtime/interpreter/storage.go +++ b/runtime/interpreter/storage.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/storage_test.go b/runtime/interpreter/storage_test.go index b231df6658..baabc15c90 100644 --- a/runtime/interpreter/storage_test.go +++ b/runtime/interpreter/storage_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -86,6 +86,62 @@ func TestCompositeStorage(t *testing.T) { ) } +func TestInclusiveRangeStorage(t *testing.T) { + + t.Parallel() + + storage := newUnmeteredInMemoryStorage() + + inter, err := NewInterpreter( + nil, + common.AddressLocation{}, + &Config{Storage: storage}, + ) + require.NoError(t, err) + + value := NewInclusiveRangeValueWithStep( + inter, + EmptyLocationRange, + NewUnmeteredInt16Value(1), + NewUnmeteredInt16Value(100), + NewUnmeteredInt16Value(5), + NewInclusiveRangeStaticType(inter, PrimitiveStaticTypeInt16), + sema.NewInclusiveRangeType(inter, sema.Int16Type), + ) + + require.NotEqual(t, atree.StorageIDUndefined, value.StorageID()) + + require.Equal(t, 1, storage.BasicSlabStorage.Count()) + + _, ok, err := storage.BasicSlabStorage.Retrieve(value.StorageID()) + require.NoError(t, err) + require.True(t, ok) + + // Ensure that updating a field (e.g. step) works + const stepFieldName = "step" + + value.SetMember(inter, EmptyLocationRange, stepFieldName, NewUnmeteredInt16Value(10)) + + require.Equal(t, 1, storage.BasicSlabStorage.Count()) + + retrievedStorable, ok, err := storage.BasicSlabStorage.Retrieve(value.StorageID()) + require.NoError(t, err) + require.True(t, ok) + + storedValue := StoredValue(inter, retrievedStorable, storage) + + // InclusiveRange is stored as a CompositeValue. + require.IsType(t, storedValue, &CompositeValue{}) + storedComposite := storedValue.(*CompositeValue) + + RequireValuesEqual( + t, + inter, + NewUnmeteredInt16Value(10), + storedComposite.GetField(inter, EmptyLocationRange, stepFieldName), + ) +} + func TestArrayStorage(t *testing.T) { t.Parallel() diff --git a/runtime/interpreter/storagemap.go b/runtime/interpreter/storagemap.go index 4949c499e0..2c2d3b50b2 100644 --- a/runtime/interpreter/storagemap.go +++ b/runtime/interpreter/storagemap.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/storagemapkey.go b/runtime/interpreter/storagemapkey.go index 37a6b783fd..5a90e152cb 100644 --- a/runtime/interpreter/storagemapkey.go +++ b/runtime/interpreter/storagemapkey.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/stringatreevalue.go b/runtime/interpreter/stringatreevalue.go index 98e7fcf2f9..a7f874a757 100644 --- a/runtime/interpreter/stringatreevalue.go +++ b/runtime/interpreter/stringatreevalue.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -61,7 +61,11 @@ func StringAtreeValueHashInput(v atree.Value, _ []byte) ([]byte, error) { return []byte(v.(StringAtreeValue)), nil } -func StringAtreeValueComparator(_ atree.SlabStorage, value atree.Value, otherStorable atree.Storable) (bool, error) { - result := value.(StringAtreeValue) == otherStorable.(StringAtreeValue) +func StringAtreeValueComparator(storage atree.SlabStorage, value atree.Value, otherStorable atree.Storable) (bool, error) { + otherValue, err := otherStorable.StoredValue(storage) + if err != nil { + return false, err + } + result := value.(StringAtreeValue) == otherValue.(StringAtreeValue) return result, nil } diff --git a/runtime/interpreter/stringatreevalue_test.go b/runtime/interpreter/stringatreevalue_test.go new file mode 100644 index 0000000000..ddcc53878b --- /dev/null +++ b/runtime/interpreter/stringatreevalue_test.go @@ -0,0 +1,65 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package interpreter + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/common" +) + +func TestLargeStringAtreeValueInSeparateSlab(t *testing.T) { + + t.Parallel() + + // Ensure that StringAtreeValue handles the case where it is stored in a separate slab, + // when the string is very large + + storage := NewInMemoryStorage(nil) + + storageMap := storage.GetStorageMap( + common.MustBytesToAddress([]byte{0x1}), + common.PathDomainStorage.Identifier(), + true, + ) + + inter, err := NewInterpreter( + nil, + common.StringLocation("test"), + &Config{ + Storage: storage, + }, + ) + require.NoError(t, err) + + // Generate a large key to force the string to get stored in a separate slab + keyValue := NewStringAtreeValue(nil, strings.Repeat("x", 10_000)) + + key := StringStorageMapKey(keyValue) + + expected := NewUnmeteredUInt8Value(42) + storageMap.SetValue(inter, key, expected) + + actual := storageMap.ReadValue(nil, key) + + require.Equal(t, expected, actual) +} diff --git a/runtime/interpreter/uint64atreevalue.go b/runtime/interpreter/uint64atreevalue.go index 785122428f..904fa09623 100644 --- a/runtime/interpreter/uint64atreevalue.go +++ b/runtime/interpreter/uint64atreevalue.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/value.go b/runtime/interpreter/value.go index 891e827839..84e39ca244 100644 --- a/runtime/interpreter/value.go +++ b/runtime/interpreter/value.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,6 +37,7 @@ import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/format" "github.com/onflow/cadence/runtime/sema" @@ -107,8 +108,8 @@ type Value interface { // NOTE: important, error messages rely on values to implement String fmt.Stringer isValue() - Accept(interpreter *Interpreter, visitor Visitor) - Walk(interpreter *Interpreter, walkChild func(Value)) + Accept(interpreter *Interpreter, visitor Visitor, locationRange LocationRange) + Walk(interpreter *Interpreter, walkChild func(Value), locationRange LocationRange) StaticType(interpreter *Interpreter) StaticType // ConformsToStaticType returns true if the value (i.e. its dynamic type) // conforms to its own static type. @@ -124,7 +125,7 @@ type Value interface { results TypeConformanceResults, ) bool RecursiveString(seenReferences SeenReferences) string - MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string + MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string IsResourceKinded(interpreter *Interpreter) bool NeedsStoreTo(address atree.Address) bool Transfer( @@ -140,7 +141,7 @@ type Value interface { // NOTE: not used by interpreter, but used externally (e.g. state migration) // NOTE: memory metering is unnecessary for Clone methods Clone(interpreter *Interpreter) Value - IsImportable(interpreter *Interpreter) bool + IsImportable(interpreter *Interpreter, locationRange LocationRange) bool } // ValueIndexableValue @@ -202,6 +203,7 @@ type ResourceKindedValue interface { Value Destroy(interpreter *Interpreter, locationRange LocationRange) IsDestroyed() bool + isInvalidatedResource(*Interpreter) bool } func maybeDestroy(interpreter *Interpreter, locationRange LocationRange, value Value) { @@ -228,19 +230,32 @@ type ReferenceTrackedResourceKindedValue interface { // Hence, during tests, the value is a HostFunctionValue. type ContractValue interface { Value - SetNestedVariables(variables map[string]*Variable) + SetNestedVariables(variables map[string]Variable) } // IterableValue is a value which can be iterated over, e.g. with a for-loop type IterableValue interface { Value - Iterator(interpreter *Interpreter) ValueIterator + Iterator(interpreter *Interpreter, locationRange LocationRange) ValueIterator + ForEach( + interpreter *Interpreter, + elementType sema.Type, + function func(value Value) (resume bool), + transferElements bool, + locationRange LocationRange, + ) +} + +// OwnedValue is a value which has an owner +type OwnedValue interface { + Value + GetOwner() common.Address } // ValueIterator is an iterator which returns values. // When Next returns nil, it signals the end of the iterator. type ValueIterator interface { - Next(interpreter *Interpreter) Value + Next(interpreter *Interpreter, locationRange LocationRange) Value } func safeAdd(a, b int, locationRange LocationRange) int { @@ -323,11 +338,11 @@ func NewTypeValue( func (TypeValue) isValue() {} -func (v TypeValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v TypeValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitTypeValue(interpreter, v) } -func (TypeValue) Walk(_ *Interpreter, _ func(Value)) { +func (TypeValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -335,7 +350,7 @@ func (TypeValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeMetaType) } -func (TypeValue) IsImportable(_ *Interpreter) bool { +func (TypeValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return sema.MetaType.Importable } @@ -353,12 +368,12 @@ func (v TypeValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v TypeValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { - common.UseMemory(memoryGauge, common.TypeValueStringMemoryUsage) +func (v TypeValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.TypeValueStringMemoryUsage) var typeString string if v.Type != nil { - typeString = v.Type.MeteredString(memoryGauge) + typeString = v.Type.MeteredString(interpreter) } return format.TypeValue(typeString) @@ -396,8 +411,9 @@ func (v TypeValue) GetMember(interpreter *Interpreter, _ LocationRange, name str }) case sema.MetaTypeIsSubtypeFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.MetaTypeIsSubtypeFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -502,7 +518,7 @@ func (TypeValue) ChildStorables() []atree.Storable { // HashInput returns a byte slice containing: // - HashInputTypeType (1 byte) // - type id (n bytes) -func (v TypeValue) HashInput(interpreter *Interpreter, _ LocationRange, scratch []byte) []byte { +func (v TypeValue) HashInput(_ *Interpreter, _ LocationRange, scratch []byte) []byte { typeID := v.Type.ID() length := 1 + len(typeID) @@ -531,11 +547,11 @@ var _ EquatableValue = VoidValue{} func (VoidValue) isValue() {} -func (v VoidValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v VoidValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitVoidValue(interpreter, v) } -func (VoidValue) Walk(_ *Interpreter, _ func(Value)) { +func (VoidValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -543,7 +559,7 @@ func (VoidValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeVoid) } -func (VoidValue) IsImportable(_ *Interpreter) bool { +func (VoidValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return sema.VoidType.Importable } @@ -555,8 +571,8 @@ func (v VoidValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v VoidValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { - common.UseMemory(memoryGauge, common.VoidStringMemoryUsage) +func (v VoidValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.VoidStringMemoryUsage) return v.String() } @@ -640,11 +656,11 @@ func AsBoolValue(v bool) BoolValue { func (BoolValue) isValue() {} -func (v BoolValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v BoolValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitBoolValue(interpreter, v) } -func (BoolValue) Walk(_ *Interpreter, _ func(Value)) { +func (BoolValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -652,7 +668,7 @@ func (BoolValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeBool) } -func (BoolValue) IsImportable(_ *Interpreter) bool { +func (BoolValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return sema.BoolType.Importable } @@ -728,11 +744,11 @@ func (v BoolValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v BoolValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v BoolValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { if v { - common.UseMemory(memoryGauge, common.TrueStringMemoryUsage) + common.UseMemory(interpreter, common.TrueStringMemoryUsage) } else { - common.UseMemory(memoryGauge, common.FalseStringMemoryUsage) + common.UseMemory(interpreter, common.FalseStringMemoryUsage) } return v.String() @@ -797,10 +813,27 @@ func (BoolValue) ChildStorables() []atree.Storable { // CharacterValue represents a Cadence character, which is a Unicode extended grapheme cluster. // Hence, use a Go string to be able to hold multiple Unicode code points (Go runes). // It should consist of exactly one grapheme cluster -type CharacterValue string +type CharacterValue struct { + Str string + UnnormalizedStr string +} + +func NewUnmeteredCharacterValue(str string) CharacterValue { + return CharacterValue{ + Str: norm.NFC.String(str), + UnnormalizedStr: str, + } +} -func NewUnmeteredCharacterValue(r string) CharacterValue { - return CharacterValue(norm.NFC.String(r)) +// Deprecated: NewStringValue_UnsafeNewCharacterValue_Unsafe creates a new character value +// from the given normalized and unnormalized string. +// NOTE: this function is unsafe, as it does not normalize the string. +// It should only be used for e.g. migration purposes. +func NewCharacterValue_Unsafe(normalizedStr, unnormalizedStr string) CharacterValue { + return CharacterValue{ + Str: normalizedStr, + UnnormalizedStr: unnormalizedStr, + } } func NewCharacterValue( @@ -815,20 +848,20 @@ func NewCharacterValue( return NewUnmeteredCharacterValue(character) } -var _ Value = CharacterValue("a") -var _ atree.Storable = CharacterValue("a") -var _ EquatableValue = CharacterValue("a") -var _ ComparableValue = CharacterValue("a") -var _ HashableValue = CharacterValue("a") -var _ MemberAccessibleValue = CharacterValue("a") +var _ Value = CharacterValue{} +var _ atree.Storable = CharacterValue{} +var _ EquatableValue = CharacterValue{} +var _ ComparableValue = CharacterValue{} +var _ HashableValue = CharacterValue{} +var _ MemberAccessibleValue = CharacterValue{} func (CharacterValue) isValue() {} -func (v CharacterValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v CharacterValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitCharacterValue(interpreter, v) } -func (CharacterValue) Walk(_ *Interpreter, _ func(Value)) { +func (CharacterValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -836,21 +869,21 @@ func (CharacterValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeCharacter) } -func (CharacterValue) IsImportable(_ *Interpreter) bool { +func (CharacterValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return sema.CharacterType.Importable } func (v CharacterValue) String() string { - return format.String(string(v)) + return format.String(v.Str) } func (v CharacterValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v CharacterValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { - l := format.FormattedStringLength(string(v)) - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(l)) +func (v CharacterValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { + l := format.FormattedStringLength(v.Str) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(l)) return v.String() } @@ -859,7 +892,7 @@ func (v CharacterValue) Equal(_ *Interpreter, _ LocationRange, other Value) bool if !ok { return false } - return v == otherChar + return v.Str == otherChar.Str } func (v CharacterValue) Less(_ *Interpreter, other ComparableValue, _ LocationRange) BoolValue { @@ -867,7 +900,7 @@ func (v CharacterValue) Less(_ *Interpreter, other ComparableValue, _ LocationRa if !ok { panic(errors.NewUnreachableError()) } - return v < otherChar + return v.Str < otherChar.Str } func (v CharacterValue) LessEqual(_ *Interpreter, other ComparableValue, _ LocationRange) BoolValue { @@ -875,7 +908,7 @@ func (v CharacterValue) LessEqual(_ *Interpreter, other ComparableValue, _ Locat if !ok { panic(errors.NewUnreachableError()) } - return v <= otherChar + return v.Str <= otherChar.Str } func (v CharacterValue) Greater(_ *Interpreter, other ComparableValue, _ LocationRange) BoolValue { @@ -883,7 +916,7 @@ func (v CharacterValue) Greater(_ *Interpreter, other ComparableValue, _ Locatio if !ok { panic(errors.NewUnreachableError()) } - return v > otherChar + return v.Str > otherChar.Str } func (v CharacterValue) GreaterEqual(_ *Interpreter, other ComparableValue, _ LocationRange) BoolValue { @@ -891,11 +924,11 @@ func (v CharacterValue) GreaterEqual(_ *Interpreter, other ComparableValue, _ Lo if !ok { panic(errors.NewUnreachableError()) } - return v >= otherChar + return v.Str >= otherChar.Str } func (v CharacterValue) HashInput(_ *Interpreter, _ LocationRange, scratch []byte) []byte { - s := []byte(string(v)) + s := []byte(v.Str) length := 1 + len(s) var buffer []byte if length <= len(scratch) { @@ -952,7 +985,7 @@ func (CharacterValue) DeepRemove(_ *Interpreter) { } func (v CharacterValue) ByteSize() uint32 { - return cborTagSize + getBytesCBORSize([]byte(v)) + return cborTagSize + getBytesCBORSize([]byte(v.Str)) } func (v CharacterValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { @@ -966,27 +999,28 @@ func (CharacterValue) ChildStorables() []atree.Storable { func (v CharacterValue) GetMember(interpreter *Interpreter, _ LocationRange, name string) Value { switch name { case sema.ToStringFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ToStringFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter - memoryUsage := common.NewStringMemoryUsage(len(v)) + memoryUsage := common.NewStringMemoryUsage(len(v.Str)) return NewStringValue( interpreter, memoryUsage, func() string { - return string(v) + return v.Str }, ) }, ) case sema.CharacterTypeUtf8FieldName: - common.UseMemory(interpreter, common.NewBytesMemoryUsage(len(v))) - return ByteSliceToByteArrayValue(interpreter, []byte(v)) + common.UseMemory(interpreter, common.NewBytesMemoryUsage(len(v.Str))) + return ByteSliceToByteArrayValue(interpreter, []byte(v.Str)) } return nil } @@ -1007,8 +1041,9 @@ type StringValue struct { // graphemes is a grapheme cluster segmentation iterator, // which is initialized lazily and reused/reset in functions // that are based on grapheme clusters - graphemes *uniseg.Graphemes - Str string + graphemes *uniseg.Graphemes + Str string + UnnormalizedStr string // length is the cached length of the string, based on grapheme clusters. // a negative value indicates the length has not been initialized, see Length() length int @@ -1016,7 +1051,21 @@ type StringValue struct { func NewUnmeteredStringValue(str string) *StringValue { return &StringValue{ - Str: norm.NFC.String(str), + Str: norm.NFC.String(str), + UnnormalizedStr: str, + // a negative value indicates the length has not been initialized, see Length() + length: -1, + } +} + +// Deprecated: NewStringValue_Unsafe creates a new string value +// from the given normalized and unnormalized string. +// NOTE: this function is unsafe, as it does not normalize the string. +// It should only be used for e.g. migration purposes. +func NewStringValue_Unsafe(normalizedStr, unnormalizedStr string) *StringValue { + return &StringValue{ + Str: normalizedStr, + UnnormalizedStr: unnormalizedStr, // a negative value indicates the length has not been initialized, see Length() length: -1, } @@ -1055,11 +1104,11 @@ func (v *StringValue) prepareGraphemes() { func (*StringValue) isValue() {} -func (v *StringValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *StringValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitStringValue(interpreter, v) } -func (*StringValue) Walk(_ *Interpreter, _ func(Value)) { +func (*StringValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -1067,7 +1116,7 @@ func (*StringValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeString) } -func (*StringValue) IsImportable(_ *Interpreter) bool { +func (*StringValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return sema.StringType.Importable } @@ -1079,9 +1128,9 @@ func (v *StringValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v *StringValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v *StringValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { l := format.FormattedStringLength(v.Str) - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(l)) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(l)) return v.String() } @@ -1175,6 +1224,10 @@ func (v *StringValue) Concat(interpreter *Interpreter, other *StringValue, locat memoryUsage := common.NewStringMemoryUsage(newLength) + // Meter computation as if the two strings were iterated. + length := len(v.Str) + len(other.Str) + interpreter.ReportComputation(common.ComputationKindLoop, uint(length)) + return NewStringValue( interpreter, memoryUsage, @@ -1292,8 +1345,9 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location return ByteSliceToByteArrayValue(interpreter, []byte(v.Str)) case sema.StringTypeConcatFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.StringTypeConcatFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -1306,8 +1360,9 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location ) case sema.StringTypeSliceFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.StringTypeSliceFunctionType, func(invocation Invocation) Value { from, ok := invocation.Arguments[0].(IntValue) @@ -1325,8 +1380,9 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location ) case sema.StringTypeDecodeHexFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.StringTypeDecodeHexFunctionType, func(invocation Invocation) Value { return v.DecodeHex( @@ -1337,8 +1393,9 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location ) case sema.StringTypeToLowerFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.StringTypeToLowerFunctionType, func(invocation Invocation) Value { return v.ToLower(invocation.Interpreter) @@ -1346,8 +1403,9 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location ) case sema.StringTypeSplitFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.StringTypeSplitFunctionType, func(invocation Invocation) Value { separator, ok := invocation.Arguments[0].(*StringValue) @@ -1358,6 +1416,26 @@ func (v *StringValue) GetMember(interpreter *Interpreter, locationRange Location return v.Split(invocation.Interpreter, invocation.LocationRange, separator.Str) }, ) + + case sema.StringTypeReplaceAllFunctionName: + return NewBoundHostFunctionValue( + interpreter, + v, + sema.StringTypeReplaceAllFunctionType, + func(invocation Invocation) Value { + of, ok := invocation.Arguments[0].(*StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + with, ok := invocation.Arguments[1].(*StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + return v.ReplaceAll(invocation.Interpreter, invocation.LocationRange, of.Str, with.Str) + }, + ) } return nil @@ -1388,6 +1466,9 @@ func (v *StringValue) Length() int { func (v *StringValue) ToLower(interpreter *Interpreter) *StringValue { + // Meter computation as if the string was iterated. + interpreter.ReportComputation(common.ComputationKindLoop, uint(len(v.Str))) + // Over-estimate resulting string length, // as an uppercase character may be converted to several lower-case characters, e.g İ => [i, ̇] // see https://stackoverflow.com/questions/28683805/is-there-a-unicode-string-which-gets-longer-when-converted-to-lowercase @@ -1412,7 +1493,12 @@ func (v *StringValue) ToLower(interpreter *Interpreter) *StringValue { ) } -func (v *StringValue) Split(inter *Interpreter, locationRange LocationRange, separator string) Value { +func (v *StringValue) Split(inter *Interpreter, _ LocationRange, separator string) Value { + + // Meter computation as if the string was iterated. + // i.e: linear search to find the split points. This is an estimate. + inter.ReportComputation(common.ComputationKindLoop, uint(len(v.Str))) + split := strings.Split(v.Str, separator) var index int @@ -1441,6 +1527,27 @@ func (v *StringValue) Split(inter *Interpreter, locationRange LocationRange, sep ) } +func (v *StringValue) ReplaceAll(inter *Interpreter, _ LocationRange, of string, with string) *StringValue { + // Over-estimate the resulting string length. + // In the worst case, `of` can be empty in which case, `with` will be added at every index. + // e.g. `of` = "", `v` = "ABC", `with` = "1": result = "1A1B1C1". + strLen := len(v.Str) + lengthOverEstimate := (2*strLen + 1) * len(with) + + memoryUsage := common.NewStringMemoryUsage(lengthOverEstimate) + + // Meter computation as if the string was iterated. + inter.ReportComputation(common.ComputationKindLoop, uint(strLen)) + + return NewStringValue( + inter, + memoryUsage, + func() string { + return strings.ReplaceAll(v.Str, of, with) + }, + ) +} + func (v *StringValue) Storable(storage atree.SlabStorage, address atree.Address, maxInlineSize uint64) (atree.Storable, error) { return maybeLargeImmutableStorable(v, storage, address, maxInlineSize) } @@ -1544,19 +1651,50 @@ func (v *StringValue) ConformsToStaticType( return true } -func (v *StringValue) Iterator(_ *Interpreter) ValueIterator { +func (v *StringValue) Iterator(_ *Interpreter, _ LocationRange) ValueIterator { return StringValueIterator{ graphemes: uniseg.NewGraphemes(v.Str), } } +func (v *StringValue) ForEach( + interpreter *Interpreter, + _ sema.Type, + function func(value Value) (resume bool), + transferElements bool, + locationRange LocationRange, +) { + iterator := v.Iterator(interpreter, locationRange) + for { + value := iterator.Next(interpreter, locationRange) + if value == nil { + return + } + + if transferElements { + value = value.Transfer( + interpreter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ) + } + + if !function(value) { + return + } + } +} + type StringValueIterator struct { graphemes *uniseg.Graphemes } var _ ValueIterator = StringValueIterator{} -func (i StringValueIterator) Next(_ *Interpreter) Value { +func (i StringValueIterator) Next(_ *Interpreter, _ LocationRange) Value { if !i.graphemes.Next() { return nil } @@ -1578,7 +1716,7 @@ type ArrayValueIterator struct { atreeIterator *atree.ArrayIterator } -func (v *ArrayValue) Iterator(_ *Interpreter) ValueIterator { +func (v *ArrayValue) Iterator(_ *Interpreter, _ LocationRange) ValueIterator { arrayIterator, err := v.array.Iterator() if err != nil { panic(errors.NewExternalError(err)) @@ -1590,7 +1728,7 @@ func (v *ArrayValue) Iterator(_ *Interpreter) ValueIterator { var _ ValueIterator = ArrayValueIterator{} -func (i ArrayValueIterator) Next(interpreter *Interpreter) Value { +func (i ArrayValueIterator) Next(interpreter *Interpreter, _ LocationRange) Value { atreeValue, err := i.atreeIterator.Next() if err != nil { panic(errors.NewExternalError(err)) @@ -1753,36 +1891,78 @@ var _ IterableValue = &ArrayValue{} func (*ArrayValue) isValue() {} -func (v *ArrayValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *ArrayValue) Accept(interpreter *Interpreter, visitor Visitor, locationRange LocationRange) { descend := visitor.VisitArrayValue(interpreter, v) if !descend { return } - v.Walk(interpreter, func(element Value) { - element.Accept(interpreter, visitor) - }) + v.Walk( + interpreter, func(element Value) { + element.Accept(interpreter, visitor, locationRange) + }, + locationRange, + ) } -func (v *ArrayValue) Iterate(interpreter *Interpreter, f func(element Value) (resume bool)) { - v.iterate(interpreter, v.array.Iterate, f) +func (v *ArrayValue) Iterate( + interpreter *Interpreter, + f func(element Value) (resume bool), + transferElements bool, + locationRange LocationRange, +) { + v.iterate( + interpreter, + v.array.Iterate, + f, + transferElements, + locationRange, + ) } -func (v *ArrayValue) IterateLoaded(interpreter *Interpreter, f func(element Value) (resume bool)) { - v.iterate(interpreter, v.array.IterateLoadedValues, f) +func (v *ArrayValue) IterateLoaded( + interpreter *Interpreter, + f func(element Value) (resume bool), + locationRange LocationRange, +) { + const transferElements = false + + v.iterate( + interpreter, + v.array.IterateLoadedValues, + f, + transferElements, + locationRange, + ) } func (v *ArrayValue) iterate( interpreter *Interpreter, atreeIterate func(fn atree.ArrayIterationFunc) error, f func(element Value) (resume bool), + transferElements bool, + locationRange LocationRange, ) { iterate := func() { err := atreeIterate(func(element atree.Value) (resume bool, err error) { // atree.Array iteration provides low-level atree.Value, // convert to high-level interpreter.Value + elementValue := MustConvertStoredValue(interpreter, element) + interpreter.checkInvalidatedResourceOrResourceReference(elementValue, locationRange) + + if transferElements { + // Each element must be transferred before passing onto the function. + elementValue = elementValue.Transfer( + interpreter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ) + } - resume = f(MustConvertStoredValue(interpreter, element)) + resume = f(elementValue) return resume, nil }) @@ -1791,18 +1971,23 @@ func (v *ArrayValue) iterate( } } - if v.IsResourceKinded(interpreter) { - interpreter.withMutationPrevention(v.StorageID(), iterate) - } else { - iterate() - } + interpreter.withMutationPrevention(v.StorageID(), iterate) } -func (v *ArrayValue) Walk(interpreter *Interpreter, walkChild func(Value)) { - v.Iterate(interpreter, func(element Value) (resume bool) { - walkChild(element) - return true - }) +func (v *ArrayValue) Walk( + interpreter *Interpreter, + walkChild func(Value), + locationRange LocationRange, +) { + v.Iterate( + interpreter, + func(element Value) (resume bool) { + walkChild(element) + return true + }, + false, + locationRange, + ) } func (v *ArrayValue) StaticType(_ *Interpreter) StaticType { @@ -1810,28 +1995,29 @@ func (v *ArrayValue) StaticType(_ *Interpreter) StaticType { return v.Type } -func (v *ArrayValue) IsImportable(inter *Interpreter) bool { +func (v *ArrayValue) IsImportable(inter *Interpreter, locationRange LocationRange) bool { importable := true - v.Iterate(inter, func(element Value) (resume bool) { - if !element.IsImportable(inter) { - importable = false - // stop iteration - return false - } + v.Iterate( + inter, + func(element Value) (resume bool) { + if !element.IsImportable(inter, locationRange) { + importable = false + // stop iteration + return false + } - // continue iteration - return true - }) + // continue iteration + return true + }, + false, + locationRange, + ) return importable } -func (v *ArrayValue) checkInvalidatedResourceUse(interpreter *Interpreter, locationRange LocationRange) { - if v.isDestroyed || v.IsStaleResource(interpreter) { - panic(InvalidatedResourceError{ - LocationRange: locationRange, - }) - } +func (v *ArrayValue) isInvalidatedResource(interpreter *Interpreter) bool { + return v.isDestroyed || (v.array == nil && v.IsResourceKinded(interpreter)) } func (v *ArrayValue) IsStaleResource(interpreter *Interpreter) bool { @@ -1844,10 +2030,6 @@ func (v *ArrayValue) Destroy(interpreter *Interpreter, locationRange LocationRan config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - if config.TracingEnabled { startTime := time.Now() @@ -1869,19 +2051,21 @@ func (v *ArrayValue) Destroy(interpreter *Interpreter, locationRange LocationRan storageID, locationRange, func() { - v.Walk(interpreter, func(element Value) { - maybeDestroy(interpreter, locationRange, element) - }) + v.Walk( + interpreter, + func(element Value) { + maybeDestroy(interpreter, locationRange, element) + }, + locationRange, + ) }, ) v.isDestroyed = true - interpreter.invalidateReferencedResources(v, true) + interpreter.invalidateReferencedResources(v, locationRange) - if config.InvalidatedResourceValidationEnabled { - v.array = nil - } + v.array = nil } func (v *ArrayValue) IsDestroyed() bool { @@ -1911,6 +2095,9 @@ func (v *ArrayValue) Concat(interpreter *Interpreter, locationRange LocationRang v.array.Count()+other.array.Count(), func() Value { + // Meter computation for iterating the two arrays. + interpreter.ReportComputation(common.ComputationKindLoop, 1) + var value Value if first { @@ -1956,12 +2143,6 @@ func (v *ArrayValue) Concat(interpreter *Interpreter, locationRange LocationRang } func (v *ArrayValue) GetKey(interpreter *Interpreter, locationRange LocationRange, key Value) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - index := key.(NumberValue).ToInt(locationRange) return v.Get(interpreter, locationRange, index) } @@ -2001,12 +2182,6 @@ func (v *ArrayValue) Get(interpreter *Interpreter, locationRange LocationRange, } func (v *ArrayValue) SetKey(interpreter *Interpreter, locationRange LocationRange, key Value, value Value) { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - index := key.(NumberValue).ToInt(locationRange) v.Set(interpreter, locationRange, index, value) } @@ -2050,9 +2225,8 @@ func (v *ArrayValue) Set(interpreter *Interpreter, locationRange LocationRange, interpreter.maybeValidateAtreeValue(v.array) existingValue := StoredValue(interpreter, existingStorable, interpreter.Storage()) - + interpreter.checkResourceLoss(existingValue, locationRange) existingValue.DeepRemove(interpreter) - interpreter.RemoveReferencedSlab(existingStorable) } @@ -2061,29 +2235,34 @@ func (v *ArrayValue) String() string { } func (v *ArrayValue) RecursiveString(seenReferences SeenReferences) string { - return v.MeteredString(nil, seenReferences) + return v.MeteredString(nil, seenReferences, EmptyLocationRange) } -func (v *ArrayValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { +func (v *ArrayValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { // if n > 0: // len = open-bracket + close-bracket + ((n-1) comma+space) // = 2 + 2n - 2 // = 2n // Always +2 to include empty array case (over estimate). // Each elements' string value is metered individually. - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(v.Count()*2+2)) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(v.Count()*2+2)) values := make([]string, v.Count()) i := 0 - _ = v.array.Iterate(func(element atree.Value) (resume bool, err error) { - // ok to not meter anything created as part of this iteration, since we will discard the result - // upon creating the string - values[i] = MustConvertUnmeteredStoredValue(element).MeteredString(memoryGauge, seenReferences) - i++ - return true, nil - }) + v.Iterate( + interpreter, + func(value Value) (resume bool) { + // ok to not meter anything created as part of this iteration, since we will discard the result + // upon creating the string + values[i] = value.MeteredString(interpreter, seenReferences, locationRange) + i++ + return true + }, + false, + locationRange, + ) return format.Array(values) } @@ -2123,24 +2302,26 @@ func (v *ArrayValue) Append(interpreter *Interpreter, locationRange LocationRang } func (v *ArrayValue) AppendAll(interpreter *Interpreter, locationRange LocationRange, other *ArrayValue) { - other.Walk(interpreter, func(value Value) { - v.Append(interpreter, locationRange, value) - }) + other.Walk( + interpreter, + func(value Value) { + v.Append(interpreter, locationRange, value) + }, + locationRange, + ) } func (v *ArrayValue) InsertKey(interpreter *Interpreter, locationRange LocationRange, key Value, value Value) { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - index := key.(NumberValue).ToInt(locationRange) v.Insert(interpreter, locationRange, index, value) } -func (v *ArrayValue) Insert(interpreter *Interpreter, locationRange LocationRange, index int, element Value) { - +func (v *ArrayValue) InsertWithoutTransfer( + interpreter *Interpreter, + locationRange LocationRange, + index int, + element atree.Value, +) { interpreter.validateMutation(v.StorageID(), locationRange) // We only need to check the lower bound before converting from `int` (signed) to `uint64` (unsigned). @@ -2164,19 +2345,6 @@ func (v *ArrayValue) Insert(interpreter *Interpreter, locationRange LocationRang common.UseMemory(interpreter, metaDataSlabs) common.UseMemory(interpreter, common.AtreeArrayElementOverhead) - interpreter.checkContainerMutation(v.Type.ElementType(), element, locationRange) - - element = element.Transfer( - interpreter, - locationRange, - v.array.Address(), - true, - nil, - map[atree.StorageID]struct{}{ - v.StorageID(): {}, - }, - ) - err := v.array.Insert(uint64(index), element) if err != nil { v.handleIndexOutOfBoundsError(err, index, locationRange) @@ -2186,18 +2354,43 @@ func (v *ArrayValue) Insert(interpreter *Interpreter, locationRange LocationRang interpreter.maybeValidateAtreeValue(v.array) } -func (v *ArrayValue) RemoveKey(interpreter *Interpreter, locationRange LocationRange, key Value) Value { - config := interpreter.SharedState.Config +func (v *ArrayValue) Insert(interpreter *Interpreter, locationRange LocationRange, index int, element Value) { - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) + address := v.array.Address() + + preventTransfer := map[atree.StorageID]struct{}{ + v.StorageID(): {}, } + element = element.Transfer( + interpreter, + locationRange, + address, + true, + nil, + preventTransfer, + ) + + interpreter.checkContainerMutation(v.Type.ElementType(), element, locationRange) + + v.InsertWithoutTransfer( + interpreter, + locationRange, + index, + element, + ) +} + +func (v *ArrayValue) RemoveKey(interpreter *Interpreter, locationRange LocationRange, key Value) Value { index := key.(NumberValue).ToInt(locationRange) return v.Remove(interpreter, locationRange, index) } -func (v *ArrayValue) Remove(interpreter *Interpreter, locationRange LocationRange, index int) Value { +func (v *ArrayValue) RemoveWithoutTransfer( + interpreter *Interpreter, + locationRange LocationRange, + index int, +) atree.Storable { interpreter.validateMutation(v.StorageID(), locationRange) @@ -2220,6 +2413,12 @@ func (v *ArrayValue) Remove(interpreter *Interpreter, locationRange LocationRang } interpreter.maybeValidateAtreeValue(v.array) + return storable +} + +func (v *ArrayValue) Remove(interpreter *Interpreter, locationRange LocationRange, index int) Value { + storable := v.RemoveWithoutTransfer(interpreter, locationRange, index) + value := StoredValue(interpreter, storable, interpreter.Storage()) return value.Transfer( @@ -2249,16 +2448,21 @@ func (v *ArrayValue) FirstIndex(interpreter *Interpreter, locationRange Location var counter int64 var result bool - v.Iterate(interpreter, func(element Value) (resume bool) { - if needleEquatable.Equal(interpreter, locationRange, element) { - result = true - // stop iteration - return false - } - counter++ - // continue iteration - return true - }) + v.Iterate( + interpreter, + func(element Value) (resume bool) { + if needleEquatable.Equal(interpreter, locationRange, element) { + result = true + // stop iteration + return false + } + counter++ + // continue iteration + return true + }, + false, + locationRange, + ) if result { value := NewIntValueFromInt64(interpreter, counter) @@ -2279,32 +2483,33 @@ func (v *ArrayValue) Contains( } var result bool - v.Iterate(interpreter, func(element Value) (resume bool) { - if needleEquatable.Equal(interpreter, locationRange, element) { - result = true - // stop iteration - return false - } - // continue iteration - return true - }) + v.Iterate( + interpreter, + func(element Value) (resume bool) { + if needleEquatable.Equal(interpreter, locationRange, element) { + result = true + // stop iteration + return false + } + // continue iteration + return true + }, + false, + locationRange, + ) return AsBoolValue(result) } -func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationRange, name string) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } +func (v *ArrayValue) GetMember(interpreter *Interpreter, _ LocationRange, name string) Value { switch name { case "length": return NewIntValueFromInt64(interpreter, int64(v.Count())) case "append": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayAppendFunctionType( v.SemaType(interpreter).ElementType(false), ), @@ -2319,8 +2524,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "appendAll": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayAppendAllFunctionType( v.SemaType(interpreter), ), @@ -2339,8 +2545,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "concat": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayConcatFunctionType( v.SemaType(interpreter), ), @@ -2358,12 +2565,16 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "insert": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayInsertFunctionType( v.SemaType(interpreter).ElementType(false), ), func(invocation Invocation) Value { + inter := invocation.Interpreter + locationRange := invocation.LocationRange + indexValue, ok := invocation.Arguments[0].(NumberValue) if !ok { panic(errors.NewUnreachableError()) @@ -2373,8 +2584,8 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR element := invocation.Arguments[1] v.Insert( - invocation.Interpreter, - invocation.LocationRange, + inter, + locationRange, index, element, ) @@ -2383,12 +2594,16 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "remove": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayRemoveFunctionType( v.SemaType(interpreter).ElementType(false), ), func(invocation Invocation) Value { + inter := invocation.Interpreter + locationRange := invocation.LocationRange + indexValue, ok := invocation.Arguments[0].(NumberValue) if !ok { panic(errors.NewUnreachableError()) @@ -2396,16 +2611,17 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR index := indexValue.ToInt(locationRange) return v.Remove( - invocation.Interpreter, - invocation.LocationRange, + inter, + locationRange, index, ) }, ) case "removeFirst": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayRemoveFirstFunctionType( v.SemaType(interpreter).ElementType(false), ), @@ -2418,8 +2634,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "removeLast": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayRemoveLastFunctionType( v.SemaType(interpreter).ElementType(false), ), @@ -2432,8 +2649,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "firstIndex": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayFirstIndexFunctionType( v.SemaType(interpreter).ElementType(false), ), @@ -2447,8 +2665,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "contains": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayContainsFunctionType( v.SemaType(interpreter).ElementType(false), ), @@ -2462,8 +2681,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case "slice": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArraySliceFunctionType( v.SemaType(interpreter).ElementType(false), ), @@ -2488,8 +2708,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case sema.ArrayTypeReverseFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayReverseFunctionType( v.SemaType(interpreter), ), @@ -2502,8 +2723,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case sema.ArrayTypeFilterFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayFilterFunctionType( interpreter, v.SemaType(interpreter).ElementType(false), @@ -2525,8 +2747,9 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) case sema.ArrayTypeMapFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ArrayMapFunctionType( interpreter, v.SemaType(interpreter), @@ -2552,29 +2775,64 @@ func (v *ArrayValue) GetMember(interpreter *Interpreter, locationRange LocationR ) }, ) - } - - return nil -} -func (v *ArrayValue) RemoveMember(interpreter *Interpreter, locationRange LocationRange, _ string) Value { - config := interpreter.SharedState.Config + case sema.ArrayTypeToVariableSizedFunctionName: + return NewBoundHostFunctionValue( + interpreter, + v, + sema.ArrayToVariableSizedFunctionType( + v.SemaType(interpreter).ElementType(false), + ), + func(invocation Invocation) Value { + interpreter := invocation.Interpreter + + return v.ToVariableSized( + interpreter, + invocation.LocationRange, + ) + }, + ) + + case sema.ArrayTypeToConstantSizedFunctionName: + return NewBoundHostFunctionValue( + interpreter, + v, + sema.ArrayToConstantSizedFunctionType( + v.SemaType(interpreter).ElementType(false), + ), + func(invocation Invocation) Value { + interpreter := invocation.Interpreter + + typeParameterPair := invocation.TypeParameterTypes.Oldest() + if typeParameterPair == nil { + panic(errors.NewUnreachableError()) + } + + ty := typeParameterPair.Value + + constantSizedArrayType, ok := ty.(*sema.ConstantSizedType) + if !ok { + panic(errors.NewUnreachableError()) + } - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) + return v.ToConstantSized( + interpreter, + invocation.LocationRange, + constantSizedArrayType.Size, + ) + }, + ) } + return nil +} + +func (v *ArrayValue) RemoveMember(interpreter *Interpreter, locationRange LocationRange, _ string) Value { // Arrays have no removable members (fields / functions) panic(errors.NewUnreachableError()) } func (v *ArrayValue) SetMember(interpreter *Interpreter, locationRange LocationRange, _ string, _ Value) bool { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - // Arrays have no settable members (fields / functions) panic(errors.NewUnreachableError()) } @@ -2621,27 +2879,32 @@ func (v *ArrayValue) ConformsToStaticType( var elementMismatch bool - v.Iterate(interpreter, func(element Value) (resume bool) { + v.Iterate( + interpreter, + func(element Value) (resume bool) { - if !interpreter.IsSubType(element.StaticType(interpreter), elementType) { - elementMismatch = true - // stop iteration - return false - } + if !interpreter.IsSubType(element.StaticType(interpreter), elementType) { + elementMismatch = true + // stop iteration + return false + } - if !element.ConformsToStaticType( - interpreter, - locationRange, - results, - ) { - elementMismatch = true - // stop iteration - return false - } + if !element.ConformsToStaticType( + interpreter, + locationRange, + results, + ) { + elementMismatch = true + // stop iteration + return false + } - // continue iteration - return true - }) + // continue iteration + return true + }, + false, + locationRange, + ) return !elementMismatch } @@ -2702,10 +2965,6 @@ func (v *ArrayValue) Transfer( config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - interpreter.ReportComputation( common.ComputationKindTransferArrayValue, uint(v.Count()), @@ -2792,8 +3051,6 @@ func (v *ArrayValue) Transfer( } } - var res *ArrayValue - if isResourceKinded { // Update the resource in-place, // and also update all values that are referencing the same value @@ -2804,28 +3061,21 @@ func (v *ArrayValue) Transfer( // This allows raising an error when the resource array is attempted // to be transferred/moved again (see beginning of this function) - interpreter.invalidateReferencedResources(v, false) + interpreter.invalidateReferencedResources(v, locationRange) - if config.InvalidatedResourceValidationEnabled { - v.array = nil - } else { - v.array = array - res = v - } + v.array = nil } - if res == nil { - res = newArrayValueFromAtreeArray( - interpreter, - v.Type, - v.elementSize, - array, - ) + res := newArrayValueFromAtreeArray( + interpreter, + v.Type, + v.elementSize, + array, + ) - res.semaType = v.semaType - res.isResourceKinded = v.isResourceKinded - res.isDestroyed = v.isDestroyed - } + res.semaType = v.semaType + res.isResourceKinded = v.isResourceKinded + res.isDestroyed = v.isDestroyed return res } @@ -2995,13 +3245,15 @@ func (v *ArrayValue) Slice( uint64(toIndex-fromIndex), func() Value { - var value Value + // Meter computation for iterating the array. + interpreter.ReportComputation(common.ComputationKindLoop, 1) atreeValue, err := iterator.Next() if err != nil { panic(errors.NewExternalError(err)) } + var value Value if atreeValue != nil { value = MustConvertStoredValue(interpreter, atreeValue) } @@ -3039,6 +3291,9 @@ func (v *ArrayValue) Reverse( return nil } + // Meter computation for iterating the array. + interpreter.ReportComputation(common.ComputationKindLoop, 1) + value := v.Get(interpreter, locationRange, index) index-- @@ -3090,6 +3345,9 @@ func (v *ArrayValue) Filter( var value Value for { + // Meter computation for iterating the array. + interpreter.ReportComputation(common.ComputationKindLoop, 1) + atreeValue, err := iterator.Next() if err != nil { panic(errors.NewExternalError(err)) @@ -3184,6 +3442,9 @@ func (v *ArrayValue) Map( uint64(v.Count()), func() Value { + // Meter computation for iterating the array. + interpreter.ReportComputation(common.ComputationKindLoop, 1) + atreeValue, err := iterator.Next() if err != nil { panic(errors.NewExternalError(err)) @@ -3208,6 +3469,136 @@ func (v *ArrayValue) Map( ) } +func (v *ArrayValue) ForEach( + interpreter *Interpreter, + _ sema.Type, + function func(value Value) (resume bool), + transferElements bool, + locationRange LocationRange, +) { + v.Iterate(interpreter, function, transferElements, locationRange) +} + +func (v *ArrayValue) ToVariableSized( + interpreter *Interpreter, + locationRange LocationRange, +) Value { + var returnArrayStaticType ArrayStaticType + switch v.Type.(type) { + case *ConstantSizedStaticType: + returnArrayStaticType = NewVariableSizedStaticType( + interpreter, + v.Type.ElementType(), + ) + default: + panic(errors.NewUnreachableError()) + } + + iterator, err := v.array.Iterator() + if err != nil { + panic(errors.NewExternalError(err)) + } + + return NewArrayValueWithIterator( + interpreter, + returnArrayStaticType, + common.ZeroAddress, + uint64(v.Count()), + func() Value { + + // Meter computation for iterating the array. + interpreter.ReportComputation(common.ComputationKindLoop, 1) + + atreeValue, err := iterator.Next() + if err != nil { + panic(errors.NewExternalError(err)) + } + + if atreeValue == nil { + return nil + } + + value := MustConvertStoredValue(interpreter, atreeValue) + + return value.Transfer( + interpreter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ) + }, + ) +} + +func (v *ArrayValue) ToConstantSized( + interpreter *Interpreter, + locationRange LocationRange, + expectedConstantSizedArraySize int64, +) Value { + if int64(v.Count()) != expectedConstantSizedArraySize { + return NilOptionalValue + } + + var returnArrayStaticType ArrayStaticType + switch v.Type.(type) { + case *VariableSizedStaticType: + returnArrayStaticType = NewConstantSizedStaticType( + interpreter, + v.Type.ElementType(), + expectedConstantSizedArraySize, + ) + default: + panic(errors.NewUnreachableError()) + } + + iterator, err := v.array.Iterator() + if err != nil { + panic(errors.NewExternalError(err)) + } + + return NewArrayValueWithIterator( + interpreter, + returnArrayStaticType, + common.ZeroAddress, + uint64(v.Count()), + func() Value { + + // Meter computation for iterating the array. + interpreter.ReportComputation(common.ComputationKindLoop, 1) + + atreeValue, err := iterator.Next() + if err != nil { + panic(errors.NewExternalError(err)) + } + + if atreeValue == nil { + return nil + } + + value := MustConvertStoredValue(interpreter, atreeValue) + + return value.Transfer( + interpreter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ) + }, + ) +} + +func (v *ArrayValue) SetType(staticType ArrayStaticType) { + v.Type = staticType + err := v.array.SetType(staticType) + if err != nil { + panic(errors.NewExternalError(err)) + } +} + // NumberValue type NumberValue interface { ComparableValue @@ -3229,8 +3620,9 @@ func getNumberValueMember(interpreter *Interpreter, v NumberValue, name string, switch name { case sema.ToStringFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ToStringFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -3248,8 +3640,9 @@ func getNumberValueMember(interpreter *Interpreter, v NumberValue, name string, ) case sema.ToBigEndianBytesFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ToBigEndianBytesFunctionType, func(invocation Invocation) Value { return ByteSliceToByteArrayValue( @@ -3260,8 +3653,9 @@ func getNumberValueMember(interpreter *Interpreter, v NumberValue, name string, ) case sema.NumericTypeSaturatingAddFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.SaturatingArithmeticTypeFunctionTypes[typ], func(invocation Invocation) Value { other, ok := invocation.Arguments[0].(NumberValue) @@ -3277,8 +3671,9 @@ func getNumberValueMember(interpreter *Interpreter, v NumberValue, name string, ) case sema.NumericTypeSaturatingSubtractFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.SaturatingArithmeticTypeFunctionTypes[typ], func(invocation Invocation) Value { other, ok := invocation.Arguments[0].(NumberValue) @@ -3294,8 +3689,9 @@ func getNumberValueMember(interpreter *Interpreter, v NumberValue, name string, ) case sema.NumericTypeSaturatingMultiplyFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.SaturatingArithmeticTypeFunctionTypes[typ], func(invocation Invocation) Value { other, ok := invocation.Arguments[0].(NumberValue) @@ -3311,8 +3707,9 @@ func getNumberValueMember(interpreter *Interpreter, v NumberValue, name string, ) case sema.NumericTypeSaturatingDivideFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.SaturatingArithmeticTypeFunctionTypes[typ], func(invocation Invocation) Value { other, ok := invocation.Arguments[0].(NumberValue) @@ -3416,11 +3813,11 @@ var _ MemberAccessibleValue = IntValue{} func (IntValue) isValue() {} -func (v IntValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v IntValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitIntValue(interpreter, v) } -func (IntValue) Walk(_ *Interpreter, _ func(Value)) { +func (IntValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -3428,7 +3825,7 @@ func (IntValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeInt) } -func (IntValue) IsImportable(_ *Interpreter) bool { +func (IntValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -3458,11 +3855,11 @@ func (v IntValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v IntValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v IntValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -3977,11 +4374,11 @@ var _ HashableValue = Int8Value(0) func (Int8Value) isValue() {} -func (v Int8Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Int8Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitInt8Value(interpreter, v) } -func (Int8Value) Walk(_ *Interpreter, _ func(Value)) { +func (Int8Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -3989,7 +4386,7 @@ func (Int8Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeInt8) } -func (Int8Value) IsImportable(_ *Interpreter) bool { +func (Int8Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -4001,11 +4398,11 @@ func (v Int8Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Int8Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Int8Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -4618,11 +5015,11 @@ var _ MemberAccessibleValue = Int16Value(0) func (Int16Value) isValue() {} -func (v Int16Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Int16Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitInt16Value(interpreter, v) } -func (Int16Value) Walk(_ *Interpreter, _ func(Value)) { +func (Int16Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -4630,7 +5027,7 @@ func (Int16Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeInt16) } -func (Int16Value) IsImportable(_ *Interpreter) bool { +func (Int16Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -4642,11 +5039,11 @@ func (v Int16Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Int16Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Int16Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -5260,11 +5657,11 @@ var _ MemberAccessibleValue = Int32Value(0) func (Int32Value) isValue() {} -func (v Int32Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Int32Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitInt32Value(interpreter, v) } -func (Int32Value) Walk(_ *Interpreter, _ func(Value)) { +func (Int32Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -5272,7 +5669,7 @@ func (Int32Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeInt32) } -func (Int32Value) IsImportable(_ *Interpreter) bool { +func (Int32Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -5284,11 +5681,11 @@ func (v Int32Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Int32Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Int32Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -5900,11 +6297,11 @@ var _ MemberAccessibleValue = Int64Value(0) func (Int64Value) isValue() {} -func (v Int64Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Int64Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitInt64Value(interpreter, v) } -func (Int64Value) Walk(_ *Interpreter, _ func(Value)) { +func (Int64Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -5912,7 +6309,7 @@ func (Int64Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeInt64) } -func (Int64Value) IsImportable(_ *Interpreter) bool { +func (Int64Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -5924,11 +6321,11 @@ func (v Int64Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Int64Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Int64Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -6551,11 +6948,11 @@ var _ MemberAccessibleValue = Int128Value{} func (Int128Value) isValue() {} -func (v Int128Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Int128Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitInt128Value(interpreter, v) } -func (Int128Value) Walk(_ *Interpreter, _ func(Value)) { +func (Int128Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -6563,7 +6960,7 @@ func (Int128Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeInt128) } -func (Int128Value) IsImportable(_ *Interpreter) bool { +func (Int128Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -6593,11 +6990,11 @@ func (v Int128Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Int128Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Int128Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -7295,11 +7692,11 @@ var _ MemberAccessibleValue = Int256Value{} func (Int256Value) isValue() {} -func (v Int256Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Int256Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitInt256Value(interpreter, v) } -func (Int256Value) Walk(_ *Interpreter, _ func(Value)) { +func (Int256Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -7307,7 +7704,7 @@ func (Int256Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeInt256) } -func (Int256Value) IsImportable(_ *Interpreter) bool { +func (Int256Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -7337,11 +7734,11 @@ func (v Int256Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Int256Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Int256Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -8077,11 +8474,11 @@ var _ MemberAccessibleValue = UIntValue{} func (UIntValue) isValue() {} -func (v UIntValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UIntValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUIntValue(interpreter, v) } -func (UIntValue) Walk(_ *Interpreter, _ func(Value)) { +func (UIntValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -8089,7 +8486,7 @@ func (UIntValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUInt) } -func (v UIntValue) IsImportable(_ *Interpreter) bool { +func (v UIntValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -8119,11 +8516,11 @@ func (v UIntValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UIntValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UIntValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -8648,11 +9045,11 @@ func NewUnmeteredUInt8Value(value uint8) UInt8Value { func (UInt8Value) isValue() {} -func (v UInt8Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UInt8Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUInt8Value(interpreter, v) } -func (UInt8Value) Walk(_ *Interpreter, _ func(Value)) { +func (UInt8Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -8660,7 +9057,7 @@ func (UInt8Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUInt8) } -func (UInt8Value) IsImportable(_ *Interpreter) bool { +func (UInt8Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -8672,11 +9069,11 @@ func (v UInt8Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UInt8Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UInt8Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -9234,11 +9631,11 @@ func NewUnmeteredUInt16Value(value uint16) UInt16Value { func (UInt16Value) isValue() {} -func (v UInt16Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UInt16Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUInt16Value(interpreter, v) } -func (UInt16Value) Walk(_ *Interpreter, _ func(Value)) { +func (UInt16Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -9246,7 +9643,7 @@ func (UInt16Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUInt16) } -func (UInt16Value) IsImportable(_ *Interpreter) bool { +func (UInt16Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -9258,11 +9655,11 @@ func (v UInt16Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UInt16Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UInt16Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -9775,11 +10172,11 @@ var _ MemberAccessibleValue = UInt32Value(0) func (UInt32Value) isValue() {} -func (v UInt32Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UInt32Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUInt32Value(interpreter, v) } -func (UInt32Value) Walk(_ *Interpreter, _ func(Value)) { +func (UInt32Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -9787,7 +10184,7 @@ func (UInt32Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUInt32) } -func (UInt32Value) IsImportable(_ *Interpreter) bool { +func (UInt32Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -9799,11 +10196,11 @@ func (v UInt32Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UInt32Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UInt32Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -10323,11 +10720,11 @@ func NewUnmeteredUInt64Value(value uint64) UInt64Value { func (UInt64Value) isValue() {} -func (v UInt64Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UInt64Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUInt64Value(interpreter, v) } -func (UInt64Value) Walk(_ *Interpreter, _ func(Value)) { +func (UInt64Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -10335,7 +10732,7 @@ func (UInt64Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUInt64) } -func (UInt64Value) IsImportable(_ *Interpreter) bool { +func (UInt64Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -10347,11 +10744,11 @@ func (v UInt64Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UInt64Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UInt64Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -10905,11 +11302,11 @@ var _ MemberAccessibleValue = UInt128Value{} func (UInt128Value) isValue() {} -func (v UInt128Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UInt128Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUInt128Value(interpreter, v) } -func (UInt128Value) Walk(_ *Interpreter, _ func(Value)) { +func (UInt128Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -10917,7 +11314,7 @@ func (UInt128Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUInt128) } -func (UInt128Value) IsImportable(_ *Interpreter) bool { +func (UInt128Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -10947,11 +11344,11 @@ func (v UInt128Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UInt128Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UInt128Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -11580,11 +11977,11 @@ var _ MemberAccessibleValue = UInt256Value{} func (UInt256Value) isValue() {} -func (v UInt256Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UInt256Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUInt256Value(interpreter, v) } -func (UInt256Value) Walk(_ *Interpreter, _ func(Value)) { +func (UInt256Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -11592,7 +11989,7 @@ func (UInt256Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUInt256) } -func (UInt256Value) IsImportable(_ *Interpreter) bool { +func (UInt256Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -11623,11 +12020,11 @@ func (v UInt256Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UInt256Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UInt256Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -12239,11 +12636,11 @@ func NewUnmeteredWord8Value(value uint8) Word8Value { func (Word8Value) isValue() {} -func (v Word8Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Word8Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitWord8Value(interpreter, v) } -func (Word8Value) Walk(_ *Interpreter, _ func(Value)) { +func (Word8Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -12251,7 +12648,7 @@ func (Word8Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeWord8) } -func (Word8Value) IsImportable(_ *Interpreter) bool { +func (Word8Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -12263,11 +12660,11 @@ func (v Word8Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Word8Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Word8Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -12676,11 +13073,11 @@ func NewUnmeteredWord16Value(value uint16) Word16Value { func (Word16Value) isValue() {} -func (v Word16Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Word16Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitWord16Value(interpreter, v) } -func (Word16Value) Walk(_ *Interpreter, _ func(Value)) { +func (Word16Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -12688,7 +13085,7 @@ func (Word16Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeWord16) } -func (Word16Value) IsImportable(_ *Interpreter) bool { +func (Word16Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -12700,11 +13097,11 @@ func (v Word16Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Word16Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Word16Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -13114,11 +13511,11 @@ func NewUnmeteredWord32Value(value uint32) Word32Value { func (Word32Value) isValue() {} -func (v Word32Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Word32Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitWord32Value(interpreter, v) } -func (Word32Value) Walk(_ *Interpreter, _ func(Value)) { +func (Word32Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -13126,7 +13523,7 @@ func (Word32Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeWord32) } -func (Word32Value) IsImportable(_ *Interpreter) bool { +func (Word32Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -13138,11 +13535,11 @@ func (v Word32Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Word32Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Word32Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -13559,11 +13956,11 @@ var _ BigNumberValue = Word64Value(0) func (Word64Value) isValue() {} -func (v Word64Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Word64Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitWord64Value(interpreter, v) } -func (Word64Value) Walk(_ *Interpreter, _ func(Value)) { +func (Word64Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -13571,7 +13968,7 @@ func (Word64Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeWord64) } -func (Word64Value) IsImportable(_ *Interpreter) bool { +func (Word64Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -13583,11 +13980,11 @@ func (v Word64Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Word64Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Word64Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -14033,11 +14430,11 @@ var _ MemberAccessibleValue = Word128Value{} func (Word128Value) isValue() {} -func (v Word128Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Word128Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitWord128Value(interpreter, v) } -func (Word128Value) Walk(_ *Interpreter, _ func(Value)) { +func (Word128Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -14045,7 +14442,7 @@ func (Word128Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeWord128) } -func (Word128Value) IsImportable(_ *Interpreter) bool { +func (Word128Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -14075,11 +14472,11 @@ func (v Word128Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Word128Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Word128Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -14613,11 +15010,11 @@ var _ MemberAccessibleValue = Word256Value{} func (Word256Value) isValue() {} -func (v Word256Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Word256Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitWord256Value(interpreter, v) } -func (Word256Value) Walk(_ *Interpreter, _ func(Value)) { +func (Word256Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -14625,7 +15022,7 @@ func (Word256Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeWord256) } -func (Word256Value) IsImportable(_ *Interpreter) bool { +func (Word256Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -14655,11 +15052,11 @@ func (v Word256Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Word256Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Word256Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -15208,11 +15605,11 @@ var _ MemberAccessibleValue = Fix64Value(0) func (Fix64Value) isValue() {} -func (v Fix64Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v Fix64Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitFix64Value(interpreter, v) } -func (Fix64Value) Walk(_ *Interpreter, _ func(Value)) { +func (Fix64Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -15220,7 +15617,7 @@ func (Fix64Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeFix64) } -func (Fix64Value) IsImportable(_ *Interpreter) bool { +func (Fix64Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -15232,11 +15629,11 @@ func (v Fix64Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v Fix64Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v Fix64Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -15779,11 +16176,11 @@ var _ MemberAccessibleValue = UFix64Value(0) func (UFix64Value) isValue() {} -func (v UFix64Value) Accept(interpreter *Interpreter, visitor Visitor) { +func (v UFix64Value) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitUFix64Value(interpreter, v) } -func (UFix64Value) Walk(_ *Interpreter, _ func(Value)) { +func (UFix64Value) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -15791,7 +16188,7 @@ func (UFix64Value) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeUFix64) } -func (UFix64Value) IsImportable(_ *Interpreter) bool { +func (UFix64Value) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -15803,11 +16200,11 @@ func (v UFix64Value) RecursiveString(_ SeenReferences) string { return v.String() } -func (v UFix64Value) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v UFix64Value) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { common.UseMemory( - memoryGauge, + interpreter, common.NewRawStringMemoryUsage( - OverEstimateNumberStringLength(memoryGauge, v), + OverEstimateNumberStringLength(interpreter, v), ), ) return v.String() @@ -16271,15 +16668,21 @@ func (UFix64Value) Scale() int { // CompositeValue +type FunctionOrderedMap = orderedmap.OrderedMap[string, FunctionValue] + type CompositeValue struct { - Destructor FunctionValue - Location common.Location - staticType StaticType + Location common.Location + + // note that the staticType is not guaranteed to be a CompositeStaticType as there can be types + // which are non-composite but their values are treated as CompositeValue. + // For e.g. InclusiveRangeValue + staticType StaticType + Stringer func(gauge common.MemoryGauge, value *CompositeValue, seenReferences SeenReferences) string - InjectedFields map[string]Value - ComputedFields map[string]ComputedField - NestedVariables map[string]*Variable - Functions map[string]FunctionValue + injectedFields map[string]Value + computedFields map[string]ComputedField + NestedVariables map[string]Variable + Functions *FunctionOrderedMap dictionary *atree.OrderedMap typeID TypeID @@ -16288,22 +16691,24 @@ type CompositeValue struct { // 2) When a resource `r`'s destructor is invoked, all of `r`'s attachments' destructors will also run, and // have their `base` fields set to `&r` // 3) When a value is transferred, this field is copied between its attachments - base *EphemeralReferenceValue + base *CompositeValue QualifiedIdentifier string Kind common.CompositeKind isDestroyed bool } -type ComputedField func(*Interpreter, LocationRange) Value +type ComputedField func(*Interpreter, LocationRange, *CompositeValue) Value type CompositeField struct { Value Value Name string } -const attachmentNamePrefix = "$" +const unrepresentableNamePrefix = "$" +const resourceDefaultDestroyEventPrefix = ast.ResourceDestructionDefaultEventName + unrepresentableNamePrefix var _ TypeIndexableValue = &CompositeValue{} +var _ IterableValue = &CompositeValue{} func NewCompositeField(memoryGauge common.MemoryGauge, name string, value Value) CompositeField { common.UseMemory(memoryGauge, common.CompositeFieldMemoryUsage) @@ -16317,7 +16722,11 @@ func NewUnmeteredCompositeField(name string, value Value) CompositeField { } } -func NewCompositeValue( +// Create a CompositeValue with the provided StaticType. +// Useful when we wish to utilize CompositeValue as the value +// for a type which isn't CompositeType. +// For e.g. InclusiveRangeType +func NewCompositeValueWithStaticType( interpreter *Interpreter, locationRange LocationRange, location common.Location, @@ -16325,14 +16734,37 @@ func NewCompositeValue( kind common.CompositeKind, fields []CompositeField, address common.Address, + staticType StaticType, ) *CompositeValue { + value := NewCompositeValue( + interpreter, + locationRange, + location, + qualifiedIdentifier, + kind, + fields, + address, + ) + value.staticType = staticType + return value +} + +func NewCompositeValue( + interpreter *Interpreter, + locationRange LocationRange, + location common.Location, + qualifiedIdentifier string, + kind common.CompositeKind, + fields []CompositeField, + address common.Address, +) *CompositeValue { + + interpreter.ReportComputation(common.ComputationKindCreateCompositeValue, 1) + + config := interpreter.SharedState.Config + + var v *CompositeValue - interpreter.ReportComputation(common.ComputationKindCreateCompositeValue, 1) - - config := interpreter.SharedState.Config - - var v *CompositeValue - if config.TracingEnabled { startTime := time.Now() @@ -16440,29 +16872,29 @@ var _ ContractValue = &CompositeValue{} func (*CompositeValue) isValue() {} -func (v *CompositeValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *CompositeValue) Accept(interpreter *Interpreter, visitor Visitor, locationRange LocationRange) { descend := visitor.VisitCompositeValue(interpreter, v) if !descend { return } v.ForEachField(interpreter, func(_ string, value Value) (resume bool) { - value.Accept(interpreter, visitor) + value.Accept(interpreter, visitor, locationRange) // continue iteration return true - }) + }, locationRange) } // Walk iterates over all field values of the composite value. // It does NOT walk the computed field or functions! -func (v *CompositeValue) Walk(interpreter *Interpreter, walkChild func(Value)) { +func (v *CompositeValue) Walk(interpreter *Interpreter, walkChild func(Value), locationRange LocationRange) { v.ForEachField(interpreter, func(_ string, value Value) (resume bool) { walkChild(value) // continue iteration return true - }) + }, locationRange) } func (v *CompositeValue) StaticType(interpreter *Interpreter) StaticType { @@ -16479,7 +16911,7 @@ func (v *CompositeValue) StaticType(interpreter *Interpreter) StaticType { return v.staticType } -func (v *CompositeValue) IsImportable(inter *Interpreter) bool { +func (v *CompositeValue) IsImportable(inter *Interpreter, locationRange LocationRange) bool { // Check type is importable staticType := v.StaticType(inter) semaType := inter.MustConvertStaticToSemaType(staticType) @@ -16490,7 +16922,7 @@ func (v *CompositeValue) IsImportable(inter *Interpreter) bool { // Check all field values are importable importable := true v.ForEachField(inter, func(_ string, value Value) (resume bool) { - if !value.IsImportable(inter) { + if !value.IsImportable(inter, locationRange) { importable = false // stop iteration return false @@ -16498,7 +16930,7 @@ func (v *CompositeValue) IsImportable(inter *Interpreter) bool { // continue iteration return true - }) + }, locationRange) return importable } @@ -16507,16 +16939,32 @@ func (v *CompositeValue) IsDestroyed() bool { return v.isDestroyed } +func resourceDefaultDestroyEventName(t sema.ContainerType) string { + return resourceDefaultDestroyEventPrefix + string(t.ID()) +} + +// get all the default destroy event constructors associated with this composite value. +// note that there can be more than one in the case where a resource inherits from an interface +// that also defines a default destroy event. When that composite is destroyed, all of these +// events will need to be emitted. +func (v *CompositeValue) defaultDestroyEventConstructors() (constructors []FunctionValue) { + if v.Functions == nil { + return + } + v.Functions.Foreach(func(name string, f FunctionValue) { + if strings.HasPrefix(name, resourceDefaultDestroyEventPrefix) { + constructors = append(constructors, f) + } + }) + return +} + func (v *CompositeValue) Destroy(interpreter *Interpreter, locationRange LocationRange) { interpreter.ReportComputation(common.ComputationKindDestroyCompositeValue, 1) config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - if config.TracingEnabled { startTime := time.Now() @@ -16535,62 +16983,63 @@ func (v *CompositeValue) Destroy(interpreter *Interpreter, locationRange Locatio }() } + // before actually performing the destruction (i.e. so that any fields are still available), + // compute the default arguments of the default destruction events (if any exist). However, + // wait until after the destruction completes to actually emit the events, so that the correct order + // is preserved and nested resource destroy events happen first + + // default destroy event constructors are encoded as functions on the resource (with an unrepresentable name) + // so that we can leverage existing atree encoding and decoding. However, we need to make sure functions are initialized + // if the composite was recently loaded from storage + if v.Functions == nil { + v.Functions = interpreter.SharedState.typeCodes.CompositeCodes[v.TypeID()].CompositeFunctions + } + for _, constructor := range v.defaultDestroyEventConstructors() { + + // pass the container value to the creation of the default event as an implicit argument, so that + // its fields are accessible in the body of the event constructor + eventConstructorInvocation := NewInvocation( + interpreter, + nil, + nil, + nil, + []Value{v}, + []sema.Type{}, + nil, + locationRange, + ) + + event := constructor.invoke(eventConstructorInvocation).(*CompositeValue) + eventType := interpreter.MustSemaTypeOfValue(event).(*sema.CompositeType) + + // emit the event once destruction is complete + defer interpreter.emitEvent(event, eventType, locationRange) + } + storageID := v.StorageID() interpreter.withResourceDestruction( storageID, locationRange, func() { - // if this type has attachments, destroy all of them before invoking the destructor - v.forEachAttachment(interpreter, locationRange, func(attachment *CompositeValue) { - // an attachment's destructor may make reference to `base`, so we must set the base value - // for the attachment before invoking its destructor. For other functions, this happens - // automatically when the attachment is accessed with the access expression `v[A]`, which - // is a necessary pre-requisite for calling any members of the attachment. However, in - // the case of a destructor, this is called implicitly, and thus must have its `base` - // set manually - attachment.setBaseValue(interpreter, v) - attachment.Destroy(interpreter, locationRange) - }) - interpreter = v.getInterpreter(interpreter) - // if composite was deserialized, dynamically link in the destructor - if v.Destructor == nil { - v.Destructor = interpreter.SharedState.typeCodes.CompositeCodes[v.TypeID()].DestructorFunction - } - - destructor := v.Destructor - - if destructor != nil { - var base *EphemeralReferenceValue - var self MemberAccessibleValue = v - if v.Kind == common.CompositeKindAttachment { - base, self = attachmentBaseAndSelfValues(interpreter, v) + // destroy every nested resource in this composite; note that this iteration includes attachments + v.ForEachField(interpreter, func(_ string, fieldValue Value) bool { + if compositeFieldValue, ok := fieldValue.(*CompositeValue); ok && compositeFieldValue.Kind == common.CompositeKindAttachment { + compositeFieldValue.setBaseValue(interpreter, v) } - invocation := NewInvocation( - interpreter, - &self, - base, - nil, - nil, - nil, - nil, - locationRange, - ) - - destructor.invoke(invocation) - } + maybeDestroy(interpreter, locationRange, fieldValue) + return true + }, locationRange) }, ) v.isDestroyed = true - interpreter.invalidateReferencedResources(v, true) + interpreter.invalidateReferencedResources(v, locationRange) - if config.InvalidatedResourceValidationEnabled { - v.dictionary = nil - } + v.dictionary = nil } func (v *CompositeValue) getBuiltinMember(interpreter *Interpreter, locationRange LocationRange, name string) Value { @@ -16612,10 +17061,6 @@ func (v *CompositeValue) getBuiltinMember(interpreter *Interpreter, locationRang func (v *CompositeValue) GetMember(interpreter *Interpreter, locationRange LocationRange, name string) Value { config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - if config.TracingEnabled { startTime := time.Now() @@ -16635,80 +17080,57 @@ func (v *CompositeValue) GetMember(interpreter *Interpreter, locationRange Locat } if builtin := v.getBuiltinMember(interpreter, locationRange, name); builtin != nil { - return builtin + return compositeMember(interpreter, v, builtin) } - storable, err := v.dictionary.Get( - StringAtreeValueComparator, - StringAtreeValueHashInput, - StringAtreeValue(name), - ) - if err != nil { - var keyNotFoundError *atree.KeyNotFoundError - if !goerrors.As(err, &keyNotFoundError) { - panic(errors.NewExternalError(err)) + // Give computed fields precedence over stored fields for built-in types + if v.Location == nil { + if computedField := v.GetComputedField(interpreter, locationRange, name); computedField != nil { + return computedField } } - if storable != nil { - return StoredValue(interpreter, storable, config.Storage) + + if field := v.GetField(interpreter, locationRange, name); field != nil { + return compositeMember(interpreter, v, field) } if v.NestedVariables != nil { variable, ok := v.NestedVariables[name] if ok { - return variable.GetValue() + return variable.GetValue(interpreter) } } interpreter = v.getInterpreter(interpreter) - if v.ComputedFields != nil { - if computedField, ok := v.ComputedFields[name]; ok { - return computedField(interpreter, locationRange) - } - } - - // If the composite value was deserialized, dynamically link in the functions - // and get injected fields - - v.InitializeFunctions(interpreter) + // Dynamically link in the computed fields, injected fields, and functions - injectedCompositeFieldsHandler := config.InjectedCompositeFieldsHandler - if v.InjectedFields == nil && injectedCompositeFieldsHandler != nil { - v.InjectedFields = injectedCompositeFieldsHandler( - interpreter, - v.Location, - v.QualifiedIdentifier, - v.Kind, - ) + if computedField := v.GetComputedField(interpreter, locationRange, name); computedField != nil { + return computedField } - if v.InjectedFields != nil { - value, ok := v.InjectedFields[name] - if ok { - return value - } + if injectedField := v.GetInjectedField(interpreter, name); injectedField != nil { + return injectedField } - function, ok := v.Functions[name] - if ok { - var base *EphemeralReferenceValue - var self MemberAccessibleValue = v - if v.Kind == common.CompositeKindAttachment { - base, self = attachmentBaseAndSelfValues(interpreter, v) - } - return NewBoundFunctionValue(interpreter, function, &self, base, nil) + if function := v.GetFunction(interpreter, locationRange, name); function != nil { + return function } return nil } -func (v *CompositeValue) checkInvalidatedResourceUse(interpreter *Interpreter, locationRange LocationRange) { - if v.isDestroyed || v.IsStaleResource(interpreter) { - panic(InvalidatedResourceError{ - LocationRange: locationRange, - }) +func compositeMember(interpreter *Interpreter, compositeValue Value, memberValue Value) Value { + hostFunc, isHostFunc := memberValue.(*HostFunctionValue) + if isHostFunc { + return NewBoundFunctionValue(interpreter, hostFunc, &compositeValue, nil, nil) } + + return memberValue +} + +func (v *CompositeValue) isInvalidatedResource(_ *Interpreter) bool { + return v.isDestroyed || (v.dictionary == nil && v.Kind == common.CompositeKindResource) } func (v *CompositeValue) IsStaleResource(inter *Interpreter) bool { @@ -16729,12 +17151,80 @@ func (v *CompositeValue) getInterpreter(interpreter *Interpreter) *Interpreter { return interpreter.EnsureLoaded(v.Location) } -func (v *CompositeValue) InitializeFunctions(interpreter *Interpreter) { - if v.Functions != nil { - return +func (v *CompositeValue) GetComputedFields(interpreter *Interpreter) map[string]ComputedField { + if v.computedFields == nil { + v.computedFields = interpreter.GetCompositeValueComputedFields(v) } + return v.computedFields +} - v.Functions = interpreter.SharedState.typeCodes.CompositeCodes[v.TypeID()].CompositeFunctions +func (v *CompositeValue) GetComputedField(interpreter *Interpreter, locationRange LocationRange, name string) Value { + computedFields := v.GetComputedFields(interpreter) + + computedField, ok := computedFields[name] + if !ok { + return nil + } + + return computedField(interpreter, locationRange, v) +} + +func (v *CompositeValue) GetInjectedField(interpreter *Interpreter, name string) Value { + if v.injectedFields == nil { + v.injectedFields = interpreter.GetCompositeValueInjectedFields(v) + } + + value, ok := v.injectedFields[name] + if !ok { + return nil + } + + return value +} + +func (v *CompositeValue) GetFunction(interpreter *Interpreter, locationRange LocationRange, name string) FunctionValue { + if v.Functions == nil { + v.Functions = interpreter.GetCompositeValueFunctions(v, locationRange) + } + // if no functions were produced, the `Get` below will be nil + if v.Functions == nil { + return nil + } + + function, present := v.Functions.Get(name) + if !present { + return nil + } + + var base *EphemeralReferenceValue + var self Value = v + if v.Kind == common.CompositeKindAttachment { + functionAccess := interpreter.getAccessOfMember(v, name) + + // with respect to entitlements, any access inside an attachment that is not an entitlement access + // does not provide any entitlements to base and self + // E.g. consider: + // + // access(E) fun foo() {} + // access(self) fun bar() { + // self.foo() + // } + // access(all) fun baz() { + // self.bar() + // } + // + // clearly `bar` should be callable within `baz`, but we cannot allow `foo` + // to be callable within `bar`, or it will be possible to access `E` entitled + // methods on `base` + if functionAccess.IsPrimitiveAccess() { + functionAccess = sema.UnauthorizedAccess + } + base, self = attachmentBaseAndSelfValues(interpreter, functionAccess, v, locationRange) + } + + // If the function is already a bound function, then do not re-wrap. + // `NewBoundFunctionValue` already handles this. + return NewBoundFunctionValue(interpreter, function, &self, base, nil) } func (v *CompositeValue) OwnerValue(interpreter *Interpreter, locationRange LocationRange) OptionalValue { @@ -16746,7 +17236,7 @@ func (v *CompositeValue) OwnerValue(interpreter *Interpreter, locationRange Loca config := interpreter.SharedState.Config - ownerAccount := config.AccountHandler(AddressValue(address)) + ownerAccount := config.AccountHandler(interpreter, AddressValue(address)) // Owner must be of `Account` type. interpreter.ExpectType( @@ -16760,6 +17250,7 @@ func (v *CompositeValue) OwnerValue(interpreter *Interpreter, locationRange Loca UnauthorizedAccess, ownerAccount, sema.AccountType, + locationRange, ) return NewSomeValueNonCopying(interpreter, reference) @@ -16773,10 +17264,6 @@ func (v *CompositeValue) RemoveMember( config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - if config.TracingEnabled { startTime := time.Now() @@ -16832,7 +17319,7 @@ func (v *CompositeValue) RemoveMember( ) } -func (v *CompositeValue) SetMember( +func (v *CompositeValue) SetMemberWithoutTransfer( interpreter *Interpreter, locationRange LocationRange, name string, @@ -16840,9 +17327,7 @@ func (v *CompositeValue) SetMember( ) bool { config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } + interpreter.enforceNotResourceDestruction(v.StorageID(), locationRange) if config.TracingEnabled { startTime := time.Now() @@ -16862,19 +17347,6 @@ func (v *CompositeValue) SetMember( }() } - address := v.StorageAddress() - - value = value.Transfer( - interpreter, - locationRange, - address, - true, - nil, - map[atree.StorageID]struct{}{ - v.StorageID(): {}, - }, - ) - existingStorable, err := v.dictionary.Set( StringAtreeValueComparator, StringAtreeValueHashInput, @@ -16889,6 +17361,8 @@ func (v *CompositeValue) SetMember( if existingStorable != nil { existingValue := StoredValue(interpreter, existingStorable, config.Storage) + interpreter.checkResourceLoss(existingValue, locationRange) + existingValue.DeepRemove(interpreter) interpreter.RemoveReferencedSlab(existingStorable) @@ -16898,38 +17372,70 @@ func (v *CompositeValue) SetMember( return false } +func (v *CompositeValue) SetMember( + interpreter *Interpreter, + locationRange LocationRange, + name string, + value Value, +) bool { + address := v.StorageAddress() + + value = value.Transfer( + interpreter, + locationRange, + address, + true, + nil, + map[atree.StorageID]struct{}{ + v.StorageID(): {}, + }, + ) + + return v.SetMemberWithoutTransfer( + interpreter, + locationRange, + name, + value, + ) +} + func (v *CompositeValue) String() string { return v.RecursiveString(SeenReferences{}) } func (v *CompositeValue) RecursiveString(seenReferences SeenReferences) string { - return v.MeteredString(nil, seenReferences) + return v.MeteredString(nil, seenReferences, EmptyLocationRange) } var emptyCompositeStringLen = len(format.Composite("", nil)) -func (v *CompositeValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { +func (v *CompositeValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if v.Stringer != nil { - return v.Stringer(memoryGauge, v, seenReferences) + return v.Stringer(interpreter, v, seenReferences) } strLen := emptyCompositeStringLen var fields []CompositeField - _ = v.dictionary.Iterate(func(key atree.Value, value atree.Value) (resume bool, err error) { - field := NewCompositeField( - memoryGauge, - string(key.(StringAtreeValue)), - MustConvertStoredValue(memoryGauge, value), - ) - fields = append(fields, field) + v.ForEachField( + interpreter, + func(fieldName string, fieldValue Value) (resume bool) { + field := NewCompositeField( + interpreter, + fieldName, + fieldValue, + ) - strLen += len(field.Name) + fields = append(fields, field) - return true, nil - }) + strLen += len(field.Name) + + return true + }, + locationRange, + ) typeId := string(v.TypeID()) @@ -16942,12 +17448,18 @@ func (v *CompositeValue) MeteredString(memoryGauge common.MemoryGauge, seenRefer // strLen = strLen + len(typeId) + len(fields)*4 - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(strLen)) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(strLen)) - return formatComposite(memoryGauge, typeId, fields, seenReferences) + return formatComposite(interpreter, typeId, fields, seenReferences, locationRange) } -func formatComposite(memoryGauge common.MemoryGauge, typeId string, fields []CompositeField, seenReferences SeenReferences) string { +func formatComposite( + interpreter *Interpreter, + typeId string, + fields []CompositeField, + seenReferences SeenReferences, + locationRange LocationRange, +) string { preparedFields := make( []struct { Name string @@ -16965,7 +17477,7 @@ func formatComposite(memoryGauge common.MemoryGauge, typeId string, fields []Com Value string }{ Name: field.Name, - Value: field.Value.MeteredString(memoryGauge, seenReferences), + Value: field.Value.MeteredString(interpreter, seenReferences, locationRange), }, ) } @@ -16974,12 +17486,6 @@ func formatComposite(memoryGauge common.MemoryGauge, typeId string, fields []Com } func (v *CompositeValue) GetField(interpreter *Interpreter, locationRange LocationRange, name string) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - storable, err := v.dictionary.Get( StringAtreeValueComparator, StringAtreeValueHashInput, @@ -17100,10 +17606,29 @@ func (v *CompositeValue) ConformsToStaticType( }() } - staticType := v.StaticType(interpreter).(*CompositeStaticType) - + staticType := v.StaticType(interpreter) semaType := interpreter.MustConvertStaticToSemaType(staticType) + switch staticType.(type) { + case *CompositeStaticType: + return v.CompositeStaticTypeConformsToStaticType(interpreter, locationRange, results, semaType) + + // CompositeValue is also used for storing types which aren't CompositeStaticType. + // E.g. InclusiveRange. + case InclusiveRangeStaticType: + return v.InclusiveRangeStaticTypeConformsToStaticType(interpreter, locationRange, results, semaType) + + default: + return false + } +} + +func (v *CompositeValue) CompositeStaticTypeConformsToStaticType( + interpreter *Interpreter, + locationRange LocationRange, + results TypeConformanceResults, + semaType sema.Type, +) bool { compositeType, ok := semaType.(*sema.CompositeType) if !ok || v.Kind != compositeType.Kind || @@ -17113,34 +17638,38 @@ func (v *CompositeValue) ConformsToStaticType( } if compositeType.Kind == common.CompositeKindAttachment { - base := v.getBaseValue().Value + base := v.getBaseValue(interpreter, UnauthorizedAccess, locationRange).Value if base == nil || !base.ConformsToStaticType(interpreter, locationRange, results) { return false } } - fieldsLen := int(v.dictionary.Count()) - if v.ComputedFields != nil { - fieldsLen += len(v.ComputedFields) + fieldsLen := v.FieldCount() + + computedFields := v.GetComputedFields(interpreter) + if computedFields != nil { + fieldsLen += len(computedFields) } - if fieldsLen != len(compositeType.Fields) { + // The composite might store additional fields + // which are not statically declared in the composite type. + if fieldsLen < len(compositeType.Fields) { return false } for _, fieldName := range compositeType.Fields { value := v.GetField(interpreter, locationRange, fieldName) if value == nil { - if v.ComputedFields == nil { + if computedFields == nil { return false } - fieldGetter, ok := v.ComputedFields[fieldName] + fieldGetter, ok := computedFields[fieldName] if !ok { return false } - value = fieldGetter(interpreter, locationRange) + value = fieldGetter(interpreter, locationRange, v) } member, ok := compositeType.Members.Get(fieldName) @@ -17166,6 +17695,46 @@ func (v *CompositeValue) ConformsToStaticType( return true } +func (v *CompositeValue) InclusiveRangeStaticTypeConformsToStaticType( + interpreter *Interpreter, + locationRange LocationRange, + results TypeConformanceResults, + semaType sema.Type, +) bool { + inclusiveRangeType, ok := semaType.(*sema.InclusiveRangeType) + if !ok { + return false + } + + expectedMemberStaticType := ConvertSemaToStaticType(interpreter, inclusiveRangeType.MemberType) + for _, fieldName := range sema.InclusiveRangeTypeFieldNames { + value := v.GetField(interpreter, locationRange, fieldName) + + fieldStaticType := value.StaticType(interpreter) + + // InclusiveRange is non-covariant. + // For e.g. we disallow assigning InclusiveRange to an InclusiveRange. + // Hence we do an exact equality check instead of a sub-type check. + if !fieldStaticType.Equal(expectedMemberStaticType) { + return false + } + + if !value.ConformsToStaticType( + interpreter, + locationRange, + results, + ) { + return false + } + } + + return true +} + +func (v *CompositeValue) FieldCount() int { + return int(v.dictionary.Count()) +} + func (v *CompositeValue) IsStorable() bool { // Only structures, resources, enums, and contracts can be stored. @@ -17223,14 +17792,7 @@ func (v *CompositeValue) Transfer( config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - - interpreter.ReportComputation( - common.ComputationKindTransferCompositeValue, - 1, - ) + interpreter.ReportComputation(common.ComputationKindTransferCompositeValue, 1) if config.TracingEnabled { startTime := time.Now() @@ -17349,8 +17911,6 @@ func (v *CompositeValue) Transfer( } } - var res *CompositeValue - if isResourceKinded { // Update the resource in-place, // and also update all values that are referencing the same value @@ -17361,41 +17921,33 @@ func (v *CompositeValue) Transfer( // This allows raising an error when the resource is attempted // to be transferred/moved again (see beginning of this function) - interpreter.invalidateReferencedResources(v, false) + interpreter.invalidateReferencedResources(v, locationRange) - if config.InvalidatedResourceValidationEnabled { - v.dictionary = nil - } else { - v.dictionary = dictionary - res = v - } + v.dictionary = nil } - if res == nil { - info := NewCompositeTypeInfo( - interpreter, - v.Location, - v.QualifiedIdentifier, - v.Kind, - ) + info := NewCompositeTypeInfo( + interpreter, + v.Location, + v.QualifiedIdentifier, + v.Kind, + ) - res = newCompositeValueFromAtreeMap( - interpreter, - info, - dictionary, - ) + res := newCompositeValueFromAtreeMap( + interpreter, + info, + dictionary, + ) - res.InjectedFields = v.InjectedFields - res.ComputedFields = v.ComputedFields - res.NestedVariables = v.NestedVariables - res.Functions = v.Functions - res.Destructor = v.Destructor - res.Stringer = v.Stringer - res.isDestroyed = v.isDestroyed - res.typeID = v.typeID - res.staticType = v.staticType - res.base = v.base - } + res.injectedFields = v.injectedFields + res.computedFields = v.computedFields + res.NestedVariables = v.NestedVariables + res.Functions = v.Functions + res.Stringer = v.Stringer + res.isDestroyed = v.isDestroyed + res.typeID = v.typeID + res.staticType = v.staticType + res.base = v.base onResourceOwnerChange := config.OnResourceOwnerChange @@ -17468,11 +18020,10 @@ func (v *CompositeValue) Clone(interpreter *Interpreter) Value { Location: v.Location, QualifiedIdentifier: v.QualifiedIdentifier, Kind: v.Kind, - InjectedFields: v.InjectedFields, - ComputedFields: v.ComputedFields, + injectedFields: v.injectedFields, + computedFields: v.computedFields, NestedVariables: v.NestedVariables, Functions: v.Functions, - Destructor: v.Destructor, Stringer: v.Stringer, isDestroyed: v.isDestroyed, typeID: v.typeID, @@ -17524,33 +18075,62 @@ func (v *CompositeValue) GetOwner() common.Address { return common.Address(v.StorageAddress()) } +// ForEachFieldName iterates over all field names of the composite value. +// It does NOT iterate over computed fields and functions! +func (v *CompositeValue) ForEachFieldName( + f func(fieldName string) (resume bool), +) { + v.forEachFieldName(v.dictionary.IterateKeys, f) +} + +func (v *CompositeValue) forEachFieldName( + atreeIterate func(fn atree.MapElementIterationFunc) error, + f func(fieldName string) (resume bool), +) { + err := atreeIterate(func(key atree.Value) (resume bool, err error) { + resume = f( + string(key.(StringAtreeValue)), + ) + return + }) + if err != nil { + panic(errors.NewExternalError(err)) + } +} + // ForEachField iterates over all field-name field-value pairs of the composite value. // It does NOT iterate over computed fields and functions! func (v *CompositeValue) ForEachField( - gauge common.MemoryGauge, + interpreter *Interpreter, f func(fieldName string, fieldValue Value) (resume bool), + locationRange LocationRange, ) { - v.forEachField(gauge, v.dictionary.Iterate, f) + v.forEachField(interpreter, v.dictionary.Iterate, f, locationRange) } // ForEachLoadedField iterates over all LOADED field-name field-value pairs of the composite value. // It does NOT iterate over computed fields and functions! func (v *CompositeValue) ForEachLoadedField( - gauge common.MemoryGauge, + interpreter *Interpreter, f func(fieldName string, fieldValue Value) (resume bool), + locationRange LocationRange, ) { - v.forEachField(gauge, v.dictionary.IterateLoadedValues, f) + v.forEachField(interpreter, v.dictionary.IterateLoadedValues, f, locationRange) } func (v *CompositeValue) forEachField( - gauge common.MemoryGauge, + interpreter *Interpreter, atreeIterate func(fn atree.MapEntryIterationFunc) error, f func(fieldName string, fieldValue Value) (resume bool), + locationRange LocationRange, ) { - err := atreeIterate(func(key atree.Value, value atree.Value) (resume bool, err error) { + err := atreeIterate(func(key atree.Value, atreeValue atree.Value) (resume bool, err error) { + value := MustConvertStoredValue(interpreter, atreeValue) + interpreter.checkInvalidatedResourceOrResourceReference(value, locationRange) + resume = f( string(key.(StringAtreeValue)), - MustConvertStoredValue(gauge, value), + value, ) return }) @@ -17569,7 +18149,7 @@ func (v *CompositeValue) StorageAddress() atree.Address { func (v *CompositeValue) RemoveField( interpreter *Interpreter, - _ LocationRange, + locationRange LocationRange, name string, ) { @@ -17595,11 +18175,12 @@ func (v *CompositeValue) RemoveField( // Value existingValue := StoredValue(interpreter, existingValueStorable, interpreter.Storage()) + interpreter.checkResourceLoss(existingValue, locationRange) existingValue.DeepRemove(interpreter) interpreter.RemoveReferencedSlab(existingValueStorable) } -func (v *CompositeValue) SetNestedVariables(variables map[string]*Variable) { +func (v *CompositeValue) SetNestedVariables(variables map[string]Variable) { v.NestedVariables = variables } @@ -17608,7 +18189,7 @@ func NewEnumCaseValue( locationRange LocationRange, enumType *sema.CompositeType, rawValue NumberValue, - functions map[string]FunctionValue, + functions *FunctionOrderedMap, ) *CompositeValue { fields := []CompositeField{ @@ -17633,11 +18214,11 @@ func NewEnumCaseValue( return v } -func (v *CompositeValue) getBaseValue() *EphemeralReferenceValue { - return v.base -} - -func (v *CompositeValue) setBaseValue(interpreter *Interpreter, base *CompositeValue) { +func (v *CompositeValue) getBaseValue( + interpreter *Interpreter, + functionAuthorization Authorization, + locationRange LocationRange, +) *EphemeralReferenceValue { attachmentType, ok := interpreter.MustSemaTypeOfValue(v).(*sema.CompositeType) if !ok { panic(errors.NewUnreachableError()) @@ -17651,27 +18232,30 @@ func (v *CompositeValue) setBaseValue(interpreter *Interpreter, base *CompositeV baseType = ty } - authorization := attachmentBaseAuthorization(interpreter, v) - v.base = NewEphemeralReferenceValue(interpreter, authorization, base, baseType) - interpreter.trackReferencedResourceKindedValue(base.StorageID(), base) + return NewEphemeralReferenceValue(interpreter, functionAuthorization, v.base, baseType, locationRange) } -func attachmentMemberName(ty sema.Type) string { - return attachmentNamePrefix + string(ty.ID()) +func (v *CompositeValue) setBaseValue(interpreter *Interpreter, base *CompositeValue) { + v.base = base +} + +func AttachmentMemberName(typeID string) string { + return unrepresentableNamePrefix + typeID } func (v *CompositeValue) getAttachmentValue(interpreter *Interpreter, locationRange LocationRange, ty sema.Type) *CompositeValue { - if attachment := v.GetMember(interpreter, locationRange, attachmentMemberName(ty)); attachment != nil { + attachment := v.GetMember( + interpreter, + locationRange, + AttachmentMemberName(string(ty.ID())), + ) + if attachment != nil { return attachment.(*CompositeValue) } return nil } func (v *CompositeValue) GetAttachments(interpreter *Interpreter, locationRange LocationRange) []*CompositeValue { - if interpreter.SharedState.Config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - var attachments []*CompositeValue v.forEachAttachment(interpreter, locationRange, func(attachment *CompositeValue) { attachments = append(attachments, attachment) @@ -17680,8 +18264,9 @@ func (v *CompositeValue) GetAttachments(interpreter *Interpreter, locationRange } func (v *CompositeValue) forEachAttachmentFunction(interpreter *Interpreter, locationRange LocationRange) Value { - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.CompositeForEachAttachmentFunctionType(interpreter.MustSemaTypeOfValue(v).(*sema.CompositeType).GetCompositeKind()), func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -17703,6 +18288,7 @@ func (v *CompositeValue) forEachAttachmentFunction(interpreter *Interpreter, loc attachmentReferenceAuth, attachment, attachmentType, + locationRange, ) invocation := NewInvocation( @@ -17724,72 +18310,60 @@ func (v *CompositeValue) forEachAttachmentFunction(interpreter *Interpreter, loc ) } -func attachmentReferenceAuthorization( - interpreter *Interpreter, - attachmentType *sema.CompositeType, - baseAccess sema.Access, -) (Authorization, error) { - // Map the entitlements of the accessing reference through the attachment's entitlement map to get the authorization of this reference - var attachmentReferenceAuth Authorization = UnauthorizedAccess - if attachmentType.AttachmentEntitlementAccess == nil { - return attachmentReferenceAuth, nil - } - attachmentReferenceAccess, err := attachmentType.AttachmentEntitlementAccess.Image(baseAccess, func() ast.Range { return ast.EmptyRange }) - if err != nil { - return nil, err - } - return ConvertSemaAccessToStaticAuthorization(interpreter, attachmentReferenceAccess), nil -} - -func attachmentBaseAuthorization( - interpreter *Interpreter, - attachment *CompositeValue, -) Authorization { - var auth Authorization = UnauthorizedAccess - attachmentType := interpreter.MustSemaTypeOfValue(attachment).(*sema.CompositeType) - if attachmentType.RequiredEntitlements.Len() > 0 { - baseAccess := sema.EntitlementSetAccess{ - SetKind: sema.Conjunction, - Entitlements: attachmentType.RequiredEntitlements, - } - auth = ConvertSemaAccessToStaticAuthorization(interpreter, baseAccess) - } - return auth -} - func attachmentBaseAndSelfValues( interpreter *Interpreter, + fnAccess sema.Access, v *CompositeValue, + locationRange LocationRange, ) (base *EphemeralReferenceValue, self *EphemeralReferenceValue) { - base = v.getBaseValue() - - attachmentType := interpreter.MustSemaTypeOfValue(v).(*sema.CompositeType) - - var attachmentReferenceAuth Authorization = UnauthorizedAccess - if attachmentType.AttachmentEntitlementAccess != nil { - attachmentReferenceAuth = ConvertSemaAccessToStaticAuthorization(interpreter, attachmentType.AttachmentEntitlementAccess.Codomain()) - } + attachmentReferenceAuth := ConvertSemaAccessToStaticAuthorization(interpreter, fnAccess) + base = v.getBaseValue(interpreter, attachmentReferenceAuth, locationRange) // in attachment functions, self is a reference value - self = NewEphemeralReferenceValue(interpreter, attachmentReferenceAuth, v, interpreter.MustSemaTypeOfValue(v)) - interpreter.trackReferencedResourceKindedValue(v.StorageID(), v) + self = NewEphemeralReferenceValue(interpreter, attachmentReferenceAuth, v, interpreter.MustSemaTypeOfValue(v), locationRange) return } -func (v *CompositeValue) forEachAttachment(interpreter *Interpreter, _ LocationRange, f func(*CompositeValue)) { - iterator, err := v.dictionary.Iterator() +func (v *CompositeValue) forEachAttachment( + interpreter *Interpreter, + locationRange LocationRange, + f func(*CompositeValue), +) { + // The attachment iteration creates an implicit reference to the composite, and holds onto that referenced-value. + // But the reference could get invalidated during the iteration, making that referenced-value invalid. + // We create a reference here for the purposes of tracking it during iteration. + vType := interpreter.MustSemaTypeOfValue(v) + compositeReference := NewEphemeralReferenceValue(interpreter, UnauthorizedAccess, v, vType, locationRange) + interpreter.maybeTrackReferencedResourceKindedValue(compositeReference) + forEachAttachment(interpreter, compositeReference, locationRange, f) +} + +func forEachAttachment( + interpreter *Interpreter, + compositeReference *EphemeralReferenceValue, + locationRange LocationRange, + f func(*CompositeValue), +) { + composite, ok := compositeReference.Value.(*CompositeValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + iterator, err := composite.dictionary.Iterator() if err != nil { panic(errors.NewExternalError(err)) } - oldSharedState := interpreter.SharedState.inAttachmentIteration(v) - interpreter.SharedState.setAttachmentIteration(v, true) + oldSharedState := interpreter.SharedState.inAttachmentIteration(composite) + interpreter.SharedState.setAttachmentIteration(composite, true) defer func() { - interpreter.SharedState.setAttachmentIteration(v, oldSharedState) + interpreter.SharedState.setAttachmentIteration(composite, oldSharedState) }() for { + // Check that the implicit composite reference was not invalidated during iteration + interpreter.checkInvalidatedResourceOrResourceReference(compositeReference, locationRange) key, value, err := iterator.Next() if err != nil { panic(errors.NewExternalError(err)) @@ -17797,7 +18371,7 @@ func (v *CompositeValue) forEachAttachment(interpreter *Interpreter, _ LocationR if key == nil { break } - if strings.HasPrefix(string(key.(StringAtreeValue)), attachmentNamePrefix) { + if strings.HasPrefix(string(key.(StringAtreeValue)), unrepresentableNamePrefix) { attachment, ok := MustConvertStoredValue(interpreter, value).(*CompositeValue) if !ok { panic(errors.NewExternalError(err)) @@ -17806,7 +18380,7 @@ func (v *CompositeValue) forEachAttachment(interpreter *Interpreter, _ LocationR // attachments is added that takes a `fun (&Attachment): Void` callback, the `f` provided here // should convert the provided attachment value into a reference before passing it to the user // callback - attachment.setBaseValue(interpreter, v) + attachment.setBaseValue(interpreter, composite) f(attachment) } } @@ -17823,16 +18397,17 @@ func (v *CompositeValue) getTypeKey( return Nil } attachmentType := keyType.(*sema.CompositeType) - // dynamically set the attachment's base to this composite, but with authorization based on the requested access on that attachment + // dynamically set the attachment's base to this composite attachment.setBaseValue(interpreter, v) - // Map the entitlements of the accessing reference through the attachment's entitlement map to get the authorization of this reference - attachmentReferenceAuth, err := attachmentReferenceAuthorization(interpreter, attachmentType, baseAccess) - if err != nil { - return Nil - } - attachmentRef := NewEphemeralReferenceValue(interpreter, attachmentReferenceAuth, attachment, attachmentType) - interpreter.trackReferencedResourceKindedValue(attachment.StorageID(), attachment) + // The attachment reference has the same entitlements as the base access + attachmentRef := NewEphemeralReferenceValue( + interpreter, + ConvertSemaAccessToStaticAuthorization(interpreter, baseAccess), + attachment, + attachmentType, + locationRange, + ) return NewSomeValueNonCopying(interpreter, attachmentRef) } @@ -17842,10 +18417,10 @@ func (v *CompositeValue) GetTypeKey( locationRange LocationRange, ty sema.Type, ) Value { - var access sema.Access = sema.UnauthorizedAccess + access := sema.UnauthorizedAccess attachmentTyp, isAttachmentType := ty.(*sema.CompositeType) - if isAttachmentType && attachmentTyp.AttachmentEntitlementAccess != nil { - access = attachmentTyp.AttachmentEntitlementAccess.Domain() + if isAttachmentType { + access = attachmentTyp.SupportedEntitlements().Access() } return v.getTypeKey(interpreter, locationRange, ty, access) } @@ -17856,7 +18431,8 @@ func (v *CompositeValue) SetTypeKey( attachmentType sema.Type, attachment Value, ) { - if v.SetMember(interpreter, locationRange, attachmentMemberName(attachmentType), attachment) { + memberName := AttachmentMemberName(string(attachmentType.ID())) + if v.SetMember(interpreter, locationRange, memberName, attachment) { panic(DuplicateAttachmentError{ AttachmentType: attachmentType, Value: v, @@ -17870,7 +18446,108 @@ func (v *CompositeValue) RemoveTypeKey( locationRange LocationRange, attachmentType sema.Type, ) Value { - return v.RemoveMember(interpreter, locationRange, attachmentMemberName(attachmentType)) + memberName := AttachmentMemberName(string(attachmentType.ID())) + return v.RemoveMember(interpreter, locationRange, memberName) +} + +func (v *CompositeValue) Iterator(interpreter *Interpreter, locationRange LocationRange) ValueIterator { + staticType := v.StaticType(interpreter) + + switch typ := staticType.(type) { + case InclusiveRangeStaticType: + return NewInclusiveRangeIterator(interpreter, locationRange, v, typ) + + default: + // Must be caught in the checker. + panic(errors.NewUnreachableError()) + } +} + +func (v *CompositeValue) ForEach( + interpreter *Interpreter, + _ sema.Type, + function func(value Value) (resume bool), + transferElements bool, + locationRange LocationRange, +) { + iterator := v.Iterator(interpreter, locationRange) + for { + value := iterator.Next(interpreter, locationRange) + if value == nil { + return + } + + if transferElements { + // Each element must be transferred before passing onto the function. + value = value.Transfer( + interpreter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ) + } + + if !function(value) { + return + } + } +} + +type InclusiveRangeIterator struct { + rangeValue *CompositeValue + next IntegerValue + + // Cached values + stepNegative bool + step IntegerValue + end IntegerValue +} + +var _ ValueIterator = &InclusiveRangeIterator{} + +func NewInclusiveRangeIterator( + interpreter *Interpreter, + locationRange LocationRange, + v *CompositeValue, + typ InclusiveRangeStaticType, +) *InclusiveRangeIterator { + startValue := getFieldAsIntegerValue(interpreter, v, locationRange, sema.InclusiveRangeTypeStartFieldName) + + zeroValue := GetSmallIntegerValue(0, typ.ElementType) + endValue := getFieldAsIntegerValue(interpreter, v, locationRange, sema.InclusiveRangeTypeEndFieldName) + + stepValue := getFieldAsIntegerValue(interpreter, v, locationRange, sema.InclusiveRangeTypeStepFieldName) + stepNegative := stepValue.Less(interpreter, zeroValue, locationRange) + + return &InclusiveRangeIterator{ + rangeValue: v, + next: startValue, + stepNegative: bool(stepNegative), + step: stepValue, + end: endValue, + } +} + +func (i *InclusiveRangeIterator) Next(interpreter *Interpreter, locationRange LocationRange) Value { + valueToReturn := i.next + + // Ensure that valueToReturn is within the bounds. + if i.stepNegative && bool(valueToReturn.Less(interpreter, i.end, locationRange)) { + return nil + } else if !i.stepNegative && bool(valueToReturn.Greater(interpreter, i.end, locationRange)) { + return nil + } + + // Update the next value. + nextValueToReturn, ok := valueToReturn.Plus(interpreter, i.step, locationRange).(IntegerValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + i.next = nextValueToReturn + return valueToReturn } // DictionaryValue @@ -17955,9 +18632,6 @@ func NewDictionaryValueWithAddress( // values are added to the dictionary after creation, not here v = newDictionaryValueFromConstructor(interpreter, dictionaryType, 0, constructor) - // NOTE: lazily initialized when needed for performance reasons - var lazyIsResourceTyped *bool - for i := 0; i < keysAndValuesCount; i += 2 { key := keysAndValues[i] value := keysAndValues[i+1] @@ -17966,12 +18640,7 @@ func NewDictionaryValueWithAddress( // and the dictionary is resource-typed, // then we need to prevent a resource loss if _, ok := existingValue.(*SomeValue); ok { - // Lazily determine if the dictionary is resource-typed, once - if lazyIsResourceTyped == nil { - isResourceTyped := v.SemaType(interpreter).IsResourceType() - lazyIsResourceTyped = &isResourceTyped - } - if *lazyIsResourceTyped { + if v.IsResourceKinded(interpreter) { panic(DuplicateKeyInResourceDictionaryError{ LocationRange: locationRange, }) @@ -18101,38 +18770,79 @@ var _ ReferenceTrackedResourceKindedValue = &DictionaryValue{} func (*DictionaryValue) isValue() {} -func (v *DictionaryValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *DictionaryValue) Accept(interpreter *Interpreter, visitor Visitor, locationRange LocationRange) { descend := visitor.VisitDictionaryValue(interpreter, v) if !descend { return } - v.Walk(interpreter, func(value Value) { - value.Accept(interpreter, visitor) - }) + v.Walk( + interpreter, func(value Value) { + value.Accept(interpreter, visitor, locationRange) + }, + locationRange, + ) +} + +func (v *DictionaryValue) IterateKeys( + interpreter *Interpreter, + f func(key Value) (resume bool), +) { + v.iterateKeys(interpreter, v.dictionary.IterateKeys, f) } -func (v *DictionaryValue) Iterate(interpreter *Interpreter, f func(key, value Value) (resume bool)) { - v.iterate(interpreter, v.dictionary.Iterate, f) +func (v *DictionaryValue) iterateKeys( + interpreter *Interpreter, + atreeIterate func(fn atree.MapElementIterationFunc) error, + f func(key Value) (resume bool), +) { + iterate := func() { + err := atreeIterate(func(key atree.Value) (resume bool, err error) { + // atree.OrderedMap iteration provides low-level atree.Value, + // convert to high-level interpreter.Value + + resume = f( + MustConvertStoredValue(interpreter, key), + ) + + return resume, nil + }) + if err != nil { + panic(errors.NewExternalError(err)) + } + } + + interpreter.withMutationPrevention(v.StorageID(), iterate) } -func (v *DictionaryValue) IterateLoaded(interpreter *Interpreter, f func(key, value Value) (resume bool)) { - v.iterate(interpreter, v.dictionary.IterateLoadedValues, f) +func (v *DictionaryValue) Iterate(interpreter *Interpreter, f func(key, value Value) (resume bool), locationRange LocationRange) { + v.iterate(interpreter, v.dictionary.Iterate, f, locationRange) +} + +func (v *DictionaryValue) IterateLoaded(interpreter *Interpreter, f func(key, value Value) (resume bool), locationRange LocationRange) { + v.iterate(interpreter, v.dictionary.IterateLoadedValues, f, locationRange) } func (v *DictionaryValue) iterate( interpreter *Interpreter, atreeIterate func(fn atree.MapEntryIterationFunc) error, f func(key Value, value Value) (resume bool), + locationRange LocationRange, ) { iterate := func() { err := atreeIterate(func(key, value atree.Value) (resume bool, err error) { // atree.OrderedMap iteration provides low-level atree.Value, // convert to high-level interpreter.Value + keyValue := MustConvertStoredValue(interpreter, key) + valueValue := MustConvertStoredValue(interpreter, value) + + interpreter.checkInvalidatedResourceOrResourceReference(keyValue, locationRange) + interpreter.checkInvalidatedResourceOrResourceReference(valueValue, locationRange) + resume = f( - MustConvertStoredValue(interpreter, key), - MustConvertStoredValue(interpreter, value), + keyValue, + valueValue, ) return resume, nil @@ -18141,28 +18851,42 @@ func (v *DictionaryValue) iterate( panic(errors.NewExternalError(err)) } } - if v.IsResourceKinded(interpreter) { - interpreter.withMutationPrevention(v.StorageID(), iterate) - } else { - iterate() - } + + interpreter.withMutationPrevention(v.StorageID(), iterate) } type DictionaryIterator struct { mapIterator *atree.MapIterator } -func (i DictionaryIterator) NextKey(gauge common.MemoryGauge) Value { +func (i DictionaryIterator) NextKeyUnconverted() atree.Value { atreeValue, err := i.mapIterator.NextKey() if err != nil { panic(errors.NewExternalError(err)) } + return atreeValue +} + +func (i DictionaryIterator) NextKey(gauge common.MemoryGauge) Value { + atreeValue := i.NextKeyUnconverted() if atreeValue == nil { return nil } return MustConvertStoredValue(gauge, atreeValue) } +func (i DictionaryIterator) Next(gauge common.MemoryGauge) (Value, Value) { + atreeKeyValue, atreeValue, err := i.mapIterator.Next() + if err != nil { + panic(errors.NewExternalError(err)) + } + if atreeKeyValue == nil { + return nil, nil + } + return MustConvertStoredValue(gauge, atreeKeyValue), + MustConvertStoredValue(gauge, atreeValue) +} + func (v *DictionaryValue) Iterator() DictionaryIterator { mapIterator, err := v.dictionary.Iterator() if err != nil { @@ -18174,12 +18898,12 @@ func (v *DictionaryValue) Iterator() DictionaryIterator { } } -func (v *DictionaryValue) Walk(interpreter *Interpreter, walkChild func(Value)) { +func (v *DictionaryValue) Walk(interpreter *Interpreter, walkChild func(Value), locationRange LocationRange) { v.Iterate(interpreter, func(key, value Value) (resume bool) { walkChild(key) walkChild(value) return true - }) + }, locationRange) } func (v *DictionaryValue) StaticType(_ *Interpreter) StaticType { @@ -18187,10 +18911,10 @@ func (v *DictionaryValue) StaticType(_ *Interpreter) StaticType { return v.Type } -func (v *DictionaryValue) IsImportable(inter *Interpreter) bool { +func (v *DictionaryValue) IsImportable(inter *Interpreter, locationRange LocationRange) bool { importable := true v.Iterate(inter, func(key, value Value) (resume bool) { - if !key.IsImportable(inter) || !value.IsImportable(inter) { + if !key.IsImportable(inter, locationRange) || !value.IsImportable(inter, locationRange) { importable = false // stop iteration return false @@ -18198,7 +18922,7 @@ func (v *DictionaryValue) IsImportable(inter *Interpreter) bool { // continue iteration return true - }) + }, locationRange) return importable } @@ -18207,12 +18931,8 @@ func (v *DictionaryValue) IsDestroyed() bool { return v.isDestroyed } -func (v *DictionaryValue) checkInvalidatedResourceUse(interpreter *Interpreter, locationRange LocationRange) { - if v.isDestroyed || v.IsStaleResource(interpreter) { - panic(InvalidatedResourceError{ - LocationRange: locationRange, - }) - } +func (v *DictionaryValue) isInvalidatedResource(interpreter *Interpreter) bool { + return v.isDestroyed || (v.dictionary == nil && v.IsResourceKinded(interpreter)) } func (v *DictionaryValue) IsStaleResource(interpreter *Interpreter) bool { @@ -18225,10 +18945,6 @@ func (v *DictionaryValue) Destroy(interpreter *Interpreter, locationRange Locati config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - if config.TracingEnabled { startTime := time.Now() @@ -18256,17 +18972,15 @@ func (v *DictionaryValue) Destroy(interpreter *Interpreter, locationRange Locati maybeDestroy(interpreter, locationRange, value) return true - }) + }, locationRange) }, ) v.isDestroyed = true - interpreter.invalidateReferencedResources(v, true) + interpreter.invalidateReferencedResources(v, locationRange) - if config.InvalidatedResourceValidationEnabled { - v.dictionary = nil - } + v.dictionary = nil } func (v *DictionaryValue) ForEachKey( @@ -18308,11 +19022,7 @@ func (v *DictionaryValue) ForEachKey( } } - if v.IsResourceKinded(interpreter) { - interpreter.withMutationPrevention(v.StorageID(), iterate) - } else { - iterate() - } + interpreter.withMutationPrevention(v.StorageID(), iterate) } func (v *DictionaryValue) ContainsKey( @@ -18363,12 +19073,6 @@ func (v *DictionaryValue) Get( } func (v *DictionaryValue) GetKey(interpreter *Interpreter, locationRange LocationRange, keyValue Value) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - value, ok := v.Get(interpreter, locationRange, keyValue) if ok { return NewSomeValueNonCopying(interpreter, value) @@ -18385,12 +19089,6 @@ func (v *DictionaryValue) SetKey( ) { interpreter.validateMutation(v.StorageID(), locationRange) - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - interpreter.checkContainerMutation(v.Type.KeyType, keyValue, locationRange) interpreter.checkContainerMutation( &OptionalStaticType{ // intentionally unmetered @@ -18400,13 +19098,14 @@ func (v *DictionaryValue) SetKey( locationRange, ) + var existingValue Value switch value := value.(type) { case *SomeValue: innerValue := value.InnerValue(interpreter, locationRange) - _ = v.Insert(interpreter, locationRange, keyValue, innerValue) + existingValue = v.Insert(interpreter, locationRange, keyValue, innerValue) case NilValue: - _ = v.Remove(interpreter, locationRange, keyValue) + existingValue = v.Remove(interpreter, locationRange, keyValue) case placeholderValue: // NO-OP @@ -18414,6 +19113,10 @@ func (v *DictionaryValue) SetKey( default: panic(errors.NewUnreachableError()) } + + if existingValue != nil { + interpreter.checkResourceLoss(existingValue, locationRange) + } } func (v *DictionaryValue) String() string { @@ -18421,10 +19124,10 @@ func (v *DictionaryValue) String() string { } func (v *DictionaryValue) RecursiveString(seenReferences SeenReferences) string { - return v.MeteredString(nil, seenReferences) + return v.MeteredString(nil, seenReferences, EmptyLocationRange) } -func (v *DictionaryValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { +func (v *DictionaryValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { pairs := make([]struct { Key string @@ -18432,20 +19135,25 @@ func (v *DictionaryValue) MeteredString(memoryGauge common.MemoryGauge, seenRefe }, v.Count()) index := 0 - _ = v.dictionary.Iterate(func(key, value atree.Value) (resume bool, err error) { - // atree.OrderedMap iteration provides low-level atree.Value, - // convert to high-level interpreter.Value - pairs[index] = struct { - Key string - Value string - }{ - Key: MustConvertStoredValue(memoryGauge, key).MeteredString(memoryGauge, seenReferences), - Value: MustConvertStoredValue(memoryGauge, value).MeteredString(memoryGauge, seenReferences), - } - index++ - return true, nil - }) + v.Iterate( + interpreter, + func(key, value Value) (resume bool) { + // atree.OrderedMap iteration provides low-level atree.Value, + // convert to high-level interpreter.Value + + pairs[index] = struct { + Key string + Value string + }{ + Key: key.MeteredString(interpreter, seenReferences, locationRange), + Value: value.MeteredString(interpreter, seenReferences, locationRange), + } + index++ + return true + }, + locationRange, + ) // len = len(open-brace) + len(close-brace) + (n times colon+space) + ((n-1) times comma+space) // = 2 + 2n + 2n - 2 @@ -18457,7 +19165,7 @@ func (v *DictionaryValue) MeteredString(memoryGauge common.MemoryGauge, seenRefe // String of each key and value are metered separately. strLen := len(pairs)*4 + 2 - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(strLen)) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(strLen)) return format.Dictionary(pairs) } @@ -18469,10 +19177,6 @@ func (v *DictionaryValue) GetMember( ) Value { config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - if config.TracingEnabled { startTime := time.Now() @@ -18561,8 +19265,9 @@ func (v *DictionaryValue) GetMember( }) case "remove": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.DictionaryRemoveFunctionType( v.SemaType(interpreter), ), @@ -18578,8 +19283,9 @@ func (v *DictionaryValue) GetMember( ) case "insert": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.DictionaryInsertFunctionType( v.SemaType(interpreter), ), @@ -18597,8 +19303,9 @@ func (v *DictionaryValue) GetMember( ) case "containsKey": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.DictionaryContainsKeyFunctionType( v.SemaType(interpreter), ), @@ -18611,8 +19318,9 @@ func (v *DictionaryValue) GetMember( }, ) case "forEachKey": - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.DictionaryForEachKeyFunctionType( v.SemaType(interpreter), ), @@ -18638,24 +19346,12 @@ func (v *DictionaryValue) GetMember( return nil } -func (v *DictionaryValue) RemoveMember(interpreter *Interpreter, locationRange LocationRange, _ string) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - +func (v *DictionaryValue) RemoveMember(_ *Interpreter, _ LocationRange, _ string) Value { // Dictionaries have no removable members (fields / functions) panic(errors.NewUnreachableError()) } -func (v *DictionaryValue) SetMember(interpreter *Interpreter, locationRange LocationRange, _ string, _ Value) bool { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - +func (v *DictionaryValue) SetMember(_ *Interpreter, _ LocationRange, _ string, _ Value) bool { // Dictionaries have no settable members (fields / functions) panic(errors.NewUnreachableError()) } @@ -18669,20 +19365,17 @@ func (v *DictionaryValue) RemoveKey( locationRange LocationRange, key Value, ) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - return v.Remove(interpreter, locationRange, key) } -func (v *DictionaryValue) Remove( +func (v *DictionaryValue) RemoveWithoutTransfer( interpreter *Interpreter, locationRange LocationRange, - keyValue Value, -) OptionalValue { + keyValue atree.Value, +) ( + existingKeyStorable, + existingValueStorable atree.Storable, +) { interpreter.validateMutation(v.StorageID(), locationRange) @@ -18691,7 +19384,8 @@ func (v *DictionaryValue) Remove( // No need to clean up storable for passed-in key value, // as atree never calls Storable() - existingKeyStorable, existingValueStorable, err := v.dictionary.Remove( + var err error + existingKeyStorable, existingValueStorable, err = v.dictionary.Remove( valueComparator, hashInputProvider, keyValue, @@ -18699,12 +19393,27 @@ func (v *DictionaryValue) Remove( if err != nil { var keyNotFoundError *atree.KeyNotFoundError if goerrors.As(err, &keyNotFoundError) { - return NilOptionalValue + return nil, nil } panic(errors.NewExternalError(err)) } interpreter.maybeValidateAtreeValue(v.dictionary) + return existingKeyStorable, existingValueStorable +} + +func (v *DictionaryValue) Remove( + interpreter *Interpreter, + locationRange LocationRange, + keyValue Value, +) OptionalValue { + + existingKeyStorable, existingValueStorable := v.RemoveWithoutTransfer(interpreter, locationRange, keyValue) + + if existingKeyStorable == nil { + return NilOptionalValue + } + storage := interpreter.Storage() // Key @@ -18736,11 +19445,11 @@ func (v *DictionaryValue) InsertKey( v.SetKey(interpreter, locationRange, key, value) } -func (v *DictionaryValue) Insert( +func (v *DictionaryValue) InsertWithoutTransfer( interpreter *Interpreter, - locationRange LocationRange, - keyValue, value Value, -) OptionalValue { + locationRange LocationRange, + keyValue, value atree.Value, +) (existingValueStorable atree.Storable) { interpreter.validateMutation(v.StorageID(), locationRange) @@ -18750,8 +19459,31 @@ func (v *DictionaryValue) Insert( common.UseMemory(interpreter, dataSlabs) common.UseMemory(interpreter, metaDataSlabs) - interpreter.checkContainerMutation(v.Type.KeyType, keyValue, locationRange) - interpreter.checkContainerMutation(v.Type.ValueType, value, locationRange) + valueComparator := newValueComparator(interpreter, locationRange) + hashInputProvider := newHashInputProvider(interpreter, locationRange) + + // atree only calls Storable() on keyValue if needed, + // i.e., if the key is a new key + var err error + existingValueStorable, err = v.dictionary.Set( + valueComparator, + hashInputProvider, + keyValue, + value, + ) + if err != nil { + panic(errors.NewExternalError(err)) + } + interpreter.maybeValidateAtreeValue(v.dictionary) + + return existingValueStorable +} + +func (v *DictionaryValue) Insert( + interpreter *Interpreter, + locationRange LocationRange, + keyValue, value Value, +) OptionalValue { address := v.dictionary.Address() @@ -18777,21 +19509,10 @@ func (v *DictionaryValue) Insert( preventTransfer, ) - valueComparator := newValueComparator(interpreter, locationRange) - hashInputProvider := newHashInputProvider(interpreter, locationRange) + interpreter.checkContainerMutation(v.Type.KeyType, keyValue, locationRange) + interpreter.checkContainerMutation(v.Type.ValueType, value, locationRange) - // atree only calls Storable() on keyValue if needed, - // i.e., if the key is a new key - existingValueStorable, err := v.dictionary.Set( - valueComparator, - hashInputProvider, - keyValue, - value, - ) - if err != nil { - panic(errors.NewExternalError(err)) - } - interpreter.maybeValidateAtreeValue(v.dictionary) + existingValueStorable := v.InsertWithoutTransfer(interpreter, locationRange, keyValue, value) if existingValueStorable == nil { return NilOptionalValue @@ -18974,10 +19695,6 @@ func (v *DictionaryValue) Transfer( config := interpreter.SharedState.Config - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(interpreter, locationRange) - } - interpreter.ReportComputation( common.ComputationKindTransferDictionaryValue, uint(v.Count()), @@ -19086,8 +19803,6 @@ func (v *DictionaryValue) Transfer( } } - var res *DictionaryValue - if isResourceKinded { // Update the resource in-place, // and also update all values that are referencing the same value @@ -19098,28 +19813,21 @@ func (v *DictionaryValue) Transfer( // This allows raising an error when the resource array is attempted // to be transferred/moved again (see beginning of this function) - interpreter.invalidateReferencedResources(v, false) + interpreter.invalidateReferencedResources(v, locationRange) - if config.InvalidatedResourceValidationEnabled { - v.dictionary = nil - } else { - v.dictionary = dictionary - res = v - } + v.dictionary = nil } - if res == nil { - res = newDictionaryValueFromAtreeMap( - interpreter, - v.Type, - v.elementSize, - dictionary, - ) + res := newDictionaryValueFromAtreeMap( + interpreter, + v.Type, + v.elementSize, + dictionary, + ) - res.semaType = v.semaType - res.isResourceKinded = v.isResourceKinded - res.isDestroyed = v.isDestroyed - } + res.semaType = v.semaType + res.isResourceKinded = v.isResourceKinded + res.isDestroyed = v.isDestroyed return res } @@ -19251,6 +19959,14 @@ func (v *DictionaryValue) IsResourceKinded(interpreter *Interpreter) bool { return *v.isResourceKinded } +func (v *DictionaryValue) SetType(staticType *DictionaryStaticType) { + v.Type = staticType + err := v.dictionary.SetType(staticType) + if err != nil { + panic(errors.NewExternalError(err)) + } +} + // OptionalValue type OptionalValue interface { @@ -19276,11 +19992,11 @@ var _ OptionalValue = NilValue{} func (NilValue) isValue() {} -func (v NilValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v NilValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitNilValue(interpreter, v) } -func (NilValue) Walk(_ *Interpreter, _ func(Value)) { +func (NilValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -19291,7 +20007,7 @@ func (NilValue) StaticType(interpreter *Interpreter) StaticType { ) } -func (NilValue) IsImportable(_ *Interpreter) bool { +func (NilValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -19307,9 +20023,7 @@ func (NilValue) IsDestroyed() bool { return false } -func (v NilValue) Destroy(_ *Interpreter, _ LocationRange) { - // NO-OP -} +func (v NilValue) Destroy(_ *Interpreter, _ LocationRange) {} func (NilValue) String() string { return format.Nil @@ -19319,14 +20033,14 @@ func (v NilValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v NilValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { - common.UseMemory(memoryGauge, common.NilValueStringMemoryUsage) +func (v NilValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.NilValueStringMemoryUsage) return v.String() } // nilValueMapFunction is created only once per interpreter. // Hence, no need to meter, as it's a constant. -var nilValueMapFunction = NewUnmeteredHostFunctionValue( +var nilValueMapFunction = NewUnmeteredStaticHostFunctionValue( sema.OptionalTypeMapFunctionType(sema.NeverType), func(invocation Invocation) Value { return Nil @@ -19415,6 +20129,10 @@ func (NilValue) ChildStorables() []atree.Storable { return nil } +func (NilValue) isInvalidatedResource(_ *Interpreter) bool { + return false +} + // SomeValue type SomeValue struct { @@ -19424,8 +20142,8 @@ type SomeValue struct { isDestroyed bool } -func NewSomeValueNonCopying(interpreter *Interpreter, value Value) *SomeValue { - common.UseMemory(interpreter, common.OptionalValueMemoryUsage) +func NewSomeValueNonCopying(memoryGauge common.MemoryGauge, value Value) *SomeValue { + common.UseMemory(memoryGauge, common.OptionalValueMemoryUsage) return NewUnmeteredSomeValueNonCopying(value) } @@ -19443,15 +20161,15 @@ var _ OptionalValue = &SomeValue{} func (*SomeValue) isValue() {} -func (v *SomeValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *SomeValue) Accept(interpreter *Interpreter, visitor Visitor, locationRange LocationRange) { descend := visitor.VisitSomeValue(interpreter, v) if !descend { return } - v.value.Accept(interpreter, visitor) + v.value.Accept(interpreter, visitor, locationRange) } -func (v *SomeValue) Walk(_ *Interpreter, walkChild func(Value)) { +func (v *SomeValue) Walk(_ *Interpreter, walkChild func(Value), _ LocationRange) { walkChild(v.value) } @@ -19470,8 +20188,8 @@ func (v *SomeValue) StaticType(inter *Interpreter) StaticType { ) } -func (v *SomeValue) IsImportable(inter *Interpreter) bool { - return v.value.IsImportable(inter) +func (v *SomeValue) IsImportable(inter *Interpreter, locationRange LocationRange) bool { + return v.value.IsImportable(inter, locationRange) } func (*SomeValue) isOptionalValue() {} @@ -19490,20 +20208,11 @@ func (v *SomeValue) IsDestroyed() bool { } func (v *SomeValue) Destroy(interpreter *Interpreter, locationRange LocationRange) { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(locationRange) - } - innerValue := v.InnerValue(interpreter, locationRange) - maybeDestroy(interpreter, locationRange, innerValue) - v.isDestroyed = true - if config.InvalidatedResourceValidationEnabled { - v.value = nil - } + v.isDestroyed = true + v.value = nil } func (v *SomeValue) String() string { @@ -19514,20 +20223,16 @@ func (v *SomeValue) RecursiveString(seenReferences SeenReferences) string { return v.value.RecursiveString(seenReferences) } -func (v SomeValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { - return v.value.MeteredString(memoryGauge, seenReferences) +func (v *SomeValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { + return v.value.MeteredString(interpreter, seenReferences, locationRange) } -func (v *SomeValue) GetMember(interpreter *Interpreter, locationRange LocationRange, name string) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(locationRange) - } +func (v *SomeValue) GetMember(interpreter *Interpreter, _ LocationRange, name string) Value { switch name { case sema.OptionalTypeMapFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.OptionalTypeMapFunctionType( interpreter.MustConvertStaticToSemaType( v.value.StaticType(interpreter), @@ -19570,22 +20275,10 @@ func (v *SomeValue) GetMember(interpreter *Interpreter, locationRange LocationRa } func (v *SomeValue) RemoveMember(interpreter *Interpreter, locationRange LocationRange, _ string) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(locationRange) - } - panic(errors.NewUnreachableError()) } func (v *SomeValue) SetMember(interpreter *Interpreter, locationRange LocationRange, _ string, _ Value) bool { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(locationRange) - } - panic(errors.NewUnreachableError()) } @@ -19657,15 +20350,12 @@ func (v *SomeValue) NeedsStoreTo(address atree.Address) bool { } func (v *SomeValue) IsResourceKinded(interpreter *Interpreter) bool { - return v.value.IsResourceKinded(interpreter) -} - -func (v *SomeValue) checkInvalidatedResourceUse(locationRange LocationRange) { - if v.isDestroyed || v.value == nil { - panic(InvalidatedResourceError{ - LocationRange: locationRange, - }) + // If the inner value is `nil`, then this is an invalidated resource. + if v.value == nil { + return true } + + return v.value.IsResourceKinded(interpreter) } func (v *SomeValue) Transfer( @@ -19676,12 +20366,6 @@ func (v *SomeValue) Transfer( storable atree.Storable, preventTransfer map[atree.StorageID]struct{}, ) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(locationRange) - } - innerValue := v.value needsStoreTo := v.NeedsStoreTo(address) @@ -19704,8 +20388,6 @@ func (v *SomeValue) Transfer( } } - var res *SomeValue - if isResourceKinded { // Update the resource in-place, // and also update all values that are referencing the same value @@ -19716,21 +20398,17 @@ func (v *SomeValue) Transfer( // This allows raising an error when the resource array is attempted // to be transferred/moved again (see beginning of this function) - if config.InvalidatedResourceValidationEnabled { - v.value = nil - } else { - v.value = innerValue - v.valueStorable = nil - res = v + // we don't need to invalidate referenced resources if this resource was moved + // to storage, as the earlier transfer will have done this already + if !needsStoreTo { + interpreter.invalidateReferencedResources(v.value, locationRange) } - + v.value = nil } - if res == nil { - res = NewSomeValueNonCopying(interpreter, innerValue) - res.valueStorable = nil - res.isDestroyed = v.isDestroyed - } + res := NewSomeValueNonCopying(interpreter, innerValue) + res.valueStorable = nil + res.isDestroyed = v.isDestroyed return res } @@ -19747,16 +20425,14 @@ func (v *SomeValue) DeepRemove(interpreter *Interpreter) { } } -func (v *SomeValue) InnerValue(interpreter *Interpreter, locationRange LocationRange) Value { - config := interpreter.SharedState.Config - - if config.InvalidatedResourceValidationEnabled { - v.checkInvalidatedResourceUse(locationRange) - } - +func (v *SomeValue) InnerValue(_ *Interpreter, _ LocationRange) Value { return v.value } +func (v *SomeValue) isInvalidatedResource(interpreter *Interpreter) bool { + return v.value == nil || v.IsDestroyed() +} + type SomeStorable struct { gauge common.MemoryGauge Storable atree.Storable @@ -19789,8 +20465,34 @@ type AuthorizedValue interface { type ReferenceValue interface { Value + AuthorizedValue isReference() ReferencedValue(interpreter *Interpreter, locationRange LocationRange, errorOnFailedDereference bool) *Value + BorrowType() sema.Type +} + +func DereferenceValue( + inter *Interpreter, + locationRange LocationRange, + referenceValue ReferenceValue, +) Value { + referencedValue := *referenceValue.ReferencedValue(inter, locationRange, true) + + // Defensive check: ensure that the referenced value is not a resource + if referencedValue.IsResourceKinded(inter) { + panic(ResourceReferenceDereferenceError{ + LocationRange: locationRange, + }) + } + + return referencedValue.Transfer( + inter, + locationRange, + atree.Address{}, + false, + nil, + nil, + ) } // StorageReferenceValue @@ -19808,6 +20510,7 @@ var _ TypeIndexableValue = &StorageReferenceValue{} var _ MemberAccessibleValue = &StorageReferenceValue{} var _ AuthorizedValue = &StorageReferenceValue{} var _ ReferenceValue = &StorageReferenceValue{} +var _ IterableValue = &StorageReferenceValue{} func NewUnmeteredStorageReferenceValue( authorization Authorization, @@ -19841,11 +20544,11 @@ func NewStorageReferenceValue( func (*StorageReferenceValue) isValue() {} -func (v *StorageReferenceValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *StorageReferenceValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitStorageReferenceValue(interpreter, v) } -func (*StorageReferenceValue) Walk(_ *Interpreter, _ func(Value)) { +func (*StorageReferenceValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP // NOTE: *not* walking referenced value! } @@ -19858,8 +20561,8 @@ func (v *StorageReferenceValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v *StorageReferenceValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { - common.UseMemory(memoryGauge, common.StorageReferenceValueStringMemoryUsage) +func (v *StorageReferenceValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.StorageReferenceValueStringMemoryUsage) return v.String() } @@ -19882,7 +20585,7 @@ func (v *StorageReferenceValue) GetAuthorization() Authorization { return v.Authorization } -func (*StorageReferenceValue) IsImportable(_ *Interpreter) bool { +func (*StorageReferenceValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -19898,6 +20601,13 @@ func (v *StorageReferenceValue) dereference(interpreter *Interpreter, locationRa return nil, nil } + if reference, isReference := referenced.(ReferenceValue); isReference { + panic(NestedReferenceError{ + Value: reference, + LocationRange: locationRange, + }) + } + if v.BorrowedType != nil { staticType := referenced.StaticType(interpreter) @@ -19946,11 +20656,7 @@ func (v *StorageReferenceValue) mustReferencedValue( }) } - self := *referencedValue - - interpreter.checkReferencedResourceNotDestroyed(self, locationRange) - - return self + return *referencedValue } func (v *StorageReferenceValue) GetMember( @@ -19958,9 +20664,22 @@ func (v *StorageReferenceValue) GetMember( locationRange LocationRange, name string, ) Value { - self := v.mustReferencedValue(interpreter, locationRange) + referencedValue := v.mustReferencedValue(interpreter, locationRange) + + member := interpreter.getMember(referencedValue, locationRange, name) + + // If the member is a function, it is always a bound-function. + // By default, bound functions create and hold an ephemeral reference (`selfRef`). + // For storage references, replace this default one with the actual storage reference. + // It is not possible (or a lot of work), to create the bound function with the storage reference + // when it was created originally, because `getMember(referencedValue, ...)` doesn't know + // whether the member was accessed directly, or via a reference. + if boundFunction, isBoundFunction := member.(BoundFunctionValue); isBoundFunction { + boundFunction.selfRef = v + return boundFunction + } - return interpreter.getMember(self, locationRange, name) + return member } func (v *StorageReferenceValue) RemoveMember( @@ -20160,6 +20879,79 @@ func (*StorageReferenceValue) DeepRemove(_ *Interpreter) { func (*StorageReferenceValue) isReference() {} +func (v *StorageReferenceValue) Iterator(_ *Interpreter, _ LocationRange) ValueIterator { + // Not used for now + panic(errors.NewUnreachableError()) +} + +func (v *StorageReferenceValue) ForEach( + interpreter *Interpreter, + elementType sema.Type, + function func(value Value) (resume bool), + _ bool, + locationRange LocationRange, +) { + referencedValue := v.mustReferencedValue(interpreter, locationRange) + forEachReference( + interpreter, + v, + referencedValue, + elementType, + function, + locationRange, + ) +} + +func forEachReference( + interpreter *Interpreter, + reference ReferenceValue, + referencedValue Value, + elementType sema.Type, + function func(value Value) (resume bool), + locationRange LocationRange, +) { + referencedIterable, ok := referencedValue.(IterableValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + referenceType, isResultReference := sema.MaybeReferenceType(elementType) + + updatedFunction := func(value Value) (resume bool) { + // The loop dereference the reference once, and hold onto that referenced-value. + // But the reference could get invalidated during the iteration, making that referenced-value invalid. + // So check the validity of the reference, before each iteration. + interpreter.checkInvalidatedResourceOrResourceReference(reference, locationRange) + + if isResultReference { + value = interpreter.getReferenceValue(value, elementType, locationRange) + } + + return function(value) + } + + referencedElementType := elementType + if isResultReference { + referencedElementType = referenceType.Type + } + + // Do not transfer the inner referenced elements. + // We only take a references to them, but never move them out. + const transferElements = false + + referencedIterable.ForEach( + interpreter, + referencedElementType, + updatedFunction, + transferElements, + locationRange, + ) +} + +func (v *StorageReferenceValue) BorrowType() sema.Type { + return v.BorrowedType +} + // EphemeralReferenceValue type EphemeralReferenceValue struct { @@ -20176,36 +20968,51 @@ var _ TypeIndexableValue = &EphemeralReferenceValue{} var _ MemberAccessibleValue = &EphemeralReferenceValue{} var _ AuthorizedValue = &EphemeralReferenceValue{} var _ ReferenceValue = &EphemeralReferenceValue{} +var _ IterableValue = &EphemeralReferenceValue{} func NewUnmeteredEphemeralReferenceValue( + interpreter *Interpreter, authorization Authorization, value Value, borrowedType sema.Type, + locationRange LocationRange, ) *EphemeralReferenceValue { - return &EphemeralReferenceValue{ + if reference, isReference := value.(ReferenceValue); isReference { + panic(NestedReferenceError{ + Value: reference, + LocationRange: locationRange, + }) + } + + ref := &EphemeralReferenceValue{ Authorization: authorization, Value: value, BorrowedType: borrowedType, } + + interpreter.maybeTrackReferencedResourceKindedValue(ref) + + return ref } func NewEphemeralReferenceValue( - gauge common.MemoryGauge, + interpreter *Interpreter, authorization Authorization, value Value, borrowedType sema.Type, + locationRange LocationRange, ) *EphemeralReferenceValue { - common.UseMemory(gauge, common.EphemeralReferenceValueMemoryUsage) - return NewUnmeteredEphemeralReferenceValue(authorization, value, borrowedType) + common.UseMemory(interpreter, common.EphemeralReferenceValueMemoryUsage) + return NewUnmeteredEphemeralReferenceValue(interpreter, authorization, value, borrowedType, locationRange) } func (*EphemeralReferenceValue) isValue() {} -func (v *EphemeralReferenceValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *EphemeralReferenceValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitEphemeralReferenceValue(interpreter, v) } -func (*EphemeralReferenceValue) Walk(_ *Interpreter, _ func(Value)) { +func (*EphemeralReferenceValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP // NOTE: *not* walking referenced value! } @@ -20215,35 +21022,26 @@ func (v *EphemeralReferenceValue) String() string { } func (v *EphemeralReferenceValue) RecursiveString(seenReferences SeenReferences) string { - return v.MeteredString(nil, seenReferences) + return v.MeteredString(nil, seenReferences, EmptyLocationRange) } -func (v *EphemeralReferenceValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { +func (v *EphemeralReferenceValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if _, ok := seenReferences[v]; ok { - common.UseMemory(memoryGauge, common.SeenReferenceStringMemoryUsage) + common.UseMemory(interpreter, common.SeenReferenceStringMemoryUsage) return "..." } seenReferences[v] = struct{}{} defer delete(seenReferences, v) - return v.Value.MeteredString(memoryGauge, seenReferences) + return v.Value.MeteredString(interpreter, seenReferences, locationRange) } func (v *EphemeralReferenceValue) StaticType(inter *Interpreter) StaticType { - referencedValue := v.ReferencedValue(inter, EmptyLocationRange, true) - if referencedValue == nil { - panic(DereferenceError{ - Cause: "the value being referenced has been destroyed or moved", - }) - } - - self := *referencedValue - return NewReferenceStaticType( inter, v.Authorization, - self.StaticType(inter), + v.Value.StaticType(inter), ) } @@ -20251,7 +21049,7 @@ func (v *EphemeralReferenceValue) GetAuthorization() Authorization { return v.Authorization } -func (*EphemeralReferenceValue) IsImportable(_ *Interpreter) bool { +func (*EphemeralReferenceValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -20263,32 +21061,12 @@ func (v *EphemeralReferenceValue) ReferencedValue( return &v.Value } -func (v *EphemeralReferenceValue) MustReferencedValue( - interpreter *Interpreter, - locationRange LocationRange, -) Value { - referencedValue := v.ReferencedValue(interpreter, locationRange, true) - if referencedValue == nil { - panic(DereferenceError{ - Cause: "the value being referenced has been destroyed or moved", - LocationRange: locationRange, - }) - } - - self := *referencedValue - - interpreter.checkReferencedResourceNotMovedOrDestroyed(self, locationRange) - return self -} - func (v *EphemeralReferenceValue) GetMember( interpreter *Interpreter, locationRange LocationRange, name string, ) Value { - self := v.MustReferencedValue(interpreter, locationRange) - - return interpreter.getMember(self, locationRange, name) + return interpreter.getMember(v.Value, locationRange, name) } func (v *EphemeralReferenceValue) RemoveMember( @@ -20296,9 +21074,7 @@ func (v *EphemeralReferenceValue) RemoveMember( locationRange LocationRange, identifier string, ) Value { - self := v.MustReferencedValue(interpreter, locationRange) - - if memberAccessibleValue, ok := self.(MemberAccessibleValue); ok { + if memberAccessibleValue, ok := v.Value.(MemberAccessibleValue); ok { return memberAccessibleValue.RemoveMember(interpreter, locationRange, identifier) } @@ -20311,9 +21087,7 @@ func (v *EphemeralReferenceValue) SetMember( name string, value Value, ) bool { - self := v.MustReferencedValue(interpreter, locationRange) - - return interpreter.setMember(self, locationRange, name, value) + return interpreter.setMember(v.Value, locationRange, name, value) } func (v *EphemeralReferenceValue) GetKey( @@ -20321,9 +21095,7 @@ func (v *EphemeralReferenceValue) GetKey( locationRange LocationRange, key Value, ) Value { - self := v.MustReferencedValue(interpreter, locationRange) - - return self.(ValueIndexableValue). + return v.Value.(ValueIndexableValue). GetKey(interpreter, locationRange, key) } @@ -20333,9 +21105,7 @@ func (v *EphemeralReferenceValue) SetKey( key Value, value Value, ) { - self := v.MustReferencedValue(interpreter, locationRange) - - self.(ValueIndexableValue). + v.Value.(ValueIndexableValue). SetKey(interpreter, locationRange, key, value) } @@ -20345,9 +21115,7 @@ func (v *EphemeralReferenceValue) InsertKey( key Value, value Value, ) { - self := v.MustReferencedValue(interpreter, locationRange) - - self.(ValueIndexableValue). + v.Value.(ValueIndexableValue). InsertKey(interpreter, locationRange, key, value) } @@ -20356,9 +21124,7 @@ func (v *EphemeralReferenceValue) RemoveKey( locationRange LocationRange, key Value, ) Value { - self := v.MustReferencedValue(interpreter, locationRange) - - return self.(ValueIndexableValue). + return v.Value.(ValueIndexableValue). RemoveKey(interpreter, locationRange, key) } @@ -20367,7 +21133,7 @@ func (v *EphemeralReferenceValue) GetTypeKey( locationRange LocationRange, key sema.Type, ) Value { - self := v.MustReferencedValue(interpreter, locationRange) + self := v.Value if selfComposite, isComposite := self.(*CompositeValue); isComposite { return selfComposite.getTypeKey( @@ -20388,9 +21154,7 @@ func (v *EphemeralReferenceValue) SetTypeKey( key sema.Type, value Value, ) { - self := v.MustReferencedValue(interpreter, locationRange) - - self.(TypeIndexableValue). + v.Value.(TypeIndexableValue). SetTypeKey(interpreter, locationRange, key, value) } @@ -20399,9 +21163,7 @@ func (v *EphemeralReferenceValue) RemoveTypeKey( locationRange LocationRange, key sema.Type, ) Value { - self := v.MustReferencedValue(interpreter, locationRange) - - return self.(TypeIndexableValue). + return v.Value.(TypeIndexableValue). RemoveTypeKey(interpreter, locationRange, key) } @@ -20426,16 +21188,9 @@ func (v *EphemeralReferenceValue) ConformsToStaticType( locationRange LocationRange, results TypeConformanceResults, ) bool { - referencedValue := v.ReferencedValue(interpreter, locationRange, true) - if referencedValue == nil { - return false - } - - interpreter.checkReferencedResourceNotMovedOrDestroyed(*referencedValue, locationRange) - - self := *referencedValue + self := v.Value - staticType := self.StaticType(interpreter) + staticType := v.Value.StaticType(interpreter) if !interpreter.IsSubTypeOfSemaType(staticType, v.BorrowedType) { return false @@ -20495,8 +21250,8 @@ func (v *EphemeralReferenceValue) Transfer( return v } -func (v *EphemeralReferenceValue) Clone(*Interpreter) Value { - return NewUnmeteredEphemeralReferenceValue(v.Authorization, v.Value, v.BorrowedType) +func (v *EphemeralReferenceValue) Clone(inter *Interpreter) Value { + return NewUnmeteredEphemeralReferenceValue(inter, v.Authorization, v.Value, v.BorrowedType, EmptyLocationRange) } func (*EphemeralReferenceValue) DeepRemove(_ *Interpreter) { @@ -20505,6 +21260,32 @@ func (*EphemeralReferenceValue) DeepRemove(_ *Interpreter) { func (*EphemeralReferenceValue) isReference() {} +func (v *EphemeralReferenceValue) Iterator(_ *Interpreter, _ LocationRange) ValueIterator { + // Not used for now + panic(errors.NewUnreachableError()) +} + +func (v *EphemeralReferenceValue) ForEach( + interpreter *Interpreter, + elementType sema.Type, + function func(value Value) (resume bool), + _ bool, + locationRange LocationRange, +) { + forEachReference( + interpreter, + v, + v.Value, + elementType, + function, + locationRange, + ) +} + +func (v *EphemeralReferenceValue) BorrowType() sema.Type { + return v.BorrowedType +} + // AddressValue type AddressValue common.Address @@ -20543,6 +21324,10 @@ func NewAddressValueFromConstructor( } func ConvertAddress(memoryGauge common.MemoryGauge, value Value, locationRange LocationRange) AddressValue { + if address, ok := value.(AddressValue); ok { + return address + } + converter := func() (result common.Address) { uint64Value := ConvertUInt64(memoryGauge, value, locationRange) @@ -20565,11 +21350,11 @@ var _ MemberAccessibleValue = AddressValue{} func (AddressValue) isValue() {} -func (v AddressValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v AddressValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitAddressValue(interpreter, v) } -func (AddressValue) Walk(_ *Interpreter, _ func(Value)) { +func (AddressValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -20577,7 +21362,7 @@ func (AddressValue) StaticType(interpreter *Interpreter) StaticType { return NewPrimitiveStaticType(interpreter, PrimitiveStaticTypeAddress) } -func (AddressValue) IsImportable(_ *Interpreter) bool { +func (AddressValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return true } @@ -20589,8 +21374,8 @@ func (v AddressValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v AddressValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { - common.UseMemory(memoryGauge, common.AddressValueStringMemoryUsage) +func (v AddressValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.AddressValueStringMemoryUsage) return v.String() } @@ -20627,18 +21412,22 @@ func (v AddressValue) ToAddress() common.Address { return common.Address(v) } -func (v AddressValue) GetMember(interpreter *Interpreter, locationRange LocationRange, name string) Value { +func (v AddressValue) GetMember(interpreter *Interpreter, _ LocationRange, name string) Value { switch name { case sema.ToStringFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.ToStringFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter + locationRange := invocation.LocationRange + memoryUsage := common.NewStringMemoryUsage( safeMul(common.AddressLength, 2, locationRange), ) + return NewStringValue( interpreter, memoryUsage, @@ -20650,8 +21439,9 @@ func (v AddressValue) GetMember(interpreter *Interpreter, locationRange Location ) case sema.AddressTypeToBytesFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( interpreter, + v, sema.AddressTypeToBytesFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -20793,11 +21583,11 @@ var _ MemberAccessibleValue = PathValue{} func (PathValue) isValue() {} -func (v PathValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v PathValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitPathValue(interpreter, v) } -func (PathValue) Walk(_ *Interpreter, _ func(Value)) { +func (PathValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -20814,7 +21604,7 @@ func (v PathValue) StaticType(interpreter *Interpreter) StaticType { } } -func (v PathValue) IsImportable(_ *Interpreter) bool { +func (v PathValue) IsImportable(_ *Interpreter, _ LocationRange) bool { switch v.Domain { case common.PathDomainStorage: return sema.StoragePathType.Importable @@ -20838,10 +21628,10 @@ func (v PathValue) RecursiveString(_ SeenReferences) string { return v.String() } -func (v PathValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (v PathValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { // len(domain) + len(identifier) + '/' x2 strLen := len(v.Domain.Identifier()) + len(v.Identifier) + 2 - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(strLen)) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(strLen)) return v.String() } @@ -20849,8 +21639,9 @@ func (v PathValue) GetMember(inter *Interpreter, locationRange LocationRange, na switch name { case sema.ToStringFunctionName: - return NewHostFunctionValue( + return NewBoundHostFunctionValue( inter, + v, sema.ToStringFunctionType, func(invocation Invocation) Value { interpreter := invocation.Interpreter @@ -20925,21 +21716,13 @@ func (PathValue) IsStorable() bool { return true } -func convertPath(interpreter *Interpreter, domain common.PathDomain, value Value) Value { +func newPathFromStringValue(interpreter *Interpreter, domain common.PathDomain, value Value) Value { stringValue, ok := value.(*StringValue) if !ok { return Nil } - _, err := sema.CheckPathLiteral( - domain.Identifier(), - stringValue.Str, - ReturnEmptyRange, - ReturnEmptyRange, - ) - if err != nil { - return Nil - } + // NOTE: any identifier is allowed, it does not have to match the syntax for path literals return NewSomeValueNonCopying( interpreter, @@ -20951,18 +21734,6 @@ func convertPath(interpreter *Interpreter, domain common.PathDomain, value Value ) } -func ConvertPublicPath(interpreter *Interpreter, value Value) Value { - return convertPath(interpreter, common.PathDomainPublic, value) -} - -func ConvertPrivatePath(interpreter *Interpreter, value Value) Value { - return convertPath(interpreter, common.PathDomainPrivate, value) -} - -func ConvertStoragePath(interpreter *Interpreter, value Value) Value { - return convertPath(interpreter, common.PathDomainStorage, value) -} - func (v PathValue) Storable( storage atree.SlabStorage, address atree.Address, @@ -21024,11 +21795,11 @@ func (PathValue) ChildStorables() []atree.Storable { type PublishedValue struct { // NB: If `publish` and `claim` are ever extended to support arbitrary values, rather than just capabilities, // this will need to be changed to `Value`, and more storage-related operations must be implemented for `PublishedValue` - Value *CapabilityValue + Value CapabilityValue Recipient AddressValue } -func NewPublishedValue(memoryGauge common.MemoryGauge, recipient AddressValue, value *CapabilityValue) *PublishedValue { +func NewPublishedValue(memoryGauge common.MemoryGauge, recipient AddressValue, value CapabilityValue) *PublishedValue { common.UseMemory(memoryGauge, common.PublishedValueMemoryUsage) return &PublishedValue{ Recipient: recipient, @@ -21042,7 +21813,7 @@ var _ EquatableValue = &PublishedValue{} func (*PublishedValue) isValue() {} -func (v *PublishedValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *PublishedValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitPublishedValue(interpreter, v) } @@ -21052,7 +21823,7 @@ func (v *PublishedValue) StaticType(interpreter *Interpreter) StaticType { return v.Value.StaticType(interpreter) } -func (*PublishedValue) IsImportable(_ *Interpreter) bool { +func (*PublishedValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -21068,17 +21839,17 @@ func (v *PublishedValue) RecursiveString(seenReferences SeenReferences) string { ) } -func (v *PublishedValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { - common.UseMemory(memoryGauge, common.PublishedValueStringMemoryUsage) +func (v *PublishedValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.PublishedValueStringMemoryUsage) return fmt.Sprintf( "PublishedValue<%s>(%s)", - v.Recipient.MeteredString(memoryGauge, seenReferences), - v.Value.MeteredString(memoryGauge, seenReferences), + v.Recipient.MeteredString(interpreter, seenReferences, locationRange), + v.Value.MeteredString(interpreter, seenReferences, locationRange), ) } -func (v *PublishedValue) Walk(_ *Interpreter, walkChild func(Value)) { +func (v *PublishedValue) Walk(_ *Interpreter, walkChild func(Value), _ LocationRange) { walkChild(v.Recipient) walkChild(v.Value) } @@ -21137,7 +21908,7 @@ func (v *PublishedValue) Transfer( remove, nil, preventTransfer, - ).(*CapabilityValue) + ).(*IDCapabilityValue) addressValue := v.Recipient.Transfer( interpreter, @@ -21162,7 +21933,7 @@ func (v *PublishedValue) Transfer( func (v *PublishedValue) Clone(interpreter *Interpreter) Value { return &PublishedValue{ Recipient: v.Recipient, - Value: v.Value.Clone(interpreter).(*CapabilityValue), + Value: v.Value.Clone(interpreter).(*IDCapabilityValue), } } diff --git a/runtime/interpreter/value_account.go b/runtime/interpreter/value_account.go index 28b585e1fc..63c5383960 100644 --- a/runtime/interpreter/value_account.go +++ b/runtime/interpreter/value_account.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -104,10 +104,10 @@ func NewAccountValue( } var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if str == "" { - common.UseMemory(memoryGauge, common.AccountValueStringMemoryUsage) - addressStr := address.MeteredString(memoryGauge, seenReferences) + common.UseMemory(interpreter, common.AccountValueStringMemoryUsage) + addressStr := address.MeteredString(interpreter, seenReferences, locationRange) str = fmt.Sprintf("Account(%s)", addressStr) } return str diff --git a/runtime/interpreter/value_account_accountcapabilities.go b/runtime/interpreter/value_account_accountcapabilities.go index 068c7f73df..0e55715774 100644 --- a/runtime/interpreter/value_account_accountcapabilities.go +++ b/runtime/interpreter/value_account_accountcapabilities.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,37 +34,41 @@ var account_AccountCapabilitiesFieldNames []string = nil func NewAccountAccountCapabilitiesValue( gauge common.MemoryGauge, address AddressValue, - getControllerFunction FunctionValue, - getControllersFunction FunctionValue, - forEachControllerFunction FunctionValue, - issueFunction FunctionValue, -) Value { - - fields := map[string]Value{ - sema.Account_AccountCapabilitiesTypeGetControllerFunctionName: getControllerFunction, - sema.Account_AccountCapabilitiesTypeGetControllersFunctionName: getControllersFunction, - sema.Account_AccountCapabilitiesTypeForEachControllerFunctionName: forEachControllerFunction, - sema.Account_AccountCapabilitiesTypeIssueFunctionName: issueFunction, - } + getControllerFunction BoundFunctionGenerator, + getControllersFunction BoundFunctionGenerator, + forEachControllerFunction BoundFunctionGenerator, + issueFunction BoundFunctionGenerator, + issueWithTypeFunction BoundFunctionGenerator, +) *SimpleCompositeValue { var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if str == "" { - common.UseMemory(memoryGauge, common.AccountAccountCapabilitiesStringMemoryUsage) - addressStr := address.MeteredString(memoryGauge, seenReferences) + common.UseMemory(interpreter, common.AccountAccountCapabilitiesStringMemoryUsage) + addressStr := address.MeteredString(interpreter, seenReferences, locationRange) str = fmt.Sprintf("Account.AccountCapabilities(%s)", addressStr) } return str } - return NewSimpleCompositeValue( + accountCapabilities := NewSimpleCompositeValue( gauge, account_AccountCapabilitiesTypeID, account_AccountCapabilitiesStaticType, account_AccountCapabilitiesFieldNames, - fields, + nil, nil, nil, stringer, ) + + accountCapabilities.Fields = map[string]Value{ + sema.Account_AccountCapabilitiesTypeGetControllerFunctionName: getControllerFunction(accountCapabilities), + sema.Account_AccountCapabilitiesTypeGetControllersFunctionName: getControllersFunction(accountCapabilities), + sema.Account_AccountCapabilitiesTypeForEachControllerFunctionName: forEachControllerFunction(accountCapabilities), + sema.Account_AccountCapabilitiesTypeIssueFunctionName: issueFunction(accountCapabilities), + sema.Account_AccountCapabilitiesTypeIssueWithTypeFunctionName: issueWithTypeFunction(accountCapabilities), + } + + return accountCapabilities } diff --git a/runtime/interpreter/value_account_capabilities.go b/runtime/interpreter/value_account_capabilities.go index 09a4c0e5c1..99f3909114 100644 --- a/runtime/interpreter/value_account_capabilities.go +++ b/runtime/interpreter/value_account_capabilities.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,23 +33,15 @@ var account_CapabilitiesStaticType StaticType = PrimitiveStaticTypeAccount_Capab func NewAccountCapabilitiesValue( gauge common.MemoryGauge, address AddressValue, - getFunction FunctionValue, - borrowFunction FunctionValue, - existsFunction FunctionValue, - publishFunction FunctionValue, - unpublishFunction FunctionValue, + getFunction BoundFunctionGenerator, + borrowFunction BoundFunctionGenerator, + existsFunction BoundFunctionGenerator, + publishFunction BoundFunctionGenerator, + unpublishFunction BoundFunctionGenerator, storageCapabilitiesConstructor func() Value, accountCapabilitiesConstructor func() Value, ) Value { - fields := map[string]Value{ - sema.Account_CapabilitiesTypeGetFunctionName: getFunction, - sema.Account_CapabilitiesTypeBorrowFunctionName: borrowFunction, - sema.Account_CapabilitiesTypeExistsFunctionName: existsFunction, - sema.Account_CapabilitiesTypePublishFunctionName: publishFunction, - sema.Account_CapabilitiesTypeUnpublishFunctionName: unpublishFunction, - } - var storageCapabilities Value var accountCapabilities Value @@ -72,23 +64,33 @@ func NewAccountCapabilitiesValue( } var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if str == "" { - common.UseMemory(memoryGauge, common.AccountCapabilitiesStringMemoryUsage) - addressStr := address.MeteredString(memoryGauge, seenReferences) + common.UseMemory(interpreter, common.AccountCapabilitiesStringMemoryUsage) + addressStr := address.MeteredString(interpreter, seenReferences, locationRange) str = fmt.Sprintf("Account.Capabilities(%s)", addressStr) } return str } - return NewSimpleCompositeValue( + capabilities := NewSimpleCompositeValue( gauge, account_CapabilitiesTypeID, account_CapabilitiesStaticType, nil, - fields, + nil, computeField, nil, stringer, ) + + capabilities.Fields = map[string]Value{ + sema.Account_CapabilitiesTypeGetFunctionName: getFunction(capabilities), + sema.Account_CapabilitiesTypeBorrowFunctionName: borrowFunction(capabilities), + sema.Account_CapabilitiesTypeExistsFunctionName: existsFunction(capabilities), + sema.Account_CapabilitiesTypePublishFunctionName: publishFunction(capabilities), + sema.Account_CapabilitiesTypeUnpublishFunctionName: unpublishFunction(capabilities), + } + + return capabilities } diff --git a/runtime/interpreter/value_account_contracts.go b/runtime/interpreter/value_account_contracts.go index 76211ad5ea..f13112f18d 100644 --- a/runtime/interpreter/value_account_contracts.go +++ b/runtime/interpreter/value_account_contracts.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,24 +36,15 @@ type ContractNamesGetter func(interpreter *Interpreter, locationRange LocationRa func NewAccountContractsValue( gauge common.MemoryGauge, address AddressValue, - addFunction FunctionValue, - updateFunction FunctionValue, - tryUpdateFunction FunctionValue, - getFunction FunctionValue, - borrowFunction FunctionValue, - removeFunction FunctionValue, + addFunction BoundFunctionGenerator, + updateFunction BoundFunctionGenerator, + tryUpdateFunction BoundFunctionGenerator, + getFunction BoundFunctionGenerator, + borrowFunction BoundFunctionGenerator, + removeFunction BoundFunctionGenerator, namesGetter ContractNamesGetter, ) Value { - fields := map[string]Value{ - sema.Account_ContractsTypeAddFunctionName: addFunction, - sema.Account_ContractsTypeGetFunctionName: getFunction, - sema.Account_ContractsTypeBorrowFunctionName: borrowFunction, - sema.Account_ContractsTypeRemoveFunctionName: removeFunction, - sema.Account_ContractsTypeUpdateFunctionName: updateFunction, - sema.Account_ContractsTypeTryUpdateFunctionName: tryUpdateFunction, - } - computeField := func( name string, interpreter *Interpreter, @@ -67,23 +58,34 @@ func NewAccountContractsValue( } var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if str == "" { - common.UseMemory(memoryGauge, common.AccountContractsStringMemoryUsage) - addressStr := address.MeteredString(memoryGauge, seenReferences) + common.UseMemory(interpreter, common.AccountContractsStringMemoryUsage) + addressStr := address.MeteredString(interpreter, seenReferences, locationRange) str = fmt.Sprintf("Account.Contracts(%s)", addressStr) } return str } - return NewSimpleCompositeValue( + accountContracts := NewSimpleCompositeValue( gauge, account_ContractsTypeID, account_ContractsStaticType, account_ContractsFieldNames, - fields, + nil, computeField, nil, stringer, ) + + accountContracts.Fields = map[string]Value{ + sema.Account_ContractsTypeAddFunctionName: addFunction(accountContracts), + sema.Account_ContractsTypeGetFunctionName: getFunction(accountContracts), + sema.Account_ContractsTypeBorrowFunctionName: borrowFunction(accountContracts), + sema.Account_ContractsTypeRemoveFunctionName: removeFunction(accountContracts), + sema.Account_ContractsTypeUpdateFunctionName: updateFunction(accountContracts), + sema.Account_ContractsTypeTryUpdateFunctionName: tryUpdateFunction(accountContracts), + } + + return accountContracts } diff --git a/runtime/interpreter/value_account_inbox.go b/runtime/interpreter/value_account_inbox.go index 76f551cccc..05800b64a8 100644 --- a/runtime/interpreter/value_account_inbox.go +++ b/runtime/interpreter/value_account_inbox.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,35 +34,37 @@ var account_InboxStaticType StaticType = PrimitiveStaticTypeAccount_Inbox func NewAccountInboxValue( gauge common.MemoryGauge, addressValue AddressValue, - publishFunction FunctionValue, - unpublishFunction FunctionValue, - claimFunction FunctionValue, + publishFunction BoundFunctionGenerator, + unpublishFunction BoundFunctionGenerator, + claimFunction BoundFunctionGenerator, ) Value { - fields := map[string]Value{ - sema.Account_InboxTypePublishFunctionName: publishFunction, - sema.Account_InboxTypeUnpublishFunctionName: unpublishFunction, - sema.Account_InboxTypeClaimFunctionName: claimFunction, - } - var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if str == "" { - common.UseMemory(memoryGauge, common.AccountInboxStringMemoryUsage) - addressStr := addressValue.MeteredString(memoryGauge, seenReferences) + common.UseMemory(interpreter, common.AccountInboxStringMemoryUsage) + addressStr := addressValue.MeteredString(interpreter, seenReferences, locationRange) str = fmt.Sprintf("Account.Inbox(%s)", addressStr) } return str } - return NewSimpleCompositeValue( + accountInbox := NewSimpleCompositeValue( gauge, account_InboxTypeID, account_InboxStaticType, nil, - fields, + nil, nil, nil, stringer, ) + + accountInbox.Fields = map[string]Value{ + sema.Account_InboxTypePublishFunctionName: publishFunction(accountInbox), + sema.Account_InboxTypeUnpublishFunctionName: unpublishFunction(accountInbox), + sema.Account_InboxTypeClaimFunctionName: claimFunction(accountInbox), + } + + return accountInbox } diff --git a/runtime/interpreter/value_account_storage.go b/runtime/interpreter/value_account_storage.go index a86ec24617..c9c12ce462 100644 --- a/runtime/interpreter/value_account_storage.go +++ b/runtime/interpreter/value_account_storage.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,16 +38,37 @@ func NewAccountStorageValue( storageCapacityGet func(interpreter *Interpreter) UInt64Value, ) Value { - var forEachStoredFunction *HostFunctionValue - var forEachPublicFunction *HostFunctionValue - var typeFunction *HostFunctionValue - var loadFunction *HostFunctionValue - var copyFunction *HostFunctionValue - var saveFunction *HostFunctionValue - var borrowFunction *HostFunctionValue - var checkFunction *HostFunctionValue + var str string + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { + if str == "" { + common.UseMemory(interpreter, common.AccountStorageStringMemoryUsage) + addressStr := address.MeteredString(interpreter, seenReferences, locationRange) + str = fmt.Sprintf("Account.Storage(%s)", addressStr) + } + return str + } + + storageValue := NewSimpleCompositeValue( + gauge, + account_StorageTypeID, + account_StorageStaticType, + nil, + nil, + nil, + nil, + stringer, + ) - computeField := func(name string, inter *Interpreter, locationRange LocationRange) Value { + var forEachStoredFunction FunctionValue + var forEachPublicFunction FunctionValue + var typeFunction FunctionValue + var loadFunction FunctionValue + var copyFunction FunctionValue + var saveFunction FunctionValue + var borrowFunction FunctionValue + var checkFunction FunctionValue + + storageValue.ComputeField = func(name string, inter *Interpreter, locationRange LocationRange) Value { switch name { case sema.Account_StorageTypePublicPathsFieldName: return inter.publicAccountPaths(address, locationRange) @@ -58,6 +79,7 @@ func NewAccountStorageValue( case sema.Account_StorageTypeForEachPublicFunctionName: if forEachPublicFunction == nil { forEachPublicFunction = inter.newStorageIterationFunction( + storageValue, sema.Account_StorageTypeForEachPublicFunctionType, address, common.PathDomainPublic, @@ -69,6 +91,7 @@ func NewAccountStorageValue( case sema.Account_StorageTypeForEachStoredFunctionName: if forEachStoredFunction == nil { forEachStoredFunction = inter.newStorageIterationFunction( + storageValue, sema.Account_StorageTypeForEachStoredFunctionType, address, common.PathDomainStorage, @@ -85,37 +108,37 @@ func NewAccountStorageValue( case sema.Account_StorageTypeTypeFunctionName: if typeFunction == nil { - typeFunction = inter.authAccountTypeFunction(address) + typeFunction = inter.authAccountTypeFunction(storageValue, address) } return typeFunction case sema.Account_StorageTypeLoadFunctionName: if loadFunction == nil { - loadFunction = inter.authAccountLoadFunction(address) + loadFunction = inter.authAccountLoadFunction(storageValue, address) } return loadFunction case sema.Account_StorageTypeCopyFunctionName: if copyFunction == nil { - copyFunction = inter.authAccountCopyFunction(address) + copyFunction = inter.authAccountCopyFunction(storageValue, address) } return copyFunction case sema.Account_StorageTypeSaveFunctionName: if saveFunction == nil { - saveFunction = inter.authAccountSaveFunction(address) + saveFunction = inter.authAccountSaveFunction(storageValue, address) } return saveFunction case sema.Account_StorageTypeBorrowFunctionName: if borrowFunction == nil { - borrowFunction = inter.authAccountBorrowFunction(address) + borrowFunction = inter.authAccountBorrowFunction(storageValue, address) } return borrowFunction case sema.Account_StorageTypeCheckFunctionName: if checkFunction == nil { - checkFunction = inter.authAccountCheckFunction(address) + checkFunction = inter.authAccountCheckFunction(storageValue, address) } return checkFunction } @@ -123,24 +146,5 @@ func NewAccountStorageValue( return nil } - var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { - if str == "" { - common.UseMemory(memoryGauge, common.AccountStorageStringMemoryUsage) - addressStr := address.MeteredString(memoryGauge, seenReferences) - str = fmt.Sprintf("Account.Storage(%s)", addressStr) - } - return str - } - - return NewSimpleCompositeValue( - gauge, - account_StorageTypeID, - account_StorageStaticType, - nil, - nil, - computeField, - nil, - stringer, - ) + return storageValue } diff --git a/runtime/interpreter/value_account_storagecapabilities.go b/runtime/interpreter/value_account_storagecapabilities.go index 821a146506..ba779cd5ad 100644 --- a/runtime/interpreter/value_account_storagecapabilities.go +++ b/runtime/interpreter/value_account_storagecapabilities.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,37 +34,41 @@ var account_StorageCapabilitiesFieldNames []string = nil func NewAccountStorageCapabilitiesValue( gauge common.MemoryGauge, address AddressValue, - getControllerFunction FunctionValue, - getControllersFunction FunctionValue, - forEachControllerFunction FunctionValue, - issueFunction FunctionValue, + getControllerFunction BoundFunctionGenerator, + getControllersFunction BoundFunctionGenerator, + forEachControllerFunction BoundFunctionGenerator, + issueFunction BoundFunctionGenerator, + issueWithTypeFunction BoundFunctionGenerator, ) Value { - fields := map[string]Value{ - sema.Account_StorageCapabilitiesTypeGetControllerFunctionName: getControllerFunction, - sema.Account_StorageCapabilitiesTypeGetControllersFunctionName: getControllersFunction, - sema.Account_StorageCapabilitiesTypeForEachControllerFunctionName: forEachControllerFunction, - sema.Account_StorageCapabilitiesTypeIssueFunctionName: issueFunction, - } - var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if str == "" { - common.UseMemory(memoryGauge, common.AccountStorageCapabilitiesStringMemoryUsage) - addressStr := address.MeteredString(memoryGauge, seenReferences) + common.UseMemory(interpreter, common.AccountStorageCapabilitiesStringMemoryUsage) + addressStr := address.MeteredString(interpreter, seenReferences, locationRange) str = fmt.Sprintf("Account.StorageCapabilities(%s)", addressStr) } return str } - return NewSimpleCompositeValue( + storageCapabilities := NewSimpleCompositeValue( gauge, account_StorageCapabilitiesTypeID, account_StorageCapabilitiesStaticType, account_StorageCapabilitiesFieldNames, - fields, + nil, nil, nil, stringer, ) + + storageCapabilities.Fields = map[string]Value{ + sema.Account_StorageCapabilitiesTypeGetControllerFunctionName: getControllerFunction(storageCapabilities), + sema.Account_StorageCapabilitiesTypeGetControllersFunctionName: getControllersFunction(storageCapabilities), + sema.Account_StorageCapabilitiesTypeForEachControllerFunctionName: forEachControllerFunction(storageCapabilities), + sema.Account_StorageCapabilitiesTypeIssueFunctionName: issueFunction(storageCapabilities), + sema.Account_StorageCapabilitiesTypeIssueWithTypeFunctionName: issueWithTypeFunction(storageCapabilities), + } + + return storageCapabilities } diff --git a/runtime/interpreter/value_accountcapabilitycontroller.go b/runtime/interpreter/value_accountcapabilitycontroller.go index e281573292..f615a0e4a9 100644 --- a/runtime/interpreter/value_accountcapabilitycontroller.go +++ b/runtime/interpreter/value_accountcapabilitycontroller.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,7 +45,7 @@ type AccountCapabilityControllerValue struct { // Tags are not stored directly inside the controller // to avoid unnecessary storage reads // when the controller is loaded for borrowing/checking - GetCapability func(inter *Interpreter) *CapabilityValue + GetCapability func(inter *Interpreter) *IDCapabilityValue GetTag func(inter *Interpreter) *StringValue SetTag func(inter *Interpreter, tag *StringValue) Delete func(inter *Interpreter, locationRange LocationRange) @@ -88,11 +88,11 @@ func (v *AccountCapabilityControllerValue) CapabilityControllerBorrowType() *Ref return v.BorrowType } -func (v *AccountCapabilityControllerValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *AccountCapabilityControllerValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitAccountCapabilityControllerValue(interpreter, v) } -func (v *AccountCapabilityControllerValue) Walk(_ *Interpreter, walkChild func(Value)) { +func (v *AccountCapabilityControllerValue) Walk(_ *Interpreter, walkChild func(Value), _ LocationRange) { walkChild(v.CapabilityID) } @@ -100,7 +100,7 @@ func (v *AccountCapabilityControllerValue) StaticType(_ *Interpreter) StaticType return PrimitiveStaticTypeAccountCapabilityController } -func (*AccountCapabilityControllerValue) IsImportable(_ *Interpreter) bool { +func (*AccountCapabilityControllerValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -116,14 +116,15 @@ func (v *AccountCapabilityControllerValue) RecursiveString(seenReferences SeenRe } func (v *AccountCapabilityControllerValue) MeteredString( - memoryGauge common.MemoryGauge, + interpreter *Interpreter, seenReferences SeenReferences, + locationRange LocationRange, ) string { - common.UseMemory(memoryGauge, common.AccountCapabilityControllerValueStringMemoryUsage) + common.UseMemory(interpreter, common.AccountCapabilityControllerValueStringMemoryUsage) return format.AccountCapabilityController( - v.BorrowType.MeteredString(memoryGauge), - v.CapabilityID.MeteredString(memoryGauge, seenReferences), + v.BorrowType.MeteredString(interpreter), + v.CapabilityID.MeteredString(interpreter, seenReferences, locationRange), ) } @@ -295,10 +296,11 @@ func (v *AccountCapabilityControllerValue) ReferenceValue( interpreter *Interpreter, capabilityAddress common.Address, resultBorrowType *sema.ReferenceType, + locationRange LocationRange, ) ReferenceValue { config := interpreter.SharedState.Config - account := config.AccountHandler(AddressValue(capabilityAddress)) + account := config.AccountHandler(interpreter, AddressValue(capabilityAddress)) // Account must be of `Account` type. interpreter.ExpectType( @@ -316,6 +318,7 @@ func (v *AccountCapabilityControllerValue) ReferenceValue( authorization, account, resultBorrowType.Type, + locationRange, ) } @@ -328,13 +331,14 @@ func (v *AccountCapabilityControllerValue) checkDeleted() { } func (v *AccountCapabilityControllerValue) newHostFunctionValue( - gauge common.MemoryGauge, + inter *Interpreter, funcType *sema.FunctionType, f func(invocation Invocation) Value, ) FunctionValue { return deletionCheckedFunctionValue{ - FunctionValue: NewHostFunctionValue( - gauge, + FunctionValue: NewBoundHostFunctionValue( + inter, + v, funcType, func(invocation Invocation) Value { // NOTE: check if controller is already deleted diff --git a/runtime/interpreter/value_accountkey.go b/runtime/interpreter/value_accountkey.go index 05013dbbf8..015bb2f0d4 100644 --- a/runtime/interpreter/value_accountkey.go +++ b/runtime/interpreter/value_accountkey.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/value_authaccount_keys.go b/runtime/interpreter/value_authaccount_keys.go index 0fd6913b98..964cf063be 100644 --- a/runtime/interpreter/value_authaccount_keys.go +++ b/runtime/interpreter/value_authaccount_keys.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,20 +34,13 @@ var account_KeysStaticType StaticType = PrimitiveStaticTypeAccount_Keys func NewAccountKeysValue( gauge common.MemoryGauge, address AddressValue, - addFunction FunctionValue, - getFunction FunctionValue, - revokeFunction FunctionValue, - forEachFunction FunctionValue, + addFunction BoundFunctionGenerator, + getFunction BoundFunctionGenerator, + revokeFunction BoundFunctionGenerator, + forEachFunction BoundFunctionGenerator, getKeysCount AccountKeysCountGetter, ) Value { - fields := map[string]Value{ - sema.Account_KeysTypeAddFunctionName: addFunction, - sema.Account_KeysTypeGetFunctionName: getFunction, - sema.Account_KeysTypeRevokeFunctionName: revokeFunction, - sema.Account_KeysTypeForEachFunctionName: forEachFunction, - } - computeField := func(name string, _ *Interpreter, _ LocationRange) Value { switch name { case sema.Account_KeysTypeCountFieldName: @@ -57,25 +50,34 @@ func NewAccountKeysValue( } var str string - stringer := func(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { + stringer := func(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { if str == "" { - common.UseMemory(memoryGauge, common.AccountKeysStringMemoryUsage) - addressStr := address.MeteredString(memoryGauge, seenReferences) + common.UseMemory(interpreter, common.AccountKeysStringMemoryUsage) + addressStr := address.MeteredString(interpreter, seenReferences, locationRange) str = fmt.Sprintf("Account.Keys(%s)", addressStr) } return str } - return NewSimpleCompositeValue( + accountKeys := NewSimpleCompositeValue( gauge, account_KeysTypeID, account_KeysStaticType, nil, - fields, + nil, computeField, nil, stringer, ) + + accountKeys.Fields = map[string]Value{ + sema.Account_KeysTypeAddFunctionName: addFunction(accountKeys), + sema.Account_KeysTypeGetFunctionName: getFunction(accountKeys), + sema.Account_KeysTypeRevokeFunctionName: revokeFunction(accountKeys), + sema.Account_KeysTypeForEachFunctionName: forEachFunction(accountKeys), + } + + return accountKeys } type AccountKeysCountGetter func() UInt64Value diff --git a/runtime/interpreter/value_block.go b/runtime/interpreter/value_block.go index 39f7e9201c..0d717b89e0 100644 --- a/runtime/interpreter/value_block.go +++ b/runtime/interpreter/value_block.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/value_capability.go b/runtime/interpreter/value_capability.go index c9b20326c7..40c57b47e8 100644 --- a/runtime/interpreter/value_capability.go +++ b/runtime/interpreter/value_capability.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,9 +27,21 @@ import ( "github.com/onflow/cadence/runtime/sema" ) +const InvalidCapabilityID UInt64Value = 0 + // CapabilityValue -type CapabilityValue struct { +// TODO: remove once migration to Cadence 1.0 / ID capabilities is complete +type CapabilityValue interface { + EquatableValue + MemberAccessibleValue + atree.Storable + isCapabilityValue() +} + +// IDCapabilityValue + +type IDCapabilityValue struct { BorrowType StaticType Address AddressValue ID UInt64Value @@ -39,8 +51,8 @@ func NewUnmeteredCapabilityValue( id UInt64Value, address AddressValue, borrowType StaticType, -) *CapabilityValue { - return &CapabilityValue{ +) *IDCapabilityValue { + return &IDCapabilityValue{ ID: id, Address: address, BorrowType: borrowType, @@ -52,44 +64,65 @@ func NewCapabilityValue( id UInt64Value, address AddressValue, borrowType StaticType, -) *CapabilityValue { +) *IDCapabilityValue { // Constant because its constituents are already metered. common.UseMemory(memoryGauge, common.CapabilityValueMemoryUsage) return NewUnmeteredCapabilityValue(id, address, borrowType) } -var _ Value = &CapabilityValue{} -var _ atree.Storable = &CapabilityValue{} -var _ EquatableValue = &CapabilityValue{} -var _ MemberAccessibleValue = &CapabilityValue{} +func NewInvalidCapabilityValue( + memoryGauge common.MemoryGauge, + address AddressValue, + borrowType StaticType, +) *IDCapabilityValue { + // Constant because its constituents are already metered. + common.UseMemory(memoryGauge, common.CapabilityValueMemoryUsage) + return &IDCapabilityValue{ + ID: InvalidCapabilityID, + Address: address, + BorrowType: borrowType, + } +} -func (*CapabilityValue) isValue() {} +var _ Value = &IDCapabilityValue{} +var _ atree.Storable = &IDCapabilityValue{} +var _ EquatableValue = &IDCapabilityValue{} +var _ MemberAccessibleValue = &IDCapabilityValue{} +var _ CapabilityValue = &IDCapabilityValue{} + +func (*IDCapabilityValue) isValue() {} + +func (*IDCapabilityValue) isCapabilityValue() {} + +func (v *IDCapabilityValue) isInvalid() bool { + return v.ID == InvalidCapabilityID +} -func (v *CapabilityValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *IDCapabilityValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitCapabilityValue(interpreter, v) } -func (v *CapabilityValue) Walk(_ *Interpreter, walkChild func(Value)) { +func (v *IDCapabilityValue) Walk(_ *Interpreter, walkChild func(Value), _ LocationRange) { walkChild(v.ID) walkChild(v.Address) } -func (v *CapabilityValue) StaticType(inter *Interpreter) StaticType { +func (v *IDCapabilityValue) StaticType(inter *Interpreter) StaticType { return NewCapabilityStaticType( inter, v.BorrowType, ) } -func (v *CapabilityValue) IsImportable(_ *Interpreter) bool { +func (v *IDCapabilityValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } -func (v *CapabilityValue) String() string { +func (v *IDCapabilityValue) String() string { return v.RecursiveString(SeenReferences{}) } -func (v *CapabilityValue) RecursiveString(seenReferences SeenReferences) string { +func (v *IDCapabilityValue) RecursiveString(seenReferences SeenReferences) string { return format.Capability( v.BorrowType.String(), v.Address.RecursiveString(seenReferences), @@ -97,27 +130,27 @@ func (v *CapabilityValue) RecursiveString(seenReferences SeenReferences) string ) } -func (v *CapabilityValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { - common.UseMemory(memoryGauge, common.CapabilityValueStringMemoryUsage) +func (v *IDCapabilityValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.IDCapabilityValueStringMemoryUsage) return format.Capability( - v.BorrowType.MeteredString(memoryGauge), - v.Address.MeteredString(memoryGauge, seenReferences), - v.ID.MeteredString(memoryGauge, seenReferences), + v.BorrowType.MeteredString(interpreter), + v.Address.MeteredString(interpreter, seenReferences, locationRange), + v.ID.MeteredString(interpreter, seenReferences, locationRange), ) } -func (v *CapabilityValue) GetMember(interpreter *Interpreter, _ LocationRange, name string) Value { +func (v *IDCapabilityValue) GetMember(interpreter *Interpreter, _ LocationRange, name string) Value { switch name { case sema.CapabilityTypeBorrowFunctionName: // this function will panic already if this conversion fails borrowType, _ := interpreter.MustConvertStaticToSemaType(v.BorrowType).(*sema.ReferenceType) - return interpreter.capabilityBorrowFunction(v.Address, v.ID, borrowType) + return interpreter.capabilityBorrowFunction(v, v.Address, v.ID, borrowType) case sema.CapabilityTypeCheckFunctionName: // this function will panic already if this conversion fails borrowType, _ := interpreter.MustConvertStaticToSemaType(v.BorrowType).(*sema.ReferenceType) - return interpreter.capabilityCheckFunction(v.Address, v.ID, borrowType) + return interpreter.capabilityCheckFunction(v, v.Address, v.ID, borrowType) case sema.CapabilityTypeAddressFieldName: return v.Address @@ -129,17 +162,17 @@ func (v *CapabilityValue) GetMember(interpreter *Interpreter, _ LocationRange, n return nil } -func (*CapabilityValue) RemoveMember(_ *Interpreter, _ LocationRange, _ string) Value { +func (*IDCapabilityValue) RemoveMember(_ *Interpreter, _ LocationRange, _ string) Value { // Capabilities have no removable members (fields / functions) panic(errors.NewUnreachableError()) } -func (*CapabilityValue) SetMember(_ *Interpreter, _ LocationRange, _ string, _ Value) bool { +func (*IDCapabilityValue) SetMember(_ *Interpreter, _ LocationRange, _ string, _ Value) bool { // Capabilities have no settable members (fields / functions) panic(errors.NewUnreachableError()) } -func (v *CapabilityValue) ConformsToStaticType( +func (v *IDCapabilityValue) ConformsToStaticType( _ *Interpreter, _ LocationRange, _ TypeConformanceResults, @@ -147,8 +180,8 @@ func (v *CapabilityValue) ConformsToStaticType( return true } -func (v *CapabilityValue) Equal(interpreter *Interpreter, locationRange LocationRange, other Value) bool { - otherCapability, ok := other.(*CapabilityValue) +func (v *IDCapabilityValue) Equal(interpreter *Interpreter, locationRange LocationRange, other Value) bool { + otherCapability, ok := other.(*IDCapabilityValue) if !ok { return false } @@ -158,11 +191,11 @@ func (v *CapabilityValue) Equal(interpreter *Interpreter, locationRange Location otherCapability.BorrowType.Equal(v.BorrowType) } -func (*CapabilityValue) IsStorable() bool { +func (*IDCapabilityValue) IsStorable() bool { return true } -func (v *CapabilityValue) Storable( +func (v *IDCapabilityValue) Storable( storage atree.SlabStorage, address atree.Address, maxInlineSize uint64, @@ -175,15 +208,15 @@ func (v *CapabilityValue) Storable( ) } -func (*CapabilityValue) NeedsStoreTo(_ atree.Address) bool { +func (*IDCapabilityValue) NeedsStoreTo(_ atree.Address) bool { return false } -func (*CapabilityValue) IsResourceKinded(_ *Interpreter) bool { +func (*IDCapabilityValue) IsResourceKinded(_ *Interpreter) bool { return false } -func (v *CapabilityValue) Transfer( +func (v *IDCapabilityValue) Transfer( interpreter *Interpreter, _ LocationRange, _ atree.Address, @@ -198,7 +231,7 @@ func (v *CapabilityValue) Transfer( return v } -func (v *CapabilityValue) Clone(interpreter *Interpreter) Value { +func (v *IDCapabilityValue) Clone(interpreter *Interpreter) Value { return NewUnmeteredCapabilityValue( v.ID, v.Address.Clone(interpreter).(AddressValue), @@ -206,19 +239,19 @@ func (v *CapabilityValue) Clone(interpreter *Interpreter) Value { ) } -func (v *CapabilityValue) DeepRemove(interpreter *Interpreter) { +func (v *IDCapabilityValue) DeepRemove(interpreter *Interpreter) { v.Address.DeepRemove(interpreter) } -func (v *CapabilityValue) ByteSize() uint32 { +func (v *IDCapabilityValue) ByteSize() uint32 { return mustStorableSize(v) } -func (v *CapabilityValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { +func (v *IDCapabilityValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { return v, nil } -func (v *CapabilityValue) ChildStorables() []atree.Storable { +func (v *IDCapabilityValue) ChildStorables() []atree.Storable { return []atree.Storable{ v.Address, } diff --git a/runtime/interpreter/value_deployedcontract.go b/runtime/interpreter/value_deployedcontract.go index 745c9fc3bf..4f93ad5eac 100644 --- a/runtime/interpreter/value_deployedcontract.go +++ b/runtime/interpreter/value_deployedcontract.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,31 +39,45 @@ func NewDeployedContractValue( name *StringValue, code *ArrayValue, ) *SimpleCompositeValue { - publicTypesFuncValue := newPublicTypesFunctionValue(inter, address, name) - return NewSimpleCompositeValue( + deployedContract := NewSimpleCompositeValue( inter, sema.DeployedContractType.TypeID, deployedContractStaticType, deployedContractFieldNames, map[string]Value{ - sema.DeployedContractTypeAddressFieldName: address, - sema.DeployedContractTypeNameFieldName: name, - sema.DeployedContractTypeCodeFieldName: code, - sema.DeployedContractTypePublicTypesFunctionName: publicTypesFuncValue, + sema.DeployedContractTypeAddressFieldName: address, + sema.DeployedContractTypeNameFieldName: name, + sema.DeployedContractTypeCodeFieldName: code, }, nil, nil, nil, ) + + publicTypesFuncValue := newPublicTypesFunctionValue( + inter, + deployedContract, + address, + name, + ) + deployedContract.Fields[sema.DeployedContractTypePublicTypesFunctionName] = publicTypesFuncValue + + return deployedContract } -func newPublicTypesFunctionValue(inter *Interpreter, addressValue AddressValue, name *StringValue) FunctionValue { +func newPublicTypesFunctionValue( + inter *Interpreter, + self MemberAccessibleValue, + addressValue AddressValue, + name *StringValue, +) FunctionValue { // public types only need to be computed once per contract var publicTypes *ArrayValue address := addressValue.ToAddress() - return NewHostFunctionValue( + return NewBoundHostFunctionValue( inter, + self, sema.DeployedContractTypePublicTypesFunctionType, func(inv Invocation) Value { if publicTypes == nil { diff --git a/runtime/interpreter/value_deployment_result.go b/runtime/interpreter/value_deployment_result.go index c39f2a25ed..e7adffe538 100644 --- a/runtime/interpreter/value_deployment_result.go +++ b/runtime/interpreter/value_deployment_result.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/value_function.go b/runtime/interpreter/value_function.go index d2a22ae810..d66e3197c9 100644 --- a/runtime/interpreter/value_function.go +++ b/runtime/interpreter/value_function.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -88,18 +88,18 @@ func (f *InterpretedFunctionValue) RecursiveString(_ SeenReferences) string { return f.String() } -func (f *InterpretedFunctionValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { +func (f *InterpretedFunctionValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { // TODO: Meter sema.Type String conversion typeString := f.Type.String() - common.UseMemory(memoryGauge, common.NewRawStringMemoryUsage(8+len(typeString))) + common.UseMemory(interpreter, common.NewRawStringMemoryUsage(8+len(typeString))) return f.String() } -func (f *InterpretedFunctionValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (f *InterpretedFunctionValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitInterpretedFunctionValue(interpreter, f) } -func (f *InterpretedFunctionValue) Walk(_ *Interpreter, _ func(Value)) { +func (f *InterpretedFunctionValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -107,7 +107,7 @@ func (f *InterpretedFunctionValue) StaticType(interpreter *Interpreter) StaticTy return ConvertSemaToStaticType(interpreter, f.Type) } -func (*InterpretedFunctionValue) IsImportable(_ *Interpreter) bool { +func (*InterpretedFunctionValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -173,7 +173,7 @@ type HostFunction func(invocation Invocation) Value type HostFunctionValue struct { Function HostFunction - NestedVariables map[string]*Variable + NestedVariables map[string]Variable Type *sema.FunctionType } @@ -185,12 +185,12 @@ func (f *HostFunctionValue) RecursiveString(_ SeenReferences) string { return f.String() } -func (f *HostFunctionValue) MeteredString(memoryGauge common.MemoryGauge, _ SeenReferences) string { - common.UseMemory(memoryGauge, common.HostFunctionValueStringMemoryUsage) +func (f *HostFunctionValue) MeteredString(interpreter *Interpreter, _ SeenReferences, locationRange LocationRange) string { + common.UseMemory(interpreter, common.HostFunctionValueStringMemoryUsage) return f.String() } -func NewUnmeteredHostFunctionValue( +func NewUnmeteredStaticHostFunctionValue( funcType *sema.FunctionType, function HostFunction, ) *HostFunctionValue { @@ -207,7 +207,10 @@ func NewUnmeteredHostFunctionValue( } } -func NewHostFunctionValue( +// NewStaticHostFunctionValue constructs a host function that is not bounded to any value. +// For constructing a function bound to a value (e.g: a member function), the output of this method +// must be wrapped with a bound-function, or `NewBoundHostFunctionValue` method must be used. +func NewStaticHostFunctionValue( gauge common.MemoryGauge, funcType *sema.FunctionType, function HostFunction, @@ -215,7 +218,7 @@ func NewHostFunctionValue( common.UseMemory(gauge, common.HostFunctionValueMemoryUsage) - return NewUnmeteredHostFunctionValue(funcType, function) + return NewUnmeteredStaticHostFunctionValue(funcType, function) } var _ Value = &HostFunctionValue{} @@ -225,11 +228,11 @@ var _ ContractValue = &HostFunctionValue{} func (*HostFunctionValue) isValue() {} -func (f *HostFunctionValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (f *HostFunctionValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitHostFunctionValue(interpreter, f) } -func (f *HostFunctionValue) Walk(_ *Interpreter, _ func(Value)) { +func (f *HostFunctionValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -237,7 +240,7 @@ func (f *HostFunctionValue) StaticType(interpreter *Interpreter) StaticType { return ConvertSemaToStaticType(interpreter, f.Type) } -func (*HostFunctionValue) IsImportable(_ *Interpreter) bool { +func (*HostFunctionValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -255,10 +258,10 @@ func (f *HostFunctionValue) invoke(invocation Invocation) Value { return f.Function(invocation) } -func (f *HostFunctionValue) GetMember(_ *Interpreter, _ LocationRange, name string) Value { +func (f *HostFunctionValue) GetMember(inter *Interpreter, _ LocationRange, name string) Value { if f.NestedVariables != nil { if variable, ok := f.NestedVariables[name]; ok { - return variable.GetValue() + return variable.GetValue(inter) } } return nil @@ -317,7 +320,7 @@ func (*HostFunctionValue) DeepRemove(_ *Interpreter) { // NO-OP } -func (v *HostFunctionValue) SetNestedVariables(variables map[string]*Variable) { +func (v *HostFunctionValue) SetNestedVariables(variables map[string]Variable) { v.NestedVariables = variables } @@ -325,8 +328,9 @@ func (v *HostFunctionValue) SetNestedVariables(variables map[string]*Variable) { type BoundFunctionValue struct { Function FunctionValue Base *EphemeralReferenceValue - Self *MemberAccessibleValue + Self *Value BoundAuthorization Authorization + selfRef ReferenceValue } var _ Value = BoundFunctionValue{} @@ -335,16 +339,34 @@ var _ FunctionValue = BoundFunctionValue{} func NewBoundFunctionValue( interpreter *Interpreter, function FunctionValue, - self *MemberAccessibleValue, + self *Value, base *EphemeralReferenceValue, boundAuth Authorization, ) BoundFunctionValue { + // If the function is already a bound function, then do not re-wrap. + if boundFunc, isBoundFunc := function.(BoundFunctionValue); isBoundFunc { + return boundFunc + } + common.UseMemory(interpreter, common.BoundFunctionValueMemoryUsage) + // Since 'self' work as an implicit reference, create an explicit one and hold it. + // This reference is later used to check the validity of the referenced value/resource. + var selfRef ReferenceValue + if reference, isReference := (*self).(ReferenceValue); isReference { + // For attachments, 'self' is already a reference. + // So no need to create a reference again. + selfRef = reference + } else { + semaType := interpreter.MustSemaTypeOfValue(*self) + selfRef = NewEphemeralReferenceValue(interpreter, boundAuth, *self, semaType, EmptyLocationRange) + } + return BoundFunctionValue{ Function: function, Self: self, + selfRef: selfRef, Base: base, BoundAuthorization: boundAuth, } @@ -360,15 +382,15 @@ func (f BoundFunctionValue) RecursiveString(seenReferences SeenReferences) strin return f.Function.RecursiveString(seenReferences) } -func (f BoundFunctionValue) MeteredString(memoryGauge common.MemoryGauge, seenReferences SeenReferences) string { - return f.Function.MeteredString(memoryGauge, seenReferences) +func (f BoundFunctionValue) MeteredString(interpreter *Interpreter, seenReferences SeenReferences, locationRange LocationRange) string { + return f.Function.MeteredString(interpreter, seenReferences, locationRange) } -func (f BoundFunctionValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (f BoundFunctionValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitBoundFunctionValue(interpreter, f) } -func (f BoundFunctionValue) Walk(_ *Interpreter, _ func(Value)) { +func (f BoundFunctionValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -376,7 +398,7 @@ func (f BoundFunctionValue) StaticType(inter *Interpreter) StaticType { return f.Function.StaticType(inter) } -func (BoundFunctionValue) IsImportable(_ *Interpreter) bool { +func (BoundFunctionValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -387,17 +409,46 @@ func (f BoundFunctionValue) FunctionType() *sema.FunctionType { } func (f BoundFunctionValue) invoke(invocation Invocation) Value { - self := f.Self - invocation.Self = self - if self != nil { - invocation.Interpreter.checkReferencedResourceNotMovedOrDestroyed(*self, invocation.LocationRange) - } - + invocation.Self = f.Self invocation.Base = f.Base invocation.BoundAuthorization = f.BoundAuthorization + + locationRange := invocation.LocationRange + inter := invocation.Interpreter + + // Check if the 'self' is not invalidated. + if storageRef, isStorageRef := f.selfRef.(*StorageReferenceValue); isStorageRef { + inter.checkInvalidatedStorageReference(storageRef, locationRange) + } else { + inter.checkInvalidatedResourceOrResourceReference(f.selfRef, locationRange) + } + return f.Function.invoke(invocation) } +// checkInvalidatedStorageReference checks whether a storage reference is valid, by +// comparing the referenced-value against the cached-referenced-value. +// A storage reference can be invalid for both resources and non-resource values. +func (interpreter *Interpreter) checkInvalidatedStorageReference( + storageRef *StorageReferenceValue, + locationRange LocationRange, +) { + + referencedValue := storageRef.ReferencedValue( + interpreter, + locationRange, + true, + ) + + // `storageRef.ReferencedValue` above already checks for the type validity, if it's not nil. + // If nil, that means the value has been moved out of storage. + if referencedValue == nil { + panic(ReferencedValueChangedError{ + LocationRange: locationRange, + }) + } +} + func (f BoundFunctionValue) ConformsToStaticType( interpreter *Interpreter, locationRange LocationRange, @@ -444,3 +495,43 @@ func (f BoundFunctionValue) Clone(_ *Interpreter) Value { func (BoundFunctionValue) DeepRemove(_ *Interpreter) { // NO-OP } + +// NewBoundHostFunctionValue creates a bound-function value for a host-function. +func NewBoundHostFunctionValue( + interpreter *Interpreter, + self Value, + funcType *sema.FunctionType, + function HostFunction, +) BoundFunctionValue { + + hostFunc := NewStaticHostFunctionValue(interpreter, funcType, function) + + return NewBoundFunctionValue( + interpreter, + hostFunc, + &self, + nil, + nil, + ) +} + +// NewUnmeteredBoundHostFunctionValue creates a bound-function value for a host-function. +func NewUnmeteredBoundHostFunctionValue( + interpreter *Interpreter, + self Value, + funcType *sema.FunctionType, + function HostFunction, +) BoundFunctionValue { + + hostFunc := NewUnmeteredStaticHostFunctionValue(funcType, function) + + return NewBoundFunctionValue( + interpreter, + hostFunc, + &self, + nil, + nil, + ) +} + +type BoundFunctionGenerator func(MemberAccessibleValue) BoundFunctionValue diff --git a/runtime/interpreter/value_function_test.go b/runtime/interpreter/value_function_test.go index ffcfdfddd3..f4b36d1c4b 100644 --- a/runtime/interpreter/value_function_test.go +++ b/runtime/interpreter/value_function_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ func TestFunctionStaticType(t *testing.T) { sema.BoolTypeAnnotation, ) - hostFunctionValue := NewHostFunctionValue( + hostFunctionValue := NewStaticHostFunctionValue( inter, hostFunctionType, hostFunction, @@ -65,6 +65,14 @@ func TestFunctionStaticType(t *testing.T) { inter := newTestInterpreter(t) + inter.SharedState.Config.CompositeTypeHandler = func(location common.Location, typeID TypeID) *sema.CompositeType { + return &sema.CompositeType{ + Location: utils.TestLocation, + Identifier: "foo", + Kind: common.CompositeKindStructure, + } + } + hostFunction := func(_ Invocation) Value { return TrueValue } @@ -75,13 +83,13 @@ func TestFunctionStaticType(t *testing.T) { sema.BoolTypeAnnotation, ) - hostFunctionValue := NewHostFunctionValue( + hostFunctionValue := NewStaticHostFunctionValue( inter, hostFunctionType, hostFunction, ) - compositeValue := NewCompositeValue( + var compositeValue Value = NewCompositeValue( inter, EmptyLocationRange, utils.TestLocation, @@ -91,12 +99,10 @@ func TestFunctionStaticType(t *testing.T) { common.MustBytesToAddress([]byte{0}), ) - var self MemberAccessibleValue = compositeValue - boundFunctionValue := NewBoundFunctionValue( inter, hostFunctionValue, - &self, + &compositeValue, nil, nil, ) diff --git a/runtime/interpreter/value_link.go b/runtime/interpreter/value_link.go new file mode 100644 index 0000000000..29b7500340 --- /dev/null +++ b/runtime/interpreter/value_link.go @@ -0,0 +1,340 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package interpreter + +import ( + "fmt" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime/errors" +) + +// TODO: remove once migrated + +// Deprecated: LinkValue +type LinkValue interface { + Value + isLinkValue() +} + +// Deprecated: PathLinkValue +type PathLinkValue struct { + Type StaticType + TargetPath PathValue +} + +var EmptyPathLinkValue = PathLinkValue{} + +var _ Value = PathLinkValue{} +var _ atree.Value = PathLinkValue{} +var _ EquatableValue = PathLinkValue{} +var _ LinkValue = PathLinkValue{} + +func (PathLinkValue) isValue() {} + +func (PathLinkValue) isLinkValue() {} + +func (v PathLinkValue) Accept(_ *Interpreter, _ Visitor, _ LocationRange) { + panic(errors.NewUnreachableError()) +} + +func (v PathLinkValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { + panic(errors.NewUnreachableError()) +} + +func (v PathLinkValue) StaticType(interpreter *Interpreter) StaticType { + // When iterating over public/private paths, + // the values at these paths are PathLinkValues, + // placed there by the `link` function. + // + // These are loaded as links, however, + // for the purposes of checking their type, + // we treat them as capabilities + return NewCapabilityStaticType(interpreter, v.Type) +} + +func (PathLinkValue) IsImportable(_ *Interpreter, _ LocationRange) bool { + panic(errors.NewUnreachableError()) +} + +func (v PathLinkValue) String() string { + return v.RecursiveString(SeenReferences{}) +} + +func (v PathLinkValue) RecursiveString(seenReferences SeenReferences) string { + return fmt.Sprintf( + "PathLink<%s>(%s)", + v.Type.String(), + v.TargetPath.RecursiveString(seenReferences), + ) +} + +func (v PathLinkValue) MeteredString(_ *Interpreter, _ SeenReferences, _ LocationRange) string { + panic(errors.NewUnreachableError()) +} + +func (v PathLinkValue) ConformsToStaticType( + _ *Interpreter, + _ LocationRange, + _ TypeConformanceResults, +) bool { + panic(errors.NewUnreachableError()) +} + +func (v PathLinkValue) Equal(interpreter *Interpreter, locationRange LocationRange, other Value) bool { + otherLink, ok := other.(PathLinkValue) + if !ok { + return false + } + + return otherLink.TargetPath.Equal(interpreter, locationRange, v.TargetPath) && + otherLink.Type.Equal(v.Type) +} + +func (PathLinkValue) IsStorable() bool { + panic(errors.NewUnreachableError()) +} + +func (v PathLinkValue) Storable(storage atree.SlabStorage, address atree.Address, maxInlineSize uint64) (atree.Storable, error) { + return maybeLargeImmutableStorable(v, storage, address, maxInlineSize) +} + +func (PathLinkValue) NeedsStoreTo(_ atree.Address) bool { + panic(errors.NewUnreachableError()) +} + +func (PathLinkValue) IsResourceKinded(_ *Interpreter) bool { + panic(errors.NewUnreachableError()) +} + +func (v PathLinkValue) Transfer( + interpreter *Interpreter, + _ LocationRange, + _ atree.Address, + remove bool, + storable atree.Storable, + _ map[atree.StorageID]struct{}, +) Value { + if remove { + interpreter.RemoveReferencedSlab(storable) + } + return v +} + +func (v PathLinkValue) Clone(inter *Interpreter) Value { + return PathLinkValue{ + Type: v.Type, + TargetPath: v.TargetPath.Clone(inter).(PathValue), + } +} + +func (PathLinkValue) DeepRemove(_ *Interpreter) { + // NO-OP +} + +func (v PathLinkValue) ByteSize() uint32 { + return mustStorableSize(v) +} + +func (v PathLinkValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { + return v, nil +} + +func (v PathLinkValue) ChildStorables() []atree.Storable { + return []atree.Storable{ + v.TargetPath, + } +} + +// Deprecated: AccountLinkValue +type AccountLinkValue struct{} + +var _ Value = AccountLinkValue{} +var _ atree.Value = AccountLinkValue{} +var _ EquatableValue = AccountLinkValue{} +var _ LinkValue = AccountLinkValue{} + +func (AccountLinkValue) isValue() {} + +func (AccountLinkValue) isLinkValue() {} + +func (v AccountLinkValue) Accept(_ *Interpreter, _ Visitor, _ LocationRange) { + panic(errors.NewUnreachableError()) +} + +func (AccountLinkValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { + panic(errors.NewUnreachableError()) +} + +func (v AccountLinkValue) StaticType(interpreter *Interpreter) StaticType { + // When iterating over public/private paths, + // the values at these paths are AccountLinkValues, + // placed there by the `linkAccount` function. + // + // These are loaded as links, however, + // for the purposes of checking their type, + // we treat them as capabilities + return NewCapabilityStaticType( + interpreter, + NewReferenceStaticType( + interpreter, + FullyEntitledAccountAccess, + PrimitiveStaticTypeAccount, + ), + ) +} + +func (AccountLinkValue) IsImportable(_ *Interpreter, _ LocationRange) bool { + panic(errors.NewUnreachableError()) +} + +func (v AccountLinkValue) String() string { + return "AccountLink()" +} + +func (v AccountLinkValue) RecursiveString(_ SeenReferences) string { + panic(errors.NewUnreachableError()) +} + +func (v AccountLinkValue) MeteredString(_ *Interpreter, _ SeenReferences, _ LocationRange) string { + panic(errors.NewUnreachableError()) +} + +func (v AccountLinkValue) ConformsToStaticType( + _ *Interpreter, + _ LocationRange, + _ TypeConformanceResults, +) bool { + panic(errors.NewUnreachableError()) +} + +func (v AccountLinkValue) Equal(_ *Interpreter, _ LocationRange, other Value) bool { + _, ok := other.(AccountLinkValue) + return ok +} + +func (AccountLinkValue) IsStorable() bool { + panic(errors.NewUnreachableError()) +} + +func (v AccountLinkValue) Storable(storage atree.SlabStorage, address atree.Address, maxInlineSize uint64) (atree.Storable, error) { + return maybeLargeImmutableStorable(v, storage, address, maxInlineSize) +} + +func (AccountLinkValue) NeedsStoreTo(_ atree.Address) bool { + panic(errors.NewUnreachableError()) +} + +func (AccountLinkValue) IsResourceKinded(_ *Interpreter) bool { + panic(errors.NewUnreachableError()) +} + +func (v AccountLinkValue) Transfer( + interpreter *Interpreter, + _ LocationRange, + _ atree.Address, + remove bool, + storable atree.Storable, + _ map[atree.StorageID]struct{}, +) Value { + if remove { + interpreter.RemoveReferencedSlab(storable) + } + return v +} + +func (AccountLinkValue) Clone(_ *Interpreter) Value { + return AccountLinkValue{} +} + +func (AccountLinkValue) DeepRemove(_ *Interpreter) { + // NO-OP +} + +func (v AccountLinkValue) ByteSize() uint32 { + return mustStorableSize(v) +} + +func (v AccountLinkValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { + return v, nil +} + +func (v AccountLinkValue) ChildStorables() []atree.Storable { + return nil +} + +// NOTE: NEVER change, only add/increment; ensure uint64 +const ( + // encodedPathLinkValueTargetPathFieldKey uint64 = 0 + // encodedPathLinkValueTypeFieldKey uint64 = 1 + + // !!! *WARNING* !!! + // + // encodedPathLinkValueLength MUST be updated when new element is added. + // It is used to verify encoded link length during decoding. + encodedPathLinkValueLength = 2 +) + +// Encode encodes PathLinkValue as +// +// cbor.Tag{ +// Number: CBORTagPathLinkValue, +// Content: []any{ +// encodedPathLinkValueTargetPathFieldKey: PathValue(v.TargetPath), +// encodedPathLinkValueTypeFieldKey: StaticType(v.Type), +// }, +// } +func (v PathLinkValue) Encode(e *atree.Encoder) error { + // Encode tag number and array head + err := e.CBOR.EncodeRawBytes([]byte{ + // tag number + 0xd8, CBORTagPathLinkValue, + // array, 2 items follow + 0x82, + }) + if err != nil { + return err + } + // Encode path at array index encodedPathLinkValueTargetPathFieldKey + err = v.TargetPath.Encode(e) + if err != nil { + return err + } + // Encode type at array index encodedPathLinkValueTypeFieldKey + return v.Type.Encode(e.CBOR) +} + +// cborAccountLinkValue represents the CBOR value: +// +// cbor.Tag{ +// Number: CBORTagAccountLinkValue, +// Content: nil +// } +var cborAccountLinkValue = []byte{ + // tag + 0xd8, CBORTagAccountLinkValue, + // null + 0xf6, +} + +// Encode writes a value of type AccountValue to the encoder +func (AccountLinkValue) Encode(e *atree.Encoder) error { + return e.CBOR.EncodeRawBytes(cborAccountLinkValue) +} diff --git a/runtime/interpreter/value_pathcapability.go b/runtime/interpreter/value_pathcapability.go new file mode 100644 index 0000000000..867532c904 --- /dev/null +++ b/runtime/interpreter/value_pathcapability.go @@ -0,0 +1,282 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package interpreter + +import ( + "fmt" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" +) + +// TODO: remove once migrated + +// Deprecated: PathCapabilityValue +type PathCapabilityValue struct { + BorrowType StaticType + Path PathValue + Address AddressValue +} + +var _ Value = &PathCapabilityValue{} +var _ atree.Storable = &PathCapabilityValue{} +var _ EquatableValue = &PathCapabilityValue{} +var _ MemberAccessibleValue = &PathCapabilityValue{} +var _ CapabilityValue = &PathCapabilityValue{} + +func (*PathCapabilityValue) isValue() {} + +func (*PathCapabilityValue) isCapabilityValue() {} + +func (v *PathCapabilityValue) Accept(_ *Interpreter, _ Visitor, _ LocationRange) { + panic(errors.NewUnreachableError()) +} + +func (v *PathCapabilityValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { + panic(errors.NewUnreachableError()) +} + +func (v *PathCapabilityValue) StaticType(inter *Interpreter) StaticType { + return NewCapabilityStaticType( + inter, + v.BorrowType, + ) +} + +func (v *PathCapabilityValue) IsImportable(_ *Interpreter, _ LocationRange) bool { + panic(errors.NewUnreachableError()) +} +func (v *PathCapabilityValue) String() string { + return v.RecursiveString(SeenReferences{}) +} + +func (v *PathCapabilityValue) RecursiveString(seenReferences SeenReferences) string { + borrowType := v.BorrowType + if borrowType == nil { + return fmt.Sprintf( + "Capability(address: %s, path: %s)", + v.Address.RecursiveString(seenReferences), + v.Path.RecursiveString(seenReferences), + ) + } else { + return fmt.Sprintf( + "Capability<%s>(address: %s, path: %s)", + borrowType.String(), + v.Address.RecursiveString(seenReferences), + v.Path.RecursiveString(seenReferences), + ) + } +} + +func (v *PathCapabilityValue) MeteredString( + interpreter *Interpreter, + seenReferences SeenReferences, + locationRange LocationRange, +) string { + common.UseMemory(interpreter, common.PathCapabilityValueStringMemoryUsage) + + borrowType := v.BorrowType + if borrowType == nil { + return fmt.Sprintf( + "Capability(address: %s, path: %s)", + v.Address.MeteredString(interpreter, seenReferences, locationRange), + v.Path.MeteredString(interpreter, seenReferences, locationRange), + ) + } else { + return fmt.Sprintf( + "Capability<%s>(address: %s, path: %s)", + borrowType.String(), + v.Address.MeteredString(interpreter, seenReferences, locationRange), + v.Path.MeteredString(interpreter, seenReferences, locationRange), + ) + } +} + +func (v *PathCapabilityValue) GetMember(_ *Interpreter, _ LocationRange, _ string) Value { + panic(errors.NewUnreachableError()) +} + +func (*PathCapabilityValue) RemoveMember(_ *Interpreter, _ LocationRange, _ string) Value { + panic(errors.NewUnreachableError()) +} + +func (*PathCapabilityValue) SetMember(_ *Interpreter, _ LocationRange, _ string, _ Value) bool { + panic(errors.NewUnreachableError()) +} + +func (v *PathCapabilityValue) ConformsToStaticType( + _ *Interpreter, + _ LocationRange, + _ TypeConformanceResults, +) bool { + panic(errors.NewUnreachableError()) +} + +func (v *PathCapabilityValue) Equal(interpreter *Interpreter, locationRange LocationRange, other Value) bool { + otherCapability, ok := other.(*PathCapabilityValue) + if !ok { + return false + } + + // BorrowType is optional + + if v.BorrowType == nil { + if otherCapability.BorrowType != nil { + return false + } + } else if !v.BorrowType.Equal(otherCapability.BorrowType) { + return false + } + + return otherCapability.Address.Equal(interpreter, locationRange, v.Address) && + otherCapability.Path.Equal(interpreter, locationRange, v.Path) +} + +func (*PathCapabilityValue) IsStorable() bool { + panic(errors.NewUnreachableError()) +} + +func (v *PathCapabilityValue) Storable( + storage atree.SlabStorage, + address atree.Address, + maxInlineSize uint64, +) (atree.Storable, error) { + return maybeLargeImmutableStorable( + v, + storage, + address, + maxInlineSize, + ) +} + +func (*PathCapabilityValue) NeedsStoreTo(_ atree.Address) bool { + return false +} + +func (*PathCapabilityValue) IsResourceKinded(_ *Interpreter) bool { + return false +} + +func (v *PathCapabilityValue) Transfer( + interpreter *Interpreter, + _ LocationRange, + _ atree.Address, + remove bool, + storable atree.Storable, + _ map[atree.StorageID]struct{}, +) Value { + if remove { + v.DeepRemove(interpreter) + interpreter.RemoveReferencedSlab(storable) + } + return v +} + +func (v *PathCapabilityValue) Clone(interpreter *Interpreter) Value { + return &PathCapabilityValue{ + BorrowType: v.BorrowType, + Path: v.Path.Clone(interpreter).(PathValue), + Address: v.Address.Clone(interpreter).(AddressValue), + } +} + +func (v *PathCapabilityValue) DeepRemove(interpreter *Interpreter) { + v.Address.DeepRemove(interpreter) + v.Path.DeepRemove(interpreter) +} + +func (v *PathCapabilityValue) ByteSize() uint32 { + return mustStorableSize(v) +} + +func (v *PathCapabilityValue) StoredValue(_ atree.SlabStorage) (atree.Value, error) { + return v, nil +} + +func (v *PathCapabilityValue) ChildStorables() []atree.Storable { + return []atree.Storable{ + v.Address, + v.Path, + } +} + +func (v *PathCapabilityValue) AddressPath() AddressPath { + return AddressPath{ + Address: common.Address(v.Address), + Path: v.Path, + } +} + +// NOTE: NEVER change, only add/increment; ensure uint64 +const ( + // encodedPathCapabilityValueAddressFieldKey uint64 = 0 + // encodedPathCapabilityValuePathFieldKey uint64 = 1 + // encodedPathCapabilityValueBorrowTypeFieldKey uint64 = 2 + + // !!! *WARNING* !!! + // + // encodedPathCapabilityValueLength MUST be updated when new element is added. + // It is used to verify encoded capability length during decoding. + encodedPathCapabilityValueLength = 3 +) + +// Encode encodes PathCapabilityValue as +// +// cbor.Tag{ +// Number: CBORTagPathCapabilityValue, +// Content: []any{ +// encodedPathCapabilityValueAddressFieldKey: AddressValue(v.Address), +// encodedPathCapabilityValuePathFieldKey: PathValue(v.Path), +// encodedPathCapabilityValueBorrowTypeFieldKey: StaticType(v.BorrowType), +// }, +// } +func (v *PathCapabilityValue) Encode(e *atree.Encoder) error { + // Encode tag number and array head + err := e.CBOR.EncodeRawBytes([]byte{ + // tag number + 0xd8, CBORTagPathCapabilityValue, + // array, 3 items follow + 0x83, + }) + if err != nil { + return err + } + + // Encode address at array index encodedPathCapabilityValueAddressFieldKey + err = v.Address.Encode(e) + if err != nil { + return err + } + + // Encode path at array index encodedPathCapabilityValuePathFieldKey + err = v.Path.Encode(e) + if err != nil { + return err + } + + // Encode borrow type at array index encodedPathCapabilityValueBorrowTypeFieldKey + + if v.BorrowType == nil { + return e.CBOR.EncodeNil() + } else { + return v.BorrowType.Encode(e.CBOR) + } +} diff --git a/runtime/interpreter/value_placeholder.go b/runtime/interpreter/value_placeholder.go index 6cc6184852..7706f99776 100644 --- a/runtime/interpreter/value_placeholder.go +++ b/runtime/interpreter/value_placeholder.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,8 +20,6 @@ package interpreter import ( "github.com/onflow/atree" - - "github.com/onflow/cadence/runtime/common" ) // placeholderValue @@ -41,15 +39,15 @@ func (f placeholderValue) RecursiveString(_ SeenReferences) string { return "" } -func (f placeholderValue) MeteredString(_ common.MemoryGauge, _ SeenReferences) string { +func (f placeholderValue) MeteredString(_ *Interpreter, _ SeenReferences, _ LocationRange) string { return "" } -func (f placeholderValue) Accept(_ *Interpreter, _ Visitor) { +func (f placeholderValue) Accept(_ *Interpreter, _ Visitor, _ LocationRange) { // NO-OP } -func (f placeholderValue) Walk(_ *Interpreter, _ func(Value)) { +func (f placeholderValue) Walk(_ *Interpreter, _ func(Value), _ LocationRange) { // NO-OP } @@ -57,7 +55,7 @@ func (f placeholderValue) StaticType(_ *Interpreter) StaticType { return PrimitiveStaticTypeNever } -func (placeholderValue) IsImportable(_ *Interpreter) bool { +func (placeholderValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } diff --git a/runtime/interpreter/value_publickey.go b/runtime/interpreter/value_publickey.go index 9193ed3253..da1ed1d40d 100644 --- a/runtime/interpreter/value_publickey.go +++ b/runtime/interpreter/value_publickey.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,8 +19,6 @@ package interpreter import ( - "github.com/onflow/atree" - "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" ) @@ -41,18 +39,19 @@ func NewPublicKeyValue( publicKey *ArrayValue, signAlgo Value, validatePublicKey PublicKeyValidationHandlerFunc, - publicKeyVerifySignatureFunction FunctionValue, - publicKeyVerifyPoPFunction FunctionValue, ) *CompositeValue { fields := []CompositeField{ + { + Name: sema.PublicKeyTypePublicKeyFieldName, + Value: publicKey, + }, { Name: sema.PublicKeyTypeSignAlgoFieldName, Value: signAlgo, }, } - // TODO: refactor to SimpleCompositeValue publicKeyValue := NewCompositeValue( interpreter, locationRange, @@ -63,23 +62,6 @@ func NewPublicKeyValue( common.ZeroAddress, ) - publicKeyValue.ComputedFields = map[string]ComputedField{ - sema.PublicKeyTypePublicKeyFieldName: func(interpreter *Interpreter, locationRange LocationRange) Value { - return publicKey.Transfer( - interpreter, - locationRange, - atree.Address{}, - false, - nil, - nil, - ) - }, - } - publicKeyValue.Functions = map[string]FunctionValue{ - sema.PublicKeyTypeVerifyFunctionName: publicKeyVerifySignatureFunction, - sema.PublicKeyTypeVerifyPoPFunctionName: publicKeyVerifyPoPFunction, - } - err := validatePublicKey(interpreter, locationRange, publicKeyValue) if err != nil { panic(InvalidPublicKeyError{ @@ -89,32 +71,5 @@ func NewPublicKeyValue( }) } - // Public key value to string should include the key even though it is a computed field - publicKeyValue.Stringer = func( - memoryGauge common.MemoryGauge, - publicKeyValue *CompositeValue, - seenReferences SeenReferences, - ) string { - - stringerFields := []CompositeField{ - { - Name: sema.PublicKeyTypePublicKeyFieldName, - Value: publicKey, - }, - { - Name: sema.PublicKeyTypeSignAlgoFieldName, - // TODO: provide proper location range - Value: publicKeyValue.GetField(interpreter, EmptyLocationRange, sema.PublicKeyTypeSignAlgoFieldName), - }, - } - - return formatComposite( - memoryGauge, - string(publicKeyValue.TypeID()), - stringerFields, - seenReferences, - ) - } - return publicKeyValue } diff --git a/runtime/interpreter/value_range.go b/runtime/interpreter/value_range.go new file mode 100644 index 0000000000..267766cfc9 --- /dev/null +++ b/runtime/interpreter/value_range.go @@ -0,0 +1,274 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package interpreter + +import ( + "fmt" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/common/orderedmap" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/sema" +) + +// NewInclusiveRangeValue constructs an InclusiveRange value with the provided start, end with default value of step. +// NOTE: Assumes that the values start and end are of the same static type. +func NewInclusiveRangeValue( + interpreter *Interpreter, + locationRange LocationRange, + start IntegerValue, + end IntegerValue, + rangeStaticType InclusiveRangeStaticType, + rangeSemaType *sema.InclusiveRangeType, +) *CompositeValue { + startComparable, startOk := start.(ComparableValue) + endComparable, endOk := end.(ComparableValue) + if !startOk || !endOk { + panic(errors.NewUnreachableError()) + } + + step := GetSmallIntegerValue(1, rangeStaticType.ElementType) + if startComparable.Greater(interpreter, endComparable, locationRange) { + elemSemaTy := interpreter.MustConvertStaticToSemaType(rangeStaticType.ElementType) + if elemSemaTy.Tag().BelongsTo(sema.UnsignedIntegerTypeTag) { + panic(InclusiveRangeConstructionError{ + LocationRange: locationRange, + Message: fmt.Sprintf( + "step value cannot be negative for unsigned integer type %s", + elemSemaTy, + ), + }) + } + + negatedStep, ok := step.Negate(interpreter, locationRange).(IntegerValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + step = negatedStep + } + + return createInclusiveRange( + interpreter, + locationRange, + start, + end, + step, + rangeStaticType, + rangeSemaType, + ) +} + +// NewInclusiveRangeValue constructs an InclusiveRange value with the provided start, end & step. +// NOTE: Assumes that the values start, end and step are of the same static type. +func NewInclusiveRangeValueWithStep( + interpreter *Interpreter, + locationRange LocationRange, + start IntegerValue, + end IntegerValue, + step IntegerValue, + rangeType InclusiveRangeStaticType, + rangeSemaType *sema.InclusiveRangeType, +) *CompositeValue { + + zeroValue := GetSmallIntegerValue(0, start.StaticType(interpreter)) + + // Validate that the step is non-zero. + if step.Equal(interpreter, locationRange, zeroValue) { + panic(InclusiveRangeConstructionError{ + LocationRange: locationRange, + Message: "step value cannot be zero", + }) + } + + // Validate that the sequence is moving towards the end value. + // If start < end, step must be > 0 + // If start > end, step must be < 0 + // If start == end, step doesn't matter. + if isSequenceMovingAwayFromEnd(interpreter, locationRange, start, end, step, zeroValue) { + + panic(InclusiveRangeConstructionError{ + LocationRange: locationRange, + Message: fmt.Sprintf( + "sequence is moving away from end: %s due to the value of step: %s and start: %s", + end, + step, + start, + ), + }) + } + + return createInclusiveRange( + interpreter, + locationRange, + start, + end, + step, + rangeType, + rangeSemaType, + ) +} + +func createInclusiveRange( + interpreter *Interpreter, + locationRange LocationRange, + start IntegerValue, + end IntegerValue, + step IntegerValue, + rangeType InclusiveRangeStaticType, + rangeSemaType *sema.InclusiveRangeType, +) *CompositeValue { + fields := []CompositeField{ + { + Name: sema.InclusiveRangeTypeStartFieldName, + Value: start, + }, + { + Name: sema.InclusiveRangeTypeEndFieldName, + Value: end, + }, + { + Name: sema.InclusiveRangeTypeStepFieldName, + Value: step, + }, + } + + rangeValue := NewCompositeValueWithStaticType( + interpreter, + locationRange, + nil, + rangeSemaType.QualifiedString(), + common.CompositeKindStructure, + fields, + common.ZeroAddress, + rangeType, + ) + + rangeValue.Functions = orderedmap.New[FunctionOrderedMap](1) + + rangeValue.Functions.Set( + sema.InclusiveRangeTypeContainsFunctionName, + NewBoundHostFunctionValue( + interpreter, + rangeValue, + sema.InclusiveRangeContainsFunctionType( + rangeSemaType.MemberType, + ), + func(invocation Invocation) Value { + needleInteger := convertAndAssertIntegerValue(invocation.Arguments[0]) + + return rangeContains( + rangeValue, + rangeType, + invocation.Interpreter, + invocation.LocationRange, + needleInteger, + ) + }, + ), + ) + + return rangeValue +} + +func rangeContains( + rangeValue *CompositeValue, + rangeType InclusiveRangeStaticType, + interpreter *Interpreter, + locationRange LocationRange, + needleValue IntegerValue, +) BoolValue { + start := getFieldAsIntegerValue(interpreter, rangeValue, locationRange, sema.InclusiveRangeTypeStartFieldName) + end := getFieldAsIntegerValue(interpreter, rangeValue, locationRange, sema.InclusiveRangeTypeEndFieldName) + step := getFieldAsIntegerValue(interpreter, rangeValue, locationRange, sema.InclusiveRangeTypeStepFieldName) + + result := start.Equal(interpreter, locationRange, needleValue) || + end.Equal(interpreter, locationRange, needleValue) + + if result { + return TrueValue + } + + // Exclusive check since we already checked for boundaries above. + if !isNeedleBetweenStartEndExclusive(interpreter, locationRange, needleValue, start, end) { + result = false + } else { + // needle is in between start and end. + // start + k * step should be equal to needle i.e. (needle - start) mod step == 0. + diff, ok := needleValue.Minus(interpreter, start, locationRange).(IntegerValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + zeroValue := GetSmallIntegerValue(0, rangeType.ElementType) + mod := diff.Mod(interpreter, step, locationRange) + result = mod.Equal(interpreter, locationRange, zeroValue) + } + + return AsBoolValue(result) +} + +func getFieldAsIntegerValue( + interpreter *Interpreter, + rangeValue *CompositeValue, + locationRange LocationRange, + name string, +) IntegerValue { + return convertAndAssertIntegerValue( + rangeValue.GetField( + interpreter, + locationRange, + name, + ), + ) +} + +func isNeedleBetweenStartEndExclusive( + interpreter *Interpreter, + locationRange LocationRange, + needleValue IntegerValue, + start IntegerValue, + end IntegerValue, +) bool { + greaterThanStart := needleValue.Greater(interpreter, start, locationRange) + greaterThanEnd := needleValue.Greater(interpreter, end, locationRange) + + // needle is in between start and end values if is greater than one and smaller than the other. + return bool(greaterThanStart) != bool(greaterThanEnd) +} + +func isSequenceMovingAwayFromEnd( + interpreter *Interpreter, + locationRange LocationRange, + start IntegerValue, + end IntegerValue, + step IntegerValue, + zeroValue IntegerValue, +) BoolValue { + return (start.Less(interpreter, end, locationRange) && step.Less(interpreter, zeroValue, locationRange)) || + (start.Greater(interpreter, end, locationRange) && step.Greater(interpreter, zeroValue, locationRange)) +} + +func convertAndAssertIntegerValue(value Value) IntegerValue { + integerValue, ok := value.(IntegerValue) + if !ok { + panic(errors.NewUnreachableError()) + } + return integerValue +} diff --git a/runtime/interpreter/value_storagecapabilitycontroller.go b/runtime/interpreter/value_storagecapabilitycontroller.go index fa80326bfc..9f5c13779a 100644 --- a/runtime/interpreter/value_storagecapabilitycontroller.go +++ b/runtime/interpreter/value_storagecapabilitycontroller.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,6 +35,7 @@ type CapabilityControllerValue interface { interpreter *Interpreter, capabilityAddress common.Address, resultBorrowType *sema.ReferenceType, + locationRange LocationRange, ) ReferenceValue ControllerCapabilityID() UInt64Value } @@ -60,7 +61,7 @@ type StorageCapabilityControllerValue struct { // Tags are not stored directly inside the controller // to avoid unnecessary storage reads // when the controller is loaded for borrowing/checking - GetCapability func(inter *Interpreter) *CapabilityValue + GetCapability func(inter *Interpreter) *IDCapabilityValue GetTag func(inter *Interpreter) *StringValue SetTag func(inter *Interpreter, tag *StringValue) Delete func(inter *Interpreter, locationRange LocationRange) @@ -108,11 +109,11 @@ func (v *StorageCapabilityControllerValue) CapabilityControllerBorrowType() *Ref return v.BorrowType } -func (v *StorageCapabilityControllerValue) Accept(interpreter *Interpreter, visitor Visitor) { +func (v *StorageCapabilityControllerValue) Accept(interpreter *Interpreter, visitor Visitor, _ LocationRange) { visitor.VisitStorageCapabilityControllerValue(interpreter, v) } -func (v *StorageCapabilityControllerValue) Walk(_ *Interpreter, walkChild func(Value)) { +func (v *StorageCapabilityControllerValue) Walk(_ *Interpreter, walkChild func(Value), _ LocationRange) { walkChild(v.TargetPath) walkChild(v.CapabilityID) } @@ -121,7 +122,7 @@ func (v *StorageCapabilityControllerValue) StaticType(_ *Interpreter) StaticType return PrimitiveStaticTypeStorageCapabilityController } -func (*StorageCapabilityControllerValue) IsImportable(_ *Interpreter) bool { +func (*StorageCapabilityControllerValue) IsImportable(_ *Interpreter, _ LocationRange) bool { return false } @@ -132,21 +133,22 @@ func (v *StorageCapabilityControllerValue) String() string { func (v *StorageCapabilityControllerValue) RecursiveString(seenReferences SeenReferences) string { return format.StorageCapabilityController( v.BorrowType.String(), - v.TargetPath.RecursiveString(seenReferences), v.CapabilityID.RecursiveString(seenReferences), + v.TargetPath.RecursiveString(seenReferences), ) } func (v *StorageCapabilityControllerValue) MeteredString( - memoryGauge common.MemoryGauge, + interpreter *Interpreter, seenReferences SeenReferences, + locationRange LocationRange, ) string { - common.UseMemory(memoryGauge, common.StorageCapabilityControllerValueStringMemoryUsage) + common.UseMemory(interpreter, common.StorageCapabilityControllerValueStringMemoryUsage) return format.StorageCapabilityController( - v.BorrowType.MeteredString(memoryGauge), - v.CapabilityID.MeteredString(memoryGauge, seenReferences), - v.TargetPath.MeteredString(memoryGauge, seenReferences), + v.BorrowType.MeteredString(interpreter), + v.CapabilityID.MeteredString(interpreter, seenReferences, locationRange), + v.TargetPath.MeteredString(interpreter, seenReferences, locationRange), ) } @@ -329,6 +331,7 @@ func (v *StorageCapabilityControllerValue) ReferenceValue( interpreter *Interpreter, capabilityAddress common.Address, resultBorrowType *sema.ReferenceType, + _ LocationRange, ) ReferenceValue { authorization := ConvertSemaAccessToStaticAuthorization( interpreter, @@ -352,13 +355,14 @@ func (v *StorageCapabilityControllerValue) checkDeleted() { } func (v *StorageCapabilityControllerValue) newHostFunctionValue( - gauge common.MemoryGauge, + inter *Interpreter, funcType *sema.FunctionType, f func(invocation Invocation) Value, ) FunctionValue { return deletionCheckedFunctionValue{ - FunctionValue: NewHostFunctionValue( - gauge, + FunctionValue: NewBoundHostFunctionValue( + inter, + v, funcType, func(invocation Invocation) Value { // NOTE: check if controller is already deleted diff --git a/runtime/interpreter/value_string.go b/runtime/interpreter/value_string.go index de8f342297..5262730bb5 100644 --- a/runtime/interpreter/value_string.go +++ b/runtime/interpreter/value_string.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -88,20 +88,25 @@ func stringFunctionFromCharacters(invocation Invocation) Value { common.UseMemory(inter, common.NewStringMemoryUsage(0)) var builder strings.Builder - argument.Iterate(inter, func(element Value) (resume bool) { - character := element.(CharacterValue) - // Construct directly instead of using NewStringMemoryUsage to avoid - // having to decrement by 1 due to double counting of empty string. - common.UseMemory(inter, - common.MemoryUsage{ - Kind: common.MemoryKindStringValue, - Amount: uint64(len(character)), - }, - ) - builder.WriteString(string(character)) - - return true - }) + argument.Iterate( + inter, + func(element Value) (resume bool) { + character := element.(CharacterValue) + // Construct directly instead of using NewStringMemoryUsage to avoid + // having to decrement by 1 due to double counting of empty string. + common.UseMemory(inter, + common.MemoryUsage{ + Kind: common.MemoryKindStringValue, + Amount: uint64(len(character.Str)), + }, + ) + builder.WriteString(character.Str) + + return true + }, + false, + invocation.LocationRange, + ) return NewUnmeteredStringValue(builder.String()) } @@ -131,45 +136,55 @@ func stringFunctionJoin(invocation Invocation) Value { var builder strings.Builder first := true - stringArray.Iterate(inter, func(element Value) (resume bool) { - // Add separator - if !first { + stringArray.Iterate( + inter, + func(element Value) (resume bool) { + + // Meter computation for iterating the array. + inter.ReportComputation(common.ComputationKindLoop, 1) + + // Add separator + if !first { + // Construct directly instead of using NewStringMemoryUsage to avoid + // having to decrement by 1 due to double counting of empty string. + common.UseMemory(inter, + common.MemoryUsage{ + Kind: common.MemoryKindStringValue, + Amount: uint64(len(separator.Str)), + }, + ) + builder.WriteString(separator.Str) + } + first = false + + str, ok := element.(*StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + // Construct directly instead of using NewStringMemoryUsage to avoid // having to decrement by 1 due to double counting of empty string. common.UseMemory(inter, common.MemoryUsage{ Kind: common.MemoryKindStringValue, - Amount: uint64(len(separator.Str)), + Amount: uint64(len(str.Str)), }, ) - builder.WriteString(separator.Str) - } - first = false + builder.WriteString(str.Str) - str, ok := element.(*StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - // Construct directly instead of using NewStringMemoryUsage to avoid - // having to decrement by 1 due to double counting of empty string. - common.UseMemory(inter, - common.MemoryUsage{ - Kind: common.MemoryKindStringValue, - Amount: uint64(len(str.Str)), - }, - ) - builder.WriteString(str.Str) - - return true - }) + return true + }, + false, + invocation.LocationRange, + ) return NewUnmeteredStringValue(builder.String()) } // stringFunction is the `String` function. It is stateless, hence it can be re-used across interpreters. +// Type bound functions are static functions. var stringFunction = func() Value { - functionValue := NewUnmeteredHostFunctionValue( + functionValue := NewUnmeteredStaticHostFunctionValue( sema.StringFunctionType, func(invocation Invocation) Value { return EmptyString @@ -178,7 +193,7 @@ var stringFunction = func() Value { addMember := func(name string, value Value) { if functionValue.NestedVariables == nil { - functionValue.NestedVariables = map[string]*Variable{} + functionValue.NestedVariables = map[string]Variable{} } // these variables are not needed to be metered as they are only ever declared once, // and can be considered base interpreter overhead @@ -187,7 +202,7 @@ var stringFunction = func() Value { addMember( sema.StringTypeEncodeHexFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.StringTypeEncodeHexFunctionType, stringFunctionEncodeHex, ), @@ -195,7 +210,7 @@ var stringFunction = func() Value { addMember( sema.StringTypeFromUtf8FunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.StringTypeFromUtf8FunctionType, stringFunctionFromUtf8, ), @@ -203,7 +218,7 @@ var stringFunction = func() Value { addMember( sema.StringTypeFromCharactersFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.StringTypeFromCharactersFunctionType, stringFunctionFromCharacters, ), @@ -211,7 +226,7 @@ var stringFunction = func() Value { addMember( sema.StringTypeJoinFunctionName, - NewUnmeteredHostFunctionValue( + NewUnmeteredStaticHostFunctionValue( sema.StringTypeJoinFunctionType, stringFunctionJoin, ), diff --git a/runtime/interpreter/value_test.go b/runtime/interpreter/value_test.go index 516d4fd950..d2f9937364 100644 --- a/runtime/interpreter/value_test.go +++ b/runtime/interpreter/value_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -891,153 +891,217 @@ func TestStringer(t *testing.T) { t.Parallel() type testCase struct { - value Value + value func(*Interpreter) Value expected string } stringerTests := map[string]testCase{ "UInt": { - value: NewUnmeteredUIntValueFromUint64(10), + value: func(_ *Interpreter) Value { + return NewUnmeteredUIntValueFromUint64(10) + }, expected: "10", }, "UInt8": { - value: NewUnmeteredUInt8Value(8), + value: func(_ *Interpreter) Value { + return NewUnmeteredUInt8Value(8) + }, expected: "8", }, "UInt16": { - value: NewUnmeteredUInt16Value(16), + value: func(_ *Interpreter) Value { + return NewUnmeteredUInt16Value(16) + }, expected: "16", }, "UInt32": { - value: NewUnmeteredUInt32Value(32), + value: func(_ *Interpreter) Value { + return NewUnmeteredUInt32Value(32) + }, expected: "32", }, "UInt64": { - value: NewUnmeteredUInt64Value(64), + value: func(_ *Interpreter) Value { + return NewUnmeteredUInt64Value(64) + }, expected: "64", }, "UInt128": { - value: NewUnmeteredUInt128ValueFromUint64(128), + value: func(_ *Interpreter) Value { + return NewUnmeteredUInt128ValueFromUint64(128) + }, expected: "128", }, "UInt256": { - value: NewUnmeteredUInt256ValueFromUint64(256), + value: func(_ *Interpreter) Value { + return NewUnmeteredUInt256ValueFromUint64(256) + }, expected: "256", }, "Int8": { - value: NewUnmeteredInt8Value(-8), + value: func(_ *Interpreter) Value { + return NewUnmeteredInt8Value(-8) + }, expected: "-8", }, "Int16": { - value: NewUnmeteredInt16Value(-16), + value: func(_ *Interpreter) Value { + return NewUnmeteredInt16Value(-16) + }, expected: "-16", }, "Int32": { - value: NewUnmeteredInt32Value(-32), + value: func(_ *Interpreter) Value { + return NewUnmeteredInt32Value(-32) + }, expected: "-32", }, "Int64": { - value: NewUnmeteredInt64Value(-64), + value: func(_ *Interpreter) Value { + return NewUnmeteredInt64Value(-64) + }, expected: "-64", }, "Int128": { - value: NewUnmeteredInt128ValueFromInt64(-128), + value: func(_ *Interpreter) Value { + return NewUnmeteredInt128ValueFromInt64(-128) + }, expected: "-128", }, "Int256": { - value: NewUnmeteredInt256ValueFromInt64(-256), + value: func(_ *Interpreter) Value { + return NewUnmeteredInt256ValueFromInt64(-256) + }, expected: "-256", }, "Word8": { - value: NewUnmeteredWord8Value(8), + value: func(_ *Interpreter) Value { + return NewUnmeteredWord8Value(8) + }, expected: "8", }, "Word16": { - value: NewUnmeteredWord16Value(16), + value: func(_ *Interpreter) Value { + return NewUnmeteredWord16Value(16) + }, expected: "16", }, "Word32": { - value: NewUnmeteredWord32Value(32), + value: func(_ *Interpreter) Value { + return NewUnmeteredWord32Value(32) + }, expected: "32", }, "Word64": { - value: NewUnmeteredWord64Value(64), + value: func(_ *Interpreter) Value { + return NewUnmeteredWord64Value(64) + }, expected: "64", }, "Word128": { - value: NewUnmeteredWord128ValueFromUint64(128), + value: func(_ *Interpreter) Value { + return NewUnmeteredWord128ValueFromUint64(128) + }, expected: "128", }, "Word256": { - value: NewUnmeteredWord256ValueFromUint64(256), + value: func(_ *Interpreter) Value { + return NewUnmeteredWord256ValueFromUint64(256) + }, expected: "256", }, "UFix64": { - value: NewUnmeteredUFix64ValueWithInteger(64, EmptyLocationRange), + value: func(_ *Interpreter) Value { + return NewUnmeteredUFix64ValueWithInteger(64, EmptyLocationRange) + }, expected: "64.00000000", }, "Fix64": { - value: NewUnmeteredFix64ValueWithInteger(-32, EmptyLocationRange), + value: func(_ *Interpreter) Value { + return NewUnmeteredFix64ValueWithInteger(-32, EmptyLocationRange) + }, expected: "-32.00000000", }, "Void": { - value: Void, + value: func(_ *Interpreter) Value { + return Void + }, expected: "()", }, "true": { - value: TrueValue, + value: func(_ *Interpreter) Value { + return TrueValue + }, expected: "true", }, "false": { - value: FalseValue, + value: func(_ *Interpreter) Value { + return FalseValue + }, expected: "false", }, "some": { - value: NewUnmeteredSomeValueNonCopying(TrueValue), + value: func(_ *Interpreter) Value { + return NewUnmeteredSomeValueNonCopying(TrueValue) + }, expected: "true", }, "nil": { - value: Nil, + value: func(_ *Interpreter) Value { + return Nil + }, expected: "nil", }, "String": { - value: NewUnmeteredStringValue("Flow ridah!"), - expected: "\"Flow ridah!\"", + value: func(_ *Interpreter) Value { + return NewUnmeteredStringValue("Flow ridah!") + }, + expected: `"Flow ridah!"`, + }, + "Character": { + value: func(_ *Interpreter) Value { + return NewUnmeteredCharacterValue("😀") + }, + expected: `"\u{1f600}"`, }, "Array": { - value: NewArrayValue( - newTestInterpreter(t), - EmptyLocationRange, - &VariableSizedStaticType{ - Type: PrimitiveStaticTypeAnyStruct, - }, - common.ZeroAddress, - NewUnmeteredIntValueFromInt64(10), - NewUnmeteredStringValue("TEST"), - ), + value: func(inter *Interpreter) Value { + return NewArrayValue( + inter, + EmptyLocationRange, + &VariableSizedStaticType{ + Type: PrimitiveStaticTypeAnyStruct, + }, + common.ZeroAddress, + NewUnmeteredIntValueFromInt64(10), + NewUnmeteredStringValue("TEST"), + ) + }, expected: "[10, \"TEST\"]", }, "Dictionary": { - value: NewDictionaryValue( - newTestInterpreter(t), - EmptyLocationRange, - &DictionaryStaticType{ - KeyType: PrimitiveStaticTypeString, - ValueType: PrimitiveStaticTypeUInt8, - }, - NewUnmeteredStringValue("a"), NewUnmeteredUInt8Value(42), - NewUnmeteredStringValue("b"), NewUnmeteredUInt8Value(99), - ), + value: func(inter *Interpreter) Value { + return NewDictionaryValue( + inter, + EmptyLocationRange, + &DictionaryStaticType{ + KeyType: PrimitiveStaticTypeString, + ValueType: PrimitiveStaticTypeUInt8, + }, + NewUnmeteredStringValue("a"), NewUnmeteredUInt8Value(42), + NewUnmeteredStringValue("b"), NewUnmeteredUInt8Value(99), + ) + }, expected: `{"b": 99, "a": 42}`, }, "Address": { - value: NewUnmeteredAddressValueFromBytes([]byte{0, 0, 0, 0, 0, 0, 0, 1}), + value: func(_ *Interpreter) Value { + return NewUnmeteredAddressValueFromBytes([]byte{0, 0, 0, 0, 0, 0, 0, 1}) + }, expected: "0x0000000000000001", }, "composite": { - value: func() Value { - inter := newTestInterpreter(t) - + value: func(inter *Interpreter) Value { fields := []CompositeField{ { Name: "y", @@ -1054,12 +1118,11 @@ func TestStringer(t *testing.T) { fields, common.ZeroAddress, ) - }(), + }, expected: "S.test.Foo(y: \"bar\")", }, "composite with custom stringer": { - value: func() Value { - inter := newTestInterpreter(t) + value: func(inter *Interpreter) Value { fields := []CompositeField{ { @@ -1083,31 +1146,67 @@ func TestStringer(t *testing.T) { } return compositeValue - }(), + }, expected: "y --> bar", }, "Path": { - value: NewUnmeteredPathValue( - common.PathDomainStorage, - "foo", - ), + value: func(_ *Interpreter) Value { + return NewUnmeteredPathValue( + common.PathDomainStorage, + "foo", + ) + }, expected: "/storage/foo", }, "Type": { - value: NewUnmeteredTypeValue(PrimitiveStaticTypeInt), + value: func(_ *Interpreter) Value { + return NewUnmeteredTypeValue(PrimitiveStaticTypeInt) + }, expected: "Type()", }, - "ID Capability with borrow type": { - value: NewUnmeteredCapabilityValue( - 6, - NewUnmeteredAddressValueFromBytes([]byte{1, 2, 3, 4, 5}), - PrimitiveStaticTypeInt, - ), - expected: "Capability(address: 0x0000000102030405, id: 6)", + "ID Capability": { + value: func(_ *Interpreter) Value { + return NewUnmeteredCapabilityValue( + 6, + NewUnmeteredAddressValueFromBytes([]byte{1, 2, 3, 4, 5}), + &ReferenceStaticType{ + Authorization: UnauthorizedAccess, + ReferencedType: PrimitiveStaticTypeInt, + }, + ) + }, + expected: "Capability<&Int>(address: 0x0000000102030405, id: 6)", + }, + "Path capability with borrow type": { + value: func(_ *Interpreter) Value { + return &PathCapabilityValue{ //nolint:staticcheck + BorrowType: &ReferenceStaticType{ + Authorization: UnauthorizedAccess, + ReferencedType: PrimitiveStaticTypeInt, + }, + Path: NewUnmeteredPathValue( + common.PathDomainStorage, + "foo", + ), + Address: NewUnmeteredAddressValueFromBytes([]byte{1, 2, 3, 4, 5}), + } + }, + expected: "Capability<&Int>(address: 0x0000000102030405, path: /storage/foo)", + }, + "Path capability without borrow type": { + value: func(_ *Interpreter) Value { + return &PathCapabilityValue{ //nolint:staticcheck + Path: NewUnmeteredPathValue( + common.PathDomainStorage, + "foo", + ), + Address: NewUnmeteredAddressValueFromBytes([]byte{1, 2, 3, 4, 5}), + } + }, + expected: "Capability(address: 0x0000000102030405, path: /storage/foo)", }, "Recursive ephemeral reference (array)": { - value: func() Value { - inter := newTestInterpreter(t) + value: func(inter *Interpreter) Value { array := NewArrayValue( inter, @@ -1118,18 +1217,107 @@ func TestStringer(t *testing.T) { common.ZeroAddress, ) arrayRef := NewUnmeteredEphemeralReferenceValue( + inter, UnauthorizedAccess, array, &sema.VariableSizedType{ Type: sema.AnyStructType, }, + EmptyLocationRange, ) array.Insert(inter, EmptyLocationRange, 0, arrayRef) return array - }(), + }, expected: `[[...]]`, }, + "static host function": { + value: func(_ *Interpreter) Value { + return NewUnmeteredStaticHostFunctionValue( + &sema.FunctionType{ + Parameters: []sema.Parameter{ + { + Label: "foo", + Identifier: "bar", + TypeAnnotation: sema.IntTypeAnnotation, + }, + }, + ReturnTypeAnnotation: sema.StringTypeAnnotation, + }, + func(invocation Invocation) Value { + return NewUnmeteredStringValue("hello") + }, + ) + }, + expected: "fun(foo bar: Int): String", + }, + "bound host function": { + value: func(inter *Interpreter) Value { + self := NewUnmeteredStringValue("self") + + return NewUnmeteredBoundHostFunctionValue( + inter, + self, + &sema.FunctionType{ + Parameters: []sema.Parameter{ + { + Label: "foo", + Identifier: "bar", + TypeAnnotation: sema.IntTypeAnnotation, + }, + }, + ReturnTypeAnnotation: sema.StringTypeAnnotation, + }, + func(invocation Invocation) Value { + return NewUnmeteredStringValue("hello") + }, + ) + }, + expected: "fun(foo bar: Int): String", + }, + "ephemeral reference": { + value: func(inter *Interpreter) Value { + return NewUnmeteredEphemeralReferenceValue( + inter, + UnauthorizedAccess, + NewUnmeteredStringValue("hello"), + &sema.ReferenceType{ + Authorization: sema.UnauthorizedAccess, + Type: sema.StringType, + }, + EmptyLocationRange, + ) + }, + expected: `"hello"`, + }, + "storage capability controller": { + value: func(inter *Interpreter) Value { + return NewUnmeteredStorageCapabilityControllerValue( + &ReferenceStaticType{ + Authorization: UnauthorizedAccess, + ReferencedType: PrimitiveStaticTypeInt, + }, + UInt64Value(42), + NewUnmeteredPathValue( + common.PathDomainStorage, + "foo", + ), + ) + }, + expected: "StorageCapabilityController(borrowType: Type<&Int>(), capabilityID: 42, target: /storage/foo)", + }, + "account capability controller": { + value: func(inter *Interpreter) Value { + return NewUnmeteredAccountCapabilityControllerValue( + &ReferenceStaticType{ + Authorization: UnauthorizedAccess, + ReferencedType: PrimitiveStaticTypeAccount, + }, + UInt64Value(42), + ) + }, + expected: "AccountCapabilityController(borrowType: Type<&Account>(), capabilityID: 42)", + }, } test := func(name string, testCase testCase) { @@ -1138,13 +1326,31 @@ func TestStringer(t *testing.T) { t.Parallel() + inter := newTestInterpreter(t) + + value := testCase.value(inter) assert.Equal(t, testCase.expected, - testCase.value.String(), + value.String(), + ) + + assert.Equal(t, + testCase.expected, + value.MeteredString(inter, SeenReferences{}, EmptyLocationRange), ) }) } + for name, testCase := range stringerTests { + name = fmt.Sprintf("optional %s", name) + innerValue := testCase.value + testCase.value = func(interpreter *Interpreter) Value { + value := innerValue(interpreter) + return NewSomeValueNonCopying(nil, value) + } + stringerTests[name] = testCase + } + for name, testCase := range stringerTests { test(name, testCase) } @@ -1207,7 +1413,7 @@ func TestVisitor(t *testing.T) { common.ZeroAddress, ) - value.Accept(inter, visitor) + value.Accept(inter, visitor, EmptyLocationRange) require.Equal(t, 1, intVisits) require.Equal(t, 1, stringVisits) @@ -3205,8 +3411,6 @@ func TestPublicKeyValue(t *testing.T) { func(interpreter *Interpreter, locationRange LocationRange, publicKey *CompositeValue) error { return nil }, - nil, - nil, ) require.Equal(t, @@ -3261,8 +3465,6 @@ func TestPublicKeyValue(t *testing.T) { func(interpreter *Interpreter, locationRange LocationRange, publicKey *CompositeValue) error { return fakeError }, - nil, - nil, ) }) }) @@ -3494,7 +3696,7 @@ func TestNumberValueIntegerConversion(t *testing.T) { for _, ty := range sema.AllIntegerTypes { // Only test leaf types switch ty { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -3799,7 +4001,7 @@ func TestValue_ConformsToStaticType(t *testing.T) { for _, ty := range sema.AllIntegerTypes { // Only test leaf types switch ty { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -3856,22 +4058,26 @@ func TestValue_ConformsToStaticType(t *testing.T) { t.Parallel() test( - func(*Interpreter) Value { + func(inter *Interpreter) Value { return NewUnmeteredEphemeralReferenceValue( + inter, UnauthorizedAccess, TrueValue, sema.BoolType, + EmptyLocationRange, ) }, true, ) test( - func(*Interpreter) Value { + func(inter *Interpreter) Value { return NewUnmeteredEphemeralReferenceValue( + inter, UnauthorizedAccess, TrueValue, sema.StringType, + EmptyLocationRange, ) }, false, diff --git a/runtime/interpreter/valuedeclaration.go b/runtime/interpreter/valuedeclaration.go index 2349a89bac..c80c1579c7 100644 --- a/runtime/interpreter/valuedeclaration.go +++ b/runtime/interpreter/valuedeclaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/interpreter/variable.go b/runtime/interpreter/variable.go index 6885448f58..bf94d82a1d 100644 --- a/runtime/interpreter/variable.go +++ b/runtime/interpreter/variable.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,14 +18,35 @@ package interpreter -import "github.com/onflow/cadence/runtime/common" +import ( + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" +) -type Variable struct { +type Variable interface { + GetValue(interpreter *Interpreter) Value + SetValue(interpreter *Interpreter, locationRange LocationRange, value Value) + InitializeWithValue(value Value) + InitializeWithGetter(getter func() Value) +} + +type SimpleVariable struct { value Value getter func() Value } -func (v *Variable) GetValue() Value { +var _ Variable = &SimpleVariable{} + +func (v *SimpleVariable) InitializeWithValue(value Value) { + v.getter = nil + v.value = value +} + +func (v *SimpleVariable) InitializeWithGetter(getter func() Value) { + v.getter = getter +} + +func (v *SimpleVariable) GetValue(*Interpreter) Value { if v.getter != nil { v.value = v.getter() v.getter = nil @@ -33,23 +54,70 @@ func (v *Variable) GetValue() Value { return v.value } -func (v *Variable) SetValue(value Value) { +func (v *SimpleVariable) SetValue(interpreter *Interpreter, locationRange LocationRange, value Value) { + existingValue := v.GetValue(interpreter) + if existingValue != nil { + interpreter.checkResourceLoss(existingValue, locationRange) + } v.getter = nil v.value = value } var variableMemoryUsage = common.NewConstantMemoryUsage(common.MemoryKindVariable) -func NewVariableWithValue(gauge common.MemoryGauge, value Value) *Variable { +func NewVariableWithValue(gauge common.MemoryGauge, value Value) Variable { common.UseMemory(gauge, variableMemoryUsage) - return &Variable{ + return &SimpleVariable{ value: value, } } -func NewVariableWithGetter(gauge common.MemoryGauge, getter func() Value) *Variable { +func NewVariableWithGetter(gauge common.MemoryGauge, getter func() Value) Variable { common.UseMemory(gauge, variableMemoryUsage) - return &Variable{ + return &SimpleVariable{ getter: getter, } } + +type SelfVariable struct { + value Value + selfRef ReferenceValue +} + +var _ Variable = &SelfVariable{} + +func NewSelfVariableWithValue(interpreter *Interpreter, value Value, locationRange LocationRange) Variable { + common.UseMemory(interpreter, variableMemoryUsage) + + semaType := interpreter.MustSemaTypeOfValue(value) + + // Create an explicit reference to represent the implicit reference behavior of 'self' value. + // Authorization doesn't matter, we just need a reference to add to tracking. + selfRef := NewEphemeralReferenceValue(interpreter, UnauthorizedAccess, value, semaType, locationRange) + + return &SelfVariable{ + value: value, + selfRef: selfRef, + } +} + +func (v *SelfVariable) InitializeWithValue(Value) { + // self variable cannot re-initialized. + panic(errors.NewUnreachableError()) +} + +func (v *SelfVariable) InitializeWithGetter(func() Value) { + // self variable doesn't have getters. + panic(errors.NewUnreachableError()) +} + +func (v *SelfVariable) GetValue(interpreter *Interpreter) Value { + // TODO: pass proper location range + interpreter.checkInvalidatedResourceOrResourceReference(v.selfRef, EmptyLocationRange) + return v.value +} + +func (v *SelfVariable) SetValue(*Interpreter, LocationRange, Value) { + // self variable cannot be updated. + panic(errors.NewUnreachableError()) +} diff --git a/runtime/interpreter/variable_activations.go b/runtime/interpreter/variable_activations.go index afe4130acc..45ce2ecd6c 100644 --- a/runtime/interpreter/variable_activations.go +++ b/runtime/interpreter/variable_activations.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,9 +20,9 @@ package interpreter import "github.com/onflow/cadence/runtime/activations" -type VariableActivations = activations.Activations[*Variable] +type VariableActivations = activations.Activations[Variable] -type VariableActivation = activations.Activation[*Variable] +type VariableActivation = activations.Activation[Variable] func Declare(a *VariableActivation, declaration ValueDeclaration) { diff --git a/runtime/interpreter/visitor.go b/runtime/interpreter/visitor.go index ffd125917f..821eecf8c5 100644 --- a/runtime/interpreter/visitor.go +++ b/runtime/interpreter/visitor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -56,7 +56,7 @@ type Visitor interface { VisitEphemeralReferenceValue(interpreter *Interpreter, value *EphemeralReferenceValue) VisitAddressValue(interpreter *Interpreter, value AddressValue) VisitPathValue(interpreter *Interpreter, value PathValue) - VisitCapabilityValue(interpreter *Interpreter, value *CapabilityValue) + VisitCapabilityValue(interpreter *Interpreter, value *IDCapabilityValue) VisitPublishedValue(interpreter *Interpreter, value *PublishedValue) VisitInterpretedFunctionValue(interpreter *Interpreter, value *InterpretedFunctionValue) VisitHostFunctionValue(interpreter *Interpreter, value *HostFunctionValue) @@ -103,7 +103,7 @@ type EmptyVisitor struct { EphemeralReferenceValueVisitor func(interpreter *Interpreter, value *EphemeralReferenceValue) AddressValueVisitor func(interpreter *Interpreter, value AddressValue) PathValueVisitor func(interpreter *Interpreter, value PathValue) - CapabilityValueVisitor func(interpreter *Interpreter, value *CapabilityValue) + CapabilityValueVisitor func(interpreter *Interpreter, value *IDCapabilityValue) PublishedValueVisitor func(interpreter *Interpreter, value *PublishedValue) InterpretedFunctionValueVisitor func(interpreter *Interpreter, value *InterpretedFunctionValue) HostFunctionValueVisitor func(interpreter *Interpreter, value *HostFunctionValue) @@ -373,7 +373,7 @@ func (v EmptyVisitor) VisitPathValue(interpreter *Interpreter, value PathValue) v.PathValueVisitor(interpreter, value) } -func (v EmptyVisitor) VisitCapabilityValue(interpreter *Interpreter, value *CapabilityValue) { +func (v EmptyVisitor) VisitCapabilityValue(interpreter *Interpreter, value *IDCapabilityValue) { if v.CapabilityValueVisitor == nil { return } diff --git a/runtime/interpreter/walk.go b/runtime/interpreter/walk.go index 626673e130..cb04262f38 100644 --- a/runtime/interpreter/walk.go +++ b/runtime/interpreter/walk.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,14 +32,23 @@ type ValueWalker interface { // followed by a call of WalkValue(nil) on the returned walker. // // The initial walker may not be nil. -func WalkValue(interpreter *Interpreter, walker ValueWalker, value Value) { +func WalkValue(interpreter *Interpreter, walker ValueWalker, value Value, locationRange LocationRange) { if walker = walker.WalkValue(interpreter, value); walker == nil { return } - value.Walk(interpreter, func(child Value) { - WalkValue(interpreter, walker, child) - }) + value.Walk( + interpreter, + func(child Value) { + WalkValue( + interpreter, + walker, + child, + locationRange, + ) + }, + locationRange, + ) walker.WalkValue(interpreter, nil) } diff --git a/runtime/literal.go b/runtime/literal.go index 06e0e0da87..ad1ad9b3a4 100644 --- a/runtime/literal.go +++ b/runtime/literal.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -118,7 +118,8 @@ func ParseLiteralArgumentList( return result, nil } -func arrayLiteralValue(inter *interpreter.Interpreter, elements []ast.Expression, elementType sema.Type) (cadence.Value, error) { +func arrayLiteralValue(inter *interpreter.Interpreter, elements []ast.Expression, elementType sema.Type) (cadence.Array, error) { + return cadence.NewMeteredArray( inter, len(elements), @@ -135,6 +136,7 @@ func arrayLiteralValue(inter *interpreter.Interpreter, elements []ast.Expression return values, nil }) + } func pathLiteralValue( @@ -154,14 +156,11 @@ func pathLiteralValue( pathIdentifier := pathExpression.Identifier.Identifier pathType, err := sema.CheckPathLiteral( + memoryGauge, pathDomain, pathIdentifier, - func() ast.Range { - return ast.NewRangeFromPositioned(memoryGauge, pathExpression.Domain) - }, - func() ast.Range { - return ast.NewRangeFromPositioned(memoryGauge, pathExpression.Identifier) - }, + pathExpression.Domain, + pathExpression.Identifier, ) if err != nil { return nil, InvalidLiteralError @@ -256,7 +255,7 @@ func convertIntValue( return interpreter.ConvertUInt64(memoryGauge, intValue, interpreter.EmptyLocationRange), nil case sema.UInt128Type: return interpreter.ConvertUInt128(memoryGauge, intValue, interpreter.EmptyLocationRange), nil - case sema.UInt256Type: + case sema.UInt256Type, sema.FixedSizeUnsignedIntegerType: return interpreter.ConvertUInt256(memoryGauge, intValue, interpreter.EmptyLocationRange), nil case sema.Word8Type: @@ -308,14 +307,21 @@ func fixedPointLiteralValue(memoryGauge common.MemoryGauge, expression ast.Expre } func LiteralValue(inter *interpreter.Interpreter, expression ast.Expression, ty sema.Type) (cadence.Value, error) { + switch ty := ty.(type) { case *sema.VariableSizedType: expression, ok := expression.(*ast.ArrayExpression) if !ok { return nil, LiteralExpressionTypeError } - - return arrayLiteralValue(inter, expression.Values, ty.Type) + array, err := arrayLiteralValue(inter, expression.Values, ty.Type) + exported := ExportType(ty, map[sema.TypeID]cadence.Type{}) + arrayType, ok := exported.(cadence.ArrayType) + if !ok { + return nil, LiteralExpressionTypeError + } + arrayCadenceType := cadence.NewMeteredVariableSizedArrayType(inter, arrayType.Element()) + return array.WithType(arrayCadenceType), err case *sema.ConstantSizedType: expression, ok := expression.(*ast.ArrayExpression) @@ -323,7 +329,14 @@ func LiteralValue(inter *interpreter.Interpreter, expression ast.Expression, ty return nil, LiteralExpressionTypeError } - return arrayLiteralValue(inter, expression.Values, ty.Type) + array, err := arrayLiteralValue(inter, expression.Values, ty.Type) + exported := ExportType(ty, map[sema.TypeID]cadence.Type{}) + arrayType := exported.(cadence.ArrayType) + if !ok { + return nil, LiteralExpressionTypeError + } + arrayCadenceType := cadence.NewMeteredConstantSizedArrayType(inter, uint(ty.Size), arrayType.Element()) + return array.WithType(arrayCadenceType), err case *sema.OptionalType: if _, ok := expression.(*ast.NilExpression); ok { @@ -350,7 +363,12 @@ func LiteralValue(inter *interpreter.Interpreter, expression ast.Expression, ty return nil, LiteralExpressionTypeError } - return cadence.NewMeteredDictionary( + exported := ExportType(ty, map[sema.TypeID]cadence.Type{}) + dictionaryType, ok := exported.(*cadence.DictionaryType) + if !ok { + return nil, LiteralExpressionTypeError + } + dictionaryValue, err := cadence.NewMeteredDictionary( inter, len(expression.Entries), func() ([]cadence.KeyValuePair, error) { @@ -374,6 +392,13 @@ func LiteralValue(inter *interpreter.Interpreter, expression ast.Expression, ty }, ) + if err != nil { + return nil, err + } + + dictionaryCadenceType := cadence.NewMeteredDictionaryType(inter, dictionaryType.KeyType, dictionaryType.ElementType) + return dictionaryValue.WithType(dictionaryCadenceType), nil + case *sema.AddressType: expression, ok := expression.(*ast.IntegerExpression) if !ok { diff --git a/runtime/literal_test.go b/runtime/literal_test.go index bea51540d4..c0b727b9a8 100644 --- a/runtime/literal_test.go +++ b/runtime/literal_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -153,7 +153,7 @@ func TestRuntimeParseLiteral(t *testing.T) { ) require.NoError(t, err) require.Equal(t, - cadence.NewArray([]cadence.Value{}), + cadence.NewArray([]cadence.Value{}).WithType(cadence.NewVariableSizedArrayType(cadence.BoolType)), value, ) }) @@ -168,7 +168,7 @@ func TestRuntimeParseLiteral(t *testing.T) { require.Equal(t, cadence.NewArray([]cadence.Value{ cadence.NewBool(true), - }), + }).WithType(cadence.NewVariableSizedArrayType(cadence.BoolType)), value, ) }) @@ -192,22 +192,25 @@ func TestRuntimeParseLiteral(t *testing.T) { ) require.NoError(t, err) require.Equal(t, - cadence.NewArray([]cadence.Value{}), + cadence.NewArray( + []cadence.Value{}, + ).WithType(cadence.NewConstantSizedArrayType(0, cadence.BoolType)), value, ) + }) t.Run("ConstantSizedArray, one element", func(t *testing.T) { value, err := ParseLiteral( `[true]`, - &sema.ConstantSizedType{Type: sema.BoolType}, + &sema.ConstantSizedType{Type: sema.BoolType, Size: 1}, NewTestInterpreter(t), ) require.NoError(t, err) require.Equal(t, cadence.NewArray([]cadence.Value{ cadence.NewBool(true), - }), + }).WithType(cadence.NewConstantSizedArrayType(1, cadence.BoolType)), value, ) }) @@ -234,7 +237,7 @@ func TestRuntimeParseLiteral(t *testing.T) { ) require.NoError(t, err) require.Equal(t, - cadence.NewDictionary([]cadence.KeyValuePair{}), + cadence.NewDictionary([]cadence.KeyValuePair{}).WithType(cadence.NewDictionaryType(cadence.StringType, cadence.BoolType)), value, ) }) @@ -255,7 +258,7 @@ func TestRuntimeParseLiteral(t *testing.T) { Key: cadence.String("hello"), Value: cadence.NewBool(true), }, - }), + }).WithType(cadence.NewDictionaryType(cadence.StringType, cadence.BoolType)), value, ) }) diff --git a/runtime/nft_test.go b/runtime/nft_test.go index d7b912d293..fcaebdc473 100644 --- a/runtime/nft_test.go +++ b/runtime/nft_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -507,10 +507,6 @@ access(all) contract TopShot: NonFungibleToken { emit MomentMinted(momentID: self.id, playID: playID, setID: self.data.setID, serialNumber: self.data.serialNumber) } - - destroy() { - emit MomentDestroyed(id: self.id) - } } // Admin is a special authorization resource that @@ -700,15 +696,6 @@ access(all) contract TopShot: NonFungibleToken { return nil } } - - // If a transaction destroys the Collection object, - // All the NFTs contained within are also destroyed - // Kind of like when Damien Lillard destroys the hopes and - // dreams of the entire city of Houston - // - destroy() { - destroy self.ownedNFTs - } } // ----------------------------------------------------------------------- @@ -1043,12 +1030,6 @@ access(all) contract TopShotShardedCollection { return self.collections[bucket]?.borrowMoment(id: id) ?? nil } - - // If a transaction destroys the Collection object, - // All the NFTs contained within are also destroyed - destroy() { - destroy self.collections - } } // Creates an empty ShardedCollection and returns it to the caller diff --git a/runtime/old_parser/benchmark_test.go b/runtime/old_parser/benchmark_test.go new file mode 100644 index 0000000000..3f7129a5ba --- /dev/null +++ b/runtime/old_parser/benchmark_test.go @@ -0,0 +1,230 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "fmt" + "math" + "math/rand" + "strconv" + "strings" + "testing" + + "github.com/onflow/cadence/runtime/common" +) + +func BenchmarkParseDeploy(b *testing.B) { + + b.Run("byte array", func(b *testing.B) { + + var builder strings.Builder + for i := 0; i < 15000; i++ { + if i > 0 { + builder.WriteString(", ") + } + builder.WriteString(strconv.Itoa(rand.Intn(math.MaxUint8))) + } + + transaction := []byte(fmt.Sprintf(` + transaction { + execute { + AuthAccount(publicKeys: [], code: [%s]) + } + } + `, + builder.String(), + )) + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err := ParseProgram(nil, transaction, Config{}) + if err != nil { + b.FailNow() + } + } + }) + + b.Run("decode hex", func(b *testing.B) { + + var builder strings.Builder + for i := 0; i < 15000; i++ { + builder.WriteString(fmt.Sprintf("%02x", i)) + } + + transaction := []byte(fmt.Sprintf(` + transaction { + execute { + AuthAccount(publicKeys: [], code: "%s".decodeHex()) + } + } + `, + builder.String(), + )) + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err := ParseProgram(nil, transaction, Config{}) + if err != nil { + b.FailNow() + } + } + }) +} + +const fungibleTokenContract = ` +pub contract FungibleToken { + + pub resource interface Provider { + pub fun withdraw(amount: Int): @Vault { + pre { + amount > 0: + "Withdrawal amount must be positive" + } + post { + result.balance == amount: + "Incorrect amount returned" + } + } + } + + pub resource interface Receiver { + pub balance: Int + + init(balance: Int) { + pre { + balance >= 0: + "Initial balance must be non-negative" + } + post { + self.balance == balance: + "Balance must be initialized to the initial balance" + } + } + + pub fun deposit(from: @Receiver) { + pre { + from.balance > 0: + "Deposit balance needs to be positive!" + } + post { + self.balance == before(self.balance) + before(from.balance): + "Incorrect amount removed" + } + } + } + + pub resource Vault: Provider, Receiver { + + pub var balance: Int + + init(balance: Int) { + self.balance = balance + } + + pub fun withdraw(amount: Int): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } + + // transfer combines withdraw and deposit into one function call + pub fun transfer(to: &Receiver, amount: Int) { + pre { + amount <= self.balance: + "Insufficient funds" + } + post { + self.balance == before(self.balance) - amount: + "Incorrect amount removed" + } + to.deposit(from: <-self.withdraw(amount: amount)) + } + + pub fun deposit(from: @Receiver) { + self.balance = self.balance + from.balance + destroy from + } + + pub fun createEmptyVault(): @Vault { + return <-create Vault(balance: 0) + } + } + + pub fun createEmptyVault(): @Vault { + return <-create Vault(balance: 0) + } + + pub resource VaultMinter { + pub fun mintTokens(amount: Int, recipient: &Receiver) { + recipient.deposit(from: <-create Vault(balance: amount)) + } + } + + init() { + let oldVault <- self.account.storage[Vault] <- create Vault(balance: 30) + destroy oldVault + + let oldMinter <- self.account.storage[VaultMinter] <- create VaultMinter() + destroy oldMinter + } +} +` + +type testMemoryGauge struct { + meter map[common.MemoryKind]uint64 +} + +func (g *testMemoryGauge) MeterMemory(usage common.MemoryUsage) error { + g.meter[usage.Kind] += usage.Amount + return nil +} + +func BenchmarkParseFungibleToken(b *testing.B) { + + code := []byte(fungibleTokenContract) + + b.Run("Without memory metering", func(b *testing.B) { + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err := ParseProgram(nil, code, Config{}) + if err != nil { + b.Fatal(err) + } + } + }) + + b.Run("With memory metering", func(b *testing.B) { + meter := &testMemoryGauge{ + meter: make(map[common.MemoryKind]uint64), + } + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, err := ParseProgram(meter, code, Config{}) + if err != nil { + b.Fatal(err) + } + } + }) +} diff --git a/runtime/old_parser/comment.go b/runtime/old_parser/comment.go new file mode 100644 index 0000000000..766abdd135 --- /dev/null +++ b/runtime/old_parser/comment.go @@ -0,0 +1,64 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "github.com/onflow/cadence/runtime/parser/lexer" +) + +func (p *parser) parseBlockComment() (endToken lexer.Token, ok bool) { + var depth int + + for { + switch p.current.Type { + case lexer.TokenBlockCommentStart: + p.next() + depth++ + + case lexer.TokenBlockCommentContent: + p.next() + + case lexer.TokenBlockCommentEnd: + endToken = p.current + // Skip the comment end (`*/`) + p.next() + ok = true + depth-- + if depth == 0 { + return + } + + case lexer.TokenEOF: + p.reportSyntaxError( + "missing comment end %s", + lexer.TokenBlockCommentEnd, + ) + ok = false + return + + default: + p.reportSyntaxError( + "unexpected token %s in block comment", + p.current.Type, + ) + ok = false + return + } + } +} diff --git a/runtime/old_parser/declaration.go b/runtime/old_parser/declaration.go new file mode 100644 index 0000000000..05f92e5d7d --- /dev/null +++ b/runtime/old_parser/declaration.go @@ -0,0 +1,1578 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "encoding/hex" + "strconv" + "strings" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/parser/lexer" +) + +func parseDeclarations(p *parser, endTokenType lexer.TokenType) (declarations []ast.Declaration, err error) { + for { + _, docString := p.parseTrivia(triviaOptions{ + skipNewlines: true, + parseDocStrings: true, + }) + + switch p.current.Type { + case lexer.TokenSemicolon: + // Skip the semicolon + p.next() + continue + + case endTokenType, lexer.TokenEOF: + return + + default: + var declaration ast.Declaration + declaration, err = parseDeclaration(p, docString) + if err != nil { + return + } + + if declaration == nil { + return + } + + declarations = append(declarations, declaration) + } + } +} + +func parseDeclaration(p *parser, docString string) (ast.Declaration, error) { + + access := ast.AccessNotSpecified + var accessPos *ast.Position + + var staticPos *ast.Position + var nativePos *ast.Position + + staticModifierEnabled := p.config.StaticModifierEnabled + nativeModifierEnabled := p.config.NativeModifierEnabled + + for { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenPragma: + err := rejectAllModifiers(p, access, accessPos, staticPos, nativePos, common.DeclarationKindPragma) + if err != nil { + return nil, err + } + return parsePragmaDeclaration(p) + + case lexer.TokenIdentifier: + switch string(p.currentTokenSource()) { + case keywordLet, keywordVar: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindVariable) + if err != nil { + return nil, err + } + return parseVariableDeclaration(p, access, accessPos, docString) + + case keywordFun: + return parseFunctionDeclaration( + p, + false, + access, + accessPos, + staticPos, + nativePos, + docString, + ) + + case keywordImport: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindImport) + if err != nil { + return nil, err + } + return parseImportDeclaration(p) + + case keywordEvent: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindEvent) + if err != nil { + return nil, err + } + return parseEventDeclaration(p, access, accessPos, docString) + + case keywordStruct: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindStructure) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case keywordResource: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindResource) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case keywordAttachment: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindAttachment) + if err != nil { + return nil, err + } + return parseAttachmentDeclaration(p, access, accessPos, docString) + + case keywordContract: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindContract) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case keywordEnum: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindEnum) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case KeywordTransaction: + err := rejectAllModifiers(p, access, accessPos, staticPos, nativePos, common.DeclarationKindTransaction) + if err != nil { + return nil, err + } + return parseTransactionDeclaration(p, docString) + + case keywordPriv, keywordPub, keywordAccess: + if access != ast.AccessNotSpecified { + return nil, p.syntaxError("invalid second access modifier") + } + if staticModifierEnabled && staticPos != nil { + return nil, p.syntaxError("invalid access modifier after static modifier") + } + if nativeModifierEnabled && nativePos != nil { + return nil, p.syntaxError("invalid access modifier after native modifier") + } + pos := p.current.StartPos + accessPos = &pos + var err error + access, err = parseAccess(p) + if err != nil { + return nil, err + } + + continue + + case keywordStatic: + if !staticModifierEnabled { + break + } + + if staticPos != nil { + return nil, p.syntaxError("invalid second static modifier") + } + if nativeModifierEnabled && nativePos != nil { + return nil, p.syntaxError("invalid static modifier after native modifier") + } + pos := p.current.StartPos + staticPos = &pos + p.next() + continue + + case keywordNative: + if !nativeModifierEnabled { + break + } + + if nativePos != nil { + return nil, p.syntaxError("invalid second native modifier") + } + pos := p.current.StartPos + nativePos = &pos + p.next() + continue + } + } + + return nil, nil + } +} + +var enumeratedAccessModifierKeywords = common.EnumerateWords( + []string{ + strconv.Quote(keywordAll), + strconv.Quote(keywordAccount), + strconv.Quote(keywordContract), + strconv.Quote(keywordSelf), + }, + "or", +) + +// parseAccess parses an access modifier +// +// access +// : 'priv' +// | 'pub' ( '(' 'set' ')' )? +// | 'access' '(' ( 'self' | 'contract' | 'account' | 'all' ) ')' +func parseAccess(p *parser) (ast.PrimitiveAccess, error) { + + switch string(p.currentTokenSource()) { + case keywordPriv: + // Skip the `priv` keyword + p.next() + return ast.AccessSelf, nil + + case keywordPub: + // Skip the `pub` keyword + p.nextSemanticToken() + if !p.current.Is(lexer.TokenParenOpen) { + return ast.AccessAll, nil + } + + // Skip the opening paren + p.nextSemanticToken() + + if !p.current.Is(lexer.TokenIdentifier) { + return ast.AccessNotSpecified, p.syntaxError( + "expected keyword %q, got %s", + keywordSet, + p.current.Type, + ) + } + + keyword := p.currentTokenSource() + if string(keyword) != keywordSet { + return ast.AccessNotSpecified, p.syntaxError( + "expected keyword %q, got %q", + keywordSet, + keyword, + ) + } + + // Skip the `set` keyword + p.nextSemanticToken() + + _, err := p.mustOne(lexer.TokenParenClose) + if err != nil { + return ast.AccessNotSpecified, err + } + + return ast.AccessPubSettableLegacy, nil + + case keywordAccess: + // Skip the `access` keyword + p.nextSemanticToken() + + _, err := p.mustOne(lexer.TokenParenOpen) + if err != nil { + return ast.AccessNotSpecified, err + } + + p.skipSpaceAndComments() + + if !p.current.Is(lexer.TokenIdentifier) { + return ast.AccessNotSpecified, p.syntaxError( + "expected keyword %s, got %s", + enumeratedAccessModifierKeywords, + p.current.Type, + ) + } + + var access ast.PrimitiveAccess + + keyword := p.currentTokenSource() + switch string(keyword) { + case keywordAll: + access = ast.AccessAll + + case keywordAccount: + access = ast.AccessAccount + + case keywordContract: + access = ast.AccessContract + + case keywordSelf: + access = ast.AccessSelf + + default: + return ast.AccessNotSpecified, p.syntaxError( + "expected keyword %s, got %q", + enumeratedAccessModifierKeywords, + keyword, + ) + } + + // Skip the keyword + p.nextSemanticToken() + + _, err = p.mustOne(lexer.TokenParenClose) + if err != nil { + return ast.AccessNotSpecified, err + } + + return access, nil + + default: + return ast.AccessNotSpecified, errors.NewUnreachableError() + } +} + +// parseVariableDeclaration parses a variable declaration. +// +// variableKind : 'var' | 'let' +// +// variableDeclaration : +// variableKind identifier ( ':' typeAnnotation )? +// transfer expression +// ( transfer expression )? +func parseVariableDeclaration( + p *parser, + access ast.Access, + accessPos *ast.Position, + docString string, +) (*ast.VariableDeclaration, error) { + + startPos := p.current.StartPos + if accessPos != nil { + startPos = *accessPos + } + + isLet := string(p.currentTokenSource()) == keywordLet + + // Skip the `let` or `var` keyword + p.nextSemanticToken() + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected identifier after start of variable declaration, got %s", + p.current.Type, + ) + } + + identifier := p.tokenToIdentifier(p.current) + + // Skip the identifier + p.nextSemanticToken() + + var typeAnnotation *ast.TypeAnnotation + var err error + + if p.current.Is(lexer.TokenColon) { + // Skip the colon + p.nextSemanticToken() + + typeAnnotation, err = parseTypeAnnotation(p) + if err != nil { + return nil, err + } + } + + p.skipSpaceAndComments() + transfer := parseTransfer(p) + if transfer == nil { + return nil, p.syntaxError("expected transfer") + } + + value, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + secondTransfer := parseTransfer(p) + var secondValue ast.Expression + if secondTransfer != nil { + secondValue, err = parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + } + + variableDeclaration := ast.NewVariableDeclaration( + p.memoryGauge, + access, + isLet, + identifier, + typeAnnotation, + value, + transfer, + startPos, + secondTransfer, + secondValue, + docString, + ) + + castingExpression, leftIsCasting := value.(*ast.CastingExpression) + if leftIsCasting { + castingExpression.ParentVariableDeclaration = variableDeclaration + } + + return variableDeclaration, nil +} + +// parseTransfer parses a transfer. +// +// transfer : '=' | '<-' | '<-!' +func parseTransfer(p *parser) *ast.Transfer { + var operation ast.TransferOperation + + switch p.current.Type { + case lexer.TokenEqual: + operation = ast.TransferOperationCopy + + case lexer.TokenLeftArrow: + operation = ast.TransferOperationMove + + case lexer.TokenLeftArrowExclamation: + operation = ast.TransferOperationMoveForced + } + + if operation == ast.TransferOperationUnknown { + return nil + } + + pos := p.current.StartPos + + p.next() + + return ast.NewTransfer( + p.memoryGauge, + operation, + pos, + ) +} + +func parsePragmaDeclaration(p *parser) (*ast.PragmaDeclaration, error) { + startPos := p.current.StartPosition() + p.next() + + expr, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + return ast.NewPragmaDeclaration( + p.memoryGauge, + expr, + ast.NewRange( + p.memoryGauge, + startPos, + expr.EndPosition(p.memoryGauge), + ), + ), nil +} + +// parseImportDeclaration parses an import declaration +// +// importDeclaration : +// 'import' +// ( identifier (',' identifier)* 'from' )? +// ( string | hexadecimalLiteral | identifier ) +func parseImportDeclaration(p *parser) (*ast.ImportDeclaration, error) { + + startPosition := p.current.StartPos + + var identifiers []ast.Identifier + + var location common.Location + var locationPos ast.Position + var endPos ast.Position + + parseStringOrAddressLocation := func() { + locationPos = p.current.StartPos + endPos = p.current.EndPos + + switch p.current.Type { + case lexer.TokenString: + literal := p.currentTokenSource() + parsedString := parseStringLiteral(p, literal) + location = common.NewStringLocation(p.memoryGauge, parsedString) + + case lexer.TokenHexadecimalIntegerLiteral: + location = parseHexadecimalLocation(p) + + default: + panic(errors.NewUnreachableError()) + } + + // Skip the location + p.next() + } + + setIdentifierLocation := func(identifier ast.Identifier) { + location = common.IdentifierLocation(identifier.Identifier) + locationPos = identifier.Pos + endPos = identifier.EndPosition(p.memoryGauge) + } + + parseLocation := func() error { + switch p.current.Type { + case lexer.TokenString, lexer.TokenHexadecimalIntegerLiteral: + parseStringOrAddressLocation() + + case lexer.TokenIdentifier: + identifier := p.tokenToIdentifier(p.current) + setIdentifierLocation(identifier) + p.next() + + default: + return p.syntaxError( + "unexpected token in import declaration: got %s, expected string, address, or identifier", + p.current.Type, + ) + } + + return nil + } + + parseMoreIdentifiers := func() error { + expectCommaOrFrom := false + + atEnd := false + for !atEnd { + p.nextSemanticToken() + + switch p.current.Type { + case lexer.TokenComma: + if !expectCommaOrFrom { + return p.syntaxError( + "expected %s or keyword %q, got %s", + lexer.TokenIdentifier, + keywordFrom, + p.current.Type, + ) + } + expectCommaOrFrom = false + + case lexer.TokenIdentifier: + + keyword := p.currentTokenSource() + if string(keyword) == keywordFrom { + if expectCommaOrFrom { + atEnd = true + + // Skip the `from` keyword + p.nextSemanticToken() + + err := parseLocation() + if err != nil { + return err + } + + break + } + + if !isNextTokenCommaOrFrom(p) { + return p.syntaxError( + "expected %s, got keyword %q", + lexer.TokenIdentifier, + keyword, + ) + } + + // If the next token is either comma or 'from' token, then fall through + // and process the current 'from' token as an identifier. + } + + identifier := p.tokenToIdentifier(p.current) + identifiers = append(identifiers, identifier) + + expectCommaOrFrom = true + + case lexer.TokenEOF: + return p.syntaxError( + "unexpected end in import declaration: expected %s or %s", + lexer.TokenIdentifier, + lexer.TokenComma, + ) + + default: + return p.syntaxError( + "unexpected token in import declaration: got %s, expected keyword %q or %s", + p.current.Type, + keywordFrom, + lexer.TokenComma, + ) + } + } + + return nil + } + + maybeParseFromIdentifier := func(identifier ast.Identifier) error { + // The current identifier is maybe the `from` keyword, + // in which case the given (previous) identifier was + // an imported identifier and not the import location. + // + // If it is not the `from` keyword, + // the given (previous) identifier is the import location. + + if string(p.currentTokenSource()) == keywordFrom { + identifiers = append(identifiers, identifier) + // Skip the `from` keyword + p.nextSemanticToken() + + err := parseLocation() + if err != nil { + return err + } + } else { + setIdentifierLocation(identifier) + } + + return nil + } + + // Skip the `import` keyword + p.nextSemanticToken() + + switch p.current.Type { + case lexer.TokenString, lexer.TokenHexadecimalIntegerLiteral: + parseStringOrAddressLocation() + + case lexer.TokenIdentifier: + identifier := p.tokenToIdentifier(p.current) + // Skip the identifier + p.nextSemanticToken() + + switch p.current.Type { + case lexer.TokenComma: + // The previous identifier is an imported identifier, + // not the import location + identifiers = append(identifiers, identifier) + err := parseMoreIdentifiers() + if err != nil { + return nil, err + } + case lexer.TokenIdentifier: + err := maybeParseFromIdentifier(identifier) + if err != nil { + return nil, err + } + case lexer.TokenEOF: + // The previous identifier is the identifier location + setIdentifierLocation(identifier) + + default: + return nil, p.syntaxError( + "unexpected token in import declaration: got %s, expected keyword %q or %s", + p.current.Type, + keywordFrom, + lexer.TokenComma, + ) + } + + case lexer.TokenEOF: + return nil, p.syntaxError("unexpected end in import declaration: expected string, address, or identifier") + + default: + return nil, p.syntaxError( + "unexpected token in import declaration: got %s, expected string, address, or identifier", + p.current.Type, + ) + } + + return ast.NewImportDeclaration( + p.memoryGauge, + identifiers, + location, + ast.NewRange( + p.memoryGauge, + startPosition, + endPos, + ), + locationPos, + ), nil +} + +// isNextTokenCommaOrFrom check whether the token to follow is a comma or a from token. +func isNextTokenCommaOrFrom(p *parser) bool { + current := p.current + cursor := p.tokens.Cursor() + defer func() { + p.current = current + p.tokens.Revert(cursor) + }() + + // skip the current token + p.nextSemanticToken() + + // Lookahead the next token + switch p.current.Type { + case lexer.TokenIdentifier: + return string(p.currentTokenSource()) == keywordFrom + + case lexer.TokenComma: + return true + } + + return false +} + +func parseHexadecimalLocation(p *parser) common.AddressLocation { + // TODO: improve + literal := string(p.currentTokenSource()) + + bytes := []byte(strings.ReplaceAll(literal[2:], "_", "")) + + length := len(bytes) + if length%2 == 1 { + bytes = append([]byte{'0'}, bytes...) + length++ + } + + rawAddress := make([]byte, hex.DecodedLen(length)) + _, err := hex.Decode(rawAddress, bytes) + if err != nil { + // unreachable, hex literal should always be valid + panic(errors.NewUnexpectedErrorFromCause(err)) + } + + address, err := common.BytesToAddress(rawAddress) + if err != nil { + // Any returned error is a syntax error. e.g: Address too large error. + p.reportSyntaxError(err.Error()) + } + + return common.NewAddressLocation(p.memoryGauge, address, "") +} + +// parseEventDeclaration parses an event declaration. +// +// eventDeclaration : 'event' identifier parameterList +func parseEventDeclaration( + p *parser, + access ast.Access, + accessPos *ast.Position, + docString string, +) (*ast.CompositeDeclaration, error) { + + startPos := p.current.StartPos + if accessPos != nil { + startPos = *accessPos + } + + // Skip the `event` keyword + p.nextSemanticToken() + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected identifier after start of event declaration, got %s", + p.current.Type, + ) + } + + identifier := p.tokenToIdentifier(p.current) + // Skip the identifier + p.next() + + parameterList, err := parseParameterList(p) + if err != nil { + return nil, err + } + + initializer := ast.NewSpecialFunctionDeclaration( + p.memoryGauge, + common.DeclarationKindInitializer, + ast.NewFunctionDeclaration( + p.memoryGauge, + ast.AccessNotSpecified, + ast.FunctionPurityUnspecified, + false, + false, + ast.NewEmptyIdentifier(p.memoryGauge, ast.EmptyPosition), + nil, + parameterList, + nil, + nil, + parameterList.StartPos, + "", + ), + ) + + members := ast.NewMembers( + p.memoryGauge, + []ast.Declaration{ + initializer, + }, + ) + + return ast.NewCompositeDeclaration( + p.memoryGauge, + access, + common.CompositeKindEvent, + identifier, + nil, + members, + docString, + ast.NewRange( + p.memoryGauge, + startPos, + parameterList.EndPos, + ), + ), nil +} + +// parseCompositeKind parses a composite kind. +// +// compositeKind : 'struct' | 'resource' | 'contract' | 'enum' +func parseCompositeKind(p *parser) common.CompositeKind { + + if p.current.Is(lexer.TokenIdentifier) { + switch string(p.currentTokenSource()) { + case keywordStruct: + return common.CompositeKindStructure + + case keywordResource: + return common.CompositeKindResource + + case keywordContract: + return common.CompositeKindContract + + case keywordEnum: + return common.CompositeKindEnum + } + } + + return common.CompositeKindUnknown +} + +// parseFieldWithVariableKind parses a field which has a variable kind. +// +// variableKind : 'var' | 'let' +// +// field : variableKind identifier ':' typeAnnotation +func parseFieldWithVariableKind( + p *parser, + access ast.Access, + accessPos *ast.Position, + staticPos *ast.Position, + nativePos *ast.Position, + docString string, +) (*ast.FieldDeclaration, error) { + + startPos := ast.EarliestPosition(p.current.StartPos, accessPos, staticPos, nativePos) + + var variableKind ast.VariableKind + switch string(p.currentTokenSource()) { + case keywordLet: + variableKind = ast.VariableKindConstant + + case keywordVar: + variableKind = ast.VariableKindVariable + } + + // Skip the `let` or `var` keyword + p.nextSemanticToken() + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected identifier after start of field declaration, got %s", + p.current.Type, + ) + } + + identifier := p.tokenToIdentifier(p.current) + // Skip the identifier + p.nextSemanticToken() + + _, err := p.mustOne(lexer.TokenColon) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + typeAnnotation, err := parseTypeAnnotation(p) + if err != nil { + return nil, err + } + + return ast.NewFieldDeclaration( + p.memoryGauge, + access, + staticPos != nil, + nativePos != nil, + variableKind, + identifier, + typeAnnotation, + docString, + ast.NewRange( + p.memoryGauge, + startPos, + typeAnnotation.EndPosition(p.memoryGauge), + ), + ), nil +} + +func parseConformances(p *parser) ([]*ast.NominalType, error) { + var conformances []*ast.NominalType + var err error + + if p.current.Is(lexer.TokenColon) { + // Skip the colon + p.next() + + conformances, _, err = parseNominalTypes(p, lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + if len(conformances) < 1 { + return nil, p.syntaxError( + "expected at least one conformance after %s", + lexer.TokenColon, + ) + } + } + + p.skipSpaceAndComments() + return conformances, nil +} + +// parseCompositeOrInterfaceDeclaration parses an event declaration. +// +// conformances : ':' nominalType ( ',' nominalType )* +// +// compositeDeclaration : compositeKind identifier conformances? +// '{' membersAndNestedDeclarations '}' +// +// interfaceDeclaration : compositeKind 'interface' identifier conformances? +// '{' membersAndNestedDeclarations '}' +func parseCompositeOrInterfaceDeclaration( + p *parser, + access ast.Access, + accessPos *ast.Position, + docString string, +) (ast.Declaration, error) { + + startPos := p.current.StartPos + if accessPos != nil { + startPos = *accessPos + } + + compositeKind := parseCompositeKind(p) + + // Skip the composite kind keyword + p.next() + + var isInterface bool + var identifier ast.Identifier + + for { + p.skipSpaceAndComments() + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected %s, got %s", + lexer.TokenIdentifier, + p.current.Type, + ) + } + + wasInterface := isInterface + + if string(p.currentTokenSource()) == keywordInterface { + isInterface = true + if wasInterface { + return nil, p.syntaxError( + "expected interface name, got keyword %q", + keywordInterface, + ) + } + // Skip the `interface` keyword + p.next() + continue + } else { + identifier = p.tokenToIdentifier(p.current) + // Skip the identifier + p.next() + break + } + } + + p.skipSpaceAndComments() + + conformances, err := parseConformances(p) + if err != nil { + return nil, err + } + + _, err = p.mustOne(lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + members, err := parseMembersAndNestedDeclarations(p, lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + endToken, err := p.mustOne(lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + declarationRange := ast.NewRange( + p.memoryGauge, + startPos, + endToken.EndPos, + ) + + if isInterface { + // TODO: remove once interface conformances are supported + if len(conformances) > 0 { + // TODO: improve + return nil, p.syntaxError("unexpected conformances") + } + + return ast.NewInterfaceDeclaration( + p.memoryGauge, + access, + compositeKind, + identifier, + []*ast.NominalType{}, + members, + docString, + declarationRange, + ), nil + } else { + return ast.NewCompositeDeclaration( + p.memoryGauge, + access, + compositeKind, + identifier, + conformances, + members, + docString, + declarationRange, + ), nil + } +} + +func parseAttachmentDeclaration( + p *parser, + access ast.Access, + accessPos *ast.Position, + docString string, +) (ast.Declaration, error) { + startPos := p.current.StartPos + if accessPos != nil { + startPos = *accessPos + } + + // Skip the `attachment` keyword + p.nextSemanticToken() + + identifier, err := p.mustIdentifier() + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + if !p.isToken(p.current, lexer.TokenIdentifier, keywordFor) { + return nil, p.syntaxError( + "expected 'for', got %s", + p.current.Type, + ) + } + + // skip the `for` keyword + p.nextSemanticToken() + + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected %s, got %s", + lexer.TokenIdentifier, + p.current.Type, + ) + } + + baseType, err := parseType(p, lowestBindingPower) + baseNominalType, ok := baseType.(*ast.NominalType) + if !ok { + p.reportSyntaxError( + "expected nominal type, got %s", + baseType, + ) + } + if err != nil { + return nil, err + } + + conformances, err := parseConformances(p) + if err != nil { + return nil, err + } + + _, err = p.mustOne(lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + members, err := parseMembersAndNestedDeclarations(p, lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + endToken, err := p.mustOne(lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + declarationRange := ast.NewRange( + p.memoryGauge, + startPos, + endToken.EndPos, + ) + + return ast.NewAttachmentDeclaration( + p.memoryGauge, + access, + identifier, + baseNominalType, + conformances, + members, + docString, + declarationRange, + ), nil +} + +// parseMembersAndNestedDeclarations parses composite or interface members, +// and nested declarations. +// +// membersAndNestedDeclarations : ( memberOrNestedDeclaration ';'* )* +func parseMembersAndNestedDeclarations(p *parser, endTokenType lexer.TokenType) (*ast.Members, error) { + + var declarations []ast.Declaration + + for { + _, docString := p.parseTrivia(triviaOptions{ + skipNewlines: true, + parseDocStrings: true, + }) + + switch p.current.Type { + case lexer.TokenSemicolon: + // Skip the semicolon + p.next() + continue + + case endTokenType, lexer.TokenEOF: + return ast.NewMembers(p.memoryGauge, declarations), nil + + default: + memberOrNestedDeclaration, err := parseMemberOrNestedDeclaration(p, docString) + if err != nil { + return nil, err + } + + if memberOrNestedDeclaration == nil { + return ast.NewMembers(p.memoryGauge, declarations), nil + } + + declarations = append(declarations, memberOrNestedDeclaration) + } + } +} + +// parseMemberOrNestedDeclaration parses a composite or interface member, +// or a declaration nested in it. +// +// memberOrNestedDeclaration : field +// | specialFunctionDeclaration +// | functionDeclaration +// | interfaceDeclaration +// | compositeDeclaration +// | eventDeclaration +// | enumCase +// | pragmaDeclaration +func parseMemberOrNestedDeclaration(p *parser, docString string) (ast.Declaration, error) { + + const functionBlockIsOptional = true + + access := ast.AccessNotSpecified + var accessPos *ast.Position + + var staticPos *ast.Position + var nativePos *ast.Position + + var previousIdentifierToken *lexer.Token + + staticModifierEnabled := p.config.StaticModifierEnabled + nativeModifierEnabled := p.config.NativeModifierEnabled + + for { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenIdentifier: + + switch string(p.currentTokenSource()) { + case keywordLet, keywordVar: + return parseFieldWithVariableKind( + p, + access, + accessPos, + staticPos, + nativePos, + docString, + ) + + case keywordCase: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindEnumCase) + if err != nil { + return nil, err + } + return parseEnumCase(p, access, accessPos, docString) + + case keywordFun: + return parseFunctionDeclaration( + p, + functionBlockIsOptional, + access, + accessPos, + staticPos, + nativePos, + docString, + ) + + case keywordEvent: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindEvent) + if err != nil { + return nil, err + } + return parseEventDeclaration(p, access, accessPos, docString) + + case keywordStruct: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindStructure) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case keywordResource: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindResource) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case keywordContract: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindContract) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case keywordEnum: + err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindEnum) + if err != nil { + return nil, err + } + return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) + + case keywordAttachment: + return parseAttachmentDeclaration(p, access, accessPos, docString) + + case keywordPriv, keywordPub, keywordAccess: + if access != ast.AccessNotSpecified { + return nil, p.syntaxError("invalid second access modifier") + } + if staticModifierEnabled && staticPos != nil { + return nil, p.syntaxError("invalid access modifier after static modifier") + } + if nativeModifierEnabled && nativePos != nil { + return nil, p.syntaxError("invalid access modifier after native modifier") + } + pos := p.current.StartPos + accessPos = &pos + var err error + access, err = parseAccess(p) + if err != nil { + return nil, err + } + continue + + case keywordStatic: + if !staticModifierEnabled { + break + } + + if staticPos != nil { + return nil, p.syntaxError("invalid second static modifier") + } + if nativeModifierEnabled && nativePos != nil { + return nil, p.syntaxError("invalid static modifier after native modifier") + } + pos := p.current.StartPos + staticPos = &pos + p.next() + continue + + case keywordNative: + if !nativeModifierEnabled { + break + } + + if nativePos != nil { + return nil, p.syntaxError("invalid second native modifier") + } + pos := p.current.StartPos + nativePos = &pos + p.next() + continue + } + + if previousIdentifierToken != nil { + return nil, p.syntaxError("unexpected %s", p.current.Type) + } + + t := p.current + previousIdentifierToken = &t + // Skip the identifier + p.next() + continue + + case lexer.TokenPragma: + if previousIdentifierToken != nil { + return nil, NewSyntaxError( + previousIdentifierToken.StartPos, + "unexpected token: %s", + previousIdentifierToken.Type, + ) + } + err := rejectAllModifiers(p, access, accessPos, staticPos, nativePos, common.DeclarationKindPragma) + if err != nil { + return nil, err + } + return parsePragmaDeclaration(p) + + case lexer.TokenColon: + if previousIdentifierToken == nil { + return nil, p.syntaxError("unexpected %s", p.current.Type) + } + + identifier := p.tokenToIdentifier(*previousIdentifierToken) + return parseFieldDeclarationWithoutVariableKind( + p, + access, + accessPos, + staticPos, + nativePos, + identifier, + docString, + ) + + case lexer.TokenParenOpen: + if previousIdentifierToken == nil { + return nil, p.syntaxError("unexpected %s", p.current.Type) + } + + identifier := p.tokenToIdentifier(*previousIdentifierToken) + return parseSpecialFunctionDeclaration( + p, + functionBlockIsOptional, + access, + accessPos, + staticPos, + nativePos, + identifier, + docString, + ) + } + + return nil, nil + } +} + +func rejectAllModifiers( + p *parser, + access ast.Access, + accessPos *ast.Position, + staticPos *ast.Position, + nativePos *ast.Position, + kind common.DeclarationKind, +) error { + if access != ast.AccessNotSpecified { + return NewSyntaxError(*accessPos, "invalid access modifier for %s", kind.Name()) + } + return rejectStaticAndNativeModifiers(p, staticPos, nativePos, kind) +} + +func rejectStaticAndNativeModifiers( + p *parser, + staticPos *ast.Position, + nativePos *ast.Position, + kind common.DeclarationKind, +) error { + if p.config.StaticModifierEnabled && staticPos != nil { + return NewSyntaxError(*staticPos, "invalid static modifier for %s", kind.Name()) + } + if p.config.NativeModifierEnabled && nativePos != nil { + return NewSyntaxError(*nativePos, "invalid native modifier for %s", kind.Name()) + } + return nil +} + +func parseFieldDeclarationWithoutVariableKind( + p *parser, + access ast.Access, + accessPos *ast.Position, + staticPos *ast.Position, + nativePos *ast.Position, + identifier ast.Identifier, + docString string, +) (*ast.FieldDeclaration, error) { + + startPos := ast.EarliestPosition(identifier.Pos, accessPos, staticPos, nativePos) + + _, err := p.mustOne(lexer.TokenColon) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + typeAnnotation, err := parseTypeAnnotation(p) + if err != nil { + return nil, err + } + + return ast.NewFieldDeclaration( + p.memoryGauge, + access, + staticPos != nil, + nativePos != nil, + ast.VariableKindNotSpecified, + identifier, + typeAnnotation, + docString, + ast.NewRange( + p.memoryGauge, + startPos, + typeAnnotation.EndPosition(p.memoryGauge), + ), + ), nil +} + +func parseSpecialFunctionDeclaration( + p *parser, + functionBlockIsOptional bool, + access ast.Access, + accessPos *ast.Position, + staticPos *ast.Position, + nativePos *ast.Position, + identifier ast.Identifier, + docString string, +) (*ast.SpecialFunctionDeclaration, error) { + + startPos := ast.EarliestPosition(identifier.Pos, accessPos, staticPos, nativePos) + + parameterList, returnTypeAnnotation, functionBlock, err := + parseFunctionParameterListAndRest(p, functionBlockIsOptional) + if err != nil { + return nil, err + } + + declarationKind := common.DeclarationKindUnknown + switch identifier.Identifier { + case keywordInit: + declarationKind = common.DeclarationKindInitializer + + case keywordDestroy: + declarationKind = common.DeclarationKindDestructorLegacy + + case keywordPrepare: + declarationKind = common.DeclarationKindPrepare + } + + if returnTypeAnnotation != nil { + var kindDescription string + if declarationKind != common.DeclarationKindUnknown { + kindDescription = declarationKind.Name() + } else { + kindDescription = "special function" + } + + p.report(NewSyntaxError( + returnTypeAnnotation.StartPos, + "invalid return type for %s", + kindDescription, + )) + } + + return ast.NewSpecialFunctionDeclaration( + p.memoryGauge, + declarationKind, + ast.NewFunctionDeclaration( + p.memoryGauge, + access, + ast.FunctionPurityUnspecified, + staticPos != nil, + nativePos != nil, + identifier, + nil, + parameterList, + nil, + functionBlock, + startPos, + docString, + ), + ), nil +} + +// parseEnumCase parses a field which has a variable kind. +// +// enumCase : 'case' identifier +func parseEnumCase( + p *parser, + access ast.Access, + accessPos *ast.Position, + docString string, +) (*ast.EnumCaseDeclaration, error) { + + startPos := p.current.StartPos + if accessPos != nil { + startPos = *accessPos + } + + // Skip the `enum` keyword + p.nextSemanticToken() + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected identifier after start of enum case declaration, got %s", + p.current.Type, + ) + } + + identifier := p.tokenToIdentifier(p.current) + // Skip the identifier + p.next() + + return ast.NewEnumCaseDeclaration( + p.memoryGauge, + access, + identifier, + docString, + startPos, + ), nil +} diff --git a/runtime/old_parser/declaration_test.go b/runtime/old_parser/declaration_test.go new file mode 100644 index 0000000000..1ecbc1e9bb --- /dev/null +++ b/runtime/old_parser/declaration_test.go @@ -0,0 +1,7083 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "fmt" + "math/big" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestParseVariableDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("var, no type annotation, copy, one value", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("var x = 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: false, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("var, no type annotation, copy, one value, pub", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(" pub var x = 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessAll, + IsConstant: false, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("let, no type annotation, copy, one value", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("let x = 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("let, no type annotation, move, one value", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("let x <- 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("let, resource type annotation, move, one value", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("let r2: @R <- r") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "r2", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "r", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("var, no type annotation, copy, two values ", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("var x <- y <- z") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: false, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + SecondValue: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "z", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + SecondTransfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte("static var x = 1"), + Config{ + StaticModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for variable", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("static var x = 1") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte("native var x = 1"), + Config{ + NativeModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for variable", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("native var x = 1") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) +} + +func TestParseParameterList(t *testing.T) { + + t.Parallel() + + parse := func(input string) (*ast.ParameterList, []error) { + return Parse( + nil, + []byte(input), + parseParameterList, + Config{}, + ) + } + + t.Run("empty", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("space", func(t *testing.T) { + + t.Parallel() + + result, errs := parse(" ( )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + result, + ) + }) + + t.Run("one, without argument label", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("( a : Int )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + result, + ) + }) + + t.Run("one, with argument label", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("( a b : Int )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "a", + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + result, + ) + }) + + t.Run("two, with and without argument label", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("( a b : Int , c : Int )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "a", + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 22, Offset: 22}, + }, + }, + result, + ) + }) + + t.Run("two, with and without argument label, missing comma", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("( a b : Int c : Int )") + utils.AssertEqualWithDiff(t, + []error{ + &MissingCommaInParameterListError{ + Pos: ast.Position{Offset: 14, Line: 1, Column: 14}, + }, + }, + errs, + ) + }) +} + +func TestParseFunctionDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("without return type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("fun foo () { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("without return type, pub", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("pub fun foo () { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + EndPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("with return type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("fun foo (): X { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + EndPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("without return type, with pre and post conditions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements(` + fun foo () { + pre { + true : "test" + 2 > 1 : "foo" + } + + post { + false + } + + bar() + } + `) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 2, Column: 14, Offset: 15}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 18, Offset: 19}, + EndPos: ast.Position{Line: 2, Column: 19, Offset: 20}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + PreConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 4, Column: 17, Offset: 61}, + EndPos: ast.Position{Line: 4, Column: 20, Offset: 64}, + }, + }, + Message: &ast.StringExpression{ + Value: "test", + Range: ast.Range{ + StartPos: ast.Position{Line: 4, Column: 24, Offset: 68}, + EndPos: ast.Position{Line: 4, Column: 29, Offset: 73}, + }, + }, + }, + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationGreater, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 5, Column: 17, Offset: 92}, + EndPos: ast.Position{Line: 5, Column: 17, Offset: 92}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 5, Column: 21, Offset: 96}, + EndPos: ast.Position{Line: 5, Column: 21, Offset: 96}, + }, + }, + }, + Message: &ast.StringExpression{ + Value: "foo", + Range: ast.Range{ + StartPos: ast.Position{Line: 5, Column: 25, Offset: 100}, + EndPos: ast.Position{Line: 5, Column: 29, Offset: 104}, + }, + }, + }, + }, + PostConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Line: 9, Column: 17, Offset: 161}, + EndPos: ast.Position{Line: 9, Column: 21, Offset: 165}, + }, + }, + Message: nil, + }, + }, + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "bar", + Pos: ast.Position{Line: 12, Column: 14, Offset: 198}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 12, Column: 17, Offset: 201}, + EndPos: ast.Position{Line: 12, Column: 18, Offset: 202}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 21, Offset: 22}, + EndPos: ast.Position{Line: 13, Column: 10, Offset: 214}, + }, + }, + }, + StartPos: ast.Position{Line: 2, Column: 10, Offset: 11}, + }, + }, + result, + ) + }) + + t.Run("with docstring, single line comment", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("/// Test\nfun foo() {}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 2, Column: 4, Offset: 13}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 7, Offset: 16}, + EndPos: ast.Position{Line: 2, Column: 8, Offset: 17}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 10, Offset: 19}, + EndPos: ast.Position{Line: 2, Column: 11, Offset: 20}, + }, + }, + }, + DocString: " Test", + StartPos: ast.Position{Line: 2, Column: 0, Offset: 9}, + }, + }, + result, + ) + }) + + t.Run("with docstring, two line comments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("\n /// First line\n \n/// Second line\n\n\nfun foo() {}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 7, Column: 4, Offset: 43}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 7, Column: 7, Offset: 46}, + EndPos: ast.Position{Line: 7, Column: 8, Offset: 47}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 7, Column: 10, Offset: 49}, + EndPos: ast.Position{Line: 7, Column: 11, Offset: 50}, + }, + }, + }, + DocString: " First line\n Second line", + StartPos: ast.Position{Line: 7, Column: 0, Offset: 39}, + }, + }, + result, + ) + }) + + t.Run("with docstring, block comment", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("\n /** Cool dogs.\n\n Cool cats!! */\n\n\nfun foo() {}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 7, Column: 4, Offset: 43}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 7, Column: 7, Offset: 46}, + EndPos: ast.Position{Line: 7, Column: 8, Offset: 47}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 7, Column: 10, Offset: 49}, + EndPos: ast.Position{Line: 7, Column: 11, Offset: 50}, + }, + }, + }, + DocString: " Cool dogs.\n\n Cool cats!! ", + StartPos: ast.Position{Line: 7, Column: 0, Offset: 39}, + }, + }, + result, + ) + }) + + t.Run("without space after return type", func(t *testing.T) { + + // A brace after the return type is ambiguous: + // It could be the start of a restricted type. + // However, if there is space after the brace, which is most common + // in function declarations, we consider it not a restricted type + + t.Parallel() + + result, errs := testParseDeclarations("fun main(): Int{ return 1 }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "main", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + EndPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + EndPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + EndPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := ParseDeclarations( + nil, + []byte("native fun foo() {}"), + Config{ + NativeModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Flags: ast.FunctionDeclarationFlagsIsNative, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + EndPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("native fun foo() {}") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static", func(t *testing.T) { + + t.Parallel() + + result, errs := ParseDeclarations( + nil, + []byte("static fun foo() {}"), + Config{ + StaticModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Flags: ast.FunctionDeclarationFlagsIsStatic, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + EndPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("static fun foo() {}") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static native, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := ParseDeclarations( + nil, + []byte("static native fun foo() {}"), + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Flags: ast.FunctionDeclarationFlagsIsStatic | ast.FunctionDeclarationFlagsIsNative, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + EndPos: ast.Position{Line: 1, Column: 22, Offset: 22}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + EndPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("static native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("static native fun foo() {}") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("native static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte("native static fun foo() {}"), + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier after native modifier", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + }) + + t.Run("native static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("native static fun foo() {}") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("pub static native, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := ParseDeclarations( + nil, + []byte("pub static native fun foo() {}"), + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Flags: ast.FunctionDeclarationFlagsIsStatic | ast.FunctionDeclarationFlagsIsNative, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 22, Offset: 22}, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + EndPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 28, Offset: 28}, + EndPos: ast.Position{Line: 1, Column: 29, Offset: 29}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("pub static native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("pub static native fun foo() {}") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + }) + + t.Run("with empty type parameters, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := ParseDeclarations( + nil, + []byte("fun foo < > () {}"), + Config{ + TypeParametersEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeParameterList: &ast.TypeParameterList{ + TypeParameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + EndPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + EndPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("with type parameters, single type parameter, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := ParseDeclarations( + nil, + []byte("fun foo < A > () {}"), + Config{ + TypeParametersEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeParameterList: &ast.TypeParameterList{ + TypeParameters: []*ast.TypeParameter{ + { + Identifier: ast.Identifier{ + Identifier: "A", + Pos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + EndPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 19, Offset: 19}, + EndPos: ast.Position{Line: 1, Column: 20, Offset: 20}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("with type parameters, multiple parameters, type bound, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := ParseDeclarations( + nil, + []byte("fun foo < A , B : C > () {}"), + Config{ + TypeParametersEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeParameterList: &ast.TypeParameterList{ + TypeParameters: []*ast.TypeParameter{ + { + Identifier: ast.Identifier{ + Identifier: "A", + Pos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + { + Identifier: ast.Identifier{ + Identifier: "B", + Pos: ast.Position{Offset: 16, Line: 1, Column: 16}, + }, + TypeBound: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "C", + Pos: ast.Position{Offset: 20, Line: 1, Column: 20}, + }, + }, + StartPos: ast.Position{Offset: 20, Line: 1, Column: 20}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 22, Offset: 22}, + }, + }, + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + EndPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + EndPos: ast.Position{Line: 1, Column: 28, Offset: 28}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("with type parameters, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("fun foo() {}") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected '(' as start of parameter list, got '<'", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + }) + + t.Run("missing type parameter list end, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte("fun foo < "), + Config{ + TypeParametersEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing '>' at end of type parameter list", + Pos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + errs, + ) + }) + + t.Run("missing type parameter list separator, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte("fun foo < A B > () { } "), + Config{ + TypeParametersEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &MissingCommaInParameterListError{ + Pos: ast.Position{Offset: 13, Line: 1, Column: 13}, + }, + }, + errs, + ) + }) + +} + +func TestParseAccess(t *testing.T) { + + t.Parallel() + + parse := func(input string) (ast.Access, []error) { + return Parse( + nil, + []byte(input), + parseAccess, + Config{}, + ) + } + + t.Run("pub", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("pub") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.AccessAll, + result, + ) + }) + + t.Run("pub(set)", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("pub ( set )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.AccessPubSettableLegacy, + result, + ) + }) + + t.Run("pub, missing set keyword", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("pub ( ") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected keyword \"set\", got EOF", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + ast.AccessNotSpecified, + result, + ) + }) + + t.Run("pub, missing closing paren", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("pub ( set ") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token ')'", + Pos: ast.Position{Offset: 10, Line: 1, Column: 10}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + ast.AccessNotSpecified, + result, + ) + }) + + t.Run("pub, invalid inner keyword", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("pub ( foo )") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected keyword \"set\", got \"foo\"", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + ast.AccessNotSpecified, + result, + ) + }) + + t.Run("priv", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("priv") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.AccessSelf, + result, + ) + }) + + t.Run("access(all)", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( all )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.AccessAll, + result, + ) + }) + + t.Run("access(account)", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( account )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.AccessAccount, + result, + ) + }) + + t.Run("access(contract)", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( contract )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.AccessContract, + result, + ) + }) + + t.Run("access(self)", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( self )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.AccessSelf, + result, + ) + }) + + t.Run("access, missing keyword", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( ") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected keyword \"all\", \"account\", \"contract\", or \"self\", got EOF", + Pos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + ast.AccessNotSpecified, + result, + ) + }) + + t.Run("access, missing closing paren", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( self ") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token ')'", + Pos: ast.Position{Offset: 14, Line: 1, Column: 14}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + ast.AccessNotSpecified, + result, + ) + }) + + t.Run("access, invalid inner keyword", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( foo )") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected keyword \"all\", \"account\", \"contract\", or \"self\", got \"foo\"", + Pos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + ast.AccessNotSpecified, + result, + ) + }) +} + +func TestParseImportDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("no identifiers, missing location", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected end in import declaration: expected string, address, or identifier", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + + var expected []ast.Declaration + + utils.AssertEqualWithDiff(t, + expected, + result, + ) + }) + + t.Run("no identifiers, string location", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import "foo"`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: nil, + Location: common.StringLocation("foo"), + LocationPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + }, + result, + ) + }) + + t.Run("no identifiers, address location", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import 0x42`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: nil, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x42}), + }, + LocationPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + }, + result, + ) + }) + + t.Run("no identifiers, address location, address too long", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import 0x10000000000000001`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "address too large", + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + + expected := []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: nil, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x0}), + }, + LocationPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + }, + }, + } + + utils.AssertEqualWithDiff(t, + expected, + result, + ) + }) + + t.Run("no identifiers, integer location", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import 1`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token in import declaration: " + + "got decimal integer, expected string, address, or identifier", + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + + var expected []ast.Declaration + + utils.AssertEqualWithDiff(t, + expected, + result, + ) + + }) + + t.Run("one identifier, string location", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import foo from "bar"`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: []ast.Identifier{ + { + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Location: common.StringLocation("bar"), + LocationPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + }, + result, + ) + }) + + t.Run("one identifier, string location, missing from keyword", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import foo "bar"`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token in import declaration: " + + "got string, expected keyword \"from\" or ','", + Pos: ast.Position{Offset: 12, Line: 1, Column: 12}, + }, + }, + errs, + ) + + var expected []ast.Declaration + + utils.AssertEqualWithDiff(t, + expected, + result, + ) + }) + + t.Run("three identifiers, address location", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import foo , bar , baz from 0x42`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: []ast.Identifier{ + { + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + { + Identifier: "bar", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + { + Identifier: "baz", + Pos: ast.Position{Line: 1, Column: 20, Offset: 20}, + }, + }, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x42}), + }, + LocationPos: ast.Position{Line: 1, Column: 29, Offset: 29}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 32, Offset: 32}, + }, + }, + }, + result, + ) + }) + + t.Run("two identifiers, address location, extra comma", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import foo , bar , from 0x42`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: `expected identifier, got keyword "from"`, + Pos: ast.Position{Offset: 20, Line: 1, Column: 20}, + }, + }, + errs, + ) + + var expected []ast.Declaration + + utils.AssertEqualWithDiff(t, + expected, + result, + ) + }) + + t.Run("no identifiers, identifier location", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` import foo`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: nil, + Location: common.IdentifierLocation("foo"), + LocationPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + result, + ) + }) + + t.Run("from keyword as second identifier", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + import foo, from from 0x42 + import foo, from, bar from 0x42 + `) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: []ast.Identifier{ + { + Identifier: "foo", + Pos: ast.Position{Line: 2, Column: 10, Offset: 11}, + }, + { + Identifier: "from", + Pos: ast.Position{Line: 2, Column: 15, Offset: 16}, + }, + }, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x42}), + }, + LocationPos: ast.Position{Line: 2, Column: 25, Offset: 26}, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 3, Offset: 4}, + EndPos: ast.Position{Line: 2, Column: 28, Offset: 29}, + }, + }, + &ast.ImportDeclaration{ + Identifiers: []ast.Identifier{ + { + Identifier: "foo", + Pos: ast.Position{Line: 3, Column: 10, Offset: 41}, + }, + { + Identifier: "from", + Pos: ast.Position{Line: 3, Column: 15, Offset: 46}, + }, + { + Identifier: "bar", + Pos: ast.Position{Line: 3, Column: 21, Offset: 52}, + }, + }, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x42}), + }, + LocationPos: ast.Position{Line: 3, Column: 30, Offset: 61}, + Range: ast.Range{ + StartPos: ast.Position{Line: 3, Column: 3, Offset: 34}, + EndPos: ast.Position{Line: 3, Column: 33, Offset: 64}, + }, + }, + }, + result, + ) + }) +} + +func TestParseEvent(t *testing.T) { + + t.Parallel() + + t.Run("no parameters", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("event E()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindEvent, + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 7, Line: 1, Column: 7}, + EndPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + StartPos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 0, Line: 1, Column: 0}, + EndPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + }, + result, + ) + }) + + t.Run("two parameters, private", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(" priv event E2 ( a : Int , b : String )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + + &ast.CompositeDeclaration{ + Access: ast.AccessSelf, + CompositeKind: common.CompositeKindEvent, + Identifier: ast.Identifier{ + Identifier: "E2", + Pos: ast.Position{Offset: 12, Line: 1, Column: 12}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 17, Line: 1, Column: 17}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 21, Line: 1, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 21, Line: 1, Column: 21}, + }, + StartPos: ast.Position{Offset: 17, Line: 1, Column: 17}, + }, + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 27, Line: 1, Column: 27}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "String", + Pos: ast.Position{Offset: 31, Line: 1, Column: 31}, + }, + }, + StartPos: ast.Position{Offset: 31, Line: 1, Column: 31}, + }, + StartPos: ast.Position{Offset: 27, Line: 1, Column: 27}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 1, Column: 15}, + EndPos: ast.Position{Offset: 38, Line: 1, Column: 38}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 1, Column: 15}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 38, Line: 1, Column: 38}, + }, + }, + }, + result, + ) + }) +} + +func TestParseFieldWithVariableKind(t *testing.T) { + + t.Parallel() + + parse := func(input string) (*ast.FieldDeclaration, []error) { + return Parse( + nil, + []byte(input), + func(p *parser) (*ast.FieldDeclaration, error) { + return parseFieldWithVariableKind( + p, + ast.AccessNotSpecified, + nil, + nil, + nil, + "", + ) + }, + Config{}, + ) + } + + t.Run("variable", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("var x : Int") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + result, + ) + }) + + t.Run("constant", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("let x : Int") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindConstant, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + result, + ) + }) +} + +func TestParseField(t *testing.T) { + + t.Parallel() + + parse := func(input string, config Config) (ast.Declaration, []error) { + return Parse( + nil, + []byte(input), + func(p *parser) (ast.Declaration, error) { + return parseMemberOrNestedDeclaration( + p, + "", + ) + }, + config, + ) + } + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := parse( + "native let foo: Int", + Config{ + NativeModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + Flags: ast.FieldDeclarationFlagsIsNative, + VariableKind: ast.VariableKindConstant, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + result, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("native let foo: Int", Config{}) + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + require.Empty(t, errs) + }) + + t.Run("static", func(t *testing.T) { + + t.Parallel() + + result, errs := parse( + "static let foo: Int", + Config{ + StaticModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + Flags: ast.FieldDeclarationFlagsIsStatic, + VariableKind: ast.VariableKindConstant, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + result, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "static let foo: Int", + Config{}, + ) + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + require.Empty(t, errs) + }) + + t.Run("static native, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := parse( + "static native let foo: Int", + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + Flags: ast.FieldDeclarationFlagsIsStatic | ast.FieldDeclarationFlagsIsNative, + VariableKind: ast.VariableKindConstant, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 23, Offset: 23}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 23, Offset: 23}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + }, + }, + result, + ) + }) + + t.Run("static native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("static native let foo: Int", Config{}) + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected identifier", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + }) + + t.Run("native static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "native static let foo: Int", + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier after native modifier", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + }) + + t.Run("pub static native, enabled", func(t *testing.T) { + + t.Parallel() + + result, errs := parse( + "pub static native let foo: Int", + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FieldDeclaration{ + Access: ast.AccessAll, + Flags: ast.FieldDeclarationFlagsIsStatic | ast.FieldDeclarationFlagsIsNative, + VariableKind: ast.VariableKindConstant, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 22, Offset: 22}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 29, Offset: 29}, + }, + }, + result, + ) + }) + + t.Run("pub static native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("pub static native let foo: Int", Config{}) + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected identifier", + Pos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + errs, + ) + }) + +} + +func TestParseCompositeDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("struct, no conformances", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(" pub struct S { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessAll, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + Members: &ast.Members{}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + }, + result, + ) + }) + + t.Run("resource, one conformance", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(" pub resource R : RI { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessAll, + CompositeKind: common.CompositeKindResource, + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + Conformances: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "RI", + Pos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + }, + Members: &ast.Members{}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 23, Offset: 23}, + }, + }, + }, + result, + ) + }) + + t.Run("struct, with fields, functions, and special functions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + struct Test { + pub(set) var foo: Int + + init(foo: Int) { + self.foo = foo + } + + pub fun getFoo(): Int { + return self.foo + } + } + `) + + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessPubSettableLegacy, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 52, Line: 3, Column: 27}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 57, Line: 3, Column: 32}, + }, + }, + StartPos: ast.Position{Offset: 57, Line: 3, Column: 32}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 39, Line: 3, Column: 14}, + EndPos: ast.Position{Offset: 59, Line: 3, Column: 34}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "init", + Pos: ast.Position{Offset: 76, Line: 5, Column: 14}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 81, Line: 5, Column: 19}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 86, Line: 5, Column: 24}, + }, + }, + StartPos: ast.Position{Offset: 86, Line: 5, Column: 24}, + }, + StartPos: ast.Position{Offset: 81, Line: 5, Column: 19}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 80, Line: 5, Column: 18}, + EndPos: ast.Position{Offset: 89, Line: 5, Column: 27}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "self", + Pos: ast.Position{Offset: 111, Line: 6, Column: 18}, + }, + }, + AccessPos: ast.Position{Offset: 115, Line: 6, Column: 22}, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 116, Line: 6, Column: 23}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 120, Line: 6, Column: 27}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 122, Line: 6, Column: 29}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 91, Line: 5, Column: 29}, + EndPos: ast.Position{Offset: 140, Line: 7, Column: 14}, + }, + }, + }, + StartPos: ast.Position{Offset: 76, Line: 5, Column: 14}, + }, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "getFoo", + Pos: ast.Position{Offset: 165, Line: 9, Column: 22}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 171, Line: 9, Column: 28}, + EndPos: ast.Position{Offset: 172, Line: 9, Column: 29}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 175, Line: 9, Column: 32}, + }, + }, + StartPos: ast.Position{Offset: 175, Line: 9, Column: 32}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "self", + Pos: ast.Position{Offset: 206, Line: 10, Column: 25}, + }, + }, + AccessPos: ast.Position{Offset: 210, Line: 10, Column: 29}, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 211, Line: 10, Column: 30}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 199, Line: 10, Column: 18}, + EndPos: ast.Position{Offset: 213, Line: 10, Column: 32}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 179, Line: 9, Column: 36}, + EndPos: ast.Position{Offset: 229, Line: 11, Column: 14}, + }, + }, + }, + StartPos: ast.Position{Offset: 157, Line: 9, Column: 14}, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 11, Line: 2, Column: 10}, + EndPos: ast.Position{Offset: 241, Line: 12, Column: 10}, + }, + }, + }, + result, + ) + }) +} + +func TestParseAttachmentDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("no conformances", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("pub attachment E for S {} ") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.AttachmentDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + BaseType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + Members: &ast.Members{}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + }, + }, + }, + result, + ) + }) + + t.Run("nested in contract", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + contract Test { + pub attachment E for S {} + }`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindContract, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Line: 2, Column: 11, Offset: 12}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 2, Offset: 3}, + EndPos: ast.Position{Line: 4, Column: 2, Offset: 50}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.AttachmentDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Line: 3, Column: 18, Offset: 37}, + }, + BaseType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 3, Column: 24, Offset: 43}, + }, + }, + Members: &ast.Members{}, + Range: ast.Range{ + StartPos: ast.Position{Line: 3, Column: 3, Offset: 22}, + EndPos: ast.Position{Line: 3, Column: 27, Offset: 46}, + }, + }, + }, + ), + }, + }, + result, + ) + }) + + t.Run("missing base type", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("attachment E {} ") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected 'for', got '{'", + Pos: ast.Position{Offset: 13, Line: 1, Column: 13}, + }, + }, + errs, + ) + }) + + t.Run("one conformances", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("pub attachment E for S: I {} ") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.AttachmentDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + BaseType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + Members: &ast.Members{}, + Conformances: []*ast.NominalType{ + ast.NewNominalType( + nil, + ast.Identifier{ + Identifier: "I", + Pos: ast.Position{Line: 1, Column: 24, Offset: 24}, + }, + nil, + ), + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + }, + }, + result, + ) + }) + + t.Run("two conformances", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("pub attachment E for S: I1, I2 {} ") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.AttachmentDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + BaseType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + Members: &ast.Members{}, + Conformances: []*ast.NominalType{ + ast.NewNominalType( + nil, + ast.Identifier{ + Identifier: "I1", + Pos: ast.Position{Line: 1, Column: 24, Offset: 24}, + }, + nil, + ), + ast.NewNominalType( + nil, + ast.Identifier{ + Identifier: "I2", + Pos: ast.Position{Line: 1, Column: 28, Offset: 28}, + }, + nil, + ), + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 32, Offset: 32}, + }, + }, + }, + result, + ) + }) + + t.Run("fields, functions and special functions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(`pub attachment E for S { + pub(set) var foo: Int + init() {} + destroy() {} + pub fun getFoo(): Int {} + }`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.AttachmentDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + BaseType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessPubSettableLegacy, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 41, Line: 2, Column: 16}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 46, Line: 2, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 46, Line: 2, Column: 21}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 28, Line: 2, Column: 3}, + EndPos: ast.Position{Offset: 48, Line: 2, Column: 23}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "init", + Pos: ast.Position{Offset: 53, Line: 3, Column: 3}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 57, Line: 3, Column: 7}, + EndPos: ast.Position{Offset: 58, Line: 3, Column: 8}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 60, Line: 3, Column: 10}, + EndPos: ast.Position{Offset: 61, Line: 3, Column: 11}, + }, + }, + }, + StartPos: ast.Position{Offset: 53, Line: 3, Column: 3}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindDestructorLegacy, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "destroy", + Pos: ast.Position{Offset: 66, Line: 4, Column: 3}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 73, Line: 4, Column: 10}, + EndPos: ast.Position{Offset: 74, Line: 4, Column: 11}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 76, Line: 4, Column: 13}, + EndPos: ast.Position{Offset: 77, Line: 4, Column: 14}, + }, + }, + }, + StartPos: ast.Position{Offset: 66, Line: 4, Column: 3}, + }, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "getFoo", + Pos: ast.Position{Offset: 90, Line: 5, Column: 11}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 96, Line: 5, Column: 17}, + EndPos: ast.Position{Offset: 97, Line: 5, Column: 18}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 100, Line: 5, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 100, Line: 5, Column: 21}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 104, Line: 5, Column: 25}, + EndPos: ast.Position{Offset: 105, Line: 5, Column: 26}, + }, + }, + }, + StartPos: ast.Position{Offset: 82, Line: 5, Column: 3}, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 6, Column: 2, Offset: 109}, + }, + }, + }, + result, + ) + }) +} + +func TestParseInterfaceDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("struct, no conformances", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(" pub struct interface S { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.InterfaceDeclaration{ + Access: ast.AccessAll, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 1, Column: 22, Offset: 22}, + }, + Members: &ast.Members{}, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + }, + }, + }, + result, + ) + }) + + t.Run("struct, interface keyword as name", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(" pub struct interface interface { }") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected interface name, got keyword \"interface\"", + Pos: ast.Position{Offset: 22, Line: 1, Column: 22}, + }, + }, + errs, + ) + + var expected []ast.Declaration + + utils.AssertEqualWithDiff(t, + expected, + result, + ) + }) + + t.Run("struct, with fields, functions, and special functions; with and without blocks", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + struct interface Test { + pub(set) var foo: Int + + init(foo: Int) + + pub fun getFoo(): Int + + pub fun getBar(): Int {} + + destroy() {} + } + `) + + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.InterfaceDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessPubSettableLegacy, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 62, Line: 3, Column: 27}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 67, Line: 3, Column: 32}, + }, + }, + StartPos: ast.Position{Offset: 67, Line: 3, Column: 32}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 49, Line: 3, Column: 14}, + EndPos: ast.Position{Offset: 69, Line: 3, Column: 34}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "init", + Pos: ast.Position{Offset: 86, Line: 5, Column: 14}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 91, Line: 5, Column: 19}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 96, Line: 5, Column: 24}, + }, + }, + StartPos: ast.Position{Offset: 96, Line: 5, Column: 24}, + }, + StartPos: ast.Position{Offset: 91, Line: 5, Column: 19}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 90, Line: 5, Column: 18}, + EndPos: ast.Position{Offset: 99, Line: 5, Column: 27}, + }, + }, + StartPos: ast.Position{Offset: 86, Line: 5, Column: 14}, + }, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "getFoo", + Pos: ast.Position{Offset: 124, Line: 7, Column: 22}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 130, Line: 7, Column: 28}, + EndPos: ast.Position{Offset: 131, Line: 7, Column: 29}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 134, Line: 7, Column: 32}, + }, + }, + StartPos: ast.Position{Offset: 134, Line: 7, Column: 32}, + }, + StartPos: ast.Position{Offset: 116, Line: 7, Column: 14}, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "getBar", + Pos: ast.Position{Offset: 161, Line: 9, Column: 22}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 167, Line: 9, Column: 28}, + EndPos: ast.Position{Offset: 168, Line: 9, Column: 29}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 171, Line: 9, Column: 32}, + }, + }, + StartPos: ast.Position{Offset: 171, Line: 9, Column: 32}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 175, Line: 9, Column: 36}, + EndPos: ast.Position{Offset: 176, Line: 9, Column: 37}, + }, + }, + }, + StartPos: ast.Position{Offset: 153, Line: 9, Column: 14}, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindDestructorLegacy, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "destroy", + Pos: ast.Position{Offset: 193, Line: 11, Column: 14}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 200, Line: 11, Column: 21}, + EndPos: ast.Position{Offset: 201, Line: 11, Column: 22}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 203, Line: 11, Column: 24}, + EndPos: ast.Position{Offset: 204, Line: 11, Column: 25}, + }, + }, + }, + StartPos: ast.Position{Offset: 193, Line: 11, Column: 14}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 11, Line: 2, Column: 10}, + EndPos: ast.Position{Offset: 216, Line: 12, Column: 10}, + }, + }, + }, + result, + ) + }) +} + +func TestParseEnumDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("enum, two cases one one line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(" pub enum E { case c ; pub case d }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessAll, + CompositeKind: common.CompositeKindEnum, + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.EnumCaseDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Line: 1, Column: 19, Offset: 19}, + }, + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + &ast.EnumCaseDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "d", + Pos: ast.Position{Line: 1, Column: 32, Offset: 32}, + }, + StartPos: ast.Position{Line: 1, Column: 23, Offset: 23}, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 34, Offset: 34}, + }, + }, + }, + result, + ) + }) + + t.Run("enum case with static modifier, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(" enum E { static case e }"), + Config{ + StaticModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for enum case", + Pos: ast.Position{Offset: 10, Line: 1, Column: 10}, + }, + }, + errs, + ) + }) + + t.Run("enum case with static modifier, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(" enum E { static case e }") + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + require.Empty(t, errs) + }) + + t.Run("enum case with native modifier, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(" enum E { native case e }"), + Config{ + NativeModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for enum case", + Pos: ast.Position{Offset: 10, Line: 1, Column: 10}, + }, + }, + errs, + ) + }) + + t.Run("enum case with native modifier, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(" enum E { native case e }") + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + require.Empty(t, errs) + }) +} + +func TestParseTransactionDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("no prepare, execute", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations("transaction { execute {} }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.TransactionDeclaration{ + Execute: &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindExecute, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "execute", + Pos: ast.Position{Offset: 14, Line: 1, Column: 14}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 22, Line: 1, Column: 22}, + EndPos: ast.Position{Offset: 23, Line: 1, Column: 23}, + }, + }, + }, + StartPos: ast.Position{Offset: 14, Line: 1, Column: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + }, + }, + }, + result, + ) + }) + + t.Run("EmptyTransaction", func(t *testing.T) { + + const code = ` + transaction {} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.TransactionDeclaration{ + Fields: nil, + Prepare: nil, + PreConditions: nil, + PostConditions: nil, + Execute: nil, + Range: ast.Range{ + StartPos: ast.Position{Offset: 5, Line: 2, Column: 4}, + EndPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + }, + result.Declarations(), + ) + }) + + t.Run("SimpleTransaction", func(t *testing.T) { + const code = ` + transaction { + + var x: Int + + prepare(signer: AuthAccount) { + x = 0 + } + + execute { + x = 1 + 1 + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.TransactionDeclaration{ + Fields: []*ast.FieldDeclaration{ + { + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 30, Line: 4, Column: 10}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 33, Line: 4, Column: 13}, + }, + }, + StartPos: ast.Position{Offset: 33, Line: 4, Column: 13}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 4, Column: 6}, + EndPos: ast.Position{Offset: 35, Line: 4, Column: 15}, + }, + }, + }, + Prepare: &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindPrepare, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "prepare", + Pos: ast.Position{Offset: 44, Line: 6, Column: 6}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "signer", + Pos: ast.Position{Offset: 52, Line: 6, Column: 14}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "AuthAccount", + Pos: ast.Position{Offset: 60, Line: 6, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 60, Line: 6, Column: 22}, + }, + StartPos: ast.Position{Offset: 52, Line: 6, Column: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 51, Line: 6, Column: 13}, + EndPos: ast.Position{Offset: 71, Line: 6, Column: 33}, + }, + }, + ReturnTypeAnnotation: nil, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 86, Line: 7, Column: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 88, Line: 7, Column: 13}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 90, Line: 7, Column: 15}, + EndPos: ast.Position{Offset: 90, Line: 7, Column: 15}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 73, Line: 6, Column: 35}, + EndPos: ast.Position{Offset: 95, Line: 8, Column: 3}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 44, Line: 6, Column: 6}, + }, + }, + PreConditions: nil, + PostConditions: nil, + Execute: &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindExecute, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "execute", + Pos: ast.Position{Offset: 104, Line: 10, Column: 6}, + }, + ReturnTypeAnnotation: nil, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 125, Line: 11, Column: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 127, Line: 11, Column: 13}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 129, Line: 11, Column: 15}, + EndPos: ast.Position{Offset: 129, Line: 11, Column: 15}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 133, Line: 11, Column: 19}, + EndPos: ast.Position{Offset: 133, Line: 11, Column: 19}, + }, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 112, Line: 10, Column: 14}, + EndPos: ast.Position{Offset: 138, Line: 12, Column: 3}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 104, Line: 10, Column: 6}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 5, Line: 2, Column: 4}, + EndPos: ast.Position{Offset: 144, Line: 13, Column: 4}, + }, + }, + }, + result.Declarations(), + ) + }) + + t.Run("PreExecutePost", func(t *testing.T) { + const code = ` + transaction { + + var x: Int + + prepare(signer: AuthAccount) { + x = 0 + } + + pre { + x == 0 + } + + execute { + x = 1 + 1 + } + + post { + x == 2 + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.TransactionDeclaration{ + Fields: []*ast.FieldDeclaration{ + { + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 30, Line: 4, Column: 10}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 33, Line: 4, Column: 13}, + }, + }, + StartPos: ast.Position{Offset: 33, Line: 4, Column: 13}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 4, Column: 6}, + EndPos: ast.Position{Offset: 35, Line: 4, Column: 15}, + }, + }, + }, + Prepare: &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindPrepare, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "prepare", + Pos: ast.Position{Offset: 44, Line: 6, Column: 6}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "signer", + Pos: ast.Position{Offset: 52, Line: 6, Column: 14}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "AuthAccount", + Pos: ast.Position{Offset: 60, Line: 6, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 60, Line: 6, Column: 22}, + }, + StartPos: ast.Position{Offset: 52, Line: 6, Column: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 51, Line: 6, Column: 13}, + EndPos: ast.Position{Offset: 71, Line: 6, Column: 33}, + }, + }, + ReturnTypeAnnotation: nil, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 86, Line: 7, Column: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 88, Line: 7, Column: 13}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 90, Line: 7, Column: 15}, + EndPos: ast.Position{Offset: 90, Line: 7, Column: 15}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 73, Line: 6, Column: 35}, + EndPos: ast.Position{Offset: 95, Line: 8, Column: 3}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 44, Line: 6, Column: 6}, + }, + }, + PreConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationEqual, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 117, Line: 11, Column: 10}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 122, Line: 11, Column: 15}, + EndPos: ast.Position{Offset: 122, Line: 11, Column: 15}, + }, + }, + }, + }, + }, + PostConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationEqual, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 197, Line: 19, Column: 11}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 202, Line: 19, Column: 16}, + EndPos: ast.Position{Offset: 202, Line: 19, Column: 16}, + }, + }, + }, + }, + }, + Execute: &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindExecute, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "execute", + Pos: ast.Position{Offset: 136, Line: 14, Column: 6}, + }, + ReturnTypeAnnotation: nil, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 157, Line: 15, Column: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 159, Line: 15, Column: 13}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 161, Line: 15, Column: 15}, + EndPos: ast.Position{Offset: 161, Line: 15, Column: 15}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 165, Line: 15, Column: 19}, + EndPos: ast.Position{Offset: 165, Line: 15, Column: 19}, + }, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 144, Line: 14, Column: 14}, + EndPos: ast.Position{Offset: 170, Line: 16, Column: 3}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 136, Line: 14, Column: 6}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 5, Line: 2, Column: 4}, + EndPos: ast.Position{Offset: 219, Line: 21, Column: 4}, + }, + }, + }, + result.Declarations(), + ) + }) + + t.Run("PrePostExecute", func(t *testing.T) { + const code = ` + transaction { + + var x: Int + + prepare(signer: AuthAccount) { + x = 0 + } + + pre { + x == 0 + } + + post { + x == 2 + } + + execute { + x = 1 + 1 + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.TransactionDeclaration{ + Fields: []*ast.FieldDeclaration{ + { + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 30, Line: 4, Column: 10}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 33, Line: 4, Column: 13}, + }, + }, + StartPos: ast.Position{Offset: 33, Line: 4, Column: 13}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 4, Column: 6}, + EndPos: ast.Position{Offset: 35, Line: 4, Column: 15}, + }, + }, + }, + Prepare: &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindPrepare, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "prepare", + Pos: ast.Position{Offset: 44, Line: 6, Column: 6}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "signer", + Pos: ast.Position{Offset: 52, Line: 6, Column: 14}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "AuthAccount", + Pos: ast.Position{Offset: 60, Line: 6, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 60, Line: 6, Column: 22}, + }, + StartPos: ast.Position{Offset: 52, Line: 6, Column: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 51, Line: 6, Column: 13}, + EndPos: ast.Position{Offset: 71, Line: 6, Column: 33}, + }, + }, + ReturnTypeAnnotation: nil, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 86, Line: 7, Column: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 88, Line: 7, Column: 13}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 90, Line: 7, Column: 15}, + EndPos: ast.Position{Offset: 90, Line: 7, Column: 15}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 73, Line: 6, Column: 35}, + EndPos: ast.Position{Offset: 95, Line: 8, Column: 3}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 44, Line: 6, Column: 6}, + }, + }, + PreConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationEqual, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 117, Line: 11, Column: 10}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 122, Line: 11, Column: 15}, + EndPos: ast.Position{Offset: 122, Line: 11, Column: 15}, + }, + }, + }, + }, + }, + PostConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationEqual, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 154, Line: 15, Column: 11}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 159, Line: 15, Column: 16}, + EndPos: ast.Position{Offset: 159, Line: 15, Column: 16}, + }, + }, + }, + }, + }, + Execute: &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindExecute, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "execute", + Pos: ast.Position{Offset: 179, Line: 18, Column: 6}, + }, + ReturnTypeAnnotation: nil, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 200, Line: 19, Column: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 202, Line: 19, Column: 13}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 204, Line: 19, Column: 15}, + EndPos: ast.Position{Offset: 204, Line: 19, Column: 15}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 208, Line: 19, Column: 19}, + EndPos: ast.Position{Offset: 208, Line: 19, Column: 19}, + }, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 187, Line: 18, Column: 14}, + EndPos: ast.Position{Offset: 213, Line: 20, Column: 3}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 179, Line: 18, Column: 6}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 5, Line: 2, Column: 4}, + EndPos: ast.Position{Offset: 219, Line: 21, Column: 4}, + }, + }, + }, + result.Declarations(), + ) + }) +} + +func TestParseFunctionAndBlock(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + fun test() { return } + `) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + EndPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result, + ) +} + +func TestParseFunctionParameterWithoutLabel(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + fun test(x: Int) { } + `) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result, + ) +} + +func TestParseFunctionParameterWithLabel(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + fun test(x y: Int) { } + `) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "x", + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + }, + StartPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + EndPos: ast.Position{Offset: 27, Line: 2, Column: 26}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result, + ) +} + +func TestParseStructure(t *testing.T) { + + t.Parallel() + + const code = ` + struct Test { + pub(set) var foo: Int + + init(foo: Int) { + self.foo = foo + } + + pub fun getFoo(): Int { + return self.foo + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessPubSettableLegacy, + VariableKind: ast.VariableKindVariable, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 48, Line: 3, Column: 25}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 53, Line: 3, Column: 30}, + }, + }, + StartPos: ast.Position{Offset: 53, Line: 3, Column: 30}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 35, Line: 3, Column: 12}, + EndPos: ast.Position{Offset: 55, Line: 3, Column: 32}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "init", + Pos: ast.Position{Offset: 70, Line: 5, Column: 12}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 75, Line: 5, Column: 17}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 80, Line: 5, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 80, Line: 5, Column: 22}, + }, + StartPos: ast.Position{Offset: 75, Line: 5, Column: 17}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 74, Line: 5, Column: 16}, + EndPos: ast.Position{Offset: 83, Line: 5, Column: 25}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "self", + Pos: ast.Position{Offset: 103, Line: 6, Column: 16}, + }, + }, + AccessPos: ast.Position{Offset: 107, Line: 6, Column: 20}, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 108, Line: 6, Column: 21}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 112, Line: 6, Column: 25}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 114, Line: 6, Column: 27}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 85, Line: 5, Column: 27}, + EndPos: ast.Position{Offset: 130, Line: 7, Column: 12}, + }, + }, + }, + StartPos: ast.Position{Offset: 70, Line: 5, Column: 12}, + }, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "getFoo", + Pos: ast.Position{Offset: 153, Line: 9, Column: 20}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 159, Line: 9, Column: 26}, + EndPos: ast.Position{Offset: 160, Line: 9, Column: 27}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 163, Line: 9, Column: 30}, + }, + }, + StartPos: ast.Position{Offset: 163, Line: 9, Column: 30}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "self", + Pos: ast.Position{Offset: 192, Line: 10, Column: 23}, + }, + }, + AccessPos: ast.Position{Offset: 196, Line: 10, Column: 27}, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 197, Line: 10, Column: 28}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 185, Line: 10, Column: 16}, + EndPos: ast.Position{Offset: 199, Line: 10, Column: 30}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 167, Line: 9, Column: 34}, + EndPos: ast.Position{Offset: 213, Line: 11, Column: 12}, + }, + }, + }, + StartPos: ast.Position{Offset: 145, Line: 9, Column: 12}, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 223, Line: 12, Column: 8}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseStructureWithConformances(t *testing.T) { + + t.Parallel() + + const code = ` + struct Test: Foo, Bar {} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Conformances: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "Foo", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + { + Identifier: ast.Identifier{ + Identifier: "Bar", + Pos: ast.Position{Offset: 27, Line: 2, Column: 26}, + }, + }, + }, + Members: &ast.Members{}, + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseInvalidMember(t *testing.T) { + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + t.Parallel() + + const code = ` + struct Test { + foo let x: Int + } + ` + + _, errs := testParseDeclarations(code) + + require.Empty(t, errs) +} + +func TestParsePreAndPostConditions(t *testing.T) { + + t.Parallel() + + const code = ` + fun test(n: Int) { + pre { + n != 0 + n > 0 + } + post { + result == 0 + } + return 0 + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 185, Line: 10, Column: 19}, + EndPos: ast.Position{Offset: 185, Line: 10, Column: 19}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 178, Line: 10, Column: 12}, + EndPos: ast.Position{Offset: 185, Line: 10, Column: 19}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + EndPos: ast.Position{Offset: 195, Line: 11, Column: 8}, + }, + }, + PreConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationNotEqual, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 62, Line: 4, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 67, Line: 4, Column: 21}, + EndPos: ast.Position{Offset: 67, Line: 4, Column: 21}, + }, + }, + }, + }, + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationGreater, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 85, Line: 5, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 89, Line: 5, Column: 20}, + EndPos: ast.Position{Offset: 89, Line: 5, Column: 20}, + }, + }, + }, + }, + }, + PostConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationEqual, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "result", + Pos: ast.Position{Offset: 140, Line: 8, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 150, Line: 8, Column: 26}, + EndPos: ast.Position{Offset: 150, Line: 8, Column: 26}, + }, + }, + }, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseConditionMessage(t *testing.T) { + + t.Parallel() + + const code = ` + fun test(n: Int) { + pre { + n >= 0: "n must be positive" + } + return n + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{Identifier: "n", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 124, Line: 6, Column: 19}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 117, Line: 6, Column: 12}, + EndPos: ast.Position{Offset: 124, Line: 6, Column: 19}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + EndPos: ast.Position{Offset: 134, Line: 7, Column: 8}, + }, + }, + PreConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationGreaterEqual, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 62, Line: 4, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 67, Line: 4, Column: 21}, + EndPos: ast.Position{Offset: 67, Line: 4, Column: 21}, + }, + }, + }, + Message: &ast.StringExpression{ + Value: "n must be positive", + Range: ast.Range{ + StartPos: ast.Position{Offset: 70, Line: 4, Column: 24}, + EndPos: ast.Position{Offset: 89, Line: 4, Column: 43}, + }, + }, + }, + }, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseInterface(t *testing.T) { + + t.Parallel() + + for _, kind := range common.InstantiableCompositeKindsWithFieldsAndFunctions { + + code := fmt.Sprintf(` + %s interface Test { + foo: Int + + init(foo: Int) + + fun getFoo(): Int + } + `, kind.Keyword()) + actual, err := testParseProgram(code) + + require.NoError(t, err) + + // only compare AST for one kind: structs + + if kind != common.CompositeKindStructure { + continue + } + + test := &ast.InterfaceDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 30, Line: 2, Column: 29}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 53, Line: 3, Column: 16}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 58, Line: 3, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 58, Line: 3, Column: 21}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 53, Line: 3, Column: 16}, + EndPos: ast.Position{Offset: 60, Line: 3, Column: 23}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "init", + Pos: ast.Position{Offset: 79, Line: 5, Column: 16}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 84, Line: 5, Column: 21}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 89, Line: 5, Column: 26}, + }, + }, + StartPos: ast.Position{Offset: 89, Line: 5, Column: 26}, + }, + StartPos: ast.Position{Offset: 84, Line: 5, Column: 21}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 83, Line: 5, Column: 20}, + EndPos: ast.Position{Offset: 92, Line: 5, Column: 29}, + }, + }, + FunctionBlock: nil, + StartPos: ast.Position{Offset: 79, Line: 5, Column: 16}, + }, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "getFoo", + Pos: ast.Position{Offset: 115, Line: 7, Column: 20}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 121, Line: 7, Column: 26}, + EndPos: ast.Position{Offset: 122, Line: 7, Column: 27}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 125, Line: 7, Column: 30}, + }, + }, + StartPos: ast.Position{Offset: 125, Line: 7, Column: 30}, + }, + FunctionBlock: nil, + StartPos: ast.Position{Offset: 111, Line: 7, Column: 16}, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + EndPos: ast.Position{Offset: 141, Line: 8, Column: 12}, + }, + } + + utils.AssertEqualWithDiff(t, + []ast.Declaration{test}, + actual.Declarations(), + ) + } +} + +func TestParsePragmaNoArguments(t *testing.T) { + + t.Parallel() + + t.Run("identifier", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(`#pedantic`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.PragmaDeclaration{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "pedantic", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 0, Line: 1, Column: 0}, + EndPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + }, + result, + ) + }) + + t.Run("static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte("static #foo"), + Config{ + StaticModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("static #foo") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte("native #foo"), + Config{ + NativeModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("native #foo") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) +} + +func TestParsePragmaArguments(t *testing.T) { + + t.Parallel() + + const code = `#version("1.0")` + actual, err := testParseProgram(code) + require.NoError(t, err) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.PragmaDeclaration{ + Expression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "version", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + Arguments: ast.Arguments{ + { + Expression: &ast.StringExpression{ + Value: "1.0", + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 1, Column: 9}, + EndPos: ast.Position{Offset: 13, Line: 1, Column: 13}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 14, Line: 1, Column: 14}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + EndPos: ast.Position{Offset: 14, Line: 1, Column: 14}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 0, Line: 1, Column: 0}, + EndPos: ast.Position{Offset: 14, Line: 1, Column: 14}, + }, + }, + }, + actual.Declarations(), + ) +} + +func TestParseImportWithString(t *testing.T) { + + t.Parallel() + + const code = ` + import "test.cdc" + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: nil, + Location: common.StringLocation("test.cdc"), + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + LocationPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + result.Declarations(), + ) +} + +func TestParseImportWithAddress(t *testing.T) { + + t.Parallel() + + const code = ` + import 0x1234 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: nil, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x12, 0x34}), + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + LocationPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + result.Declarations(), + ) +} + +func TestParseImportWithIdentifiers(t *testing.T) { + + t.Parallel() + + const code = ` + import A, b from 0x1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: []ast.Identifier{ + { + Identifier: "A", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + { + Identifier: "b", + Pos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x1}), + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + LocationPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFieldWithFromIdentifier(t *testing.T) { + + t.Parallel() + + const code = ` + struct S { + let from: String + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindConstant, + Identifier: ast.Identifier{ + Identifier: "from", + Pos: ast.Position{Offset: 32, Line: 3, Column: 14}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "String", + Pos: ast.Position{Offset: 38, Line: 3, Column: 20}, + }, + }, + StartPos: ast.Position{Offset: 38, Line: 3, Column: 20}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 28, Line: 3, Column: 10}, + EndPos: ast.Position{Offset: 43, Line: 3, Column: 25}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + EndPos: ast.Position{Offset: 51, Line: 4, Column: 6}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionWithFromIdentifier(t *testing.T) { + + t.Parallel() + + const code = ` + fun send(from: String, to: String) {} + ` + _, errs := testParseProgram(code) + require.Empty(t, errs) +} + +func TestParseImportWithFromIdentifier(t *testing.T) { + + t.Parallel() + + const code = ` + import from from 0x1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.ImportDeclaration{ + Identifiers: []ast.Identifier{ + { + Identifier: "from", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + Location: common.AddressLocation{ + Address: common.MustBytesToAddress([]byte{0x1}), + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + LocationPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + }, + result.Declarations(), + ) +} + +func TestParseSemicolonsBetweenDeclarations(t *testing.T) { + + t.Parallel() + + const code = ` + import from from 0x0; + fun foo() {}; + ` + _, errs := testParseProgram(code) + require.Empty(t, errs) +} + +func TestParseResource(t *testing.T) { + + t.Parallel() + + const code = ` + resource Test {} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindResource, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + Members: &ast.Members{}, + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseEventDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + event Transfer(to: Address, from: Address) + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindEvent, + Identifier: ast.Identifier{ + Identifier: "Transfer", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "to", + Pos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Address", + Pos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + }, + StartPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + StartPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "from", + Pos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Address", + Pos: ast.Position{Offset: 43, Line: 2, Column: 42}, + }, + }, + StartPos: ast.Position{Offset: 43, Line: 2, Column: 42}, + }, + StartPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 50, Line: 2, Column: 49}, + }, + }, + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 50, Line: 2, Column: 49}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseEventEmitStatement(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + emit Transfer(to: 1, from: 2) + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.EmitStatement{ + InvocationExpression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "Transfer", + Pos: ast.Position{Offset: 33, Line: 3, Column: 13}, + }, + }, + Arguments: ast.Arguments{ + { + Label: "to", + LabelStartPos: &ast.Position{Offset: 42, Line: 3, Column: 22}, + LabelEndPos: &ast.Position{Offset: 44, Line: 3, Column: 24}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 46, Line: 3, Column: 26}, + EndPos: ast.Position{Offset: 46, Line: 3, Column: 26}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 47, Line: 3, Column: 27}, + }, + { + Label: "from", + LabelStartPos: &ast.Position{Offset: 49, Line: 3, Column: 29}, + LabelEndPos: &ast.Position{Offset: 53, Line: 3, Column: 33}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 55, Line: 3, Column: 35}, + EndPos: ast.Position{Offset: 55, Line: 3, Column: 35}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 56, Line: 3, Column: 36}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 41, Line: 3, Column: 21}, + EndPos: ast.Position{Offset: 56, Line: 3, Column: 36}, + }, + StartPos: ast.Position{Offset: 28, Line: 3, Column: 8}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + EndPos: ast.Position{Offset: 64, Line: 4, Column: 6}, + }, + }, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseResourceReturnType(t *testing.T) { + + t.Parallel() + + const code = ` + fun test(): @X {} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseMovingVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let x <- y + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseResourceParameterType(t *testing.T) { + + t.Parallel() + + const code = ` + fun test(x: @X) {} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Label: "", + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + EndPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseMovingVariableDeclarationWithTypeAnnotation(t *testing.T) { + + t.Parallel() + + const code = ` + let x: @R <- y + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFieldDeclarationWithMoveTypeAnnotation(t *testing.T) { + + t.Parallel() + + const code = ` + struct X { x: @R } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindNotSpecified, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + EndPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseDestructor(t *testing.T) { + + t.Parallel() + + const code = ` + resource Test { + destroy() {} + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindResource, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindDestructorLegacy, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "destroy", + Pos: ast.Position{Offset: 37, Line: 3, Column: 12}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 44, Line: 3, Column: 19}, + EndPos: ast.Position{Offset: 45, Line: 3, Column: 20}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 47, Line: 3, Column: 22}, + EndPos: ast.Position{Offset: 48, Line: 3, Column: 23}, + }, + }, + }, + StartPos: ast.Position{Offset: 37, Line: 3, Column: 12}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 58, Line: 4, Column: 8}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseCompositeDeclarationWithSemicolonSeparatedMembers(t *testing.T) { + + t.Parallel() + + const code = ` + struct Kitty { let id: Int ; init(id: Int) { self.id = id } } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Kitty", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FieldDeclaration{ + Access: ast.AccessNotSpecified, + VariableKind: ast.VariableKindConstant, + Identifier: ast.Identifier{ + Identifier: "id", + Pos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + StartPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + EndPos: ast.Position{Offset: 34, Line: 2, Column: 33}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "init", + Pos: ast.Position{Offset: 38, Line: 2, Column: 37}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Identifier: ast.Identifier{ + Identifier: "id", + Pos: ast.Position{Offset: 43, Line: 2, Column: 42}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 47, Line: 2, Column: 46}, + }, + }, + StartPos: ast.Position{Offset: 47, Line: 2, Column: 46}, + }, + StartPos: ast.Position{Offset: 43, Line: 2, Column: 42}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 42, Line: 2, Column: 41}, + EndPos: ast.Position{Offset: 50, Line: 2, Column: 49}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "self", + Pos: ast.Position{Offset: 54, Line: 2, Column: 53}, + }, + }, + AccessPos: ast.Position{Offset: 58, Line: 2, Column: 57}, + Identifier: ast.Identifier{ + Identifier: "id", + Pos: ast.Position{Offset: 59, Line: 2, Column: 58}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 62, Line: 2, Column: 61}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "id", + Pos: ast.Position{Offset: 64, Line: 2, Column: 63}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 52, Line: 2, Column: 51}, + EndPos: ast.Position{Offset: 67, Line: 2, Column: 66}, + }, + }, + }, + StartPos: ast.Position{Offset: 38, Line: 2, Column: 37}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + EndPos: ast.Position{Offset: 69, Line: 2, Column: 68}, + }, + }, + }, + result.Declarations(), + ) +} + +func TestParseAccessModifiers(t *testing.T) { + + t.Parallel() + + type declaration struct { + name, code string + } + + declarations := []declaration{ + {"variable", "%s var test = 1"}, + {"constant", "%s let test = 1"}, + {"function", "%s fun test() {}"}, + } + + for _, compositeKind := range common.AllCompositeKinds { + + for _, isInterface := range []bool{true, false} { + + if !compositeKind.SupportsInterfaces() && isInterface { + continue + } + + interfaceKeyword := "" + if isInterface { + interfaceKeyword = "interface" + } + + formatName := func(name string) string { + return fmt.Sprintf( + "%s %s %s", + compositeKind.Keyword(), + interfaceKeyword, + name, + ) + } + + var baseType = "" + + if compositeKind == common.CompositeKindAttachment { + baseType = "for AnyStruct" + } + + formatCode := func(format string) string { + return fmt.Sprintf(format, compositeKind.Keyword(), interfaceKeyword, baseType) + } + + if compositeKind == common.CompositeKindEvent { + declarations = append(declarations, + declaration{ + formatName("itself"), + formatCode("%%s %s %s Test()%s"), + }, + ) + } else { + declarations = append(declarations, + declaration{ + formatName("itself"), + formatCode("%%s %s %s Test %s {}"), + }, + declaration{ + formatName("field"), + formatCode("%s %s Test %s { %%s let test: Int ; init() { self.test = 1 } }"), + }, + declaration{ + formatName("function"), + formatCode("%s %s Test %s { %%s fun test() {} }"), + }, + ) + } + } + } + + for _, declaration := range declarations { + for _, access := range ast.BasicAccesses { + testName := fmt.Sprintf("%s/%s", declaration.name, access) + t.Run(testName, func(t *testing.T) { + program := fmt.Sprintf(declaration.code, access.Keyword()) + _, errs := testParseProgram(program) + + require.Empty(t, errs) + }) + } + } +} + +func TestParsePreconditionWithUnaryNegation(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + pre { + true: "one" + !false: "two" + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 12, Line: 2, Column: 11}, + EndPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 105, Line: 7, Column: 6}, + }, + }, + PreConditions: &ast.Conditions{ + &ast.TestCondition{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 47, Line: 4, Column: 14}, + EndPos: ast.Position{Offset: 50, Line: 4, Column: 17}, + }, + }, + Message: &ast.StringExpression{ + Value: "one", + Range: ast.Range{ + StartPos: ast.Position{Offset: 53, Line: 4, Column: 20}, + EndPos: ast.Position{Offset: 57, Line: 4, Column: 24}, + }, + }, + }, + &ast.TestCondition{ + Test: &ast.UnaryExpression{ + Operation: ast.OperationNegate, + Expression: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Offset: 74, Line: 5, Column: 15}, + EndPos: ast.Position{Offset: 78, Line: 5, Column: 19}, + }, + }, + StartPos: ast.Position{Offset: 73, Line: 5, Column: 14}, + }, + Message: &ast.StringExpression{ + Value: "two", + Range: ast.Range{ + StartPos: ast.Position{Offset: 81, Line: 5, Column: 22}, + EndPos: ast.Position{Offset: 85, Line: 5, Column: 26}, + }, + }, + }, + }, + }, + StartPos: ast.Position{Offset: 4, Line: 2, Column: 3}, + }, + }, + result.Declarations(), + ) +} + +func TestParseInvalidAccessModifiers(t *testing.T) { + + t.Parallel() + + t.Run("pragma", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("pub #test") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid access modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("transaction", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("pub transaction {}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid access modifier for transaction", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("transaction", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations("pub priv let x = 1") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid second access modifier", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + }) +} + +func TestParseInvalidImportWithModifier(t *testing.T) { + + t.Parallel() + + t.Run("static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + static import x from 0x1 + `), + Config{ + StaticModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for import", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + static import x from 0x1 + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + native import x from 0x1 + `), + Config{ + NativeModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for import", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + native import x from 0x1 + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) +} + +func TestParseInvalidEventWithModifier(t *testing.T) { + + t.Parallel() + + t.Run("static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + static event Foo() + `), + Config{ + StaticModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for event", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + static event Foo() + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + native event Foo() + `), + Config{ + NativeModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for event", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + native event Foo() + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) + +} + +func TestParseCompositeWithModifier(t *testing.T) { + + t.Parallel() + + t.Run("static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + static struct Foo() + `), + Config{ + StaticModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for structure", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + static struct Foo() + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + native struct Foo() + `), + Config{ + NativeModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for structure", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + native struct Foo() + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) +} + +func TestParseTransactionWithModifier(t *testing.T) { + + t.Parallel() + + t.Run("static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + static transaction {} + `), + Config{ + StaticModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for transaction", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + static transaction {} + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := ParseDeclarations( + nil, + []byte(` + native transaction {} + `), + Config{ + NativeModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for transaction", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + errs, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + native transaction {} + `) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + }, + errs, + ) + }) +} + +func TestParseNestedPragma(t *testing.T) { + + t.Parallel() + + parse := func(input string, config Config) (ast.Declaration, []error) { + return Parse( + nil, + []byte(input), + func(p *parser) (ast.Declaration, error) { + return parseMemberOrNestedDeclaration( + p, + "", + ) + }, + config, + ) + } + + t.Run("native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "native #foo", + Config{ + NativeModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid native modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("native #pragma", Config{}) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "static #pragma", + Config{ + StaticModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "static #pragma", + Config{}, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "static native #pragma", + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("static native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("static native #pragma", Config{}) + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected identifier", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + }) + + t.Run("native static, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "native static #pragma", + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid static modifier after native modifier", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + }) + + t.Run("pub", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("pub #pragma", Config{}) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid access modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("pub static native, enabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse( + "pub static native #pragma", + Config{ + StaticModifierEnabled: true, + NativeModifierEnabled: true, + }, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid access modifier for pragma", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("pub static native, disabled", func(t *testing.T) { + + t.Parallel() + + _, errs := parse("pub static native #pragma", Config{}) + + // For now, leading unknown identifiers are valid. + // This will be rejected in Stable Cadence. + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected identifier", + Pos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + errs, + ) + }) + +} + +func TestParseMemberDocStrings(t *testing.T) { + + t.Parallel() + + t.Run("functions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + struct Test { + + /// noReturnNoBlock + fun noReturnNoBlock() + + /// returnNoBlock + fun returnNoBlock(): Int + + /// returnAndBlock + fun returnAndBlock(): String {} + } + `) + + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + DocString: " noReturnNoBlock", + Identifier: ast.Identifier{ + Identifier: "noReturnNoBlock", + Pos: ast.Position{Offset: 78, Line: 5, Column: 18}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 93, Line: 5, Column: 33}, + EndPos: ast.Position{Offset: 94, Line: 5, Column: 34}, + }, + }, + StartPos: ast.Position{Offset: 74, Line: 5, Column: 14}, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + DocString: " returnNoBlock", + Identifier: ast.Identifier{ + Identifier: "returnNoBlock", + Pos: ast.Position{Offset: 147, Line: 8, Column: 18}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 160, Line: 8, Column: 31}, + EndPos: ast.Position{Offset: 161, Line: 8, Column: 32}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 164, Line: 8, Column: 35}, + }, + }, + StartPos: ast.Position{Offset: 164, Line: 8, Column: 35}, + }, + StartPos: ast.Position{Offset: 143, Line: 8, Column: 14}, + }, + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + DocString: " returnAndBlock", + Identifier: ast.Identifier{ + Identifier: "returnAndBlock", + Pos: ast.Position{Offset: 220, Line: 11, Column: 18}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 234, Line: 11, Column: 32}, + EndPos: ast.Position{Offset: 235, Line: 11, Column: 33}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "String", + Pos: ast.Position{Offset: 238, Line: 11, Column: 36}, + }, + }, + StartPos: ast.Position{Offset: 238, Line: 11, Column: 36}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 245, Line: 11, Column: 43}, + EndPos: ast.Position{Offset: 246, Line: 11, Column: 44}, + }, + }, + }, + StartPos: ast.Position{Offset: 216, Line: 11, Column: 14}, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 11, Line: 2, Column: 10}, + EndPos: ast.Position{Offset: 258, Line: 12, Column: 10}, + }, + }, + }, + result, + ) + }) + + t.Run("special functions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` + struct Test { + + /// unknown + unknown() + + /// initNoBlock + init() + + /// destroyWithBlock + destroy() {} + } + `) + + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Access: ast.AccessNotSpecified, + CompositeKind: common.CompositeKindStructure, + Identifier: ast.Identifier{ + Identifier: "Test", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindUnknown, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + DocString: " unknown", + Identifier: ast.Identifier{ + Identifier: "unknown", + Pos: ast.Position{Offset: 66, Line: 5, Column: 14}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 73, Line: 5, Column: 21}, + EndPos: ast.Position{Offset: 74, Line: 5, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 66, Line: 5, Column: 14}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindInitializer, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + DocString: " initNoBlock", + Identifier: ast.Identifier{ + Identifier: "init", + Pos: ast.Position{Offset: 121, Line: 8, Column: 14}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 125, Line: 8, Column: 18}, + EndPos: ast.Position{Offset: 126, Line: 8, Column: 19}, + }, + }, + StartPos: ast.Position{Offset: 121, Line: 8, Column: 14}, + }, + }, + &ast.SpecialFunctionDeclaration{ + Kind: common.DeclarationKindDestructorLegacy, + FunctionDeclaration: &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + DocString: " destroyWithBlock", + Identifier: ast.Identifier{ + Identifier: "destroy", + Pos: ast.Position{Offset: 178, Line: 11, Column: 14}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 185, Line: 11, Column: 21}, + EndPos: ast.Position{Offset: 186, Line: 11, Column: 22}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 188, Line: 11, Column: 24}, + EndPos: ast.Position{Offset: 189, Line: 11, Column: 25}, + }, + }, + }, + StartPos: ast.Position{Offset: 178, Line: 11, Column: 14}, + }, + }, + }, + ), + Range: ast.Range{ + StartPos: ast.Position{Offset: 11, Line: 2, Column: 10}, + EndPos: ast.Position{Offset: 201, Line: 12, Column: 10}, + }, + }, + }, + result, + ) + }) + +} + +func TestParseInvalidSpecialFunctionReturnTypeAnnotation(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + struct Test { + + init(): Int + } + `) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid return type for initializer", + Pos: ast.Position{Offset: 40, Line: 4, Column: 18}, + }, + }, + errs, + ) +} diff --git a/runtime/old_parser/docstring.go b/runtime/old_parser/docstring.go new file mode 100644 index 0000000000..42f700a422 --- /dev/null +++ b/runtime/old_parser/docstring.go @@ -0,0 +1,68 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "regexp" + "strings" +) + +var pragmaArgumentRegexp = regexp.MustCompile(`^\s+pragma\s+arguments\s+(.*)(?:\n|$)`) + +// ParseDocstringPragmaArguments parses the docstring and returns the values of all pragma arguments declarations. +// +// A pragma arguments declaration has the form `pragma arguments `, +// where is a Cadence argument list. +// +// The validity of the argument list is NOT checked by this function. +func ParseDocstringPragmaArguments(docString string) []string { + var pragmaArguments []string + + for _, line := range strings.Split(docString, "\n") { + match := pragmaArgumentRegexp.FindStringSubmatch(line) + if match == nil { + continue + } + pragmaArguments = append(pragmaArguments, match[1]) + } + + return pragmaArguments +} + +var pragmaSignersRegexp = regexp.MustCompile(`^\s+pragma\s+signers\s+(.*)(?:\n|$)`) + +// ParseDocstringPragmaSigners parses the docstring and returns the values of all pragma signers declarations. +// +// A pragma signers declaration has the form `pragma signers `, +// where is a list of strings. +// +// The validity of the argument list is NOT checked by this function. +func ParseDocstringPragmaSigners(docString string) []string { + var pragmaSigners []string + + for _, line := range strings.Split(docString, "\n") { + match := pragmaSignersRegexp.FindStringSubmatch(line) + if match == nil { + continue + } + pragmaSigners = append(pragmaSigners, match[1]) + } + + return pragmaSigners +} diff --git a/runtime/old_parser/docstring_test.go b/runtime/old_parser/docstring_test.go new file mode 100644 index 0000000000..dd46ee23fa --- /dev/null +++ b/runtime/old_parser/docstring_test.go @@ -0,0 +1,68 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestParseDocstringPragmaArguments(t *testing.T) { + + t.Parallel() + + actual := ParseDocstringPragmaArguments(` + pragma arguments (a: 1) + other stuff + + pragma arguments (b: 2) + + pragma arguments ( a: 1 , b: 2)`) + + require.Equal(t, + []string{ + "(a: 1)", + "(b: 2) ", + "( a: 1 , b: 2)", + }, + actual, + ) +} + +func TestParseDocstringPragmaSigners(t *testing.T) { + t.Parallel() + + actual := ParseDocstringPragmaSigners(` + pragma signers (alice) + other stuff + + pragma signers (alice, bob) + + pragma signers ( alice , bob )`) + + require.Equal(t, + []string{ + "(alice)", + "(alice, bob) ", + "( alice , bob )", + }, + actual, + ) +} diff --git a/runtime/old_parser/errors.go b/runtime/old_parser/errors.go new file mode 100644 index 0000000000..9c0d1deb6a --- /dev/null +++ b/runtime/old_parser/errors.go @@ -0,0 +1,260 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "fmt" + "strings" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/pretty" +) + +// Error + +type Error struct { + Code []byte + Errors []error +} + +func (e Error) Error() string { + var sb strings.Builder + sb.WriteString("Parsing failed:\n") + printErr := pretty.NewErrorPrettyPrinter(&sb, false). + PrettyPrintError(e, nil, map[common.Location][]byte{nil: e.Code}) + if printErr != nil { + panic(printErr) + } + return sb.String() +} + +func (e Error) ChildErrors() []error { + return e.Errors +} + +func (e Error) Unwrap() []error { + return e.Errors +} + +// ParserError + +type ParseError interface { + errors.UserError + ast.HasPosition + isParseError() +} + +// SyntaxError + +type SyntaxError struct { + Message string + Pos ast.Position +} + +func NewSyntaxError(pos ast.Position, message string, params ...any) *SyntaxError { + return &SyntaxError{ + Pos: pos, + Message: fmt.Sprintf(message, params...), + } +} + +func NewUnpositionedSyntaxError(message string, params ...any) *SyntaxError { + return &SyntaxError{ + Pos: ast.Position{Line: 1}, + Message: fmt.Sprintf(message, params...), + } +} + +var _ ParseError = &SyntaxError{} +var _ errors.UserError = &SyntaxError{} + +func (*SyntaxError) isParseError() {} + +func (*SyntaxError) IsUserError() {} + +func (e *SyntaxError) StartPosition() ast.Position { + return e.Pos +} + +func (e *SyntaxError) EndPosition(_ common.MemoryGauge) ast.Position { + return e.Pos +} + +func (e *SyntaxError) Error() string { + return e.Message +} + +// JuxtaposedUnaryOperatorsError + +type JuxtaposedUnaryOperatorsError struct { + Pos ast.Position +} + +var _ ParseError = &JuxtaposedUnaryOperatorsError{} +var _ errors.UserError = &JuxtaposedUnaryOperatorsError{} + +func (*JuxtaposedUnaryOperatorsError) isParseError() {} + +func (*JuxtaposedUnaryOperatorsError) IsUserError() {} + +func (e *JuxtaposedUnaryOperatorsError) StartPosition() ast.Position { + return e.Pos +} + +func (e *JuxtaposedUnaryOperatorsError) EndPosition(_ common.MemoryGauge) ast.Position { + return e.Pos +} + +func (e *JuxtaposedUnaryOperatorsError) Error() string { + return "unary operators must not be juxtaposed; parenthesize inner expression" +} + +// InvalidIntegerLiteralError + +type InvalidIntegerLiteralError struct { + Literal string + IntegerLiteralKind common.IntegerLiteralKind + InvalidIntegerLiteralKind InvalidNumberLiteralKind + ast.Range +} + +var _ ParseError = &InvalidIntegerLiteralError{} +var _ errors.UserError = &InvalidIntegerLiteralError{} +var _ errors.SecondaryError = &InvalidIntegerLiteralError{} + +func (*InvalidIntegerLiteralError) isParseError() {} + +func (*InvalidIntegerLiteralError) IsUserError() {} + +func (e *InvalidIntegerLiteralError) Error() string { + if e.IntegerLiteralKind == common.IntegerLiteralKindUnknown { + return fmt.Sprintf( + "invalid integer literal `%s`: %s", + e.Literal, + e.InvalidIntegerLiteralKind.Description(), + ) + } + + return fmt.Sprintf( + "invalid %s integer literal `%s`: %s", + e.IntegerLiteralKind.Name(), + e.Literal, + e.InvalidIntegerLiteralKind.Description(), + ) +} + +func (e *InvalidIntegerLiteralError) SecondaryError() string { + switch e.InvalidIntegerLiteralKind { + case InvalidNumberLiteralKindUnknown: + return "" + case InvalidNumberLiteralKindLeadingUnderscore: + return "remove the leading underscore" + case InvalidNumberLiteralKindTrailingUnderscore: + return "remove the trailing underscore" + case InvalidNumberLiteralKindUnknownPrefix: + return "did you mean `0x` (hexadecimal), `0b` (binary), or `0o` (octal)?" + case InvalidNumberLiteralKindMissingDigits: + return "consider adding a 0" + } + + panic(errors.NewUnreachableError()) +} + +// ExpressionDepthLimitReachedError is reported when the expression depth limit was reached +type ExpressionDepthLimitReachedError struct { + Pos ast.Position +} + +var _ ParseError = ExpressionDepthLimitReachedError{} +var _ errors.UserError = ExpressionDepthLimitReachedError{} + +func (ExpressionDepthLimitReachedError) isParseError() {} + +func (ExpressionDepthLimitReachedError) IsUserError() {} + +func (e ExpressionDepthLimitReachedError) Error() string { + return fmt.Sprintf( + "program too complex, reached max expression depth limit %d", + expressionDepthLimit, + ) +} + +func (e ExpressionDepthLimitReachedError) StartPosition() ast.Position { + return e.Pos +} + +func (e ExpressionDepthLimitReachedError) EndPosition(_ common.MemoryGauge) ast.Position { + return e.Pos +} + +// TypeDepthLimitReachedError is reported when the type depth limit was reached +// + +type TypeDepthLimitReachedError struct { + Pos ast.Position +} + +var _ ParseError = TypeDepthLimitReachedError{} +var _ errors.UserError = TypeDepthLimitReachedError{} + +func (TypeDepthLimitReachedError) isParseError() {} + +func (TypeDepthLimitReachedError) IsUserError() {} + +func (e TypeDepthLimitReachedError) Error() string { + return fmt.Sprintf( + "program too complex, reached max type depth limit %d", + typeDepthLimit, + ) +} + +func (e TypeDepthLimitReachedError) StartPosition() ast.Position { + return e.Pos +} + +func (e TypeDepthLimitReachedError) EndPosition(_ common.MemoryGauge) ast.Position { + return e.Pos +} + +// MissingCommaInParameterListError + +type MissingCommaInParameterListError struct { + Pos ast.Position +} + +var _ ParseError = &MissingCommaInParameterListError{} +var _ errors.UserError = &MissingCommaInParameterListError{} + +func (*MissingCommaInParameterListError) isParseError() {} + +func (*MissingCommaInParameterListError) IsUserError() {} + +func (e *MissingCommaInParameterListError) StartPosition() ast.Position { + return e.Pos +} + +func (e *MissingCommaInParameterListError) EndPosition(_ common.MemoryGauge) ast.Position { + return e.Pos +} + +func (e *MissingCommaInParameterListError) Error() string { + return "missing comma after parameter" +} diff --git a/runtime/old_parser/expression.go b/runtime/old_parser/expression.go new file mode 100644 index 0000000000..b4fd4c2a12 --- /dev/null +++ b/runtime/old_parser/expression.go @@ -0,0 +1,1818 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "math/big" + "strings" + "unicode/utf8" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/parser/lexer" +) + +const exprBindingPowerGap = 10 + +const ( + exprLeftBindingPowerTernary = exprBindingPowerGap * (iota + 2) + exprLeftBindingPowerLogicalOr + exprLeftBindingPowerLogicalAnd + exprLeftBindingPowerComparison + exprLeftBindingPowerNilCoalescing + exprLeftBindingPowerBitwiseOr + exprLeftBindingPowerBitwiseXor + exprLeftBindingPowerBitwiseAnd + exprLeftBindingPowerBitwiseShift + exprLeftBindingPowerAddition + exprLeftBindingPowerMultiplication + exprLeftBindingPowerCasting + exprLeftBindingPowerUnaryPrefix + exprLeftBindingPowerUnaryPostfix + exprLeftBindingPowerAccess +) + +type infixExprFunc func(parser *parser, left, right ast.Expression) (ast.Expression, error) +type prefixExprFunc func(parser *parser, right ast.Expression, tokenRange ast.Range) (ast.Expression, error) +type postfixExprFunc func(parser *parser, left ast.Expression, tokenRange ast.Range) (ast.Expression, error) +type exprNullDenotationFunc func(parser *parser, token lexer.Token) (ast.Expression, error) +type exprMetaLeftDenotationFunc func( + p *parser, + rightBindingPower int, + left ast.Expression, +) ( + result ast.Expression, + err error, + done bool, +) + +type literalExpr struct { + nullDenotation exprNullDenotationFunc + tokenType lexer.TokenType +} + +type infixExpr struct { + leftDenotation infixExprFunc + leftBindingPower int + tokenType lexer.TokenType + rightAssociative bool +} + +type binaryExpr struct { + leftBindingPower int + operation ast.Operation + tokenType lexer.TokenType + rightAssociative bool +} + +type prefixExpr struct { + nullDenotation prefixExprFunc + bindingPower int + tokenType lexer.TokenType +} + +type unaryExpr struct { + tokenType lexer.TokenType + bindingPower int + operation ast.Operation +} + +type postfixExpr struct { + leftDenotation postfixExprFunc + bindingPower int + tokenType lexer.TokenType +} + +var exprNullDenotations = [lexer.TokenMax]exprNullDenotationFunc{} + +type exprLeftDenotationFunc func(parser *parser, token lexer.Token, left ast.Expression) (ast.Expression, error) + +var exprLeftBindingPowers = [lexer.TokenMax]int{} +var exprIdentifierLeftBindingPowers = map[string]int{} +var exprLeftDenotations = [lexer.TokenMax]exprLeftDenotationFunc{} +var exprMetaLeftDenotations = [lexer.TokenMax]exprMetaLeftDenotationFunc{} + +func defineExpr(def any) { + switch def := def.(type) { + case infixExpr: + tokenType := def.tokenType + + setExprLeftBindingPower(tokenType, def.leftBindingPower) + + rightBindingPower := def.leftBindingPower + if def.rightAssociative { + rightBindingPower-- + } + + setExprLeftDenotation( + tokenType, + func(parser *parser, _ lexer.Token, left ast.Expression) (ast.Expression, error) { + right, err := parseExpression(parser, rightBindingPower) + if err != nil { + return nil, err + } + + return def.leftDenotation(parser, left, right) + }, + ) + + case binaryExpr: + defineExpr(infixExpr{ + tokenType: def.tokenType, + leftBindingPower: def.leftBindingPower, + rightAssociative: def.rightAssociative, + leftDenotation: func(p *parser, left, right ast.Expression) (ast.Expression, error) { + return ast.NewBinaryExpression( + p.memoryGauge, + def.operation, + left, + right, + ), nil + }, + }) + + case literalExpr: + tokenType := def.tokenType + setExprNullDenotation(tokenType, def.nullDenotation) + + case prefixExpr: + tokenType := def.tokenType + setExprNullDenotation( + tokenType, + func(parser *parser, token lexer.Token) (ast.Expression, error) { + right, err := parseExpression(parser, def.bindingPower) + if err != nil { + return nil, err + } + + return def.nullDenotation(parser, right, token.Range) + }, + ) + + case unaryExpr: + defineExpr(prefixExpr{ + tokenType: def.tokenType, + bindingPower: def.bindingPower, + nullDenotation: func(p *parser, right ast.Expression, tokenRange ast.Range) (ast.Expression, error) { + return ast.NewUnaryExpression( + p.memoryGauge, + def.operation, + right, + tokenRange.StartPos, + ), nil + }, + }) + + case postfixExpr: + tokenType := def.tokenType + setExprLeftBindingPower(tokenType, def.bindingPower) + setExprLeftDenotation( + tokenType, + func(p *parser, token lexer.Token, left ast.Expression) (ast.Expression, error) { + return def.leftDenotation(p, left, token.Range) + }, + ) + + default: + panic(errors.NewUnreachableError()) + } +} + +func setExprNullDenotation(tokenType lexer.TokenType, nullDenotation exprNullDenotationFunc) { + current := exprNullDenotations[tokenType] + if current != nil { + panic(errors.NewUnexpectedError( + "expression null denotation for token %s already exists", + tokenType, + )) + } + exprNullDenotations[tokenType] = nullDenotation +} + +func setExprLeftBindingPower(tokenType lexer.TokenType, power int) { + current := exprLeftBindingPowers[tokenType] + if current > power { + return + } + exprLeftBindingPowers[tokenType] = power +} + +func setExprIdentifierLeftBindingPower(keyword string, power int) { + current := exprIdentifierLeftBindingPowers[keyword] + if current > power { + return + } + exprIdentifierLeftBindingPowers[keyword] = power +} + +func setExprLeftDenotation(tokenType lexer.TokenType, leftDenotation exprLeftDenotationFunc) { + current := exprLeftDenotations[tokenType] + if current != nil { + panic(errors.NewUnexpectedError( + "expression left denotation for token %s already exists", + tokenType, + )) + } + + exprLeftDenotations[tokenType] = leftDenotation +} + +func setExprMetaLeftDenotation(tokenType lexer.TokenType, metaLeftDenotation exprMetaLeftDenotationFunc) { + current := exprMetaLeftDenotations[tokenType] + if current != nil { + panic(errors.NewUnexpectedError( + "expression meta left denotation for token %s already exists", + tokenType, + )) + } + exprMetaLeftDenotations[tokenType] = metaLeftDenotation +} + +// init defines the binding power for operations. +func init() { + + defineExpr(binaryExpr{ + tokenType: lexer.TokenVerticalBarVerticalBar, + leftBindingPower: exprLeftBindingPowerLogicalOr, + operation: ast.OperationOr, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenAmpersandAmpersand, + leftBindingPower: exprLeftBindingPowerLogicalAnd, + operation: ast.OperationAnd, + }) + + defineLessThanOrTypeArgumentsExpression() + defineGreaterThanOrBitwiseRightShiftExpression() + + defineExpr(binaryExpr{ + tokenType: lexer.TokenLessEqual, + leftBindingPower: exprLeftBindingPowerComparison, + operation: ast.OperationLessEqual, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenGreaterEqual, + leftBindingPower: exprLeftBindingPowerComparison, + operation: ast.OperationGreaterEqual, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenEqualEqual, + leftBindingPower: exprLeftBindingPowerComparison, + operation: ast.OperationEqual, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenNotEqual, + leftBindingPower: exprLeftBindingPowerComparison, + operation: ast.OperationNotEqual, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenDoubleQuestionMark, + leftBindingPower: exprLeftBindingPowerNilCoalescing, + operation: ast.OperationNilCoalesce, + rightAssociative: true, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenVerticalBar, + leftBindingPower: exprLeftBindingPowerBitwiseOr, + operation: ast.OperationBitwiseOr, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenCaret, + leftBindingPower: exprLeftBindingPowerBitwiseXor, + operation: ast.OperationBitwiseXor, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenAmpersand, + leftBindingPower: exprLeftBindingPowerBitwiseAnd, + operation: ast.OperationBitwiseAnd, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenLessLess, + leftBindingPower: exprLeftBindingPowerBitwiseShift, + operation: ast.OperationBitwiseLeftShift, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenPlus, + leftBindingPower: exprLeftBindingPowerAddition, + operation: ast.OperationPlus, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenMinus, + leftBindingPower: exprLeftBindingPowerAddition, + operation: ast.OperationMinus, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenStar, + leftBindingPower: exprLeftBindingPowerMultiplication, + operation: ast.OperationMul, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenSlash, + leftBindingPower: exprLeftBindingPowerMultiplication, + operation: ast.OperationDiv, + }) + + defineExpr(binaryExpr{ + tokenType: lexer.TokenPercent, + leftBindingPower: exprLeftBindingPowerMultiplication, + operation: ast.OperationMod, + }) + + defineIdentifierLeftDenotations() + + defineExpr(literalExpr{ + tokenType: lexer.TokenBinaryIntegerLiteral, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + literal := p.tokenSource(token) + return parseIntegerLiteral( + p, + literal, + literal[2:], + common.IntegerLiteralKindBinary, + token.Range, + ), nil + }, + }) + + defineExpr(literalExpr{ + tokenType: lexer.TokenOctalIntegerLiteral, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + literal := p.tokenSource(token) + return parseIntegerLiteral( + p, + literal, + literal[2:], + common.IntegerLiteralKindOctal, + token.Range, + ), nil + }, + }) + + defineExpr(literalExpr{ + tokenType: lexer.TokenDecimalIntegerLiteral, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + literal := p.tokenSource(token) + return parseIntegerLiteral( + p, + literal, + literal, + common.IntegerLiteralKindDecimal, + token.Range, + ), nil + }, + }) + + defineExpr(literalExpr{ + tokenType: lexer.TokenHexadecimalIntegerLiteral, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + literal := p.tokenSource(token) + return parseIntegerLiteral( + p, + literal, + literal[2:], + common.IntegerLiteralKindHexadecimal, + token.Range, + ), nil + }, + }) + + defineExpr(literalExpr{ + tokenType: lexer.TokenUnknownBaseIntegerLiteral, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + literal := p.tokenSource(token) + return parseIntegerLiteral( + p, + literal, + literal[2:], + common.IntegerLiteralKindUnknown, + token.Range, + ), nil + }, + }) + + defineExpr(literalExpr{ + tokenType: lexer.TokenFixedPointNumberLiteral, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + literal := p.tokenSource(token) + return parseFixedPointLiteral( + p, + literal, + token.Range, + ), nil + }, + }) + + defineExpr(literalExpr{ + tokenType: lexer.TokenString, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + literal := p.tokenSource(token) + parsedString := parseStringLiteral(p, literal) + return ast.NewStringExpression( + p.memoryGauge, + parsedString, + token.Range, + ), nil + }, + }) + + defineExpr(prefixExpr{ + tokenType: lexer.TokenMinus, + bindingPower: exprLeftBindingPowerUnaryPrefix, + nullDenotation: func(p *parser, right ast.Expression, tokenRange ast.Range) (ast.Expression, error) { + switch right := right.(type) { + case *ast.IntegerExpression: + if right.Value.Sign() > 0 { + if right.Value != nil { + right.Value.Neg(right.Value) + } + right.StartPos = tokenRange.StartPos + return right, nil + } + + case *ast.FixedPointExpression: + if !right.Negative { + right.Negative = !right.Negative + right.StartPos = tokenRange.StartPos + return right, nil + } + } + + return ast.NewUnaryExpression( + p.memoryGauge, + ast.OperationMinus, + right, + tokenRange.StartPos, + ), nil + }, + }) + + defineExpr(unaryExpr{ + tokenType: lexer.TokenExclamationMark, + bindingPower: exprLeftBindingPowerUnaryPrefix, + operation: ast.OperationNegate, + }) + + defineExpr(unaryExpr{ + tokenType: lexer.TokenLeftArrow, + bindingPower: exprLeftBindingPowerUnaryPrefix, + operation: ast.OperationMove, + }) + + defineExpr(postfixExpr{ + tokenType: lexer.TokenExclamationMark, + bindingPower: exprLeftBindingPowerUnaryPostfix, + leftDenotation: func(p *parser, left ast.Expression, tokenRange ast.Range) (ast.Expression, error) { + return ast.NewForceExpression( + p.memoryGauge, + left, + tokenRange.EndPos, + ), nil + }, + }) + + defineNestedExpression() + defineInvocationExpression() + defineArrayExpression() + defineDictionaryExpression() + defineIndexExpression() + definePathExpression() + defineConditionalExpression() + defineReferenceExpression() + defineMemberExpression() + defineIdentifierExpression() + + setExprNullDenotation(lexer.TokenEOF, func(parser *parser, token lexer.Token) (ast.Expression, error) { + return nil, NewSyntaxError(token.StartPos, "unexpected end of program") + }) +} + +func defineLessThanOrTypeArgumentsExpression() { + + // The less token `<` does not have a single left binding power, + // but one depending on the tokens following it: + // + // Either an invocation with type arguments (zero or more, comma separated), + // followed by a closing greater token `>` and argument list; + // or a normal expression. + // + // lessThenOrTypeArguments : '<' + // ( ( ( typeAnnotation ( ',' )* )? '>' argumentList ) + // | expression + // ) + // + // + // Parse this ambiguity by first trying to parse type arguments + // and a closing greater token `>` and start of an argument list, + // i.e. the open paren token `(`. + // + // If that parse fails, the result expression must be a binary expression, + // and a normal expression must follow. + // + // In both cases, the right binding power must be checked, + // just like it is before a normal left denotation is applied. + + const binaryExpressionLeftBindingPower = exprLeftBindingPowerComparison + const invocationExpressionLeftBindingPower = exprLeftBindingPowerAccess + + setExprMetaLeftDenotation( + lexer.TokenLess, + func(p *parser, rightBindingPower int, left ast.Expression) (result ast.Expression, err error, done bool) { + + var typeArguments []*ast.TypeAnnotation + + // Start buffering before skipping the `<` token, + // so it can be replayed in case the right binding power + // was higher than the determined left binding power. + + p.startBuffering() + p.startAmbiguity() + defer p.endAmbiguity() + + // Skip the `<` token. + p.nextSemanticToken() + + // First, try to parse zero or more comma-separated type + // arguments (type annotations), a closing greater token `>`, + // and the start of an argument list, i.e. the open paren token `(`. + // + // This parse may fail, in which case we just ignore the error, + // except for fatal errors. + + var argumentsStartPos ast.Position + + err = func() error { + defer func() { + err := recover() + // MemoryError should abort parsing + _, ok := err.(errors.MemoryError) + if ok { + panic(err) + } + }() + + typeArguments, err = parseCommaSeparatedTypeAnnotations(p, lexer.TokenGreater) + if err != nil { + return err + } + + _, err = p.mustOne(lexer.TokenGreater) + if err != nil { + return err + } + + p.skipSpaceAndComments() + parenOpenToken, err := p.mustOne(lexer.TokenParenOpen) + if err != nil { + return err + } + + argumentsStartPos = parenOpenToken.EndPos + + return nil + }() + + // `err` is nil means the expression is an invocation + if err == nil { + + // The expression was determined to be an invocation. + // Still, it should have maybe not been parsed if the right binding power + // was higher. In that case, replay the buffered tokens and stop. + + if rightBindingPower >= invocationExpressionLeftBindingPower { + err = p.replayBuffered() + if err != nil { + return nil, err, true + } + + return left, nil, true + } + + // The previous attempt to parse an invocation succeeded, + // accept the buffered tokens. + + p.acceptBuffered() + + arguments, endPos, err := parseArgumentListRemainder(p) + if err != nil { + return nil, err, true + } + + invocationExpression := ast.NewInvocationExpression( + p.memoryGauge, + left, + typeArguments, + arguments, + argumentsStartPos, + endPos, + ) + + return invocationExpression, nil, false + + } else { + + // The previous attempt to parse an invocation failed, + // replay the buffered tokens. + + err = p.replayBuffered() + if err != nil { + return nil, err, true + } + + // The expression was determined to *not* be an invocation, + // so it must be a binary expression. + // + // Like for a normal left denotation, + // check if this left denotation applies. + + if rightBindingPower >= binaryExpressionLeftBindingPower { + return left, nil, true + } + + // Skip the `<` token. + // The token buffering started before this token, + // because it should have maybe not been parsed in the first place + // if the right binding power is higher. + + p.nextSemanticToken() + + right, err := parseExpression(p, binaryExpressionLeftBindingPower) + if err != nil { + return nil, err, true + } + + binaryExpression := ast.NewBinaryExpression( + p.memoryGauge, + ast.OperationLess, + left, + right, + ) + + return binaryExpression, nil, false + } + }) +} + +// defineGreaterThanOrBitwiseRightShiftExpression parses +// the greater-than expression (operator `>`, e.g. `1 > 2`) +// and the bitwise right shift expression (operator `>>`, e.g. `1 >> 3`). +// +// The `>>` operator consists of two `>` tokens, instead of one dedicated `>>` token, +// because that would introduce a parsing problem for function calls/invocations +// which have a type argument, where the type argument is a type instantiation, +// for example, `f>()`. +func defineGreaterThanOrBitwiseRightShiftExpression() { + + setExprMetaLeftDenotation( + lexer.TokenGreater, + func(p *parser, rightBindingPower int, left ast.Expression) (result ast.Expression, err error, done bool) { + + // If the right binding power is higher than any of the potential cases, + // then return early + + if rightBindingPower >= exprLeftBindingPowerBitwiseShift && + rightBindingPower >= exprLeftBindingPowerComparison { + + return left, nil, true + } + + // Perform a lookahead for '>' + + current := p.current + cursor := p.tokens.Cursor() + + // Skip the `>` token. + p.next() + + // If another '>' token appears immediately, + // then the operator is actually a bitwise right shift operator + + isBitwiseShift := p.current.Is(lexer.TokenGreater) + + var operation ast.Operation + var nextRightBindingPower int + + if isBitwiseShift { + + operation = ast.OperationBitwiseRightShift + + // The expression was determined to be a bitwise shift. + // Still, it should have maybe not been parsed if the right binding power + // was higher. In that case, replay the buffered tokens and stop. + + if rightBindingPower >= exprLeftBindingPowerBitwiseShift { + p.current = current + p.tokens.Revert(cursor) + + return left, nil, true + } + + // The previous attempt to parse a bitwise right shift succeeded, + // accept the buffered tokens. + + nextRightBindingPower = exprLeftBindingPowerBitwiseShift + + } else { + + operation = ast.OperationGreater + + // The previous attempt to parse a bitwise right shift failed, + // replay the buffered tokens. + + p.current = current + p.tokens.Revert(cursor) + + // The expression was determined to *not* be a bitwise shift, + // so it must be a comparison expression. + // + // Like for a normal left denotation, + // check if this left denotation applies. + + if rightBindingPower >= exprLeftBindingPowerComparison { + return left, nil, true + } + + nextRightBindingPower = exprLeftBindingPowerComparison + } + + p.nextSemanticToken() + + right, err := parseExpression(p, nextRightBindingPower) + if err != nil { + return nil, err, true + } + + binaryExpression := ast.NewBinaryExpression( + p.memoryGauge, + operation, + left, + right, + ) + + return binaryExpression, err, false + }) +} + +func defineIdentifierExpression() { + defineExpr(literalExpr{ + tokenType: lexer.TokenIdentifier, + nullDenotation: func(p *parser, token lexer.Token) (ast.Expression, error) { + switch string(p.tokenSource(token)) { + case keywordTrue: + return ast.NewBoolExpression(p.memoryGauge, true, token.Range), nil + + case keywordFalse: + return ast.NewBoolExpression(p.memoryGauge, false, token.Range), nil + + case keywordNil: + return ast.NewNilExpression(p.memoryGauge, token.Range.StartPos), nil + + case keywordCreate: + return parseCreateExpressionRemainder(p, token) + + case keywordDestroy: + expression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + return ast.NewDestroyExpression( + p.memoryGauge, + expression, + token.Range.StartPos, + ), nil + + case keywordAttach: + return parseAttachExpressionRemainder(p, token) + + case keywordFun: + return parseFunctionExpression(p, token) + + default: + return ast.NewIdentifierExpression( + p.memoryGauge, + p.tokenToIdentifier(token), + ), nil + } + }, + }) +} + +func parseFunctionExpression(p *parser, token lexer.Token) (*ast.FunctionExpression, error) { + + parameterList, returnTypeAnnotation, functionBlock, err := + parseFunctionParameterListAndRest(p, false) + if err != nil { + return nil, err + } + + return ast.NewFunctionExpression( + p.memoryGauge, + ast.FunctionPurityUnspecified, + parameterList, + returnTypeAnnotation, + functionBlock, + token.StartPos, + ), nil +} + +func defineIdentifierLeftDenotations() { + + setExprIdentifierLeftBindingPower(keywordAs, exprLeftBindingPowerCasting) + setExprLeftDenotation( + lexer.TokenIdentifier, + func(parser *parser, t lexer.Token, left ast.Expression) (ast.Expression, error) { + // NOTE: switch statement with just one case instead of if, + // as this function is called for *any identifier left denotation ("postfix keyword"), + // not just for `as`, it might be extended with more cases (keywords) in the future + switch string(parser.tokenSource(t)) { + case keywordAs: + right, err := parseTypeAnnotation(parser) + if err != nil { + return nil, err + } + + return ast.NewCastingExpression( + parser.memoryGauge, + left, + ast.OperationCast, + right, + nil, + ), nil + + default: + panic(errors.NewUnreachableError()) + } + }, + ) + + for _, tokenOperation := range []struct { + token lexer.TokenType + operation ast.Operation + }{ + { + token: lexer.TokenAsExclamationMark, + operation: ast.OperationForceCast, + }, + { + token: lexer.TokenAsQuestionMark, + operation: ast.OperationFailableCast, + }, + } { + operation := tokenOperation.operation + tokenType := tokenOperation.token + + // Rebind operation, so the closure captures to current iteration's value, + // i.e. the next iteration doesn't override `operation` + + leftDenotation := (func(operation ast.Operation) exprLeftDenotationFunc { + return func(parser *parser, t lexer.Token, left ast.Expression) (ast.Expression, error) { + right, err := parseTypeAnnotation(parser) + if err != nil { + return nil, err + } + + return ast.NewCastingExpression( + parser.memoryGauge, + left, + operation, + right, + nil, + ), nil + } + })(operation) + + setExprLeftBindingPower(tokenType, exprLeftBindingPowerCasting) + setExprLeftDenotation(tokenType, leftDenotation) + } +} + +func parseCreateExpressionRemainder(p *parser, token lexer.Token) (*ast.CreateExpression, error) { + invocation, err := parseNominalTypeInvocationRemainder(p) + if err != nil { + return nil, err + } + + return ast.NewCreateExpression( + p.memoryGauge, + invocation, + token.StartPos, + ), nil +} + +func parseAttachExpressionRemainder(p *parser, token lexer.Token) (*ast.AttachExpression, error) { + attachment, err := parseNominalTypeInvocationRemainder(p) + + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + if !p.isToken(p.current, lexer.TokenIdentifier, keywordTo) { + return nil, p.syntaxError( + "expected 'to', got %s", + p.current.Type, + ) + } + + // consume the `to` token + p.nextSemanticToken() + + base, err := parseExpression(p, lowestBindingPower) + + if err != nil { + return nil, err + } + + return ast.NewAttachExpression(p.memoryGauge, base, attachment, token.StartPos), nil +} + +// Invocation Expression Grammar: +// +// invocation : '(' ( argument ( ',' argument )* )? ')' +func defineInvocationExpression() { + setExprLeftBindingPower(lexer.TokenParenOpen, exprLeftBindingPowerAccess) + + setExprLeftDenotation( + lexer.TokenParenOpen, + func(p *parser, token lexer.Token, left ast.Expression) (ast.Expression, error) { + arguments, endPos, err := parseArgumentListRemainder(p) + if err != nil { + return nil, err + } + + return ast.NewInvocationExpression( + p.memoryGauge, + left, + nil, + arguments, + token.EndPos, + endPos, + ), nil + }, + ) +} + +func parseArgumentListRemainder(p *parser) (arguments []*ast.Argument, endPos ast.Position, err error) { + atEnd := false + expectArgument := true + for !atEnd { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenComma: + if expectArgument { + return nil, ast.EmptyPosition, p.syntaxError( + "expected argument or end of argument list, got %s", + p.current.Type, + ) + } + // Skip the comma + p.next() + expectArgument = true + + case lexer.TokenParenClose: + endPos = p.current.EndPos + // Skip the closing paren + p.next() + atEnd = true + + case lexer.TokenEOF: + return nil, + ast.EmptyPosition, + p.syntaxError("missing ')' at end of invocation argument list") + + default: + if !expectArgument { + return nil, + ast.EmptyPosition, + p.syntaxError( + "unexpected argument in argument list (expecting delimiter or end of argument list), got %s", + p.current.Type, + ) + } + + argument, err := parseArgument(p) + if err != nil { + return nil, ast.EmptyPosition, err + } + + p.skipSpaceAndComments() + + argument.TrailingSeparatorPos = p.current.StartPos + + arguments = append(arguments, argument) + + expectArgument = false + } + } + return +} + +// parseArgument parses an argument in an invocation. +// +// argument : (identifier ':' )? expression +func parseArgument(p *parser) (*ast.Argument, error) { + var label string + var labelStartPos, labelEndPos ast.Position + + expr, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + // If a colon follows the expression, the expression was our label. + if p.current.Is(lexer.TokenColon) { + labelEndPos = p.current.EndPos + + identifier, ok := expr.(*ast.IdentifierExpression) + if !ok { + return nil, p.syntaxError( + "expected identifier for label, got %s", + expr, + ) + } + label = identifier.Identifier.Identifier + labelStartPos = expr.StartPosition() + + // Skip the identifier + p.nextSemanticToken() + + expr, err = parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + } + + if len(label) > 0 { + return ast.NewArgument( + p.memoryGauge, + label, + &labelStartPos, + &labelEndPos, + expr, + ), nil + } + return ast.NewUnlabeledArgument(p.memoryGauge, expr), nil +} + +func defineNestedExpression() { + setExprNullDenotation( + lexer.TokenParenOpen, + func(p *parser, startToken lexer.Token) (ast.Expression, error) { + p.skipSpaceAndComments() + + // special case: parse a Void literal `()` + if p.current.Type == lexer.TokenParenClose { + // skip the closing parenthesis + p.next() + + voidExpr := ast.NewVoidExpression(p.memoryGauge, startToken.StartPos, p.current.EndPos) + return voidExpr, nil + } + + expression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + _, err = p.mustOne(lexer.TokenParenClose) + return expression, err + }, + ) +} + +func defineArrayExpression() { + setExprNullDenotation( + lexer.TokenBracketOpen, + func(p *parser, startToken lexer.Token) (ast.Expression, error) { + p.skipSpaceAndComments() + + var values []ast.Expression + for !p.current.Is(lexer.TokenBracketClose) { + p.skipSpaceAndComments() + if len(values) > 0 { + if !p.current.Is(lexer.TokenComma) { + break + } + p.next() + } + + value, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + values = append(values, value) + } + + endToken, err := p.mustOne(lexer.TokenBracketClose) + if err != nil { + return nil, err + } + + return ast.NewArrayExpression( + p.memoryGauge, + values, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + endToken.EndPos, + ), + ), nil + }, + ) +} + +func defineDictionaryExpression() { + setExprNullDenotation( + lexer.TokenBraceOpen, + func(p *parser, startToken lexer.Token) (ast.Expression, error) { + p.skipSpaceAndComments() + + var entries []ast.DictionaryEntry + for !p.current.Is(lexer.TokenBraceClose) { + p.skipSpaceAndComments() + if len(entries) > 0 { + if !p.current.Is(lexer.TokenComma) { + break + } + p.next() + } + + key, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + _, err = p.mustOne(lexer.TokenColon) + if err != nil { + return nil, err + } + + value, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + entries = append(entries, ast.NewDictionaryEntry( + p.memoryGauge, + key, + value, + )) + } + + endToken, err := p.mustOne(lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + return ast.NewDictionaryExpression( + p.memoryGauge, + entries, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + endToken.EndPos, + ), + ), nil + }, + ) +} + +func defineIndexExpression() { + setExprLeftBindingPower(lexer.TokenBracketOpen, exprLeftBindingPowerAccess) + setExprLeftDenotation( + lexer.TokenBracketOpen, + func(p *parser, token lexer.Token, left ast.Expression) (ast.Expression, error) { + firstIndexExpr, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + endToken, err := p.mustOne(lexer.TokenBracketClose) + if err != nil { + return nil, err + } + + return ast.NewIndexExpression( + p.memoryGauge, + left, + firstIndexExpr, + ast.NewRange( + p.memoryGauge, + token.StartPos, + endToken.EndPos, + ), + ), nil + }, + ) +} + +func defineConditionalExpression() { + setExprLeftBindingPower(lexer.TokenQuestionMark, exprLeftBindingPowerTernary) + setExprLeftDenotation( + lexer.TokenQuestionMark, + func(p *parser, _ lexer.Token, left ast.Expression) (ast.Expression, error) { + testExpression := left + thenExpression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + _, err = p.mustOne(lexer.TokenColon) + if err != nil { + return nil, err + } + + elseExpression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + return ast.NewConditionalExpression( + p.memoryGauge, + testExpression, + thenExpression, + elseExpression, + ), nil + }, + ) +} + +func definePathExpression() { + setExprNullDenotation( + lexer.TokenSlash, + func(p *parser, token lexer.Token) (ast.Expression, error) { + domain, err := p.mustIdentifier() + if err != nil { + return nil, err + } + + _, err = p.mustOne(lexer.TokenSlash) + if err != nil { + return nil, err + } + + identifier, err := p.mustIdentifier() + if err != nil { + return nil, err + } + + return ast.NewPathExpression( + p.memoryGauge, + domain, + identifier, + token.StartPos, + ), nil + }, + ) +} + +func defineReferenceExpression() { + setExprNullDenotation( + lexer.TokenAmpersand, + func(p *parser, token lexer.Token) (ast.Expression, error) { + p.skipSpaceAndComments() + expression, err := parseExpression(p, exprLeftBindingPowerCasting-exprBindingPowerGap) + if err != nil { + return nil, err + } + + castingExpression, ok := expression.(*ast.CastingExpression) + if !ok { + return nil, p.syntaxError("expected casting expression") + } + + p.skipSpaceAndComments() + + return ast.NewReferenceExpression( + p.memoryGauge, + castingExpression.Expression, + token.StartPos, + ), nil + }, + ) +} + +func defineMemberExpression() { + + setExprLeftBindingPower(lexer.TokenDot, exprLeftBindingPowerAccess) + setExprLeftDenotation( + lexer.TokenDot, + func(p *parser, token lexer.Token, left ast.Expression) (ast.Expression, error) { + return parseMemberAccess(p, token, left, false), nil + }, + ) + + setExprLeftBindingPower(lexer.TokenQuestionMarkDot, exprLeftBindingPowerAccess) + setExprLeftDenotation( + lexer.TokenQuestionMarkDot, + func(p *parser, token lexer.Token, left ast.Expression) (ast.Expression, error) { + return parseMemberAccess(p, token, left, true), nil + }, + ) +} + +func parseMemberAccess(p *parser, token lexer.Token, left ast.Expression, optional bool) ast.Expression { + + // Whitespace after '.' (dot token) and '?.' (question mark dot token) is not allowed. + // We parse it anyway and report an error + + if p.current.Is(lexer.TokenSpace) { + errorPos := p.current.StartPos + p.skipSpaceAndComments() + p.report(NewSyntaxError( + errorPos, + "invalid whitespace after %s", + lexer.TokenDot, + )) + } + + // If there is an identifier, use it. + // If not, report an error + + var identifier ast.Identifier + if p.current.Is(lexer.TokenIdentifier) { + identifier = p.tokenToIdentifier(p.current) + p.next() + } else { + p.reportSyntaxError( + "expected member name, got %s", + p.current.Type, + ) + } + + return ast.NewMemberExpression( + p.memoryGauge, + left, + optional, + // NOTE: use the end position, because the token + // can be an optional access token `?.` + token.EndPos, + identifier, + ) +} + +func exprLeftDenotationAllowsNewlineAfterNullDenotation(tokenType lexer.TokenType) bool { + + // Some tokens do not support newlines before them, + // as this could lead to ambiguities and potential underhanded code + + switch tokenType { + case + // '!': postfix force-unwrap VS unary prefix negation + lexer.TokenExclamationMark, + // '(': invocation VS parenthesized expression + lexer.TokenParenOpen, + // '[': indexing VS array literal + lexer.TokenBracketOpen: + + return false + } + + return true +} + +// parseExpression uses "Top-Down operator precedence parsing" (TDOP) technique to +// parse expressions. +func parseExpression(p *parser, rightBindingPower int) (ast.Expression, error) { + + if p.expressionDepth == expressionDepthLimit { + return nil, ExpressionDepthLimitReachedError{ + Pos: p.current.StartPos, + } + } + + p.expressionDepth++ + defer func() { + p.expressionDepth-- + }() + + p.skipSpaceAndComments() + t := p.current + p.next() + + left, err := applyExprNullDenotation(p, t) + if err != nil { + return nil, err + } + + for { + // Automatically skip any trivia between the left and right expression. + // However, do not automatically skip newlines: + // Some left denotations do not support newlines before them, + // to avoid ambiguities and potential underhanded code + + p.parseTrivia(triviaOptions{ + skipNewlines: false, + }) + + current := p.current + if current.Is(lexer.TokenSpace) { + cursor := p.tokens.Cursor() + p.next() + if !exprLeftDenotationAllowsNewlineAfterNullDenotation(p.current.Type) { + p.tokens.Revert(cursor) + p.current = current + } + } + + var done bool + left, err, done = applyExprMetaLeftDenotation(p, rightBindingPower, left) + if err != nil { + return nil, err + } + + if done { + break + } + } + + return left, nil +} + +func applyExprMetaLeftDenotation( + p *parser, + rightBindingPower int, + left ast.Expression, +) ( + result ast.Expression, + err error, + done bool, +) { + // By default, left denotations are applied if the right binding power + // is less than the left binding power of the current token. + // + // Token-specific meta-left denotations allow customizing this, + // e.g. determining the left binding power based on parsing more tokens + // or performing look-ahead + + metaLeftDenotation := exprMetaLeftDenotations[p.current.Type] + if metaLeftDenotation == nil { + metaLeftDenotation = defaultExprMetaLeftDenotation + } + + return metaLeftDenotation(p, rightBindingPower, left) +} + +// defaultExprMetaLeftDenotation is the default expression left denotation, which applies +// if the right binding power is less than the left binding power of the current token +func defaultExprMetaLeftDenotation( + p *parser, + rightBindingPower int, + left ast.Expression, +) ( + result ast.Expression, + err error, + done bool, +) { + leftBindingPower, err := exprLeftBindingPower(p) + if err != nil { + return nil, err, true + } + + if rightBindingPower >= leftBindingPower { + return left, nil, true + } + + t := p.current + + p.next() + + result, err = applyExprLeftDenotation(p, t, left) + return result, err, false +} + +func exprLeftBindingPower(p *parser) (int, error) { + token := p.current + tokenType := token.Type + if tokenType == lexer.TokenIdentifier { + identifier := p.tokenSource(token) + return exprIdentifierLeftBindingPowers[string(identifier)], nil + } + return exprLeftBindingPowers[tokenType], nil +} + +func applyExprNullDenotation(p *parser, token lexer.Token) (ast.Expression, error) { + tokenType := token.Type + nullDenotation := exprNullDenotations[tokenType] + if nullDenotation == nil { + return nil, p.syntaxError("unexpected token in expression: %s", tokenType) + } + return nullDenotation(p, token) +} + +func applyExprLeftDenotation(p *parser, token lexer.Token, left ast.Expression) (ast.Expression, error) { + leftDenotation := exprLeftDenotations[token.Type] + if leftDenotation == nil { + return nil, p.syntaxError("unexpected token in expression: %s", token.Type) + } + return leftDenotation(p, token, left) +} + +// parseStringLiteral parses a whole string literal, including start and end quotes +func parseStringLiteral(p *parser, literal []byte) (result string) { + length := len(literal) + if length == 0 { + p.reportSyntaxError("missing start of string literal: expected '\"'") + return + } + + if length >= 1 { + first := literal[0] + if first != '"' { + p.reportSyntaxError("invalid start of string literal: expected '\"', got %q", first) + } + } + + missingEnd := false + endOffset := length + if length >= 2 { + lastIndex := length - 1 + last := literal[lastIndex] + if last != '"' { + missingEnd = true + } else { + endOffset = lastIndex + } + } else { + missingEnd = true + } + + result = parseStringLiteralContent(p, literal[1:endOffset]) + + if missingEnd { + p.reportSyntaxError("invalid end of string literal: missing '\"'") + } + + return +} + +// parseStringLiteralContent parses the string literalExpr contents, excluding start and end quotes +func parseStringLiteralContent(p *parser, s []byte) (result string) { + + var builder strings.Builder + defer func() { + result = builder.String() + }() + + length := len(s) + + var r rune + index := 0 + + atEnd := index >= length + + advance := func() { + if atEnd { + r = lexer.EOF + return + } + + var width int + r, width = utf8.DecodeRune(s[index:]) + index += width + + atEnd = index >= length + } + + for index < length { + advance() + + if r != '\\' { + builder.WriteRune(r) + continue + } + + if atEnd { + p.reportSyntaxError("incomplete escape sequence: missing character after escape character") + return + } + + advance() + + switch r { + case '0': + builder.WriteByte(0) + case 'n': + builder.WriteByte('\n') + case 'r': + builder.WriteByte('\r') + case 't': + builder.WriteByte('\t') + case '"': + builder.WriteByte('"') + case '\'': + builder.WriteByte('\'') + case '\\': + builder.WriteByte('\\') + case 'u': + if atEnd { + p.reportSyntaxError( + "incomplete Unicode escape sequence: missing character '{' after escape character", + ) + return + } + advance() + if r != '{' { + p.reportSyntaxError("invalid Unicode escape sequence: expected '{', got %q", r) + continue + } + + var r2 rune + valid := true + digitIndex := 0 + for ; !atEnd && digitIndex < 8; digitIndex++ { + advance() + if r == '}' { + break + } + + parsed := parseHex(r) + + if parsed < 0 { + p.reportSyntaxError("invalid Unicode escape sequence: expected hex digit, got %q", r) + valid = false + } else { + r2 = r2<<4 | parsed + } + } + + if digitIndex > 0 && valid { + builder.WriteRune(r2) + } + + if r != '}' { + advance() + } + + switch r { + case '}': + break + case lexer.EOF: + p.reportSyntaxError( + "incomplete Unicode escape sequence: missing character '}' after escape character", + ) + default: + p.reportSyntaxError("incomplete Unicode escape sequence: expected '}', got %q", r) + } + + default: + // TODO: include index/column in error + p.reportSyntaxError("invalid escape character: %q", r) + // skip invalid escape character, don't write to result + } + } + + return +} + +func parseHex(r rune) rune { + switch { + case '0' <= r && r <= '9': + return r - '0' + case 'a' <= r && r <= 'f': + return r - 'a' + 10 + case 'A' <= r && r <= 'F': + return r - 'A' + 10 + } + + return -1 +} + +func parseIntegerLiteral(p *parser, literal, text []byte, kind common.IntegerLiteralKind, tokenRange ast.Range) *ast.IntegerExpression { + + report := func(invalidKind InvalidNumberLiteralKind) { + p.report( + &InvalidIntegerLiteralError{ + IntegerLiteralKind: kind, + InvalidIntegerLiteralKind: invalidKind, + // NOTE: not using text, because it has the base-prefix stripped + Literal: string(literal), + Range: tokenRange, + }, + ) + } + + // TODO: improve + s := string(text) + + // check literal has no leading underscore + if strings.HasPrefix(s, "_") { + report(InvalidNumberLiteralKindLeadingUnderscore) + } + + // check literal has no trailing underscore + if strings.HasSuffix(s, "_") { + report(InvalidNumberLiteralKindTrailingUnderscore) + } + + withoutUnderscores := strings.ReplaceAll(s, "_", "") + + var value *big.Int + var base int + + if kind == common.IntegerLiteralKindUnknown { + base = 1 + + report(InvalidNumberLiteralKindUnknownPrefix) + } else { + base = kind.Base() + + if withoutUnderscores == "" { + report(InvalidNumberLiteralKindMissingDigits) + } else { + estimatedSize := common.OverEstimateBigIntFromString(withoutUnderscores, kind) + common.UseMemory(p.memoryGauge, common.NewBigIntMemoryUsage(estimatedSize)) + + var ok bool + value, ok = new(big.Int).SetString(withoutUnderscores, base) + if !ok { + report(InvalidNumberLiteralKindUnknown) + } + } + } + + if value == nil { + common.UseMemory(p.memoryGauge, common.NewBigIntMemoryUsage(1)) + + value = new(big.Int) + } + + return ast.NewIntegerExpression(p.memoryGauge, literal, value, base, tokenRange) +} + +func parseFixedPointPart(gauge common.MemoryGauge, part string) (integer *big.Int, scale uint) { + withoutUnderscores := strings.ReplaceAll(part, "_", "") + + base := common.IntegerLiteralKindDecimal + + common.UseMemory( + gauge, + common.NewBigIntMemoryUsage( + common.OverEstimateBigIntFromString(withoutUnderscores, base), + ), + ) + + estimatedSize := common.OverEstimateBigIntFromString(withoutUnderscores, base) + common.UseMemory(gauge, common.NewBigIntMemoryUsage(estimatedSize)) + + integer, _ = new(big.Int).SetString(withoutUnderscores, base.Base()) + if integer == nil { + integer = new(big.Int) + } + scale = uint(len(withoutUnderscores)) + if scale == 0 { + scale = 1 + } + return integer, scale +} + +func parseFixedPointLiteral(p *parser, literal []byte, tokenRange ast.Range) *ast.FixedPointExpression { + // TODO: improve + parts := strings.Split(string(literal), ".") + integer, _ := parseFixedPointPart(p.memoryGauge, parts[0]) + fractional, scale := parseFixedPointPart(p.memoryGauge, parts[1]) + + return ast.NewFixedPointExpression( + p.memoryGauge, + literal, + false, + integer, + fractional, + scale, + tokenRange, + ) +} diff --git a/runtime/old_parser/expression_test.go b/runtime/old_parser/expression_test.go new file mode 100644 index 0000000000..f1fb98ea73 --- /dev/null +++ b/runtime/old_parser/expression_test.go @@ -0,0 +1,6458 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "fmt" + "math" + "math/big" + "math/rand" + "strconv" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/parser/lexer" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestParseSimpleInfixExpression(t *testing.T) { + + t.Parallel() + + t.Run("no spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1+2*3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("with spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" 1 + 2 * 3 ") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Right: &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + EndPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("repeated infix, same operator, left associative", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1 + 2 + 3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + result, + ) + }) + + t.Run("repeated infix, same operator, right associative", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1 ?? 2 ?? 3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationNilCoalesce, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.BinaryExpression{ + Operation: ast.OperationNilCoalesce, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + }, + result, + ) + }) +} + +func TestParseAdvancedExpression(t *testing.T) { + + t.Parallel() + + t.Run("mixed infix and prefix", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1 +- 2 -- 3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationMinus, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(-2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(-3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + result, + ) + }) + + t.Run("nested expression", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("(1 + 2) * 3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + result, + ) + }) + + t.Run("MemoryError in setExprMetaLeftDenotation", func(t *testing.T) { + + t.Parallel() + + gauge := makeLimitingMemoryGauge() + gauge.debug = true + gauge.Limit(common.MemoryKindPosition, 11) + + var panicMsg any + (func() { + defer func() { + panicMsg = recover() + }() + ParseExpression(gauge, []byte("1 < 2"), Config{}) + })() + + require.IsType(t, errors.MemoryError{}, panicMsg) + + fatalError, _ := panicMsg.(errors.MemoryError) + var expectedError limitingMemoryGaugeError + assert.ErrorAs(t, fatalError, &expectedError) + }) + + t.Run("MemoryError in parser.report", func(t *testing.T) { + + t.Parallel() + + gauge := makeLimitingMemoryGauge() + gauge.Limit(common.MemoryKindIntegerExpression, 1) + + var panicMsg any + (func() { + defer func() { + panicMsg = recover() + }() + + ParseExpression(gauge, []byte("1 < 2 > 3"), Config{}) + })() + + require.IsType(t, errors.MemoryError{}, panicMsg) + + fatalError, _ := panicMsg.(errors.MemoryError) + var expectedError limitingMemoryGaugeError + assert.ErrorAs(t, fatalError, &expectedError) + }) + + t.Run("less and greater", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1 < 2 > 3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationGreater, + Left: &ast.BinaryExpression{ + Operation: ast.OperationLess, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + result, + ) + }) + + t.Run("conditional", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("a ? b : c ? d : e") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ConditionalExpression{ + Test: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Then: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Else: &ast.ConditionalExpression{ + Test: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Then: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "d", + Pos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + Else: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "e", + Pos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("boolean expressions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("true + false") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Right: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + }, + result, + ) + }) + + t.Run("move operator, nested", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("(<-x)") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationMove, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + result, + ) + }) + +} + +func TestParseArrayExpression(t *testing.T) { + + t.Parallel() + + t.Run("single line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("[ 1,2 + 3, 4 , 5 ]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ArrayExpression{ + Values: []ast.Expression{ + &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + &ast.IntegerExpression{ + PositiveLiteral: []byte("4"), + Value: big.NewInt(4), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + &ast.IntegerExpression{ + PositiveLiteral: []byte("5"), + Value: big.NewInt(5), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + EndPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 19, Offset: 19}, + }, + }, + result, + ) + }) + + t.Run("multi line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("[ 1 , \n 2 \n , \n\n 3 \n\n\n]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ArrayExpression{ + Values: []ast.Expression{ + &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 1, Offset: 8}, + EndPos: ast.Position{Line: 2, Column: 1, Offset: 8}, + }, + }, + &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 5, Column: 1, Offset: 17}, + EndPos: ast.Position{Line: 5, Column: 1, Offset: 17}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 8, Column: 0, Offset: 22}, + }, + }, + result, + ) + }) + + t.Run("empty, separated by newline", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("[\n]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ArrayExpression{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + }, + }, + result, + ) + }) + +} + +func TestParseDictionaryExpression(t *testing.T) { + + t.Parallel() + + t.Run("single line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("{ 1:2 + 3, 4 : 5 }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.DictionaryExpression{ + Entries: []ast.DictionaryEntry{ + { + Key: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + { + Key: &ast.IntegerExpression{ + PositiveLiteral: []byte("4"), + Value: big.NewInt(4), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("5"), + Value: big.NewInt(5), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + EndPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 19, Offset: 19}, + }, + }, + result, + ) + }) + + t.Run("multi line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("{ 1 : 2 , \n 3 \n : \n 4 \n , \n\n 5 \n\n : \n\n 6 \n\n }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.DictionaryExpression{ + Entries: []ast.DictionaryEntry{ + { + Key: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + }, + { + Key: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 1, Offset: 12}, + EndPos: ast.Position{Line: 2, Column: 1, Offset: 12}, + }, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("4"), + Value: big.NewInt(4), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 4, Column: 1, Offset: 20}, + EndPos: ast.Position{Line: 4, Column: 1, Offset: 20}, + }, + }, + }, + { + Key: &ast.IntegerExpression{ + PositiveLiteral: []byte("5"), + Value: big.NewInt(5), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 7, Column: 1, Offset: 29}, + EndPos: ast.Position{Line: 7, Column: 1, Offset: 29}, + }, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("6"), + Value: big.NewInt(6), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 11, Column: 1, Offset: 39}, + EndPos: ast.Position{Line: 11, Column: 1, Offset: 39}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 13, Column: 1, Offset: 44}, + }, + }, + result, + ) + }) + + t.Run("empty, separated by newline", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("{\n}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.DictionaryExpression{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + }, + }, + result, + ) + }) +} + +func TestParseIndexExpression(t *testing.T) { + t.Parallel() + + t.Run("index expression", func(t *testing.T) { + t.Parallel() + + result, errs := testParseExpression("a[0]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IndexExpression{ + TargetExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + result, + ) + }) + + t.Run("index expression with whitespace", func(t *testing.T) { + t.Parallel() + + result, errs := testParseExpression("a [ 0 ]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IndexExpression{ + TargetExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + result, + ) + }) + + t.Run("index expression with identifier", func(t *testing.T) { + t.Parallel() + + result, errs := testParseExpression("a [foo]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IndexExpression{ + TargetExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + IndexingExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + result, + ) + }) +} + +func TestParseIdentifier(t *testing.T) { + + t.Parallel() + + t.Run("identifier in addition", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("a + 3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + result, + ) + }) +} + +func TestParsePath(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("/foo/bar") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.PathExpression{ + Domain: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + Identifier: ast.Identifier{ + Identifier: "bar", + Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) +} + +func TestParseString(t *testing.T) { + + t.Parallel() + + t.Run("valid, empty", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("\"\"") + assert.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("invalid, empty, missing end at end of file", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("\"") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("invalid, empty, missing end at end of line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("\"\n") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("invalid, non-empty, missing end at end of file", func(t *testing.T) { + + t.Parallel() + result, errs := testParseExpression("\"t") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "t", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("invalid, non-empty, missing end at end of line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("\"t\n") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "t", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("invalid, non-empty, missing escape character", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("\"\\") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "incomplete escape sequence: missing character after escape character", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("valid, with escapes", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`"te\tst\"te\u{1F3CE}\u{FE0F}xt"`) + assert.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "te\tst\"te\U0001F3CE\uFE0Fxt", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 30, Offset: 30}, + }, + }, + result, + ) + }) + + t.Run("invalid, unknown escape character", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`"te\Xst"`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid escape character: 'X'", + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "test", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("invalid, missing '{' after Unicode escape character", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`"te\u`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "incomplete Unicode escape sequence: missing character '{' after escape character", + Pos: ast.Position{Offset: 5, Line: 1, Column: 5}, + }, + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Offset: 5, Line: 1, Column: 5}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "te", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) + }) + + t.Run("invalid, invalid character after Unicode escape character", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`"te\us`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid Unicode escape sequence: expected '{', got 's'", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "te", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + result, + ) + }) + + t.Run("invalid, missing '}' after Unicode escape sequence digits", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`"te\u{`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "incomplete Unicode escape sequence: missing character '}' after escape character", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + &SyntaxError{ + Message: "invalid end of string literal: missing '\"'", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "te", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + result, + ) + }) + + t.Run("valid, empty Unicode escape sequence", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`"te\u{}"`) + assert.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "te", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("valid, non-empty Unicode escape sequence", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression( + `"te\u{73}t ` + + `\u{4A}J\u{4a}J ` + + `\u{4B}K\u{4b}K ` + + `\u{4C}L\u{4c}L ` + + `\u{4D}M\u{4d}M ` + + `\u{4E}N\u{4e}N ` + + `\u{4F}O\u{4f}O"`, + ) + assert.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "test JJJJ KKKK LLLL MMMM NNNN OOOO", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 100, Offset: 100}, + }, + }, + result, + ) + }) + + t.Run("invalid, non-empty Unicode escape sequence", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`"te\u{X}st"`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid Unicode escape sequence: expected hex digit, got 'X'", + Pos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.StringExpression{ + Value: "test", + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + result, + ) + }) +} + +func TestParseInvocation(t *testing.T) { + + t.Parallel() + + t.Run("no arguments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: nil, + ArgumentsStartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + result, + ) + }) + + t.Run("no arguments, with whitespace", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f ()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: nil, + ArgumentsStartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + result, + ) + }) + + t.Run("no arguments, with whitespace within params", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f ( )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: nil, + ArgumentsStartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + result, + ) + }) + + t.Run("with arguments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f(1)") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + result, + ) + }) + + t.Run("with labeled arguments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f(label:1)") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "label", + LabelStartPos: &ast.Position{Offset: 2, Line: 1, Column: 2}, + LabelEndPos: &ast.Position{Offset: 7, Line: 1, Column: 7}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + EndPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + result, + ) + }) + + t.Run("with arguments, multiple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f(1,2)") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 4, Line: 1, Column: 4}, + EndPos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 5, Line: 1, Column: 5}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 5, Line: 1, Column: 5}, + }, + result, + ) + }) + + t.Run("with arguments, multiple, labeled", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f(a:1,b:2)") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "a", + LabelStartPos: &ast.Position{Offset: 2, Line: 1, Column: 2}, + LabelEndPos: &ast.Position{Offset: 3, Line: 1, Column: 3}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 4, Line: 1, Column: 4}, + EndPos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 5, Line: 1, Column: 5}, + }, + { + Label: "b", + LabelStartPos: &ast.Position{Offset: 6, Line: 1, Column: 6}, + LabelEndPos: &ast.Position{Offset: 7, Line: 1, Column: 7}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + EndPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + result, + ) + }) + + t.Run("invalid: no arguments, multiple commas", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression("f(,,)") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected argument or end of argument list, got ','", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + }) + + t.Run("invalid: with argument, multiple commas", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression("f(1,,)") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected argument or end of argument list, got ','", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + }) + + t.Run("invalid: with multiple argument, no commas", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression("f(1 2)") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected argument in argument list (expecting delimiter or end of argument list)," + + " got decimal integer", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + }) + + t.Run("with arguments, nested", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f(1,g(2))") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + { + Label: "", + Expression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "g", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 6, Line: 1, Column: 6}, + EndPos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 5, Line: 1, Column: 5}, + EndPos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + TrailingSeparatorPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + result, + ) + }) + + t.Run("with arguments, nested, string", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f(1,g(\"test\"))") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + { + Label: "", + Expression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "g", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + Expression: &ast.StringExpression{ + Value: "test", + Range: ast.Range{ + StartPos: ast.Position{Offset: 6, Line: 1, Column: 6}, + EndPos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 12, Line: 1, Column: 12}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 5, Line: 1, Column: 5}, + EndPos: ast.Position{Offset: 12, Line: 1, Column: 12}, + }, + TrailingSeparatorPos: ast.Position{Offset: 13, Line: 1, Column: 13}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + EndPos: ast.Position{Offset: 13, Line: 1, Column: 13}, + }, + result, + ) + }) +} + +func TestParseMemberExpression(t *testing.T) { + + t.Parallel() + + t.Run("identifier, no space", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f.n") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + AccessPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + result, + ) + }) + + t.Run("whitespace before", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f .n") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + AccessPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + result, + ) + }) + + t.Run("missing name", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f.") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected member name, got EOF", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + AccessPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + result, + ) + }) + + t.Run("precedence, left", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f.n * 3") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + AccessPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 6, Line: 1, Column: 6}, + EndPos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + }, + result, + ) + }) + + t.Run("precedence, right", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("3 * f.n") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 0, Line: 1, Column: 0}, + EndPos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Right: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + AccessPos: ast.Position{Offset: 5, Line: 1, Column: 5}, + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + }, + result, + ) + }) + + t.Run("identifier, optional", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("f?.n") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.MemberExpression{ + Optional: true, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + AccessPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + Identifier: ast.Identifier{ + Identifier: "n", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + result, + ) + }) + + t.Run("in declaration", func(t *testing.T) { + + t.Parallel() + + const code = ` + let a = b.c + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + Value: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + AccessPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + StartPos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + }, + result.Declarations(), + ) + }) +} + +func TestParseBlockComment(t *testing.T) { + + t.Parallel() + + t.Run("nested", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" /* test foo/* bar */ asd*/ true") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 30, Offset: 30}, + EndPos: ast.Position{Line: 1, Column: 33, Offset: 33}, + }, + }, + result, + ) + }) + + t.Run("two comments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" /*test foo*/ /* bar */ true") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + EndPos: ast.Position{Line: 1, Column: 29, Offset: 29}, + }, + }, + result, + ) + }) + + t.Run("in infix", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" 1/*test foo*/+/* bar */ 2 ") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + EndPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + }, + }, + result, + ) + }) + + t.Run("nested, extra closing", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression(" /* test foo/* bar */ asd*/ true */ bar") + utils.AssertEqualWithDiff(t, + []error{ + // `true */ bar` is parsed as infix operation of path + &SyntaxError{ + Message: "expected token identifier", + Pos: ast.Position{ + Offset: 37, + Line: 1, + Column: 37, + }, + }, + }, + errs, + ) + }) + + t.Run("nested, missing closing", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression(" /* test foo/* bar */ asd true ") + utils.AssertEqualWithDiff(t, + []error{ + // `true */ bar` is parsed as infix operation of path + &SyntaxError{ + Message: "missing comment end '*/'", + Pos: ast.Position{ + Offset: 33, + Line: 1, + Column: 33, + }, + }, + &SyntaxError{ + Message: "unexpected end of program", + Pos: ast.Position{ + Offset: 33, + Line: 1, + Column: 33, + }, + }, + }, + errs, + ) + }) + + t.Run("invalid content", func(t *testing.T) { + + t.Parallel() + + // The lexer should never produce such an invalid token stream in the first place + + tokens := &testTokenStream{ + tokens: []lexer.Token{ + { + Type: lexer.TokenBlockCommentStart, + Range: ast.Range{ + StartPos: ast.Position{ + Line: 1, + Offset: 0, + Column: 0, + }, + EndPos: ast.Position{ + Line: 1, + Offset: 1, + Column: 1, + }, + }, + }, + { + Type: lexer.TokenIdentifier, + Range: ast.Range{ + StartPos: ast.Position{ + Line: 1, + Offset: 2, + Column: 2, + }, + EndPos: ast.Position{ + Line: 1, + Offset: 4, + Column: 4, + }, + }, + }, + {Type: lexer.TokenEOF}, + }, + input: []byte(`/*foo`), + } + + _, errs := ParseTokenStream( + nil, + tokens, + func(p *parser) (ast.Expression, error) { + return parseExpression(p, lowestBindingPower) + }, + Config{}, + ) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token identifier in block comment", + Pos: ast.Position{ + Line: 1, + Offset: 2, + Column: 2, + }, + }, + }, + errs, + ) + }) +} + +func BenchmarkParseInfix(b *testing.B) { + + for i := 0; i < b.N; i++ { + _, errs := testParseExpression("(8 - 1 + 3) * 6 - ((3 + 7) * 2)") + if len(errs) > 0 { + b.Fatalf("parsing expression failed: %s", errs) + } + } +} + +func BenchmarkParseArray(b *testing.B) { + + var builder strings.Builder + for i := 0; i < 10_000; i++ { + if i > 0 { + builder.WriteString(", ") + } + builder.WriteString(strconv.Itoa(rand.Intn(math.MaxUint8))) + } + + lit := fmt.Sprintf(`[%s]`, builder.String()) + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, errs := testParseExpression(lit) + if len(errs) > 0 { + b.Fatalf("parsing expression failed: %s", errs) + } + } +} + +func TestParseReference(t *testing.T) { + + t.Parallel() + + t.Run("valid", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("& t as T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ReferenceExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("invalid: missing casting expression", func(t *testing.T) { + + t.Parallel() + + const code = `&y[z]` + + _, errs := testParseExpression(code) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected casting expression", + Pos: ast.Position{ + Offset: 5, + Line: 1, + Column: 5, + }, + }, + }, + errs, + ) + }) + + t.Run("invalid: optional referenced value", func(t *testing.T) { + + t.Parallel() + + const code = `&x[y]? as &Z?` + + _, errs := testParseExpression(code) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected casting expression", + Pos: ast.Position{ + Offset: 5, + Line: 1, + Column: 5, + }, + }, + }, + errs, + ) + }) +} + +func TestParseNilCoelesceReference(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(` + &xs["a"] as &Int? ?? 1 + `) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationNilCoalesce, + Left: &ast.ReferenceExpression{ + Expression: &ast.IndexExpression{ + TargetExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "xs", + Pos: ast.Position{ + Offset: 12, + Line: 2, + Column: 11, + }, + }, + }, + IndexingExpression: &ast.StringExpression{ + Value: "a", + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 15, + Line: 2, + Column: 14, + }, + EndPos: ast.Position{ + Offset: 17, + Line: 2, + Column: 16, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 14, + Line: 2, + Column: 13, + }, + EndPos: ast.Position{ + Offset: 18, + Line: 2, + Column: 17, + }, + }, + }, + StartPos: ast.Position{ + Offset: 11, + Line: 2, + Column: 10, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 32, + Line: 2, + Column: 31, + }, + EndPos: ast.Position{ + Offset: 32, + Line: 2, + Column: 31, + }, + }, + }, + }, + result, + ) +} + +func TestParseCasts(t *testing.T) { + + t.Parallel() + + t.Run("non-failable", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" t as T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.CastingExpression{ + Operation: ast.OperationCast, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + result, + ) + }) + + t.Run("failable", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" t as? T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.CastingExpression{ + Operation: ast.OperationFailableCast, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + + }) + + t.Run("force", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" t as! T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.CastingExpression{ + Operation: ast.OperationForceCast, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) +} + +func TestParseForceExpression(t *testing.T) { + + t.Parallel() + + t.Run("identifier", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("t!") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ForceExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + result, + ) + }) + + t.Run("with whitespace", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" t ! ") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ForceExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + result, + ) + }) + + t.Run("precedence, force unwrap before move", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("<-t!") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationMove, + Expression: &ast.ForceExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("precedence", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("10 * t!") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("10"), + Value: big.NewInt(10), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Right: &ast.ForceExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }}, + result, + ) + }) + + t.Run("newline", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("x\n!y") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.UnaryExpression{ + Operation: ast.OperationNegate, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Line: 2, Column: 1, Offset: 3}, + }, + }, + StartPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + }, + }, + }, + result, + ) + }) + + t.Run("member access, newline", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("x\n.y!") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.ForceExpression{ + Expression: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + AccessPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Line: 2, Column: 1, Offset: 3}, + }, + }, + EndPos: ast.Position{Line: 2, Column: 2, Offset: 4}, + }, + }, + }, + result, + ) + }) + + t.Run("member access, whitespace", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("x. y") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid whitespace after '.'", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + AccessPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + }, + }, + result, + ) + }) +} + +func TestParseCreate(t *testing.T) { + + t.Parallel() + + t.Run("simple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("create T()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.CreateExpression{ + InvocationExpression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) +} + +func TestParseNil(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" nil") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.NilExpression{ + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + result, + ) +} + +func TestParseDestroy(t *testing.T) { + + t.Parallel() + + t.Run("simple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("destroy t") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.DestroyExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "t", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) +} + +func TestParseAttach(t *testing.T) { + + t.Parallel() + + t.Run("simple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("attach E() to r") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.AttachExpression{ + Base: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "r", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + Attachment: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "E", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("non-invocation", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression("attach A to E") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token '('", + Pos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + }, + errs, + ) + }) + + t.Run("nested", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("attach A() to attach B() to r") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.AttachExpression{ + Base: &ast.AttachExpression{ + Base: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "r", + Pos: ast.Position{Line: 1, Column: 28, Offset: 28}, + }, + }, + Attachment: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "B", + Pos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 22, Offset: 22}, + EndPos: ast.Position{Line: 1, Column: 23, Offset: 23}, + }, + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + Attachment: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "A", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("missing to", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression("attach A()") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected 'to', got EOF", + Pos: ast.Position{Offset: 10, Line: 1, Column: 10}, + }, + }, + errs, + ) + }) + + t.Run("missing base", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression("attach E() to") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected end of program", + Pos: ast.Position{Offset: 13, Line: 1, Column: 13}, + }, + }, + errs, + ) + }) +} + +func TestParseLineComment(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" //// // this is a comment\n 1 / 2") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationDiv, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 1, Offset: 28}, + EndPos: ast.Position{Line: 2, Column: 1, Offset: 28}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 5, Offset: 32}, + EndPos: ast.Position{Line: 2, Column: 5, Offset: 32}, + }, + }, + }, + result, + ) +} + +func TestParseFunctionExpression(t *testing.T) { + + t.Parallel() + + t.Run("without return type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("fun () { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FunctionExpression{ + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("with return type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("fun (): X { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FunctionExpression{ + ParameterList: &ast.ParameterList{ + Parameters: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) +} + +func TestParseIntegerLiterals(t *testing.T) { + + t.Parallel() + + t.Run("binary prefix, missing trailing digits", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0b`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing digits", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + &InvalidIntegerLiteralError{ + Literal: "0b", + IntegerLiteralKind: common.IntegerLiteralKindBinary, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindMissingDigits, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0b"), + Value: new(big.Int), + Base: 2, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("binary", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0b101010`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0b101010"), + Value: big.NewInt(42), + Base: 2, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("binary with leading zeros", func(t *testing.T) { + + result, errs := testParseExpression(`0b001000`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0b001000"), + Value: big.NewInt(8), + Base: 2, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("binary with underscores", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0b101010_101010`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0b101010_101010"), + Value: big.NewInt(2730), + Base: 2, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + result, + ) + }) + + t.Run("binary with leading underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0b_101010_101010`) + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: "0b_101010_101010", + IntegerLiteralKind: common.IntegerLiteralKindBinary, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindLeadingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0b_101010_101010"), + Value: big.NewInt(2730), + Base: 2, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + result, + ) + }) + + t.Run("binary with trailing underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0b101010_101010_`) + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: "0b101010_101010_", + IntegerLiteralKind: common.IntegerLiteralKindBinary, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindTrailingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0b101010_101010_"), + Value: big.NewInt(2730), + Base: 2, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + result, + ) + }) + + t.Run("octal prefix, missing trailing digits", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0o`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing digits", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + &InvalidIntegerLiteralError{ + Literal: `0o`, + IntegerLiteralKind: common.IntegerLiteralKindOctal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindMissingDigits, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0o"), + Value: new(big.Int), + Base: 8, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("octal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0o32`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0o32"), + Value: big.NewInt(26), + Base: 8, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + result, + ) + }) + + t.Run("octal with underscores", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0o32_45`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0o32_45"), + Value: big.NewInt(1701), + Base: 8, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + result, + ) + }) + + t.Run("octal with trailing underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0o_32_45`) + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: "0o_32_45", + IntegerLiteralKind: common.IntegerLiteralKindOctal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindLeadingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0o_32_45"), + Value: big.NewInt(1701), + Base: 8, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("octal with leading underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0o32_45_`) + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: "0o32_45_", + IntegerLiteralKind: common.IntegerLiteralKindOctal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindTrailingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0o32_45_"), + Value: big.NewInt(1701), + Base: 8, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("decimal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`1234567890`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("1234567890"), + Value: big.NewInt(1234567890), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + result, + ) + }) + + t.Run("decimal with underscores", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`1_234_567_890`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("1_234_567_890"), + Value: big.NewInt(1234567890), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + result, + ) + }) + + t.Run("decimal with trailing underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`1_234_567_890_`) + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: "1_234_567_890_", + IntegerLiteralKind: common.IntegerLiteralKindDecimal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindTrailingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("1_234_567_890_"), + Value: big.NewInt(1234567890), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + result, + ) + }) + + t.Run("hexadecimal prefix, missing trailing digits", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0x`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing digits", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + &InvalidIntegerLiteralError{ + Literal: `0x`, + IntegerLiteralKind: common.IntegerLiteralKindHexadecimal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindMissingDigits, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0x"), + Value: new(big.Int), + Base: 16, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("hexadecimal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0xf2`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0xf2"), + Value: big.NewInt(242), + Base: 16, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + result, + ) + }) + + t.Run("hexadecimal with underscores", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0xf2_09`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0xf2_09"), + Value: big.NewInt(61961), + Base: 16, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + result, + ) + }) + + t.Run("hexadecimal with leading underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0x_f2_09`) + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: "0x_f2_09", + IntegerLiteralKind: common.IntegerLiteralKindHexadecimal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindLeadingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0x_f2_09"), + Value: big.NewInt(61961), + Base: 16, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("hexadecimal with trailing underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0xf2_09_`) + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: `0xf2_09_`, + IntegerLiteralKind: common.IntegerLiteralKindHexadecimal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindTrailingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0xf2_09_"), + Value: big.NewInt(61961), + Base: 16, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + result, + ) + }) + + t.Run("0", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: big.NewInt(0), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("01", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`01`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("01"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("09", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`09`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("09"), + Value: big.NewInt(9), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("leading zeros", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("00123") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("00123"), + Value: big.NewInt(123), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) + }) + + t.Run("invalid prefix", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0z123`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid number literal prefix: 'z'", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + &InvalidIntegerLiteralError{ + Literal: `0z123`, + IntegerLiteralKind: common.IntegerLiteralKindUnknown, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindUnknownPrefix, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0z123"), + Value: new(big.Int), + Base: 1, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) + }) + + t.Run("leading zero and underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`0_100`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("0_100"), + Value: big.NewInt(100), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) + }) + + t.Run("leading one and underscore", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(`1_100`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntegerExpression{ + PositiveLiteral: []byte("1_100"), + Value: big.NewInt(1100), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) + }) + + t.Run("leading underscore", func(t *testing.T) { + + t.Parallel() + + // NOTE: a leading underscore introduces an identifier + + result, errs := testParseExpression(`_100`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "_100", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + result, + ) + }) +} + +func TestParseFixedPoint(t *testing.T) { + + t.Parallel() + + t.Run("with underscores", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1234_5678_90.0009_8765_4321") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FixedPointExpression{ + PositiveLiteral: []byte("1234_5678_90.0009_8765_4321"), + Negative: false, + UnsignedInteger: big.NewInt(1234567890), + Fractional: big.NewInt(987654321), + Scale: 12, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + }, + }, + result, + ) + }) + + t.Run("leading zero", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("0.1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FixedPointExpression{ + PositiveLiteral: []byte("0.1"), + Negative: false, + UnsignedInteger: big.NewInt(0), + Fractional: big.NewInt(1), + Scale: 1, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + result, + ) + }) + + t.Run("missing fractional digits", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("0.") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing fractional digits", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.FixedPointExpression{ + PositiveLiteral: []byte("0."), + Negative: false, + UnsignedInteger: big.NewInt(0), + Fractional: big.NewInt(0), + Scale: 1, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) +} + +func TestParseLessThanOrTypeArguments(t *testing.T) { + + t.Parallel() + + t.Run("binary expression with less operator", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1 < 2") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationLess, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + result, + ) + }) + + t.Run("invocation, zero type arguments, zero arguments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("a < > ()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: nil, + Arguments: nil, + ArgumentsStartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + result, + ) + }) + + t.Run("invocation, one type argument, one argument", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("a < { K : V } > ( 1 )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.DictionaryType{ + KeyType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "K", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + ValueType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "V", + Pos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Arguments: []*ast.Argument{ + { + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + EndPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + TrailingSeparatorPos: ast.Position{Line: 1, Column: 20, Offset: 20}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + EndPos: ast.Position{Line: 1, Column: 20, Offset: 20}, + }, + result, + ) + }) + + t.Run("invocation, three type arguments, two arguments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("a < { K : V } , @R , [ S ] > ( 1 , 2 )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.DictionaryType{ + KeyType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "K", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + ValueType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "V", + Pos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + { + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + { + IsResource: false, + Type: &ast.VariableSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "S", + Pos: ast.Position{Line: 1, Column: 23, Offset: 23}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + EndPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + Arguments: []*ast.Argument{ + { + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 31, Offset: 31}, + EndPos: ast.Position{Line: 1, Column: 31, Offset: 31}, + }, + }, + TrailingSeparatorPos: ast.Position{Line: 1, Column: 33, Offset: 33}, + }, + { + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 35, Offset: 35}, + EndPos: ast.Position{Line: 1, Column: 35, Offset: 35}, + }, + }, + TrailingSeparatorPos: ast.Position{Line: 1, Column: 37, Offset: 37}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 29, Offset: 29}, + EndPos: ast.Position{Line: 1, Column: 37, Offset: 37}, + }, + result, + ) + }) + + t.Run("precedence, invocation in binary expression", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("1 + a<>()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + TypeArguments: nil, + Arguments: nil, + ArgumentsStartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + result, + ) + }) + + t.Run("invocation, one type argument, nested type, no spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("a>()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + result, + ) + }) + + t.Run("invocation, one type argument, nested type, spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("a >()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + result, + ) + }) + + t.Run("precedence, binary expressions, less than", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("0 + 1 < 2") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationLess, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + result, + ) + }) + + t.Run("precedence, binary expressions, left shift", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("0 + 1 << 2") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationBitwiseLeftShift, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + }, + result, + ) + }) + + t.Run("precedence, binary expressions, greater than", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("0 + 1 > 2") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationGreater, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + result, + ) + }) + + t.Run("precedence, binary expressions, right shift", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("0 + 1 >> 2") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationBitwiseRightShift, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + }, + result, + ) + }) +} + +func TestParseBoolExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = true + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseIdentifierExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let b = a + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseArrayExpressionInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let a = [1, 2] + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.ArrayExpression{ + Values: []ast.Expression{ + &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + EndPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseDictionaryExpressionInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let x = {"a": 1, "b": 2} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{Identifier: "x", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.DictionaryExpression{ + Entries: []ast.DictionaryEntry{ + { + Key: &ast.StringExpression{ + Value: "a", + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + EndPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + }, + }, + { + Key: &ast.StringExpression{ + Value: "b", + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + EndPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseInvocationExpressionWithoutLabels(t *testing.T) { + + t.Parallel() + + const code = ` + let a = b(1, 2) + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + { + Label: "", + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseInvocationExpressionWithLabels(t *testing.T) { + + t.Parallel() + + const code = ` + let a = b(x: 1, y: 2, z : 3) + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "x", + LabelStartPos: &ast.Position{Offset: 16, Line: 2, Column: 15}, + LabelEndPos: &ast.Position{Offset: 17, Line: 2, Column: 16}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + { + Label: "y", + LabelStartPos: &ast.Position{Offset: 22, Line: 2, Column: 21}, + LabelEndPos: &ast.Position{Offset: 23, Line: 2, Column: 22}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + { + Label: "z", + LabelStartPos: &ast.Position{Offset: 28, Line: 2, Column: 27}, + LabelEndPos: &ast.Position{Offset: 30, Line: 2, Column: 29}, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + EndPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 33, Line: 2, Column: 32}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 33, Line: 2, Column: 32}, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseOptionalMemberExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = b?.c + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.MemberExpression{ + Optional: true, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + }, + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + AccessPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseIndexExpressionInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let a = b[1] + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.IndexExpression{ + TargetExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseUnaryExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let foo = -boo + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + Value: &ast.UnaryExpression{ + Operation: ast.OperationMinus, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "boo", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseOrExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = false || true + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationOr, + Left: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + Right: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + EndPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseAndExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = false && true + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationAnd, + Left: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + Right: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + EndPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseEqualityExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = false == true + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationEqual, + Left: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + Right: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + EndPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseRelationalExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = 1 < 2 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationLess, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseAdditiveExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = 1 + 2 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseMultiplicativeExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = 1 * 2 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionExpressionAndReturn(t *testing.T) { + + t.Parallel() + + const code = ` + let test = fun (): Int { return 1 } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.FunctionExpression{ + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + StartPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 38, Line: 2, Column: 37}, + EndPos: ast.Position{Offset: 38, Line: 2, Column: 37}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 31, Line: 2, Column: 30}, + EndPos: ast.Position{Offset: 38, Line: 2, Column: 37}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + EndPos: ast.Position{Offset: 40, Line: 2, Column: 39}, + }, + }, + }, + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseLeftAssociativity(t *testing.T) { + + t.Parallel() + + const code = ` + let a = 1 + 2 + 3 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseNegativeInteger(t *testing.T) { + + t.Parallel() + + const code = ` + let a = -42 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("42"), + Value: big.NewInt(-42), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseNegativeFixedPoint(t *testing.T) { + + t.Parallel() + + const code = ` + let a = -42.3 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Value: &ast.FixedPointExpression{ + PositiveLiteral: []byte("42.3"), + Negative: true, + UnsignedInteger: big.NewInt(42), + Fractional: big.NewInt(3), + Scale: 1, + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseTernaryRightAssociativity(t *testing.T) { + + t.Parallel() + + const code = ` + let a = 2 > 1 + ? 0 + : 3 > 2 ? 1 : 2 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.ConditionalExpression{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationGreater, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + }, + Then: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 35, Line: 3, Column: 12}, + EndPos: ast.Position{Offset: 35, Line: 3, Column: 12}, + }, + }, + Else: &ast.ConditionalExpression{ + Test: &ast.BinaryExpression{ + Operation: ast.OperationGreater, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 49, Line: 4, Column: 12}, + EndPos: ast.Position{Offset: 49, Line: 4, Column: 12}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 53, Line: 4, Column: 16}, + EndPos: ast.Position{Offset: 53, Line: 4, Column: 16}, + }, + }, + }, + Then: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 57, Line: 4, Column: 20}, + EndPos: ast.Position{Offset: 57, Line: 4, Column: 20}, + }, + }, + Else: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 61, Line: 4, Column: 24}, + EndPos: ast.Position{Offset: 61, Line: 4, Column: 24}, + }, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseVoidLiteral(t *testing.T) { + t.Parallel() + + const code = ` + let void: Void = () + ` + + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "void", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Void", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + NestedIdentifiers: nil, + }, + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Value: &ast.VoidExpression{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + EndPos: ast.Position{Offset: 23, Line: 3, Column: 0}, + }, + }, + Transfer: &ast.Transfer{ + Operation: 1, + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, result.Declarations()) +} + +func TestParseMissingReturnType(t *testing.T) { + + t.Parallel() + + const code = ` + let noop: ((): Void) = + fun () { return } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "noop", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Void", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + EndPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + Value: &ast.FunctionExpression{ + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 42, Line: 3, Column: 16}, + EndPos: ast.Position{Offset: 43, Line: 3, Column: 17}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 47, Line: 3, Column: 21}, + EndPos: ast.Position{Offset: 52, Line: 3, Column: 26}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 45, Line: 3, Column: 19}, + EndPos: ast.Position{Offset: 54, Line: 3, Column: 28}, + }, + }, + }, + StartPos: ast.Position{Offset: 38, Line: 3, Column: 12}, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, + result.Declarations(), + ) +} + +func TestParseExpression(t *testing.T) { + + t.Parallel() + + actual, errs := testParseExpression(` + before(x + before(y)) + z + `) + var err error + if len(errs) > 0 { + err = Error{ + Errors: errs, + } + } + require.NoError(t, err) + + expected := &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "before", + Pos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + LabelStartPos: nil, + LabelEndPos: nil, + Expression: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + Right: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "before", + Pos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + LabelStartPos: nil, + LabelEndPos: nil, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 27, Line: 2, Column: 26}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + EndPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + }, + TrailingSeparatorPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + Right: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "z", + Pos: ast.Position{Offset: 33, Line: 2, Column: 32}, + }, + }, + } + + utils.AssertEqualWithDiff(t, expected, actual) +} + +func TestParseStringEscapes(t *testing.T) { + + t.Parallel() + + actual, errs := testParseExpression(` + "test \0\n\r\t\"\'\\ xyz" + `) + + var err error + if len(errs) > 0 { + err = Error{ + Errors: errs, + } + } + + require.NoError(t, err) + + expected := &ast.StringExpression{ + Value: "test \x00\n\r\t\"'\\ xyz", + Range: ast.Range{ + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + EndPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + } + + utils.AssertEqualWithDiff(t, expected, actual) +} + +func TestParseStringWithUnicode(t *testing.T) { + + t.Parallel() + + actual, errs := testParseExpression(` + "this is a test \t\\new line and race car:\n\u{1F3CE}\u{FE0F}" + `) + + var err error + if len(errs) > 0 { + err = Error{ + Errors: errs, + } + } + + require.NoError(t, err) + + expected := &ast.StringExpression{ + Value: "this is a test \t\\new line and race car:\n\U0001F3CE\uFE0F", + Range: ast.Range{ + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + EndPos: ast.Position{Offset: 68, Line: 2, Column: 67}, + }, + } + + utils.AssertEqualWithDiff(t, expected, actual) +} + +func TestParseNilCoalescing(t *testing.T) { + + t.Parallel() + + const code = ` + let x = nil ?? 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationNilCoalesce, + Left: &ast.NilExpression{ + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseNilCoalescingRightAssociativity(t *testing.T) { + + t.Parallel() + + // NOTE: only syntactically, not semantically valid + const code = ` + let x = 1 ?? 2 ?? 3 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationNilCoalesce, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + Right: &ast.BinaryExpression{ + Operation: ast.OperationNilCoalesce, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + EndPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + }, + }, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFailableCasting(t *testing.T) { + + t.Parallel() + + const code = ` + let x = 0 as? Int + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + failableDowncast := &ast.CastingExpression{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + Operation: ast.OperationFailableCast, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + } + + variableDeclaration := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + Value: failableDowncast, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + } + + failableDowncast.ParentVariableDeclaration = variableDeclaration + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + variableDeclaration, + }, + result.Declarations(), + ) +} + +func TestParseMoveOperator(t *testing.T) { + + t.Parallel() + + const code = ` + let x = foo(<-y) + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Value: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + Arguments: []*ast.Argument{ + { + Label: "", + LabelStartPos: nil, + LabelEndPos: nil, + Expression: &ast.UnaryExpression{ + Operation: ast.OperationMove, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + StartPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + TrailingSeparatorPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + ArgumentsStartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + EndPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionExpressionWithResourceTypeAnnotation(t *testing.T) { + + t.Parallel() + + const code = ` + let f = fun (): @R { return X } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.FunctionExpression{ + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + }, + StartPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 30, Line: 2, Column: 29}, + EndPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + EndPos: ast.Position{Offset: 39, Line: 2, Column: 38}, + }, + }, + }, + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFailableCastingResourceTypeAnnotation(t *testing.T) { + + t.Parallel() + + const code = ` + let y = x as? @R + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + failableDowncast := &ast.CastingExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Operation: ast.OperationFailableCast, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + } + + variableDeclaration := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: failableDowncast, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + } + + failableDowncast.ParentVariableDeclaration = variableDeclaration + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + variableDeclaration, + }, + result.Declarations(), + ) +} + +func TestParseCasting(t *testing.T) { + + t.Parallel() + + const code = ` + let y = x as Y + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + cast := &ast.CastingExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + Operation: ast.OperationCast, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Y", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + } + + variableDeclaration := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: cast, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + } + + cast.ParentVariableDeclaration = variableDeclaration + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + variableDeclaration, + }, + result.Declarations(), + ) +} + +func TestParseIdentifiers(t *testing.T) { + + t.Parallel() + + for _, name := range []string{"foo", "from", "create", "destroy", "for", "in"} { + t.Run(name, func(t *testing.T) { + code := fmt.Sprintf(`let %s = 1`, name) + _, errs := testParseProgram(code) + require.Empty(t, errs) + }) + } +} + +func TestParseReferenceInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let x = &account.storage[R] as &R + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.ReferenceExpression{ + Expression: &ast.IndexExpression{ + TargetExpression: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "account", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + AccessPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + Identifier: ast.Identifier{ + Identifier: "storage", + Pos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + IndexingExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 33, Line: 2, Column: 32}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + EndPos: ast.Position{Offset: 34, Line: 2, Column: 33}, + }, + }, + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFixedPointExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = -1234_5678_90.0009_8765_4321 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.FixedPointExpression{ + PositiveLiteral: []byte("1234_5678_90.0009_8765_4321"), + Negative: true, + UnsignedInteger: big.NewInt(1234567890), + Fractional: big.NewInt(987654321), + Scale: 12, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 41, Line: 2, Column: 40}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFixedPointExpressionZeroInteger(t *testing.T) { + + t.Parallel() + + const code = ` + let a = -0.1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.FixedPointExpression{ + PositiveLiteral: []byte("0.1"), + Negative: true, + UnsignedInteger: new(big.Int), + Fractional: big.NewInt(1), + Scale: 1, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParsePathLiteral(t *testing.T) { + + t.Parallel() + + const code = ` + let a = /foo/bar + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{Identifier: "a", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Value: &ast.PathExpression{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + Domain: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Identifier: ast.Identifier{ + Identifier: "bar", + Pos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseBitwiseExpression(t *testing.T) { + + t.Parallel() + + const code = ` + let a = 1 | 2 ^ 3 & 4 << 5 >> 6 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Value: &ast.BinaryExpression{ + Operation: ast.OperationBitwiseOr, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + Right: &ast.BinaryExpression{ + Operation: ast.OperationBitwiseXor, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + Right: &ast.BinaryExpression{ + Operation: ast.OperationBitwiseAnd, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + Right: &ast.BinaryExpression{ + Operation: ast.OperationBitwiseRightShift, + Left: &ast.BinaryExpression{ + Operation: ast.OperationBitwiseLeftShift, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("4"), + Value: big.NewInt(4), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 27, Line: 2, Column: 26}, + EndPos: ast.Position{Offset: 27, Line: 2, Column: 26}, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("5"), + Value: big.NewInt(5), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + EndPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + }, + Right: &ast.IntegerExpression{ + PositiveLiteral: []byte("6"), + Value: big.NewInt(6), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + EndPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + }, + }, + }, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseInvalidNegativeIntegerLiteralWithIncorrectPrefix(t *testing.T) { + + t.Parallel() + + const code = ` + let e = -0K0 + ` + _, err := testParseProgram(code) + + require.Error(t, err) +} + +type limitingMemoryGauge struct { + limited map[common.MemoryKind]bool // which kinds to limit + limits map[common.MemoryKind]uint64 // limits of limited kinds + totals map[common.MemoryKind]uint64 // metered memory. for debugging + debug bool // print totals after each allocation +} + +type limitingMemoryGaugeError string + +func (e limitingMemoryGaugeError) Error() string { + return string(e) +} + +func makeLimitingMemoryGauge() *limitingMemoryGauge { + g := limitingMemoryGauge{ + limited: make(map[common.MemoryKind]bool), + limits: make(map[common.MemoryKind]uint64), + totals: make(map[common.MemoryKind]uint64), + } + return &g +} + +func (g *limitingMemoryGauge) Limit(kind common.MemoryKind, limit uint64) { + g.limited[kind] = true + g.limits[kind] = limit +} + +func (g *limitingMemoryGauge) MeterMemory(usage common.MemoryUsage) error { + g.totals[usage.Kind] += usage.Amount + + if g.debug { + fmt.Println(g.totals) + } + + if !g.limited[usage.Kind] { + return nil + } + + if g.limits[usage.Kind] < usage.Amount { + return limitingMemoryGaugeError(fmt.Sprintf(`reached limit for "%s"`, usage.Kind.String())) + } + + g.limits[usage.Kind] -= usage.Amount + + return nil +} diff --git a/runtime/old_parser/function.go b/runtime/old_parser/function.go new file mode 100644 index 0000000000..7d0054faaf --- /dev/null +++ b/runtime/old_parser/function.go @@ -0,0 +1,401 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/parser/lexer" +) + +func parseParameterList(p *parser) (*ast.ParameterList, error) { + var parameters []*ast.Parameter + + p.skipSpaceAndComments() + + if !p.current.Is(lexer.TokenParenOpen) { + return nil, p.syntaxError( + "expected %s as start of parameter list, got %s", + lexer.TokenParenOpen, + p.current.Type, + ) + } + + startPos := p.current.StartPos + // Skip the opening paren + p.next() + + var endPos ast.Position + + expectParameter := true + + atEnd := false + for !atEnd { + p.skipSpaceAndComments() + switch p.current.Type { + case lexer.TokenIdentifier: + if !expectParameter { + p.report(&MissingCommaInParameterListError{ + Pos: p.current.StartPos, + }) + } + parameter, err := parseParameter(p) + if err != nil { + return nil, err + } + + parameters = append(parameters, parameter) + expectParameter = false + + case lexer.TokenComma: + if expectParameter { + return nil, p.syntaxError( + "expected parameter or end of parameter list, got %s", + p.current.Type, + ) + } + // Skip the comma + p.next() + expectParameter = true + + case lexer.TokenParenClose: + endPos = p.current.EndPos + // Skip the closing paren + p.next() + atEnd = true + + case lexer.TokenEOF: + return nil, p.syntaxError( + "missing %s at end of parameter list", + lexer.TokenParenClose, + ) + + default: + if expectParameter { + return nil, p.syntaxError( + "expected parameter or end of parameter list, got %s", + p.current.Type, + ) + } else { + return nil, p.syntaxError( + "expected comma or end of parameter list, got %s", + p.current.Type, + ) + } + } + } + + return ast.NewParameterList( + p.memoryGauge, + parameters, + ast.NewRange( + p.memoryGauge, + startPos, + endPos, + ), + ), nil +} + +func parseParameter(p *parser) (*ast.Parameter, error) { + p.skipSpaceAndComments() + + startPos := p.current.StartPos + parameterPos := startPos + + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected argument label or parameter name, got %s", + p.current.Type, + ) + } + + var argumentLabel string + parameterName := string(p.currentTokenSource()) + + // Skip the identifier + p.nextSemanticToken() + + // If another identifier is provided, then the previous identifier + // is the argument label, and this identifier is the parameter name + if p.current.Is(lexer.TokenIdentifier) { + argumentLabel = parameterName + parameterName = string(p.currentTokenSource()) + parameterPos = p.current.StartPos + // Skip the identifier + p.nextSemanticToken() + } + + if !p.current.Is(lexer.TokenColon) { + return nil, p.syntaxError( + "expected %s after argument label/parameter name, got %s", + lexer.TokenColon, + p.current.Type, + ) + } + + // Skip the colon + p.nextSemanticToken() + + typeAnnotation, err := parseTypeAnnotation(p) + if err != nil { + return nil, err + } + + return ast.NewParameter( + p.memoryGauge, + argumentLabel, + ast.NewIdentifier( + p.memoryGauge, + parameterName, + parameterPos, + ), + typeAnnotation, + nil, + startPos, + ), nil +} + +func parseTypeParameterList(p *parser) (*ast.TypeParameterList, error) { + var typeParameters []*ast.TypeParameter + + p.skipSpaceAndComments() + + if !p.current.Is(lexer.TokenLess) { + return nil, nil + } + + startPos := p.current.StartPos + // Skip the opening paren + p.next() + + var endPos ast.Position + + expectTypeParameter := true + + atEnd := false + for !atEnd { + p.skipSpaceAndComments() + switch p.current.Type { + case lexer.TokenIdentifier: + if !expectTypeParameter { + p.report(&MissingCommaInParameterListError{ + Pos: p.current.StartPos, + }) + } + typeParameter, err := parseTypeParameter(p) + if err != nil { + return nil, err + } + + typeParameters = append(typeParameters, typeParameter) + expectTypeParameter = false + + case lexer.TokenComma: + if expectTypeParameter { + return nil, p.syntaxError( + "expected type parameter or end of type parameter list, got %s", + p.current.Type, + ) + } + // Skip the comma + p.next() + expectTypeParameter = true + + case lexer.TokenGreater: + endPos = p.current.EndPos + // Skip the closing paren + p.next() + atEnd = true + + case lexer.TokenEOF: + return nil, p.syntaxError( + "missing %s at end of type parameter list", + lexer.TokenGreater, + ) + + default: + if expectTypeParameter { + return nil, p.syntaxError( + "expected parameter or end of type parameter list, got %s", + p.current.Type, + ) + } else { + return nil, p.syntaxError( + "expected comma or end of type parameter list, got %s", + p.current.Type, + ) + } + } + } + + return ast.NewTypeParameterList( + p.memoryGauge, + typeParameters, + ast.NewRange( + p.memoryGauge, + startPos, + endPos, + ), + ), nil +} + +func parseTypeParameter(p *parser) (*ast.TypeParameter, error) { + p.skipSpaceAndComments() + + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected type parameter name, got %s", + p.current.Type, + ) + } + + identifier := p.tokenToIdentifier(p.current) + p.nextSemanticToken() + + var err error + var typeBound *ast.TypeAnnotation + if p.current.Is(lexer.TokenColon) { + p.nextSemanticToken() + + typeBound, err = parseTypeAnnotation(p) + if err != nil { + return nil, err + } + + } + + return ast.NewTypeParameter( + p.memoryGauge, + identifier, + typeBound, + ), nil +} + +func parseFunctionDeclaration( + p *parser, + functionBlockIsOptional bool, + access ast.Access, + accessPos *ast.Position, + staticPos *ast.Position, + nativePos *ast.Position, + docString string, +) (*ast.FunctionDeclaration, error) { + + startPos := ast.EarliestPosition(p.current.StartPos, accessPos, staticPos, nativePos) + + // Skip the `fun` keyword + p.nextSemanticToken() + if !p.current.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected identifier after start of function declaration, got %s", + p.current.Type, + ) + } + + identifier := p.tokenToIdentifier(p.current) + + // Skip the identifier + p.next() + + var typeParameterList *ast.TypeParameterList + + if p.config.TypeParametersEnabled { + var err error + typeParameterList, err = parseTypeParameterList(p) + if err != nil { + return nil, err + } + } + + parameterList, returnTypeAnnotation, functionBlock, err := + parseFunctionParameterListAndRest(p, functionBlockIsOptional) + + if err != nil { + return nil, err + } + + return ast.NewFunctionDeclaration( + p.memoryGauge, + access, + ast.FunctionPurityUnspecified, + staticPos != nil, + nativePos != nil, + identifier, + typeParameterList, + parameterList, + returnTypeAnnotation, + functionBlock, + startPos, + docString, + ), nil +} + +func parseFunctionParameterListAndRest( + p *parser, + functionBlockIsOptional bool, +) ( + parameterList *ast.ParameterList, + returnTypeAnnotation *ast.TypeAnnotation, + functionBlock *ast.FunctionBlock, + err error, +) { + // Parameter list + + parameterList, err = parseParameterList(p) + if err != nil { + return + } + + // Optional return type + + current := p.current + cursor := p.tokens.Cursor() + p.skipSpaceAndComments() + if p.current.Is(lexer.TokenColon) { + // Skip the colon + p.nextSemanticToken() + + returnTypeAnnotation, err = parseTypeAnnotation(p) + if err != nil { + return + } + } else { + p.tokens.Revert(cursor) + p.current = current + } + + // (Potentially optional) block + + if functionBlockIsOptional { + current = p.current + cursor := p.tokens.Cursor() + p.skipSpaceAndComments() + if !p.current.Is(lexer.TokenBraceOpen) { + p.tokens.Revert(cursor) + p.current = current + return + } + } + + functionBlock, err = parseFunctionBlock(p) + if err != nil { + return + } + + return +} diff --git a/runtime/old_parser/invalidnumberliteralkind.go b/runtime/old_parser/invalidnumberliteralkind.go new file mode 100644 index 0000000000..0016f892b3 --- /dev/null +++ b/runtime/old_parser/invalidnumberliteralkind.go @@ -0,0 +1,52 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "github.com/onflow/cadence/runtime/errors" +) + +//go:generate go run golang.org/x/tools/cmd/stringer -type=InvalidNumberLiteralKind + +type InvalidNumberLiteralKind uint + +const ( + InvalidNumberLiteralKindUnknown InvalidNumberLiteralKind = iota + InvalidNumberLiteralKindLeadingUnderscore + InvalidNumberLiteralKindTrailingUnderscore + InvalidNumberLiteralKindUnknownPrefix + InvalidNumberLiteralKindMissingDigits +) + +func (k InvalidNumberLiteralKind) Description() string { + switch k { + case InvalidNumberLiteralKindLeadingUnderscore: + return "leading underscore" + case InvalidNumberLiteralKindTrailingUnderscore: + return "trailing underscore" + case InvalidNumberLiteralKindUnknownPrefix: + return "unknown prefix" + case InvalidNumberLiteralKindMissingDigits: + return "missing digits" + case InvalidNumberLiteralKindUnknown: + return "unknown" + } + + panic(errors.NewUnreachableError()) +} diff --git a/runtime/old_parser/invalidnumberliteralkind_string.go b/runtime/old_parser/invalidnumberliteralkind_string.go new file mode 100644 index 0000000000..7f611d2dbf --- /dev/null +++ b/runtime/old_parser/invalidnumberliteralkind_string.go @@ -0,0 +1,27 @@ +// Code generated by "stringer -type=InvalidNumberLiteralKind"; DO NOT EDIT. + +package old_parser + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[InvalidNumberLiteralKindUnknown-0] + _ = x[InvalidNumberLiteralKindLeadingUnderscore-1] + _ = x[InvalidNumberLiteralKindTrailingUnderscore-2] + _ = x[InvalidNumberLiteralKindUnknownPrefix-3] + _ = x[InvalidNumberLiteralKindMissingDigits-4] +} + +const _InvalidNumberLiteralKind_name = "InvalidNumberLiteralKindUnknownInvalidNumberLiteralKindLeadingUnderscoreInvalidNumberLiteralKindTrailingUnderscoreInvalidNumberLiteralKindUnknownPrefixInvalidNumberLiteralKindMissingDigits" + +var _InvalidNumberLiteralKind_index = [...]uint8{0, 31, 72, 114, 151, 188} + +func (i InvalidNumberLiteralKind) String() string { + if i >= InvalidNumberLiteralKind(len(_InvalidNumberLiteralKind_index)-1) { + return "InvalidNumberLiteralKind(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _InvalidNumberLiteralKind_name[_InvalidNumberLiteralKind_index[i]:_InvalidNumberLiteralKind_index[i+1]] +} diff --git a/runtime/old_parser/keyword.go b/runtime/old_parser/keyword.go new file mode 100644 index 0000000000..862ae66d0f --- /dev/null +++ b/runtime/old_parser/keyword.go @@ -0,0 +1,71 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +const ( + keywordIf = "if" + keywordElse = "else" + keywordWhile = "while" + keywordBreak = "break" + keywordContinue = "continue" + keywordReturn = "return" + keywordTrue = "true" + keywordFalse = "false" + keywordNil = "nil" + keywordLet = "let" + keywordVar = "var" + keywordFun = "fun" + keywordAs = "as" + keywordCreate = "create" + keywordDestroy = "destroy" + keywordFor = "for" + keywordIn = "in" + keywordEmit = "emit" + keywordAuth = "auth" + keywordPriv = "priv" + keywordPub = "pub" + keywordAccess = "access" + keywordSet = "set" + keywordAll = "all" + keywordSelf = "self" + keywordInit = "init" + keywordContract = "contract" + keywordAccount = "account" + keywordImport = "import" + keywordFrom = "from" + keywordPre = "pre" + keywordPost = "post" + keywordEvent = "event" + keywordStruct = "struct" + keywordResource = "resource" + keywordInterface = "interface" + KeywordTransaction = "transaction" + keywordPrepare = "prepare" + keywordExecute = "execute" + keywordCase = "case" + keywordSwitch = "switch" + keywordDefault = "default" + keywordEnum = "enum" + keywordAttachment = "attachment" + keywordAttach = "attach" + keywordRemove = "remove" + keywordTo = "to" + keywordStatic = "static" + keywordNative = "native" +) diff --git a/runtime/old_parser/lexer/lexer.go b/runtime/old_parser/lexer/lexer.go new file mode 100644 index 0000000000..cf0a2e0e44 --- /dev/null +++ b/runtime/old_parser/lexer/lexer.go @@ -0,0 +1,455 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package lexer + +import ( + "fmt" + "sync" + "unicode/utf8" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" +) + +// tokenLimit is a sensible limit for how many tokens may be emitted +const tokenLimit = 1 << 19 + +type TokenLimitReachedError struct { + ast.Position +} + +var _ error = TokenLimitReachedError{} +var _ errors.UserError = TokenLimitReachedError{} + +func (TokenLimitReachedError) IsUserError() {} + +func (TokenLimitReachedError) Error() string { + return fmt.Sprintf("limit of %d tokens exceeded", tokenLimit) +} + +type position struct { + line int + column int +} + +type lexer struct { + // memoryGauge is used for metering memory usage + memoryGauge common.MemoryGauge + // input is the entire input string + input []byte + // tokens contains all tokens of the stream + tokens []Token + // startPos is the start position of the current word + startPos position + // startOffset is the start offset of the current word in the current line + startOffset int + // endOffset is the end offset of the current word in the current line + endOffset int + // prevEndOffset is the previous end offset, used for stepping back + prevEndOffset int + // cursor is the offset in the token stream + cursor int + // tokenCount is the number of tokens in the stream + tokenCount int + // current is the currently scanned rune + current rune + // prev is the previously scanned rune, used for stepping back + prev rune + // canBackup indicates whether stepping back is allowed + canBackup bool +} + +var _ TokenStream = &lexer{} + +func (l *lexer) Next() Token { + if l.cursor >= l.tokenCount { + + // At the end of the token stream, + // emit a synthetic EOF token + + endPos := l.endPos() + pos := ast.NewPosition( + l.memoryGauge, + l.endOffset-1, + endPos.line, + endPos.column, + ) + + return Token{ + Type: TokenEOF, + Range: ast.NewRange( + l.memoryGauge, + pos, + pos, + ), + } + + } + token := l.tokens[l.cursor] + l.cursor++ + return token +} + +func (l *lexer) Input() []byte { + return l.input +} + +func (l *lexer) Cursor() int { + return l.cursor +} + +func (l *lexer) Revert(cursor int) { + l.cursor = cursor +} + +func (l *lexer) clear() { + l.startOffset = 0 + l.endOffset = 0 + l.prevEndOffset = 0 + l.current = EOF + l.prev = EOF + l.canBackup = false + l.startPos = position{line: 1} + l.cursor = 0 + l.tokens = l.tokens[:0] + l.tokenCount = 0 +} + +func (l *lexer) Reclaim() { + pool.Put(l) +} + +var pool = sync.Pool{ + New: func() any { + return &lexer{ + tokens: make([]Token, 0, 2048), + } + }, +} + +func Lex(input []byte, memoryGauge common.MemoryGauge) TokenStream { + l := pool.Get().(*lexer) + l.clear() + l.memoryGauge = memoryGauge + l.input = input + l.run(rootState) + return l +} + +// run executes the stateFn, which will scan the runes in the input +// and emit tokens. +// +// stateFn might return another stateFn to indicate further scanning work, +// or nil if there is no scanning work left to be done, +// i.e. run will keep running the returned stateFn until no more +// stateFn is returned, which for example happens when reaching the end of the file. +// +// When all stateFn have been executed, an EOF token is emitted. +func (l *lexer) run(state stateFn) { + + // catch panic exceptions, emit it to the tokens channel before + // closing it + defer func() { + if r := recover(); r != nil { + var err error + switch r := r.(type) { + case errors.MemoryError, errors.InternalError: + // fatal errors and internal errors percolates up. + // Note: not all fatal errors are internal errors. + // e.g: memory limit exceeding is a fatal error, but also a user error. + panic(r) + case error: + err = r + default: + err = fmt.Errorf("lexer: %v", r) + } + + l.emitError(err) + } + }() + + for state != nil { + state = state(l) + } +} + +// next decodes the next rune (UTF8 character) from the input string. +// +// It returns EOF if it reaches the end of the file, +// otherwise returns the scanned rune. +func (l *lexer) next() rune { + l.canBackup = true + + endOffset := l.endOffset + + // update prevEndOffset and prev so that we can step back one rune. + l.prevEndOffset = endOffset + l.prev = l.current + + r := EOF + w := 1 + if endOffset < len(l.input) { + r, w = utf8.DecodeRune(l.input[endOffset:]) + } + + l.endOffset += w + l.current = r + + return r +} + +// backupOne steps back one rune. +// Can be called only once per call of next. +func (l *lexer) backupOne() { + if !l.canBackup { + // TODO: should this be an internal error? + panic("second backup") + } + l.canBackup = false + + l.endOffset = l.prevEndOffset + l.current = l.prev +} + +func (l *lexer) word() []byte { + start := l.startOffset + end := l.endOffset + return l.input[start:end] +} + +// acceptOne reads one rune ahead. +// It returns true if the next rune matches with the input rune, +// otherwise it steps back one rune and returns false. +func (l *lexer) acceptOne(r rune) bool { + if l.next() == r { + return true + } + l.backupOne() + return false +} + +// emit writes a token to the channel. +func (l *lexer) emit(ty TokenType, spaceOrError any, rangeStart ast.Position, consume bool) { + + if len(l.tokens) >= tokenLimit { + panic(TokenLimitReachedError{}) + } + + endPos := l.endPos() + + token := Token{ + Type: ty, + SpaceOrError: spaceOrError, + Range: ast.NewRange( + l.memoryGauge, + rangeStart, + ast.NewPosition( + l.memoryGauge, + l.endOffset-1, + endPos.line, + endPos.column, + ), + ), + } + + l.tokens = append(l.tokens, token) + l.tokenCount = len(l.tokens) + + if consume { + l.startOffset = l.endOffset + + l.startPos = endPos + r, _ := utf8.DecodeRune(l.input[l.endOffset-1:]) + + if r == '\n' { + l.startPos.line++ + l.startPos.column = 0 + } else { + l.startPos.column++ + } + } +} + +func (l *lexer) startPosition() ast.Position { + return ast.NewPosition( + l.memoryGauge, + l.startOffset, + l.startPos.line, + l.startPos.column, + ) +} + +func (l *lexer) endPos() position { + startOffset := l.startOffset + endOffset := l.endOffset + + endPos := l.startPos + + var w int + for offset := startOffset; offset < endOffset-1; offset += w { + var r rune + r, w = utf8.DecodeRune(l.input[offset:]) + + if r == '\n' { + endPos.line++ + endPos.column = 0 + } else { + endPos.column++ + } + } + + return endPos +} + +func (l *lexer) emitType(ty TokenType) { + common.UseMemory(l.memoryGauge, common.TypeTokenMemoryUsage) + + l.emit(ty, nil, l.startPosition(), true) +} + +func (l *lexer) emitError(err error) { + common.UseMemory(l.memoryGauge, common.ErrorTokenMemoryUsage) + + endPos := l.endPos() + rangeStart := ast.NewPosition( + l.memoryGauge, + l.endOffset-1, + endPos.line, + endPos.column, + ) + l.emit(TokenError, err, rangeStart, false) +} + +func (l *lexer) scanSpace() (containsNewline bool) { + // lookahead is already lexed. + // parse more, if any + l.acceptWhile(func(r rune) bool { + switch r { + case ' ', '\t', '\r': + return true + case '\n': + containsNewline = true + return true + default: + return false + } + }) + return +} + +func (l *lexer) scanIdentifier() { + // lookahead is already lexed. + // parse more, if any + l.acceptWhile(func(r rune) bool { + return r >= 'a' && r <= 'z' || + r >= 'A' && r <= 'Z' || + r >= '0' && r <= '9' || + r == '_' + }) +} + +func (l *lexer) scanLineComment() { + // lookahead is already lexed. + // parse more, if any + l.acceptWhile(func(r rune) bool { + return !(r == '\n' || r == EOF) + }) +} + +func (l *lexer) acceptWhile(f func(rune) bool) { + for { + r := l.next() + + if f(r) { + continue + } + + l.backupOne() + return + } +} + +func (l *lexer) scanString(quote rune) { + r := l.next() + for r != quote { + switch r { + case '\n', EOF: + // NOTE: invalid end of string handled by parser + l.backupOne() + return + case '\\': + r = l.next() + switch r { + case '\n', EOF: + // NOTE: invalid end of string handled by parser + l.backupOne() + return + } + } + r = l.next() + } +} + +func (l *lexer) scanBinaryRemainder() { + l.acceptWhile(func(r rune) bool { + return r == '0' || r == '1' || r == '_' + }) +} + +func (l *lexer) scanOctalRemainder() { + l.acceptWhile(func(r rune) bool { + return (r >= '0' && r <= '7') || r == '_' + }) +} + +func (l *lexer) scanHexadecimalRemainder() { + l.acceptWhile(func(r rune) bool { + return (r >= '0' && r <= '9') || + (r >= 'a' && r <= 'f') || + (r >= 'A' && r <= 'F') || + r == '_' + }) +} + +func (l *lexer) scanDecimalOrFixedPointRemainder() TokenType { + l.acceptWhile(isDecimalDigitOrUnderscore) + r := l.next() + if r == '.' { + l.scanFixedPointRemainder() + return TokenFixedPointNumberLiteral + } else { + l.backupOne() + return TokenDecimalIntegerLiteral + } +} + +func (l *lexer) scanFixedPointRemainder() { + r := l.next() + if !isDecimalDigitOrUnderscore(r) { + l.backupOne() + l.emitError(fmt.Errorf("missing fractional digits")) + return + } + l.acceptWhile(isDecimalDigitOrUnderscore) +} + +func isDecimalDigitOrUnderscore(r rune) bool { + return (r >= '0' && r <= '9') || r == '_' +} diff --git a/runtime/old_parser/lexer/lexer_test.go b/runtime/old_parser/lexer/lexer_test.go new file mode 100644 index 0000000000..3102656402 --- /dev/null +++ b/runtime/old_parser/lexer/lexer_test.go @@ -0,0 +1,2643 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package lexer + +import ( + "errors" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.uber.org/goleak" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestMain(m *testing.M) { + goleak.VerifyTestMain(m) +} + +func withTokens(tokenStream TokenStream, fn func([]Token)) { + tokens := make([]Token, 0) + for { + token := tokenStream.Next() + tokens = append(tokens, token) + if token.Is(TokenEOF) { + fn(tokens) + return + } + } +} + +type token struct { + Source string + Token +} + +func testLex(t *testing.T, input string, expected []token) { + + t.Parallel() + + expectedTokens := make([]Token, len(expected)) + for i, e := range expected { + expectedTokens[i] = e.Token + } + + bytes := []byte(input) + + withTokens(Lex(bytes, nil), func(actualTokens []Token) { + utils.AssertEqualWithDiff(t, expectedTokens, actualTokens) + + require.Len(t, actualTokens, len(expectedTokens)) + for i, expectedToken := range expected { + actualToken := actualTokens[i] + if actualToken.Type == TokenEOF { + continue + } + assert.Equal(t, + expectedToken.Source, + string(actualToken.Source(bytes)), + ) + } + }) +} + +func TestLexBasic(t *testing.T) { + + t.Parallel() + + t.Run("two numbers separated by whitespace", func(t *testing.T) { + testLex(t, + " 01\t 10", + []token{ + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: "01", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + Source: "\t ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: "10", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("assignment", func(t *testing.T) { + testLex(t, + "x=1", + []token{ + { + Token: Token{ + Type: TokenIdentifier, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "x", + }, + { + Token: Token{ + Type: TokenEqual, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "=", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: "1", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + }, + }, + ) + }) + + t.Run("simple arithmetic: plus and times", func(t *testing.T) { + testLex(t, + "(2 + 3) * 4", + []token{ + { + Token: Token{ + Type: TokenParenOpen, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "(", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "2", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenPlus, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "+", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + Source: "3", + }, + { + Token: Token{ + Type: TokenParenClose, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Source: ")", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenStar, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Source: "*", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + Source: "4", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + }, + }, + ) + }) + + t.Run("simple arithmetic: minus and div", func(t *testing.T) { + testLex(t, + "(2 - 3) / 4", + []token{ + { + Token: Token{ + Type: TokenParenOpen, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "(", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "2", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenMinus, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "-", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + Source: "3", + }, + { + Token: Token{ + Type: TokenParenClose, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Source: ")", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenSlash, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Source: "/", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + Source: "4", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + }, + }, + ) + }) + + t.Run("multiple lines", func(t *testing.T) { + testLex(t, + "1 \n 2\n", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "1", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: true, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 2, Column: 1, Offset: 4}, + }, + }, + Source: " \n ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 2, Offset: 5}, + EndPos: ast.Position{Line: 2, Column: 2, Offset: 5}, + }, + }, + Source: "2", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: true, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 3, Offset: 6}, + EndPos: ast.Position{Line: 2, Column: 3, Offset: 6}, + }, + }, + Source: "\n", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 3, Column: 0, Offset: 7}, + EndPos: ast.Position{Line: 3, Column: 0, Offset: 7}, + }, + }, + }, + }, + ) + }) + + t.Run("nil-coalesce", func(t *testing.T) { + testLex(t, + "1 ?? 2", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "1", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenDoubleQuestionMark, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "??", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + Source: "2", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + }, + }, + ) + }) + + t.Run("identifier", func(t *testing.T) { + testLex(t, + "test", + []token{ + { + Token: Token{ + Type: TokenIdentifier, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "test", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + }, + ) + }) + + t.Run("identifier with leading underscore and trailing numbers", func(t *testing.T) { + testLex(t, + "_test_123", + []token{ + { + Token: Token{ + Type: TokenIdentifier, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Source: "_test_123", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + }, + }, + ) + }) + + t.Run("colon, comma, semicolon, question mark", func(t *testing.T) { + testLex(t, + ":,;.?", + + []token{ + { + Token: Token{ + Type: TokenColon, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: ":", + }, + { + Token: Token{ + Type: TokenComma, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: ",", + }, + { + Token: Token{ + Type: TokenSemicolon, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: ";", + }, + { + Token: Token{ + Type: TokenDot, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: ".", + }, + { + Token: Token{ + Type: TokenQuestionMark, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: "?", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + }, + ) + }) + + t.Run("brackets and braces", func(t *testing.T) { + testLex(t, + "[}]{", + []token{ + { + Token: Token{ + Type: TokenBracketOpen, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "[", + }, + { + Token: Token{ + Type: TokenBraceClose, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "}", + }, + { + Token: Token{ + Type: TokenBracketClose, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: "]", + }, + { + Token: Token{ + Type: TokenBraceOpen, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "{", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + }, + ) + }) + + t.Run("comparisons", func(t *testing.T) { + testLex(t, + "=<><-<=>=", + []token{ + { + Token: Token{ + Type: TokenEqual, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "=", + }, + { + Token: Token{ + Type: TokenLess, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "<", + }, + { + Token: Token{ + Type: TokenGreater, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: ">", + }, + { + Token: Token{ + Type: TokenLeftArrow, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: "<-", + }, + { + Token: Token{ + Type: TokenLessEqual, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Source: "<=", + }, + { + Token: Token{ + Type: TokenGreaterEqual, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + Source: ">=", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + }, + }, + ) + }) +} + +func TestLexString(t *testing.T) { + + t.Parallel() + + t.Run("valid, empty", func(t *testing.T) { + testLex(t, + `""`, + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: `""`, + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + }, + ) + }) + + t.Run("valid, non-empty", func(t *testing.T) { + testLex(t, + `"test"`, + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + Source: `"test"`, + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + }, + }, + ) + }) + + t.Run("valid, with valid tab escape", func(t *testing.T) { + testLex(t, + `"te\tst"`, + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: `"te\tst"`, + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("valid, with invalid escape character", func(t *testing.T) { + testLex(t, + `"te\Xst"`, + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: `"te\Xst"`, + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("valid, with valid quote escape", func(t *testing.T) { + testLex(t, + `"te\"st"`, + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: `"te\"st"`, + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("invalid, empty, not terminated at line end", func(t *testing.T) { + testLex(t, + "\"\n", + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "\"", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: true, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "\n", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + }, + }, + }, + }, + ) + }) + + t.Run("invalid, non-empty, not terminated at line end", func(t *testing.T) { + testLex(t, + "\"te\n", + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: "\"te", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: true, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "\n", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 0, Offset: 4}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 4}, + }, + }, + }, + }, + ) + }) + + t.Run("invalid, empty, not terminated at end of file", func(t *testing.T) { + testLex(t, + "\"", + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "\"", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + }, + }, + ) + }) + + t.Run("invalid, non-empty, not terminated at end of file", func(t *testing.T) { + testLex(t, + "\"te", + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: "\"te", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + }, + }, + ) + }) + + t.Run("invalid, missing escape character", func(t *testing.T) { + testLex(t, + "\"\\\n", + []token{ + { + Token: Token{ + Type: TokenString, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "\"\\", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: true, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: "\n", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 0, Offset: 3}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 3}, + }, + }, + }, + }, + ) + }) +} + +func TestLexBlockComment(t *testing.T) { + + t.Parallel() + + t.Run("nested 1", func(t *testing.T) { + testLex(t, + `/* // *X /* \\* */`, + []token{ + { + Token: Token{ + Type: TokenBlockCommentStart, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "/*", + }, + { + Token: Token{ + Type: TokenBlockCommentContent, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Source: ` // *X `, + }, + { + Token: Token{ + Type: TokenBlockCommentStart, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + Source: "/*", + }, + { + Token: Token{ + Type: TokenBlockCommentContent, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + EndPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + }, + }, + Source: ` \\* `, + }, + { + Token: Token{ + Type: TokenBlockCommentEnd, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + EndPos: ast.Position{Line: 1, Column: 19, Offset: 19}, + }, + }, + Source: "*/", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 20, Offset: 20}, + EndPos: ast.Position{Line: 1, Column: 20, Offset: 20}, + }, + }, + }, + }, + ) + }) + + t.Run("nested 2", func(t *testing.T) { + testLex(t, + `/* test foo /* bar */ asd */ `, + []token{ + { + Token: Token{ + Type: TokenBlockCommentStart, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "/*", + }, + { + Token: Token{ + Type: TokenBlockCommentContent, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + Source: ` test foo `, + }, + { + Token: Token{ + Type: TokenBlockCommentStart, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + Source: "/*", + }, + { + Token: Token{ + Type: TokenBlockCommentContent, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + EndPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + Source: ` bar `, + }, + { + Token: Token{ + Type: TokenBlockCommentEnd, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 19, Offset: 19}, + EndPos: ast.Position{Line: 1, Column: 20, Offset: 20}, + }, + }, + Source: "*/", + }, + { + Token: Token{ + Type: TokenBlockCommentContent, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + EndPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + }, + }, + Source: ` asd `, + }, + { + Token: Token{ + Type: TokenBlockCommentEnd, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + EndPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + }, + Source: "*/", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 28, Offset: 28}, + EndPos: ast.Position{Line: 1, Column: 29, Offset: 29}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 30, Offset: 30}, + EndPos: ast.Position{Line: 1, Column: 30, Offset: 30}, + }, + }, + }, + }, + ) + }) +} + +func TestLexIntegerLiterals(t *testing.T) { + + t.Parallel() + + t.Run("binary prefix, missing trailing digits", func(t *testing.T) { + testLex(t, + `0b`, + []token{ + { + Token: Token{ + Type: TokenError, + SpaceOrError: errors.New("missing digits"), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "b", + }, + { + Token: Token{ + Type: TokenBinaryIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "0b", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + }, + ) + }) + + t.Run("binary", func(t *testing.T) { + testLex(t, + `0b101010`, + []token{ + { + Token: Token{ + Type: TokenBinaryIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: "0b101010", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("binary with leading zeros", func(t *testing.T) { + testLex(t, + `0b001000`, + []token{ + { + Token: Token{ + Type: TokenBinaryIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: "0b001000", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("binary with underscores", func(t *testing.T) { + testLex(t, + `0b101010_101010`, + []token{ + { + Token: Token{ + Type: TokenBinaryIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + Source: "0b101010_101010", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + }, + }, + ) + }) + + t.Run("binary with leading underscore", func(t *testing.T) { + testLex(t, + `0b_101010_101010`, + []token{ + { + Token: Token{ + Type: TokenBinaryIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + Source: "0b_101010_101010", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + EndPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + }, + }, + ) + }) + + t.Run("binary with trailing underscore", func(t *testing.T) { + testLex(t, + `0b101010_101010_`, + []token{ + { + Token: Token{ + Type: TokenBinaryIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + Source: "0b101010_101010_", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + EndPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + }, + }, + ) + }) + + t.Run("octal prefix, missing trailing digits", func(t *testing.T) { + testLex(t, + `0o`, + []token{ + { + Token: Token{ + Type: TokenError, + SpaceOrError: errors.New("missing digits"), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "o", + }, + { + Token: Token{ + Type: TokenOctalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "0o", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + }, + ) + }) + + t.Run("octal", func(t *testing.T) { + testLex(t, + `0o32`, + []token{ + { + Token: Token{ + Type: TokenOctalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "0o32", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + }, + ) + }) + + t.Run("octal with underscores", func(t *testing.T) { + testLex(t, + `0o32_45`, + []token{ + { + Token: Token{ + Type: TokenOctalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Source: "0o32_45", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + }, + ) + }) + + t.Run("octal with leading underscore", func(t *testing.T) { + testLex(t, + `0o_32_45`, + []token{ + { + Token: Token{ + Type: TokenOctalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: "0o_32_45", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("octal with trailing underscore", func(t *testing.T) { + testLex(t, + `0o32_45_`, + []token{ + { + Token: Token{ + Type: TokenOctalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: "0o32_45_", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("decimal", func(t *testing.T) { + testLex(t, + `1234567890`, + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Source: "1234567890", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + }, + ) + }) + + t.Run("decimal with underscores", func(t *testing.T) { + testLex(t, + `1_234_567_890`, + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + Source: "1_234_567_890", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + }, + }, + ) + }) + + t.Run("decimal with trailing underscore", func(t *testing.T) { + testLex(t, + `1_234_567_890_`, + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + Source: "1_234_567_890_", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + EndPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + }, + }, + ) + }) + + t.Run("hexadecimal prefix, missing trailing digits", func(t *testing.T) { + testLex(t, + `0x`, + []token{ + { + Token: Token{ + Type: TokenError, + SpaceOrError: errors.New("missing digits"), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "x", + }, + { + Token: Token{ + Type: TokenHexadecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "0x", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + }, + ) + }) + + t.Run("hexadecimal", func(t *testing.T) { + testLex(t, + `0xf2`, + []token{ + { + Token: Token{ + Type: TokenHexadecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "0xf2", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + }, + ) + }) + + t.Run("hexadecimal with underscores", func(t *testing.T) { + testLex(t, + `0xf2_09`, + []token{ + { + Token: Token{ + Type: TokenHexadecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Source: "0xf2_09", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + }, + ) + }) + + t.Run("hexadecimal with leading underscore", func(t *testing.T) { + testLex(t, + `0x_f2_09`, + []token{ + { + Token: Token{ + Type: TokenHexadecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: "0x_f2_09", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("hexadecimal with trailing underscore", func(t *testing.T) { + testLex(t, + `0xf2_09_`, + []token{ + { + Token: Token{ + Type: TokenHexadecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Source: "0xf2_09_", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + ) + }) + + t.Run("0", func(t *testing.T) { + testLex(t, + "0", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "0", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + }, + }, + ) + }) + + t.Run("01", func(t *testing.T) { + testLex(t, + "01", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "01", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + }, + ) + }) + + t.Run("whitespace after 0", func(t *testing.T) { + testLex(t, + "0\n", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: "0", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: true, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "\n", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 2}, + }, + }, + }, + }, + ) + }) + + t.Run("leading zeros", func(t *testing.T) { + testLex(t, + "00123", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: "00123", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + }, + ) + }) + + t.Run("invalid prefix", func(t *testing.T) { + testLex(t, + "0z123", + []token{ + { + Token: Token{ + Type: TokenError, + SpaceOrError: errors.New("invalid number literal prefix: 'z'"), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "z", + }, + { + Token: Token{ + Type: TokenUnknownBaseIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: "0z123", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + }, + ) + }) + + t.Run("leading zero and underscore", func(t *testing.T) { + + testLex(t, + "0_100", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: "0_100", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + }, + ) + }) + + t.Run("leading one and underscore", func(t *testing.T) { + + testLex(t, + "1_100", + []token{ + { + Token: Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: "1_100", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + }, + ) + }) +} + +func TestLexFixedPoint(t *testing.T) { + + t.Parallel() + + t.Run("with underscores", func(t *testing.T) { + testLex(t, + "1234_5678_90.0009_8765_4321", + []token{ + { + Token: Token{ + Type: TokenFixedPointNumberLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 26, Offset: 26}, + }, + }, + Source: "1234_5678_90.0009_8765_4321", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + EndPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + }, + }, + }, + ) + }) + + t.Run("leading zero", func(t *testing.T) { + testLex(t, + "0.1", + []token{ + { + Token: Token{ + Type: TokenFixedPointNumberLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + Source: "0.1", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + }, + }, + ) + }) + + t.Run("missing fractional digits", func(t *testing.T) { + testLex(t, + "0.", + []token{ + { + Token: Token{ + Type: TokenError, + SpaceOrError: errors.New("missing fractional digits"), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: ".", + }, + { + Token: Token{ + Type: TokenFixedPointNumberLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Source: "0.", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + }, + ) + }) +} + +func TestLexLineComment(t *testing.T) { + + t.Parallel() + + t.Run("no newline", func(t *testing.T) { + + testLex(t, + ` foo // bar `, + []token{ + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenIdentifier, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "foo", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenLineComment, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + Source: "// bar ", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + }, + }, + ) + }) + + t.Run("newline", func(t *testing.T) { + + testLex( + t, + " foo // bar \n baz", + []token{ + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenIdentifier, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + Source: "foo", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Source: " ", + }, + { + Token: Token{ + Type: TokenLineComment, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + Source: "// bar ", + }, + { + Token: Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: true, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 13}, + }, + }, + Source: "\n ", + }, + { + Token: Token{ + Type: TokenIdentifier, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 1, Offset: 14}, + EndPos: ast.Position{Line: 2, Column: 3, Offset: 16}, + }, + }, + Source: "baz", + }, + { + Token: Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 4, Offset: 17}, + EndPos: ast.Position{Line: 2, Column: 4, Offset: 17}, + }, + }, + }, + }, + ) + }) +} + +func TestRevert(t *testing.T) { + + t.Parallel() + + tokenStream := Lex([]byte("1 2 3"), nil) + + // Assert all tokens + + assert.Equal(t, + Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + tokenStream.Next(), + ) + + twoCursor := tokenStream.Cursor() + + assert.Equal(t, + Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + tokenStream.Next(), + ) + + // Assert EOF keeps on being returned for Next() + // at the end of the stream + + assert.Equal(t, + Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + tokenStream.Next(), + ) + + // Revert back to token '2' + + tokenStream.Revert(twoCursor) + + // Re-assert tokens + + assert.Equal(t, + Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + tokenStream.Next(), + ) + + // Re-assert EOF keeps on being returned for Next() + // at the end of the stream + + assert.Equal(t, + Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + tokenStream.Next(), + ) + +} + +func TestEOFsAfterError(t *testing.T) { + + t.Parallel() + + tokenStream := Lex([]byte(`1 ''`), nil) + + // Assert all tokens + + assert.Equal(t, + Token{ + Type: TokenDecimalIntegerLiteral, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenSpace, + SpaceOrError: Space{ + ContainsNewline: false, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + tokenStream.Next(), + ) + + assert.Equal(t, + Token{ + Type: TokenError, + SpaceOrError: errors.New(`unrecognized character: U+0027 '''`), + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + tokenStream.Next(), + ) + + // Assert EOFs keep on being returned for Next() + // at the end of the stream + + for i := 0; i < 10; i++ { + + require.Equal(t, + Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + tokenStream.Next(), + ) + } +} + +func TestEOFsAfterEmptyInput(t *testing.T) { + + t.Parallel() + + tokenStream := Lex(nil, nil) + + // Assert EOFs keep on being returned for Next() + // at the end of the stream + + for i := 0; i < 10; i++ { + + require.Equal(t, + Token{ + Type: TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + tokenStream.Next(), + ) + } +} + +func TestLimit(t *testing.T) { + + t.Parallel() + + var b strings.Builder + for i := 0; i < 300000; i++ { + b.WriteString("x ") + } + + code := b.String() + + assert.PanicsWithValue(t, + TokenLimitReachedError{}, + func() { + _ = Lex([]byte(code), nil) + }, + ) +} diff --git a/runtime/old_parser/lexer/state.go b/runtime/old_parser/lexer/state.go new file mode 100644 index 0000000000..9848a1be34 --- /dev/null +++ b/runtime/old_parser/lexer/state.go @@ -0,0 +1,342 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package lexer + +import ( + "fmt" + + "github.com/onflow/cadence/runtime/common" +) + +const keywordAs = "as" + +// stateFn uses the input lexer to read runes and emit tokens. +// +// It either returns nil when reaching end of file, +// or returns another stateFn for more scanning work. +type stateFn func(*lexer) stateFn + +// rootState returns a stateFn that scans the file and emits tokens until +// reaching the end of the file. +func rootState(l *lexer) stateFn { + for { + r := l.next() + switch r { + case EOF: + return nil + case '+': + l.emitType(TokenPlus) + case '-': + l.emitType(TokenMinus) + case '*': + l.emitType(TokenStar) + case '%': + l.emitType(TokenPercent) + case '(': + l.emitType(TokenParenOpen) + case ')': + l.emitType(TokenParenClose) + case '{': + l.emitType(TokenBraceOpen) + case '}': + l.emitType(TokenBraceClose) + case '[': + l.emitType(TokenBracketOpen) + case ']': + l.emitType(TokenBracketClose) + case ',': + l.emitType(TokenComma) + case ';': + l.emitType(TokenSemicolon) + case ':': + l.emitType(TokenColon) + case '.': + l.emitType(TokenDot) + case '=': + if l.acceptOne('=') { + l.emitType(TokenEqualEqual) + } else { + l.emitType(TokenEqual) + } + case '@': + l.emitType(TokenAt) + case '#': + l.emitType(TokenPragma) + case '&': + if l.acceptOne('&') { + l.emitType(TokenAmpersandAmpersand) + } else { + l.emitType(TokenAmpersand) + } + case '^': + l.emitType(TokenCaret) + case '|': + if l.acceptOne('|') { + l.emitType(TokenVerticalBarVerticalBar) + } else { + l.emitType(TokenVerticalBar) + } + case '>': + r = l.next() + switch r { + case '=': + l.emitType(TokenGreaterEqual) + default: + l.backupOne() + l.emitType(TokenGreater) + } + case '_': + return identifierState + case ' ', '\t', '\r': + return spaceState(false) + case '\n': + return spaceState(true) + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + return numberState + case '"': + return stringState + case '/': + r = l.next() + switch r { + case '/': + return lineCommentState + case '*': + l.emitType(TokenBlockCommentStart) + return blockCommentState(0) + default: + l.backupOne() + l.emitType(TokenSlash) + } + case '?': + r = l.next() + switch r { + case '?': + l.emitType(TokenDoubleQuestionMark) + case '.': + l.emitType(TokenQuestionMarkDot) + default: + l.backupOne() + l.emitType(TokenQuestionMark) + } + case '!': + if l.acceptOne('=') { + l.emitType(TokenNotEqual) + } else { + l.emitType(TokenExclamationMark) + } + case '<': + r = l.next() + switch r { + case '-': + r = l.next() + switch r { + case '!': + l.emitType(TokenLeftArrowExclamation) + case '>': + l.emitType(TokenSwap) + default: + l.backupOne() + l.emitType(TokenLeftArrow) + } + case '<': + l.emitType(TokenLessLess) + case '=': + l.emitType(TokenLessEqual) + default: + l.backupOne() + l.emitType(TokenLess) + } + default: + switch { + case r >= 'a' && r <= 'z' || + r >= 'A' && r <= 'Z': + + return identifierState + + default: + return l.error(fmt.Errorf("unrecognized character: %#U", r)) + } + } + } +} + +func (l *lexer) error(err error) stateFn { + l.emitError(err) + return nil +} + +// numberState returns a stateFn that scans the following runes as a number +// and emits a corresponding token +func numberState(l *lexer) stateFn { + // lookahead is already lexed. + // parse more, if any + r := l.current + if r == '0' { + r = l.next() + switch r { + case 'b': + l.scanBinaryRemainder() + if l.endOffset-l.startOffset <= 2 { + l.emitError(fmt.Errorf("missing digits")) + } + l.emitType(TokenBinaryIntegerLiteral) + + case 'o': + l.scanOctalRemainder() + if l.endOffset-l.startOffset <= 2 { + l.emitError(fmt.Errorf("missing digits")) + } + l.emitType(TokenOctalIntegerLiteral) + + case 'x': + l.scanHexadecimalRemainder() + if l.endOffset-l.startOffset <= 2 { + l.emitError(fmt.Errorf("missing digits")) + } + l.emitType(TokenHexadecimalIntegerLiteral) + + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_': + tokenType := l.scanDecimalOrFixedPointRemainder() + l.emitType(tokenType) + + case '.': + l.scanFixedPointRemainder() + l.emitType(TokenFixedPointNumberLiteral) + + case EOF: + l.backupOne() + l.emitType(TokenDecimalIntegerLiteral) + + default: + prefixChar := r + + if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') { + l.emitError(fmt.Errorf("invalid number literal prefix: %q", prefixChar)) + l.next() + + tokenType := l.scanDecimalOrFixedPointRemainder() + if tokenType == TokenDecimalIntegerLiteral { + tokenType = TokenUnknownBaseIntegerLiteral + } + l.emitType(tokenType) + } else { + l.backupOne() + l.emitType(TokenDecimalIntegerLiteral) + } + } + + } else { + tokenType := l.scanDecimalOrFixedPointRemainder() + l.emitType(tokenType) + } + + return rootState +} + +type Space struct { + ContainsNewline bool +} + +func spaceState(startIsNewline bool) stateFn { + return func(l *lexer) stateFn { + containsNewline := l.scanSpace() + containsNewline = containsNewline || startIsNewline + + common.UseMemory(l.memoryGauge, common.SpaceTokenMemoryUsage) + + l.emit( + TokenSpace, + Space{ + ContainsNewline: containsNewline, + }, + l.startPosition(), + true, + ) + return rootState + } +} + +func identifierState(l *lexer) stateFn { + l.scanIdentifier() + // https://github.com/golang/go/commit/69cd91a5981c49eaaa59b33196bdb5586c18d289 + if string(l.word()) == keywordAs { + r := l.next() + switch r { + case '?': + l.emitType(TokenAsQuestionMark) + return rootState + case '!': + l.emitType(TokenAsExclamationMark) + return rootState + default: + l.backupOne() + } + } + l.emitType(TokenIdentifier) + return rootState +} + +func stringState(l *lexer) stateFn { + l.scanString('"') + l.emitType(TokenString) + return rootState +} + +func lineCommentState(l *lexer) stateFn { + l.scanLineComment() + l.emitType(TokenLineComment) + return rootState +} + +func blockCommentState(nesting int) stateFn { + if nesting < 0 { + return rootState + } + + return func(l *lexer) stateFn { + r := l.next() + switch r { + case EOF: + return nil + case '/': + beforeSlashOffset := l.prevEndOffset + if l.acceptOne('*') { + starOffset := l.endOffset + l.endOffset = beforeSlashOffset + l.emitType(TokenBlockCommentContent) + l.endOffset = starOffset + l.emitType(TokenBlockCommentStart) + return blockCommentState(nesting + 1) + } + + case '*': + beforeStarOffset := l.prevEndOffset + if l.acceptOne('/') { + slashOffset := l.endOffset + l.endOffset = beforeStarOffset + l.emitType(TokenBlockCommentContent) + l.endOffset = slashOffset + l.emitType(TokenBlockCommentEnd) + return blockCommentState(nesting - 1) + } + } + + return blockCommentState(nesting) + } +} diff --git a/runtime/old_parser/lexer/token.go b/runtime/old_parser/lexer/token.go new file mode 100644 index 0000000000..cfda861bdf --- /dev/null +++ b/runtime/old_parser/lexer/token.go @@ -0,0 +1,39 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package lexer + +import ( + "github.com/onflow/cadence/runtime/ast" +) + +type Token struct { + SpaceOrError any + ast.Range + Type TokenType +} + +func (t Token) Is(ty TokenType) bool { + return t.Type == ty +} + +func (t Token) Source(input []byte) []byte { + startOffset := t.StartPos.Offset + endOffset := t.EndPos.Offset + 1 + return input[startOffset:endOffset] +} diff --git a/runtime/old_parser/lexer/tokenstream.go b/runtime/old_parser/lexer/tokenstream.go new file mode 100644 index 0000000000..676e80016d --- /dev/null +++ b/runtime/old_parser/lexer/tokenstream.go @@ -0,0 +1,29 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package lexer + +type TokenStream interface { + // Next consumes and returns one Token. If there are no tokens remaining, it returns Token{TokenEOF} + Next() Token + Cursor() int + Revert(cursor int) + // Input returns the whole input as source code + Input() []byte + Reclaim() +} diff --git a/runtime/old_parser/lexer/tokentype.go b/runtime/old_parser/lexer/tokentype.go new file mode 100644 index 0000000000..25e32c9ea2 --- /dev/null +++ b/runtime/old_parser/lexer/tokentype.go @@ -0,0 +1,222 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package lexer + +import ( + "github.com/onflow/cadence/runtime/errors" +) + +type TokenType uint8 + +const EOF rune = -1 + +const ( + TokenError TokenType = iota + TokenEOF + TokenSpace + TokenBinaryIntegerLiteral + TokenOctalIntegerLiteral + TokenDecimalIntegerLiteral + TokenHexadecimalIntegerLiteral + TokenUnknownBaseIntegerLiteral + TokenFixedPointNumberLiteral + TokenIdentifier + TokenString + TokenPlus + TokenMinus + TokenStar + TokenSlash + TokenPercent + TokenDoubleQuestionMark + TokenParenOpen + TokenParenClose + TokenBraceOpen + TokenBraceClose + TokenBracketOpen + TokenBracketClose + TokenQuestionMark + TokenQuestionMarkDot + TokenComma + TokenColon + TokenDot + TokenSemicolon + TokenLeftArrow + TokenLeftArrowExclamation + TokenSwap + TokenLess + TokenLessEqual + TokenLessLess + TokenGreater + TokenGreaterEqual + TokenEqual + TokenEqualEqual + TokenExclamationMark + TokenNotEqual + TokenBlockCommentStart + TokenBlockCommentEnd + TokenBlockCommentContent + TokenLineComment + TokenAmpersand + TokenAmpersandAmpersand + TokenCaret + TokenVerticalBar + TokenVerticalBarVerticalBar + TokenAt + TokenAsExclamationMark + TokenAsQuestionMark + TokenPragma + // NOTE: not an actual token, must be last item + TokenMax +) + +func init() { + // ensure all tokens have its string format + for t := TokenType(0); t < TokenMax; t++ { + _ = t.String() + } +} + +func (t TokenType) String() string { + switch t { + case TokenError: + return "error" + case TokenEOF: + return "EOF" + case TokenSpace: + return "space" + case TokenBinaryIntegerLiteral: + return "binary integer" + case TokenOctalIntegerLiteral: + return "octal integer" + case TokenDecimalIntegerLiteral: + return "decimal integer" + case TokenHexadecimalIntegerLiteral: + return "hexadecimal integer" + case TokenFixedPointNumberLiteral: + return "fixed-point number" + case TokenUnknownBaseIntegerLiteral: + return "integer with unknown base" + case TokenIdentifier: + return "identifier" + case TokenString: + return "string" + case TokenPlus: + return `'+'` + case TokenMinus: + return `'-'` + case TokenStar: + return `'*'` + case TokenSlash: + return `'/'` + case TokenPercent: + return `'%'` + case TokenDoubleQuestionMark: + return `'??'` + case TokenParenOpen: + return `'('` + case TokenParenClose: + return `')'` + case TokenBraceOpen: + return `'{'` + case TokenBraceClose: + return `'}'` + case TokenBracketOpen: + return `'['` + case TokenBracketClose: + return `']'` + case TokenQuestionMark: + return `'?'` + case TokenQuestionMarkDot: + return `'?.'` + case TokenComma: + return `','` + case TokenColon: + return `':'` + case TokenDot: + return `'.'` + case TokenSemicolon: + return `';'` + case TokenLeftArrow: + return `'<-'` + case TokenLeftArrowExclamation: + return `'<-!'` + case TokenSwap: + return `'<->'` + case TokenLess: + return `'<'` + case TokenLessEqual: + return `'<='` + case TokenLessLess: + return `'<<'` + case TokenGreater: + return `'>'` + case TokenGreaterEqual: + return `'>='` + case TokenEqual: + return `'='` + case TokenEqualEqual: + return `'=='` + case TokenExclamationMark: + return `'!'` + case TokenNotEqual: + return `'!='` + case TokenBlockCommentStart: + return `'/*'` + case TokenBlockCommentContent: + return "block comment" + case TokenLineComment: + return "line comment" + case TokenBlockCommentEnd: + return `'*/'` + case TokenAmpersand: + return `'&'` + case TokenAmpersandAmpersand: + return `'&&'` + case TokenCaret: + return `'^'` + case TokenVerticalBar: + return `'|'` + case TokenVerticalBarVerticalBar: + return `'||'` + case TokenAt: + return `'@'` + case TokenAsExclamationMark: + return `'as!'` + case TokenAsQuestionMark: + return `'as?'` + case TokenPragma: + return `'#'` + default: + panic(errors.NewUnreachableError()) + } +} + +func (t TokenType) IsIntegerLiteral() bool { + switch t { + case TokenBinaryIntegerLiteral, + TokenOctalIntegerLiteral, + TokenDecimalIntegerLiteral, + TokenHexadecimalIntegerLiteral, + TokenUnknownBaseIntegerLiteral: + return true + + default: + return false + } +} diff --git a/runtime/old_parser/parser.go b/runtime/old_parser/parser.go new file mode 100644 index 0000000000..05b0d5bf84 --- /dev/null +++ b/runtime/old_parser/parser.go @@ -0,0 +1,693 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "bytes" + "os" + "strings" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/parser/lexer" +) + +// expressionDepthLimit is the limit of how deeply nested an expression can get +const expressionDepthLimit = 1 << 4 + +// typeDepthLimit is the limit of how deeply nested a type can get +const typeDepthLimit = 1 << 4 + +// lowestBindingPower is the lowest binding power. +// The binding power controls operator precedence: +// the higher the value, the tighter a token binds to the tokens that follow. + +const lowestBindingPower = 0 + +type Config struct { + // StaticModifierEnabled determines if the static modifier is enabled + StaticModifierEnabled bool + // NativeModifierEnabled determines if the native modifier is enabled + NativeModifierEnabled bool + // TypeParametersEnabled determines if type parameters are enabled + TypeParametersEnabled bool +} + +type parser struct { + // tokens is a stream of tokens from the lexer + tokens lexer.TokenStream + // memoryGauge is used for metering memory usage + memoryGauge common.MemoryGauge + // errors are the parsing errors encountered during parsing + errors []error + // backtrackingCursorStack is the stack of lexer cursors used when backtracking + backtrackingCursorStack []int + // bufferedErrorsStack is the stack of parsing errors encountered during buffering + bufferedErrorsStack [][]error + // current is the current token being parsed + current lexer.Token + // localReplayedTokensCount is the number of replayed tokens since starting the top-most ambiguity. + // Reset when the top-most ambiguity starts and ends. This keeps errors local + localReplayedTokensCount uint + // globalReplayedTokensCount is the number of replayed tokens since starting the parse. + // It is never reset + globalReplayedTokensCount uint + // ambiguityLevel is the current level of ambiguity (nesting) + ambiguityLevel int + // expressionDepth is the depth of the currently parsed expression (if >0) + expressionDepth int + // typeDepth is the depth of the type (if >0) + typeDepth int + // config enables certain features + config Config +} + +// Parse creates a lexer to scan the given input string, +// and uses the given `parse` function to parse tokens into a result. +// +// It can be composed with different parse functions to parse the input string into different results. +// See "ParseExpression", "ParseStatements" as examples. +func Parse[T any]( + memoryGauge common.MemoryGauge, + input []byte, + parse func(*parser) (T, error), + config Config, +) (result T, errors []error) { + // create a lexer, which turns the input string into tokens + tokens := lexer.Lex(input, memoryGauge) + defer tokens.Reclaim() + return ParseTokenStream( + memoryGauge, + tokens, + parse, + config, + ) +} + +func ParseTokenStream[T any]( + memoryGauge common.MemoryGauge, + tokens lexer.TokenStream, + parse func(*parser) (T, error), + config Config, +) ( + result T, + errs []error, +) { + p := &parser{ + config: config, + tokens: tokens, + memoryGauge: memoryGauge, + } + + defer func() { + if r := recover(); r != nil { + switch r := r.(type) { + case ParseError: + // Report parser errors. + p.report(r) + + // Do not treat non-parser errors as syntax errors. + case errors.InternalError, errors.UserError: + // Also do not wrap non-parser errors, that are already + // known cadence errors. i.e: internal errors / user errors. + // e.g: `errors.MemoryError` + panic(r) + case error: + // Any other error/panic is an internal error. + // Thus, wrap with an UnexpectedError to mark it as an internal error + // and propagate up the call stack. + panic(errors.NewUnexpectedErrorFromCause(r)) + default: + panic(errors.NewUnexpectedError("parser: %v", r)) + } + + var zero T + result = zero + errs = p.errors + } + + for _, bufferedErrors := range p.bufferedErrorsStack { + errs = append(errs, bufferedErrors...) + } + }() + + startPos := ast.NewPosition( + p.memoryGauge, + 0, + 1, + 0, + ) + + p.current = lexer.Token{ + Type: lexer.TokenEOF, + Range: ast.NewRange( + p.memoryGauge, + startPos, + startPos, + ), + } + + // Get the initial token + p.next() + + result, err := parse(p) + if err != nil { + p.report(err) + var zero T + return zero, p.errors + } + + p.skipSpaceAndComments() + + if !p.current.Is(lexer.TokenEOF) { + p.reportSyntaxError("unexpected token: %s", p.current.Type) + } + + return result, p.errors +} + +func (p *parser) syntaxError(message string, params ...any) error { + return NewSyntaxError(p.current.StartPos, message, params...) +} + +func (p *parser) reportSyntaxError(message string, params ...any) { + err := p.syntaxError(message, params...) + p.report(err) +} + +func (p *parser) report(errs ...error) { + for _, err := range errs { + + // Only `ParserError`s must be reported. + // If the reported error is not a parse error, then it's an internal error (go runtime errors), + // or a fatal error (e.g: MemoryError) + // Hence, terminate parsing. + parseError, ok := err.(ParseError) + if !ok { + panic(err) + } + + // Add the errors to the buffered errors if buffering, + // or the final errors if not + + bufferedErrorsDepth := len(p.bufferedErrorsStack) + if bufferedErrorsDepth > 0 { + bufferedErrorsIndex := bufferedErrorsDepth - 1 + p.bufferedErrorsStack[bufferedErrorsIndex] = append( + p.bufferedErrorsStack[bufferedErrorsIndex], + parseError, + ) + } else { + p.errors = append(p.errors, parseError) + } + } +} + +// next reads the next token and marks it as the "current" token. +// The next token could either be read from the lexer or from +// the buffer. +// Tokens are buffered when syntax ambiguity is involved. +func (p *parser) next() { + + for { + token := p.tokens.Next() + + if token.Is(lexer.TokenError) { + // Report error token as error, skip. + err, ok := token.SpaceOrError.(error) + // we just checked that this is an error token + if !ok { + panic(errors.NewUnreachableError()) + } + parseError, ok := err.(ParseError) + if !ok { + parseError = NewSyntaxError( + token.StartPos, + err.Error(), + ) + } + p.report(parseError) + continue + } + + p.current = token + + return + } +} + +// nextSemanticToken advances past the current token to the next semantic token. +// It skips whitespace, including newlines, and comments +func (p *parser) nextSemanticToken() { + p.next() + p.skipSpaceAndComments() +} + +func (p *parser) mustOne(tokenType lexer.TokenType) (lexer.Token, error) { + t := p.current + if !t.Is(tokenType) { + return lexer.Token{}, p.syntaxError("expected token %s", tokenType) + } + p.next() + return t, nil +} + +func (p *parser) tokenSource(token lexer.Token) []byte { + input := p.tokens.Input() + return token.Source(input) +} + +func (p *parser) currentTokenSource() []byte { + return p.tokenSource(p.current) +} + +func (p *parser) isToken(token lexer.Token, tokenType lexer.TokenType, expected string) bool { + if !token.Is(tokenType) { + return false + } + + actual := p.tokenSource(token) + return string(actual) == expected +} + +func (p *parser) mustToken(tokenType lexer.TokenType, string string) (lexer.Token, error) { + t := p.current + if !p.isToken(t, tokenType, string) { + return lexer.Token{}, p.syntaxError("expected token %s with string value %s", tokenType, string) + } + p.next() + return t, nil +} + +func (p *parser) startBuffering() { + // Push the lexer's previous cursor to the stack. + // When start buffering is called, the lexer has already advanced to the next token + p.backtrackingCursorStack = append(p.backtrackingCursorStack, p.tokens.Cursor()-1) + + // Push an empty slice of errors to the stack + p.bufferedErrorsStack = append(p.bufferedErrorsStack, nil) +} + +func (p *parser) acceptBuffered() { + // Pop the last backtracking cursor from the stack + // and ignore it + + lastIndex := len(p.backtrackingCursorStack) - 1 + p.backtrackingCursorStack = p.backtrackingCursorStack[:lastIndex] + + // Pop the last buffered errors from the stack. + // + // The element type is a slice (reference type), + // so we need to replace the slice with nil explicitly + // to free the memory. + // The slice's underlying storage would otherwise + // keep a reference to it and prevent it from being garbage collected. + + lastIndex = len(p.bufferedErrorsStack) - 1 + bufferedErrors := p.bufferedErrorsStack[lastIndex] + p.bufferedErrorsStack[lastIndex] = nil + p.bufferedErrorsStack = p.bufferedErrorsStack[:lastIndex] + + // Apply the accepted buffered errors to the last errors on the buffered errors stack, + // or the final errors, if we reached the bottom of the stack + // (i.e. this acceptance disables buffering) + + if len(p.bufferedErrorsStack) > 0 { + p.bufferedErrorsStack[lastIndex-1] = append( + p.bufferedErrorsStack[lastIndex-1], + bufferedErrors..., + ) + } else { + p.errors = append( + p.errors, + bufferedErrors..., + ) + } +} + +// localTokenReplayCountLimit is a sensible limit for how many tokens may be replayed +// until the top-most ambiguity ends. +const localTokenReplayCountLimit = 1 << 6 + +// globalTokenReplayCountLimit is a sensible limit for how many tokens may be replayed +// during a parse +const globalTokenReplayCountLimit = 1 << 10 + +func (p *parser) checkReplayCount(total, additional, limit uint, kind string) (uint, error) { + newTotal := total + additional + // Check for overflow (uint) and for exceeding the limit + if newTotal < total || newTotal > limit { + return newTotal, p.syntaxError("program too ambiguous, %s replay limit of %d tokens exceeded", kind, limit) + } + return newTotal, nil +} + +func (p *parser) replayBuffered() error { + + cursor := p.tokens.Cursor() + + // Pop the last backtracking cursor from the stack + // and revert the lexer back to it + + lastIndex := len(p.backtrackingCursorStack) - 1 + backtrackCursor := p.backtrackingCursorStack[lastIndex] + + replayedCount := uint(cursor - backtrackCursor) + + var err error + + p.localReplayedTokensCount, err = p.checkReplayCount( + p.localReplayedTokensCount, + replayedCount, + localTokenReplayCountLimit, + "local", + ) + if err != nil { + return err + } + + p.globalReplayedTokensCount, err = p.checkReplayCount( + p.globalReplayedTokensCount, + replayedCount, + globalTokenReplayCountLimit, + "global", + ) + if err != nil { + return err + } + + p.tokens.Revert(backtrackCursor) + p.next() + p.backtrackingCursorStack = p.backtrackingCursorStack[:lastIndex] + + // Pop the last buffered errors from the stack + // and ignore them + + lastIndex = len(p.bufferedErrorsStack) - 1 + p.bufferedErrorsStack[lastIndex] = nil + p.bufferedErrorsStack = p.bufferedErrorsStack[:lastIndex] + + return nil +} + +type triviaOptions struct { + skipNewlines bool + parseDocStrings bool +} + +// skipSpaceAndComments skips whitespace, including newlines, and comments +func (p *parser) skipSpaceAndComments() (containsNewline bool) { + containsNewline, _ = p.parseTrivia(triviaOptions{ + skipNewlines: true, + }) + return +} + +var blockCommentDocStringPrefix = []byte("/**") +var lineCommentDocStringPrefix = []byte("///") + +func (p *parser) parseTrivia(options triviaOptions) (containsNewline bool, docString string) { + var docStringBuilder strings.Builder + defer func() { + if options.parseDocStrings { + docString = docStringBuilder.String() + } + }() + + var atEnd, insideLineDocString bool + + for !atEnd { + switch p.current.Type { + case lexer.TokenSpace: + space, ok := p.current.SpaceOrError.(lexer.Space) + // we just checked that this is a space + if !ok { + panic(errors.NewUnreachableError()) + } + + if space.ContainsNewline { + containsNewline = true + } + + if containsNewline && !options.skipNewlines { + return + } + + p.next() + + case lexer.TokenBlockCommentStart: + commentStartOffset := p.current.StartPos.Offset + endToken, ok := p.parseBlockComment() + + if ok && options.parseDocStrings { + commentEndOffset := endToken.EndPos.Offset + + contentWithPrefix := p.tokens.Input()[commentStartOffset : commentEndOffset-1] + + insideLineDocString = false + docStringBuilder.Reset() + if bytes.HasPrefix(contentWithPrefix, blockCommentDocStringPrefix) { + // Strip prefix (`/**`) + docStringBuilder.Write(contentWithPrefix[len(blockCommentDocStringPrefix):]) + } + } + + case lexer.TokenLineComment: + if options.parseDocStrings { + comment := p.currentTokenSource() + if bytes.HasPrefix(comment, lineCommentDocStringPrefix) { + if insideLineDocString { + docStringBuilder.WriteByte('\n') + } else { + insideLineDocString = true + docStringBuilder.Reset() + } + // Strip prefix + docStringBuilder.Write(comment[len(lineCommentDocStringPrefix):]) + } else { + insideLineDocString = false + docStringBuilder.Reset() + } + } + + p.next() + + default: + atEnd = true + } + } + return +} + +func (p *parser) mustIdentifier() (ast.Identifier, error) { + identifier, err := p.mustOne(lexer.TokenIdentifier) + if err != nil { + return ast.Identifier{}, err + } + + return p.tokenToIdentifier(identifier), err +} + +func (p *parser) tokenToIdentifier(token lexer.Token) ast.Identifier { + return ast.NewIdentifier( + p.memoryGauge, + string(p.tokenSource(token)), + token.StartPos, + ) +} + +func (p *parser) startAmbiguity() { + if p.ambiguityLevel == 0 { + p.localReplayedTokensCount = 0 + } + p.ambiguityLevel++ +} + +func (p *parser) endAmbiguity() { + p.ambiguityLevel-- + if p.ambiguityLevel == 0 { + p.localReplayedTokensCount = 0 + } +} + +func ParseExpression( + memoryGauge common.MemoryGauge, + input []byte, + config Config, +) ( + expression ast.Expression, + errs []error, +) { + return Parse( + memoryGauge, + input, + func(p *parser) (ast.Expression, error) { + return parseExpression(p, lowestBindingPower) + }, + config, + ) +} + +func ParseStatements( + memoryGauge common.MemoryGauge, + input []byte, + config Config, +) ( + statements []ast.Statement, + errs []error, +) { + return Parse( + memoryGauge, + input, + func(p *parser) ([]ast.Statement, error) { + return parseStatements(p, nil) + }, + config, + ) +} + +func ParseStatementsFromTokenStream( + memoryGauge common.MemoryGauge, + tokens lexer.TokenStream, + config Config, +) ( + statements []ast.Statement, + errs []error, +) { + return ParseTokenStream( + memoryGauge, + tokens, + func(p *parser) ([]ast.Statement, error) { + return parseStatements(p, nil) + }, + config, + ) +} + +func ParseType(memoryGauge common.MemoryGauge, input []byte, config Config) (ty ast.Type, errs []error) { + return Parse( + memoryGauge, + input, + func(p *parser) (ast.Type, error) { + return parseType(p, lowestBindingPower) + }, + config, + ) +} + +func ParseDeclarations( + memoryGauge common.MemoryGauge, + input []byte, + config Config, +) ( + declarations []ast.Declaration, + errs []error, +) { + return Parse( + memoryGauge, + input, + func(p *parser) ([]ast.Declaration, error) { + return parseDeclarations(p, lexer.TokenEOF) + }, + config, + ) +} + +func ParseArgumentList( + memoryGauge common.MemoryGauge, + input []byte, + config Config, +) ( + arguments ast.Arguments, + errs []error, +) { + return Parse( + memoryGauge, + input, + func(p *parser) (ast.Arguments, error) { + p.skipSpaceAndComments() + + _, err := p.mustOne(lexer.TokenParenOpen) + if err != nil { + return nil, err + } + + arguments, _, err := parseArgumentListRemainder(p) + return arguments, err + }, + config, + ) +} + +func ParseProgram(memoryGauge common.MemoryGauge, code []byte, config Config) (program *ast.Program, err error) { + tokens := lexer.Lex(code, memoryGauge) + defer tokens.Reclaim() + return ParseProgramFromTokenStream(memoryGauge, tokens, config) +} + +func ParseProgramFromTokenStream( + memoryGauge common.MemoryGauge, + input lexer.TokenStream, + config Config, +) ( + program *ast.Program, + err error, +) { + declarations, errs := ParseTokenStream( + memoryGauge, + input, + func(p *parser) ([]ast.Declaration, error) { + return parseDeclarations(p, lexer.TokenEOF) + }, + config, + ) + if len(errs) > 0 { + err = Error{ + Code: input.Input(), + Errors: errs, + } + } + + program = ast.NewProgram(memoryGauge, declarations) + + return +} + +func ParseProgramFromFile( + memoryGauge common.MemoryGauge, + filename string, + config Config, +) ( + program *ast.Program, + code []byte, + err error, +) { + var data []byte + data, err = os.ReadFile(filename) + if err != nil { + return nil, nil, err + } + + program, err = ParseProgram(memoryGauge, data, config) + if err != nil { + return nil, code, err + } + return program, code, nil +} diff --git a/runtime/old_parser/parser_test.go b/runtime/old_parser/parser_test.go new file mode 100644 index 0000000000..0f67b05747 --- /dev/null +++ b/runtime/old_parser/parser_test.go @@ -0,0 +1,1013 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "fmt" + "math/big" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "go.uber.org/goleak" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/parser/lexer" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestMain(m *testing.M) { + goleak.VerifyTestMain(m) +} + +type testTokenStream struct { + tokens []lexer.Token + input []byte + cursor int +} + +var _ lexer.TokenStream = &testTokenStream{} + +func (t *testTokenStream) Next() lexer.Token { + if t.cursor >= len(t.tokens) { + + // At the end of the token stream, + // emit a synthetic EOF token + + return lexer.Token{ + Type: lexer.TokenEOF, + } + + } + token := t.tokens[t.cursor] + t.cursor++ + return token +} + +func (t *testTokenStream) Cursor() int { + return t.cursor +} + +func (t *testTokenStream) Revert(cursor int) { + t.cursor = cursor +} + +func (t *testTokenStream) Input() []byte { + return t.input +} + +func (*testTokenStream) Reclaim() { + // NO-OP +} + +func testParseStatements(s string) ([]ast.Statement, []error) { + return ParseStatements(nil, []byte(s), Config{}) +} + +func testParseDeclarations(s string) ([]ast.Declaration, []error) { + return ParseDeclarations(nil, []byte(s), Config{}) +} + +func testParseProgram(s string) (*ast.Program, error) { + return ParseProgram(nil, []byte(s), Config{}) +} + +func testParseExpression(s string) (ast.Expression, []error) { + return ParseExpression(nil, []byte(s), Config{}) +} + +func testParseArgumentList(s string) (ast.Arguments, []error) { + return ParseArgumentList(nil, []byte(s), Config{}) +} + +func testParseType(s string) (ast.Type, []error) { + return ParseType(nil, []byte(s), Config{}) +} + +func TestParseInvalid(t *testing.T) { + t.Parallel() + + type test struct { + msg string + code string + } + + unexpectedToken := "Parsing failed:\nerror: unexpected token: identifier" + unexpectedEndOfProgram := "Parsing failed:\nerror: unexpected end of program" + missingTypeAnnotation := "Parsing failed:\nerror: missing type annotation after comma" + + for _, test := range []test{ + {unexpectedToken, "X"}, + {unexpectedToken, "paste your code in here"}, + {unexpectedEndOfProgram, "# a ( b > c > d > e > f > g > h > i > j > k > l > m > n > o > p > q > r >"}, + {missingTypeAnnotation, "#0x0<{},>()"}, + } { + t.Run(test.code, func(t *testing.T) { + _, err := testParseProgram(test.code) + require.ErrorContains(t, err, test.msg) + }) + } +} + +func TestParseBuffering(t *testing.T) { + + t.Parallel() + + t.Run("buffer and accept, valid", func(t *testing.T) { + + t.Parallel() + + _, errs := Parse( + nil, + []byte("a b c d"), + func(p *parser) (struct{}, error) { + _, err := p.mustToken(lexer.TokenIdentifier, "a") + if err != nil { + return struct{}{}, err + } + + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + p.startBuffering() + + _, err = p.mustToken(lexer.TokenIdentifier, "b") + if err != nil { + return struct{}{}, err + } + + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + _, err = p.mustToken(lexer.TokenIdentifier, "c") + if err != nil { + return struct{}{}, err + } + + p.acceptBuffered() + + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + _, err = p.mustToken(lexer.TokenIdentifier, "d") + if err != nil { + return struct{}{}, err + } + + return struct{}{}, nil + }, + Config{}, + ) + + assert.Empty(t, errs) + }) + + t.Run("buffer and accept, invalid", func(t *testing.T) { + + t.Parallel() + + _, errs := Parse( + nil, + []byte("a b x d"), + func(p *parser) (struct{}, error) { + _, err := p.mustToken(lexer.TokenIdentifier, "a") + if err != nil { + return struct{}{}, err + } + + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + p.startBuffering() + + _, err = p.mustToken(lexer.TokenIdentifier, "b") + if err != nil { + return struct{}{}, err + } + + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + _, err = p.mustToken(lexer.TokenIdentifier, "c") + if err != nil { + return struct{}{}, err + } + + p.acceptBuffered() + + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + _, err = p.mustToken(lexer.TokenIdentifier, "d") + if err != nil { + return struct{}{}, err + } + + return struct{}{}, nil + }, + Config{}, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token identifier with string value c", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + }) + + t.Run("buffer and replay, valid", func(t *testing.T) { + + t.Parallel() + + _, errs := Parse( + nil, + []byte("a b c d"), + func(p *parser) (struct{}, error) { + _, err := p.mustToken(lexer.TokenIdentifier, "a") + if err != nil { + return struct{}{}, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + p.startBuffering() + + _, err = p.mustToken(lexer.TokenIdentifier, "b") + if err != nil { + return struct{}{}, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + _, err = p.mustToken(lexer.TokenIdentifier, "c") + if err != nil { + return struct{}{}, err + } + + err = p.replayBuffered() + if err != nil { + return struct{}{}, err + } + + _, err = p.mustToken(lexer.TokenIdentifier, "b") + if err != nil { + return struct{}{}, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + _, err = p.mustToken(lexer.TokenIdentifier, "c") + if err != nil { + return struct{}{}, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + _, err = p.mustToken(lexer.TokenIdentifier, "d") + if err != nil { + return struct{}{}, err + } + + return struct{}{}, nil + }, + Config{}, + ) + + assert.Empty(t, errs) + }) + + t.Run("buffer and replay, invalid first", func(t *testing.T) { + + t.Parallel() + + _, errs := Parse( + nil, + []byte("a b c d"), + func(p *parser) (struct{}, error) { + _, err := p.mustToken(lexer.TokenIdentifier, "a") + if err != nil { + return struct{}{}, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + + p.startBuffering() + + firstSucceeded := false + firstFailed := false + + // Ignore error + func() { + var bufferingError error + + defer func() { + if r := recover(); r != nil || bufferingError != nil { + firstFailed = true + } + }() + + _, bufferingError = p.mustToken(lexer.TokenIdentifier, "x") + if bufferingError != nil { + return + } + _, bufferingError = p.mustOne(lexer.TokenSpace) + if bufferingError != nil { + return + } + _, bufferingError = p.mustToken(lexer.TokenIdentifier, "c") + if bufferingError != nil { + return + } + + firstSucceeded = true + }() + + assert.True(t, firstFailed) + assert.False(t, firstSucceeded) + + err = p.replayBuffered() + if err != nil { + return struct{}{}, err + } + + _, err = p.mustToken(lexer.TokenIdentifier, "b") + if err != nil { + return struct{}{}, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + _, err = p.mustToken(lexer.TokenIdentifier, "c") + if err != nil { + return struct{}{}, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return struct{}{}, err + } + _, err = p.mustToken(lexer.TokenIdentifier, "d") + if err != nil { + return struct{}{}, err + } + + return struct{}{}, nil + }, + Config{}, + ) + + assert.Empty(t, errs) + }) + + t.Run("buffer and replay, invalid first and invalid second", func(t *testing.T) { + + t.Parallel() + + _, errs := Parse( + nil, + []byte("a b c x"), + func(p *parser) (any, error) { + _, err := p.mustToken(lexer.TokenIdentifier, "a") + if err != nil { + return nil, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return nil, err + } + + p.startBuffering() + + firstSucceeded := false + firstFailed := false + + func() { + var bufferingError error + + defer func() { + if r := recover(); r != nil || bufferingError != nil { + firstFailed = true + } + }() + + _, bufferingError = p.mustToken(lexer.TokenIdentifier, "x") + if bufferingError != nil { + return + } + _, bufferingError = p.mustOne(lexer.TokenSpace) + if bufferingError != nil { + return + } + _, bufferingError = p.mustToken(lexer.TokenIdentifier, "c") + if bufferingError != nil { + return + } + + firstSucceeded = true + }() + + assert.True(t, firstFailed) + assert.False(t, firstSucceeded) + + err = p.replayBuffered() + if err != nil { + return nil, err + } + + _, err = p.mustToken(lexer.TokenIdentifier, "b") + if err != nil { + return nil, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return nil, err + } + _, err = p.mustToken(lexer.TokenIdentifier, "c") + if err != nil { + return nil, err + } + _, err = p.mustOne(lexer.TokenSpace) + if err != nil { + return nil, err + } + _, err = p.mustToken(lexer.TokenIdentifier, "d") + if err != nil { + return nil, err + } + + return nil, nil + }, + Config{}, + ) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token identifier with string value d", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) + }) + + t.Run("nested buffering, invalid", func(t *testing.T) { + + t.Parallel() + + const code = ` + fun main() { + assert(isneg(x:-1.0)) + assert(!isneg(x:-0.0/0.0)) + } + + fun isneg(x: SignedFixedPoint): Bool { /* I kinda forget what this is all about */ + return x /* but we probably need to figure it out */ + < /* ************/((TODO?{/*))************ *// + -x /* maybe it says NaNs are not negative? */ + } + ` + _, err := testParseProgram(code) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token identifier", + Pos: ast.Position{Offset: 399, Line: 9, Column: 95}, + }, + }, + err.(Error).Errors, + ) + }) + + t.Run("nested buffering, invalid; apparent invocation elision", func(t *testing.T) { + + t.Parallel() + + const code = ` + fun main() { + fun abs(_:Int):Int { return _ > 0 ? _ : -_ } + let sanity = 0 < /*****/((TODO?{/*****// + abs(-1) + assert(sanity) + } + ` + _, err := testParseProgram(code) + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token identifier", + Pos: ast.Position{Offset: 146, Line: 4, Column: 63}, + }, + }, + err.(Error).Errors, + ) + }) + + t.Run("nested buffering, valid; accept,accept,replay", func(t *testing.T) { + + t.Parallel() + + src := ` + pub struct interface Y {} + pub struct X : Y {} + pub fun main():String { + fun f(a:Bool, _:String):String { return _; } + let S = 1 + if false { + let Type_X_Y__qp_identifier = + Type().identifier; // parses fine + return f(a:S().identifier) // should also parse fine + } + }` + + _, err := testParseProgram(src) + assert.NoError(t, err) + }) + + t.Run("nested buffering, valid; overlapped", func(t *testing.T) { + + t.Parallel() + + src := ` + transaction { } + pub fun main():String { + let A = 1 + let B = 2 + let C = 3 + let D = 4 + fun g(a:Bool, _:Bool):String { return _ ? "y" : "n" } + return g(a:A>(5))) + }` + + _, err := testParseProgram(src) + assert.NoError(t, err) + }) + +} + +func TestParseEOF(t *testing.T) { + + t.Parallel() + + _, errs := Parse( + nil, + []byte("a b"), + func(p *parser) (struct{}, error) { + _, err := p.mustToken(lexer.TokenIdentifier, "a") + if err != nil { + return struct{}{}, err + } + p.skipSpaceAndComments() + _, err = p.mustToken(lexer.TokenIdentifier, "b") + if err != nil { + return struct{}{}, err + } + + p.next() + + assert.Equal(t, + lexer.Token{ + Type: lexer.TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + EndPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + p.current, + ) + + p.next() + + assert.Equal(t, + lexer.Token{ + Type: lexer.TokenEOF, + Range: ast.Range{ + StartPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + EndPos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + p.current, + ) + + return struct{}{}, nil + }, + Config{}, + ) + + assert.Empty(t, errs) +} + +func TestParseNames(t *testing.T) { + + t.Parallel() + + names := map[string]bool{ + // Valid: title-case + // + "PersonID": true, + + // Valid: with underscore + // + "token_name": true, + + // Valid: leading underscore and characters + // + "_balance": true, + + // Valid: leading underscore and numbers + "_8264": true, + + // Valid: characters and number + // + "account2": true, + + // Invalid: leading number + // + "1something": false, + + // Invalid: invalid character # + "_#1": false, + + // Invalid: various invalid characters + // + "!@#$%^&*": false, + } + + for name, validExpected := range names { + + code := fmt.Sprintf(`let %s = 1`, name) + + actual, err := testParseProgram(code) + + assert.NotNil(t, actual) + + if validExpected { + assert.NoError(t, err) + } else { + assert.IsType(t, Error{}, err) + } + } +} + +func TestParseArgumentList(t *testing.T) { + + t.Parallel() + + t.Run("invalid", func(t *testing.T) { + t.Parallel() + + _, errs := testParseArgumentList(`xyz`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected token '('", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + errs, + ) + }) + + t.Run("empty", func(t *testing.T) { + t.Parallel() + + result, errs := testParseArgumentList(`()`) + require.Empty(t, errs) + + var expected ast.Arguments + + utils.AssertEqualWithDiff(t, + expected, + result, + ) + }) + + t.Run("fatal error from lack of memory", func(t *testing.T) { + gauge := makeLimitingMemoryGauge() + gauge.Limit(common.MemoryKindTypeToken, 0) + + var panicMsg any + (func() { + defer func() { + panicMsg = recover() + }() + + ParseArgumentList(gauge, []byte(`(1, b: true)`), Config{}) + })() + + require.IsType(t, errors.MemoryError{}, panicMsg) + + fatalError, _ := panicMsg.(errors.MemoryError) + var expectedError limitingMemoryGaugeError + assert.ErrorAs(t, fatalError, &expectedError) + }) + + t.Run("valid", func(t *testing.T) { + t.Parallel() + + result, errs := testParseArgumentList(`(1, b: true)`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + ast.Arguments{ + { + Label: "", + LabelStartPos: nil, + LabelEndPos: nil, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 1, + Line: 1, + Column: 1, + }, + EndPos: ast.Position{ + Offset: 1, + Line: 1, + Column: 1, + }, + }, + }, + TrailingSeparatorPos: ast.Position{ + Offset: 2, + Line: 1, + Column: 2, + }, + }, + { + Label: "b", + LabelStartPos: &ast.Position{ + Offset: 4, + Line: 1, + Column: 4, + }, + LabelEndPos: &ast.Position{ + Offset: 5, + Line: 1, + Column: 5, + }, + Expression: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 7, + Line: 1, + Column: 7, + }, + EndPos: ast.Position{ + Offset: 10, + Line: 1, + Column: 10, + }, + }, + }, + TrailingSeparatorPos: ast.Position{ + Offset: 11, + Line: 1, + Column: 11, + }, + }, + }, + result, + ) + }) + +} + +func TestParseBufferedErrors(t *testing.T) { + + t.Parallel() + + // Test that both top-level and buffered errors are reported. + // + // Test this using type argument lists, which are parsed through buffering: + // Only a subsequent open parenthesis will determine if a less-than sign + // introduced a type argument list of a function call, + // or if the expression is a less-than comparison. + // + // Inside the potential type argument list there is an error (missing type after comma), + // and outside (at the top-level, after buffering of the type argument list), + // there is another error (missing closing parenthesis after). + + _, errs := testParseExpression("a(") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing type annotation after comma", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + &SyntaxError{ + Message: "missing ')' at end of invocation argument list", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) +} + +func TestParseInvalidSingleQuoteImport(t *testing.T) { + + t.Parallel() + + _, err := testParseProgram(`import 'X'`) + + require.EqualError(t, err, "Parsing failed:\nerror: unrecognized character: U+0027 '''\n --> :1:7\n |\n1 | import 'X'\n | ^\n\nerror: unexpected end in import declaration: expected string, address, or identifier\n --> :1:7\n |\n1 | import 'X'\n | ^\n") +} + +func TestParseExpressionDepthLimit(t *testing.T) { + + t.Parallel() + + var builder strings.Builder + builder.WriteString("let x = y") + for i := 0; i < 20; i++ { + builder.WriteString(" ?? z") + } + + code := builder.String() + + _, err := testParseProgram(code) + require.Error(t, err) + + utils.AssertEqualWithDiff(t, + []error{ + ExpressionDepthLimitReachedError{ + Pos: ast.Position{ + Offset: 87, + Line: 1, + Column: 87, + }, + }, + }, + err.(Error).Errors, + ) +} + +func TestParseTypeDepthLimit(t *testing.T) { + + t.Parallel() + + const nesting = 20 + + var builder strings.Builder + builder.WriteString("let x: T<") + for i := 0; i < nesting; i++ { + builder.WriteString("T<") + } + builder.WriteString("U") + for i := 0; i < nesting; i++ { + builder.WriteString(">") + } + builder.WriteString(">? = nil") + + code := builder.String() + + _, err := testParseProgram(code) + require.Error(t, err) + + utils.AssertEqualWithDiff(t, + []error{ + TypeDepthLimitReachedError{ + Pos: ast.Position{ + Offset: 39, + Line: 1, + Column: 39, + }, + }, + }, + err.(Error).Errors, + ) +} + +func TestParseLocalReplayLimit(t *testing.T) { + t.Parallel() + + var builder strings.Builder + builder.WriteString("let t = T") + for i := 0; i < 30; i++ { + builder.WriteString("()") + + code := []byte(builder.String()) + _, err := ParseProgram(nil, code, Config{}) + utils.AssertEqualWithDiff(t, + Error{ + Code: code, + Errors: []error{ + &SyntaxError{ + Message: fmt.Sprintf( + "program too ambiguous, local replay limit of %d tokens exceeded", + localTokenReplayCountLimit, + ), + Pos: ast.Position{ + Offset: 44, + Line: 1, + Column: 44, + }, + }, + }, + }, + err, + ) +} + +func TestParseGlobalReplayLimit(t *testing.T) { + + t.Parallel() + + var builder strings.Builder + for j := 0; j < 2; j++ { + builder.WriteString(";let t = T") + for i := 0; i < 16; i++ { + builder.WriteString(" 1 { + previousStatement := statements[statementCount-2] + previousLine := previousStatement.EndPosition(p.memoryGauge).Line + currentStartPos := statement.StartPosition() + if previousLine == currentStartPos.Line { + p.report(NewSyntaxError( + currentStartPos, + "statements on the same line must be separated with a semicolon", + )) + } + } + } + + sawSemicolon = false + } + } +} + +func parseStatement(p *parser) (ast.Statement, error) { + p.skipSpaceAndComments() + + // It might start with a keyword for a statement + + switch p.current.Type { + case lexer.TokenIdentifier: + switch string(p.currentTokenSource()) { + case keywordReturn: + return parseReturnStatement(p) + case keywordBreak: + return parseBreakStatement(p), nil + case keywordContinue: + return parseContinueStatement(p), nil + case keywordIf: + return parseIfStatement(p) + case keywordSwitch: + return parseSwitchStatement(p) + case keywordWhile: + return parseWhileStatement(p) + case keywordFor: + return parseForStatement(p) + case keywordEmit: + return parseEmitStatement(p) + case keywordRemove: + return parseRemoveStatement(p) + case keywordFun: + // The `fun` keyword is ambiguous: it either introduces a function expression + // or a function declaration, depending on if an identifier follows, or not. + return parseFunctionDeclarationOrFunctionExpressionStatement(p) + } + } + + // If it is not a keyword for a statement, + // it might start with a keyword for a declaration + + declaration, err := parseDeclaration(p, "") + if err != nil { + return nil, err + } + + if statement, ok := declaration.(ast.Statement); ok { + return statement, nil + } + + // If it is not a statement or declaration, + // it must be an expression + + expression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + // If the expression is followed by a transfer, + // it is actually the target of an assignment or swap statement + + p.skipSpaceAndComments() + switch p.current.Type { + case lexer.TokenEqual, lexer.TokenLeftArrow, lexer.TokenLeftArrowExclamation: + transfer := parseTransfer(p) + + value, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + return ast.NewAssignmentStatement(p.memoryGauge, expression, transfer, value), nil + + case lexer.TokenSwap: + p.next() + + right, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + return ast.NewSwapStatement(p.memoryGauge, expression, right), nil + + default: + return ast.NewExpressionStatement(p.memoryGauge, expression), nil + } +} + +func parseFunctionDeclarationOrFunctionExpressionStatement(p *parser) (ast.Statement, error) { + + startPos := p.current.StartPos + + // Skip the `fun` keyword + p.nextSemanticToken() + + if p.current.Is(lexer.TokenIdentifier) { + identifier := p.tokenToIdentifier(p.current) + + p.next() + + var typeParameterList *ast.TypeParameterList + + if p.config.TypeParametersEnabled { + var err error + typeParameterList, err = parseTypeParameterList(p) + if err != nil { + return nil, err + } + } + + parameterList, returnTypeAnnotation, functionBlock, err := + parseFunctionParameterListAndRest(p, false) + + if err != nil { + return nil, err + } + + return ast.NewFunctionDeclaration( + p.memoryGauge, + ast.AccessNotSpecified, + ast.FunctionPurityUnspecified, + false, + false, + identifier, + typeParameterList, + parameterList, + returnTypeAnnotation, + functionBlock, + startPos, + "", + ), nil + } else { + parameterList, returnTypeAnnotation, functionBlock, err := + parseFunctionParameterListAndRest(p, false) + if err != nil { + return nil, err + } + + return ast.NewExpressionStatement( + p.memoryGauge, + ast.NewFunctionExpression( + p.memoryGauge, + ast.FunctionPurityUnspecified, + parameterList, + returnTypeAnnotation, + functionBlock, + startPos, + ), + ), nil + } +} + +func parseReturnStatement(p *parser) (*ast.ReturnStatement, error) { + tokenRange := p.current.Range + endPosition := tokenRange.EndPos + p.next() + + sawNewLine, _ := p.parseTrivia(triviaOptions{ + skipNewlines: false, + }) + + var expression ast.Expression + var err error + switch p.current.Type { + case lexer.TokenEOF, lexer.TokenSemicolon, lexer.TokenBraceClose: + break + default: + if !sawNewLine { + expression, err = parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + endPosition = expression.EndPosition(p.memoryGauge) + } + } + + return ast.NewReturnStatement( + p.memoryGauge, + expression, + ast.NewRange( + p.memoryGauge, + tokenRange.StartPos, + endPosition, + ), + ), nil +} + +func parseBreakStatement(p *parser) *ast.BreakStatement { + tokenRange := p.current.Range + p.next() + + return ast.NewBreakStatement(p.memoryGauge, tokenRange) +} + +func parseContinueStatement(p *parser) *ast.ContinueStatement { + tokenRange := p.current.Range + p.next() + + return ast.NewContinueStatement(p.memoryGauge, tokenRange) +} + +func parseIfStatement(p *parser) (*ast.IfStatement, error) { + + var ifStatements []*ast.IfStatement + + for { + startPos := p.current.StartPos + p.nextSemanticToken() + + var variableDeclaration *ast.VariableDeclaration + var err error + + if p.current.Type == lexer.TokenIdentifier { + switch string(p.currentTokenSource()) { + case keywordLet, keywordVar: + variableDeclaration, err = + parseVariableDeclaration(p, ast.AccessNotSpecified, nil, "") + if err != nil { + return nil, err + } + } + } + + var expression ast.Expression + + if variableDeclaration == nil { + expression, err = parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + } + + thenBlock, err := parseBlock(p) + if err != nil { + return nil, err + } + + var elseBlock *ast.Block + + parseNested := false + + p.skipSpaceAndComments() + if p.isToken(p.current, lexer.TokenIdentifier, keywordElse) { + p.nextSemanticToken() + if p.isToken(p.current, lexer.TokenIdentifier, keywordIf) { + parseNested = true + } else { + elseBlock, err = parseBlock(p) + if err != nil { + return nil, err + } + } + } + + var test ast.IfStatementTest + switch { + case variableDeclaration != nil: + test = variableDeclaration + case expression != nil: + test = expression + default: + panic(errors.NewUnreachableError()) + } + + ifStatement := ast.NewIfStatement( + p.memoryGauge, + test, + thenBlock, + elseBlock, + startPos, + ) + + if variableDeclaration != nil { + variableDeclaration.ParentIfStatement = ifStatement + } + + ifStatements = append(ifStatements, ifStatement) + + if !parseNested { + break + } + } + + length := len(ifStatements) + + result := ifStatements[length-1] + + for i := length - 2; i >= 0; i-- { + outer := ifStatements[i] + outer.Else = ast.NewBlock( + p.memoryGauge, + []ast.Statement{result}, + ast.NewRangeFromPositioned(p.memoryGauge, result), + ) + result = outer + } + + return result, nil +} + +func parseWhileStatement(p *parser) (*ast.WhileStatement, error) { + + startPos := p.current.StartPos + p.next() + + expression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + block, err := parseBlock(p) + if err != nil { + return nil, err + } + + return ast.NewWhileStatement(p.memoryGauge, expression, block, startPos), nil +} + +func parseForStatement(p *parser) (*ast.ForStatement, error) { + + startPos := p.current.StartPos + p.nextSemanticToken() + + if p.isToken(p.current, lexer.TokenIdentifier, keywordIn) { + p.reportSyntaxError( + "expected identifier, got keyword %q", + keywordIn, + ) + p.next() + } + + firstValue, err := p.mustIdentifier() + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + var index *ast.Identifier + var identifier ast.Identifier + + if p.current.Is(lexer.TokenComma) { + p.nextSemanticToken() + index = &firstValue + identifier, err = p.mustIdentifier() + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + } else { + identifier = firstValue + } + + if !p.isToken(p.current, lexer.TokenIdentifier, keywordIn) { + p.reportSyntaxError( + "expected keyword %q, got %s", + keywordIn, + p.current.Type, + ) + } + + p.next() + + expression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + block, err := parseBlock(p) + if err != nil { + return nil, err + } + + return ast.NewForStatement( + p.memoryGauge, + identifier, + index, + block, + expression, + startPos, + ), nil +} + +func parseBlock(p *parser) (*ast.Block, error) { + startToken, err := p.mustOne(lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + statements, err := parseStatements(p, func(token lexer.Token) bool { + return token.Type == lexer.TokenBraceClose + }) + if err != nil { + return nil, err + } + + endToken, err := p.mustOne(lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + return ast.NewBlock( + p.memoryGauge, + statements, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + endToken.EndPos, + ), + ), nil +} + +func parseFunctionBlock(p *parser) (*ast.FunctionBlock, error) { + p.skipSpaceAndComments() + + startToken, err := p.mustOne(lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + var preConditions *ast.Conditions + if p.isToken(p.current, lexer.TokenIdentifier, keywordPre) { + p.next() + conditions, err := parseConditions(p, ast.ConditionKindPre) + if err != nil { + return nil, err + } + + preConditions = &conditions + } + + p.skipSpaceAndComments() + + var postConditions *ast.Conditions + if p.isToken(p.current, lexer.TokenIdentifier, keywordPost) { + p.next() + conditions, err := parseConditions(p, ast.ConditionKindPost) + if err != nil { + return nil, err + } + + postConditions = &conditions + } + + statements, err := parseStatements(p, func(token lexer.Token) bool { + return token.Type == lexer.TokenBraceClose + }) + if err != nil { + return nil, err + } + + endToken, err := p.mustOne(lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + return ast.NewFunctionBlock( + p.memoryGauge, + ast.NewBlock( + p.memoryGauge, + statements, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + endToken.EndPos, + ), + ), + preConditions, + postConditions, + ), nil +} + +// parseConditions parses conditions (pre/post) +func parseConditions(p *parser, kind ast.ConditionKind) (conditions ast.Conditions, err error) { + + p.skipSpaceAndComments() + _, err = p.mustOne(lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + defer func() { + p.skipSpaceAndComments() + _, err = p.mustOne(lexer.TokenBraceClose) + }() + + for { + p.skipSpaceAndComments() + switch p.current.Type { + case lexer.TokenSemicolon: + p.next() + continue + + case lexer.TokenBraceClose, lexer.TokenEOF: + return + + default: + var condition ast.Condition + condition, err = parseCondition(p, kind) + if err != nil || condition == nil { + return + } + + conditions = append(conditions, condition) + } + } +} + +// parseCondition parses a condition (pre/post) +// +// condition : expression (':' expression )? +func parseCondition(p *parser, kind ast.ConditionKind) (ast.Condition, error) { + + test, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + var message ast.Expression + if p.current.Is(lexer.TokenColon) { + p.next() + + message, err = parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + } + + return &ast.TestCondition{ + Test: test, + Message: message, + }, nil +} + +func parseEmitStatement(p *parser) (*ast.EmitStatement, error) { + startPos := p.current.StartPos + p.next() + + invocation, err := parseNominalTypeInvocationRemainder(p) + if err != nil { + return nil, err + } + + return ast.NewEmitStatement(p.memoryGauge, invocation, startPos), nil +} + +func parseSwitchStatement(p *parser) (*ast.SwitchStatement, error) { + + startPos := p.current.StartPos + + // Skip the `switch` keyword + p.next() + + expression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + _, err = p.mustOne(lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + cases, err := parseSwitchCases(p) + if err != nil { + return nil, err + } + + endToken, err := p.mustOne(lexer.TokenBraceClose) + if err != nil { + return nil, err + } + + return ast.NewSwitchStatement( + p.memoryGauge, + expression, + cases, + ast.NewRange( + p.memoryGauge, + startPos, + endToken.EndPos, + ), + ), nil +} + +// parseSwitchCases parses cases of a switch statement. +// +// switchCases : switchCase* +func parseSwitchCases(p *parser) (cases []*ast.SwitchCase, err error) { + + reportUnexpected := func() { + p.reportSyntaxError( + "unexpected token: got %s, expected %q or %q", + p.current.Type, + keywordCase, + keywordDefault, + ) + p.next() + } + + for { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenIdentifier: + + var switchCase *ast.SwitchCase + switch string(p.currentTokenSource()) { + case keywordCase: + switchCase, err = parseSwitchCase(p, true) + + case keywordDefault: + switchCase, err = parseSwitchCase(p, false) + + default: + reportUnexpected() + continue + } + + if err != nil { + return + } + + cases = append(cases, switchCase) + + case lexer.TokenBraceClose, lexer.TokenEOF: + return + + default: + reportUnexpected() + } + } +} + +// parseSwitchCase parses a switch case (hasExpression == true) +// or default case (hasExpression == false) +// +// switchCase : `case` expression `:` statements +// | `default` `:` statements +func parseSwitchCase(p *parser, hasExpression bool) (*ast.SwitchCase, error) { + + startPos := p.current.StartPos + + // Skip the keyword + p.next() + + var expression ast.Expression + var err error + + if hasExpression { + expression, err = parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + } else { + p.skipSpaceAndComments() + } + + colonPos := p.current.StartPos + + if !p.current.Is(lexer.TokenColon) { + p.reportSyntaxError( + "expected %s, got %s", + lexer.TokenColon, + p.current.Type, + ) + } + + p.next() + + statements, err := parseStatements(p, func(token lexer.Token) bool { + switch token.Type { + case lexer.TokenBraceClose: + return true + + case lexer.TokenIdentifier: + switch string(p.currentTokenSource()) { + case keywordCase, keywordDefault: + return true + default: + return false + } + + default: + return false + } + }) + if err != nil { + return nil, err + } + + endPos := colonPos + + if len(statements) > 0 { + lastStatementIndex := len(statements) - 1 + endPos = statements[lastStatementIndex].EndPosition(p.memoryGauge) + } + + return &ast.SwitchCase{ + Expression: expression, + Statements: statements, + Range: ast.NewRange( + p.memoryGauge, + startPos, + endPos, + ), + }, nil +} + +func parseRemoveStatement( + p *parser, +) (*ast.RemoveStatement, error) { + + startPos := p.current.StartPos + p.next() + p.skipSpaceAndComments() + + attachment, err := parseType(p, lowestBindingPower) + if err != nil { + return nil, err + } + attachmentNominalType, ok := attachment.(*ast.NominalType) + + if !ok { + p.reportSyntaxError( + "expected attachment nominal type, got %s", + attachment, + ) + } + + p.skipSpaceAndComments() + + // check and skip `from` keyword + if !p.isToken(p.current, lexer.TokenIdentifier, keywordFrom) { + p.reportSyntaxError( + "expected from keyword, got %s", + p.current.Type, + ) + } + p.nextSemanticToken() + + attached, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + return ast.NewRemoveStatement( + p.memoryGauge, + attachmentNominalType, + attached, + startPos, + ), nil +} diff --git a/runtime/old_parser/statement_test.go b/runtime/old_parser/statement_test.go new file mode 100644 index 0000000000..ad4843bb4b --- /dev/null +++ b/runtime/old_parser/statement_test.go @@ -0,0 +1,2500 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "math/big" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestParseReplInput(t *testing.T) { + + t.Parallel() + + actual, errs := testParseStatements(` + struct X {}; let x = X(); x + `) + + var err error + if len(errs) > 0 { + err = Error{ + Errors: errs, + } + } + + require.NoError(t, err) + require.IsType(t, []ast.Statement{}, actual) + + require.Len(t, actual, 3) + assert.IsType(t, &ast.CompositeDeclaration{}, actual[0]) + assert.IsType(t, &ast.VariableDeclaration{}, actual[1]) + assert.IsType(t, &ast.ExpressionStatement{}, actual[2]) +} +func TestParseReturnStatement(t *testing.T) { + + t.Parallel() + + t.Run("no expression", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("return") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ReturnStatement{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + result, + ) + }) + + t.Run("expression on same line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("return 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ReturnStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + result, + ) + }) + + t.Run("expression on next line, no semicolon", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("return \n1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ReturnStatement{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 0, Offset: 8}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 8}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("expression on next line, semicolon", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("return ;\n1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ReturnStatement{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 0, Offset: 9}, + EndPos: ast.Position{Line: 2, Column: 0, Offset: 9}, + }, + }, + }, + }, + result, + ) + }) +} + +func TestParseIfStatement(t *testing.T) { + + t.Parallel() + + t.Run("only empty then", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("if true { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Then: &ast.Block{ + Statements: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("only then, two statements on one line", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("if true { 1 ; 2 }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + EndPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("only then, two statements on multiple lines", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("if true { 1 \n 2 }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 1, Offset: 14}, + EndPos: ast.Position{Line: 2, Column: 1, Offset: 14}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 2, Column: 3, Offset: 16}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("with else", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("if true { 1 } else { 2 }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + Else: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + EndPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 19, Offset: 19}, + EndPos: ast.Position{Line: 1, Column: 23, Offset: 23}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("with else if and else, no space", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("if true{1}else if true {2} else{3}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Else: &ast.Block{ + Statements: []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + EndPos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + EndPos: ast.Position{Line: 1, Column: 24, Offset: 24}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 23, Offset: 23}, + EndPos: ast.Position{Line: 1, Column: 25, Offset: 25}, + }, + }, + Else: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 32, Offset: 32}, + EndPos: ast.Position{Line: 1, Column: 32, Offset: 32}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 31, Offset: 31}, + EndPos: ast.Position{Line: 1, Column: 33, Offset: 33}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + EndPos: ast.Position{Line: 1, Column: 33, Offset: 33}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("if-var", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("if var x = 1 { }") + require.Empty(t, errs) + + expected := &ast.IfStatement{ + Test: &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: false, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + Then: &ast.Block{ + Statements: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + } + + expected.Test.(*ast.VariableDeclaration).ParentIfStatement = expected + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + expected, + }, + result, + ) + }) + + t.Run("if-let", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("if let x = 1 { }") + require.Empty(t, errs) + + expected := &ast.IfStatement{ + Test: &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + Then: &ast.Block{ + Statements: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + EndPos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + } + + expected.Test.(*ast.VariableDeclaration).ParentIfStatement = expected + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + expected, + }, + result, + ) + }) + +} + +func TestParseWhileStatement(t *testing.T) { + + t.Parallel() + + t.Run("empty block", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("while true { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.WhileStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Block: &ast.Block{ + Statements: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) +} + +func TestParseAssignmentStatement(t *testing.T) { + + t.Parallel() + + t.Run("copy, no space", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("x=1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("copy, spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements(" x = 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("move", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements(" x <- 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("force move", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements(" x <-! 1") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMoveForced, + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + }, + result, + ) + }) +} + +func TestParseSwapStatement(t *testing.T) { + + t.Parallel() + + t.Run("simple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements(" x <-> y") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.SwapStatement{ + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Right: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + }, + }, + result, + ) + }) +} + +func TestParseForStatement(t *testing.T) { + + t.Parallel() + + t.Run("empty block", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("for x in y { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ForStatement{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + Block: &ast.Block{ + Statements: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) +} + +func TestParseForStatementIndexBinding(t *testing.T) { + + t.Parallel() + + t.Run("empty block", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("for i, x in y { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ForStatement{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + Index: &ast.Identifier{ + Identifier: "i", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Line: 1, Column: 12, Offset: 12}, + }, + }, + Block: &ast.Block{ + Statements: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + EndPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("no comma", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseStatements("for i x in y { }") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected keyword \"in\", got identifier", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + &SyntaxError{ + Message: "expected token '{'", + Pos: ast.Position{Offset: 11, Line: 1, Column: 11}, + }, + }, + errs, + ) + }) + + t.Run("no identifiers", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseStatements("for in y { }") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected identifier, got keyword \"in\"", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + &SyntaxError{ + Message: "expected token identifier", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) + }) +} + +func TestParseEmit(t *testing.T) { + + t.Parallel() + + t.Run("simple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("emit T()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.EmitStatement{ + InvocationExpression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) +} + +func TestParseFunctionStatementOrExpression(t *testing.T) { + + t.Parallel() + + t.Run("function declaration with name", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("fun foo() {}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("function expression without name", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("fun () {}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.FunctionExpression{ + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + }, + result, + ) + }) +} + +func TestParseStatements(t *testing.T) { + + t.Parallel() + + t.Run("binary expression with less operator", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("a + b < c\nd") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.BinaryExpression{ + Operation: ast.OperationLess, + Left: &ast.BinaryExpression{ + Operation: ast.OperationPlus, + Left: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + Right: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + Right: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "d", + Pos: ast.Position{Line: 2, Column: 0, Offset: 10}, + }, + }, + }, + }, + result, + ) + }) + + t.Run("multiple statements on same line without semicolon", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements(`assert true`) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "statements on the same line must be separated with a semicolon", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "assert", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + }, + }, + result, + ) + }) +} + +func TestParseRemoveAttachmentStatement(t *testing.T) { + + t.Parallel() + + t.Run("basic", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("remove A from b") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.RemoveStatement{ + Attachment: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "A", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("namespaced attachment", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("remove Foo.E from b") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.RemoveStatement{ + Attachment: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Foo", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + NestedIdentifiers: []ast.Identifier{ + { + Identifier: "E", + Pos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + }, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("no from", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseStatements("remove A") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected from keyword, got EOF", + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + &SyntaxError{ + Message: "unexpected end of program", + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + }) + + t.Run("no target", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseStatements("remove A from") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected end of program", + Pos: ast.Position{Offset: 13, Line: 1, Column: 13}, + }, + }, + errs, + ) + }) + + t.Run("no nominal type", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseStatements("remove [A] from e") + + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "expected attachment nominal type, got [A]", + Pos: ast.Position{Offset: 10, Line: 1, Column: 10}, + }, + }, + errs, + ) + }) + + t.Run("complex source", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("remove A from foo()") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.RemoveStatement{ + Attachment: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "A", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Value: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + ArgumentsStartPos: ast.Position{Line: 1, Column: 17, Offset: 17}, + EndPos: ast.Position{Line: 1, Column: 18, Offset: 18}, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) +} + +func TestParseSwitchStatement(t *testing.T) { + + t.Parallel() + + t.Run("empty", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("switch true { }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.SwitchStatement{ + Expression: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + }, + Cases: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 14, Offset: 14}, + }, + }, + }, + result, + ) + }) + + t.Run("two cases", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseStatements("switch x { case 1 :\n a\nb default : c\nd }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Statement{ + &ast.SwitchStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Cases: []*ast.SwitchCase{ + { + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + EndPos: ast.Position{Line: 1, Column: 16, Offset: 16}, + }, + }, + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Line: 2, Column: 1, Offset: 21}, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Line: 3, Column: 0, Offset: 23}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + EndPos: ast.Position{Line: 3, Column: 0, Offset: 23}, + }, + }, + { + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Line: 3, Column: 12, Offset: 35}, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "d", + Pos: ast.Position{Line: 4, Column: 0, Offset: 37}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 3, Column: 2, Offset: 25}, + EndPos: ast.Position{Line: 4, Column: 0, Offset: 37}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 4, Column: 3, Offset: 40}, + }, + }, + }, + result, + ) + }) +} + +func TestParseIfStatementInFunctionDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + if true { + return + } else if false { + false + 1 + } else { + 2 + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 34, Line: 3, Column: 15}, + EndPos: ast.Position{Offset: 37, Line: 3, Column: 18}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: nil, + Range: ast.Range{ + StartPos: ast.Position{Offset: 57, Line: 4, Column: 16}, + EndPos: ast.Position{Offset: 62, Line: 4, Column: 21}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 39, Line: 3, Column: 20}, + EndPos: ast.Position{Offset: 76, Line: 5, Column: 12}, + }, + }, + Else: &ast.Block{ + Statements: []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Offset: 86, Line: 5, Column: 22}, + EndPos: ast.Position{Offset: 90, Line: 5, Column: 26}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.BoolExpression{ + Value: false, + Range: ast.Range{ + StartPos: ast.Position{Offset: 110, Line: 6, Column: 16}, + EndPos: ast.Position{Offset: 114, Line: 6, Column: 20}, + }, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 132, Line: 7, Column: 16}, + EndPos: ast.Position{Offset: 132, Line: 7, Column: 16}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 92, Line: 5, Column: 28}, + EndPos: ast.Position{Offset: 146, Line: 8, Column: 12}, + }, + }, + Else: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 171, Line: 9, Column: 16}, + EndPos: ast.Position{Offset: 171, Line: 9, Column: 16}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 153, Line: 8, Column: 19}, + EndPos: ast.Position{Offset: 185, Line: 10, Column: 12}, + }, + }, + StartPos: ast.Position{Offset: 83, Line: 5, Column: 19}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 83, Line: 5, Column: 19}, + EndPos: ast.Position{Offset: 185, Line: 10, Column: 12}, + }, + }, + StartPos: ast.Position{Offset: 31, Line: 3, Column: 12}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 195, Line: 11, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseIfStatementWithVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + if var y = x { + 1 + } else { + 2 + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + ifStatement := &ast.IfStatement{ + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 62, Line: 4, Column: 16}, + EndPos: ast.Position{Offset: 62, Line: 4, Column: 16}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 44, Line: 3, Column: 25}, + EndPos: ast.Position{Offset: 76, Line: 5, Column: 12}, + }, + }, + Else: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 101, Line: 6, Column: 16}, + EndPos: ast.Position{Offset: 101, Line: 6, Column: 16}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 83, Line: 5, Column: 19}, + EndPos: ast.Position{Offset: 115, Line: 7, Column: 12}, + }, + }, + StartPos: ast.Position{Offset: 31, Line: 3, Column: 12}, + } + + ifTestVariableDeclaration := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: false, + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 38, Line: 3, Column: 19}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 40, Line: 3, Column: 21}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 42, Line: 3, Column: 23}, + }, + }, + StartPos: ast.Position{Offset: 34, Line: 3, Column: 15}, + ParentIfStatement: ifStatement, + } + + ifStatement.Test = ifTestVariableDeclaration + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + ifStatement, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 125, Line: 8, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseIfStatementNoElse(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + if true { + return + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.IfStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 34, Line: 3, Column: 15}, + EndPos: ast.Position{Offset: 37, Line: 3, Column: 18}, + }, + }, + Then: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: nil, + Range: ast.Range{ + StartPos: ast.Position{Offset: 57, Line: 4, Column: 16}, + EndPos: ast.Position{Offset: 62, Line: 4, Column: 21}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 39, Line: 3, Column: 20}, + EndPos: ast.Position{Offset: 76, Line: 5, Column: 12}, + }, + }, + StartPos: ast.Position{Offset: 31, Line: 3, Column: 12}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 86, Line: 6, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseWhileStatementInFunctionDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + while true { + return + break + continue + } + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.WhileStatement{ + Test: &ast.BoolExpression{ + Value: true, + Range: ast.Range{ + StartPos: ast.Position{Offset: 37, Line: 3, Column: 18}, + EndPos: ast.Position{Offset: 40, Line: 3, Column: 21}, + }, + }, + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: nil, + Range: ast.Range{ + StartPos: ast.Position{Offset: 58, Line: 4, Column: 14}, + EndPos: ast.Position{Offset: 63, Line: 4, Column: 19}, + }, + }, + &ast.BreakStatement{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 79, Line: 5, Column: 14}, + EndPos: ast.Position{Offset: 83, Line: 5, Column: 18}, + }, + }, + &ast.ContinueStatement{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 99, Line: 6, Column: 14}, + EndPos: ast.Position{Offset: 106, Line: 6, Column: 21}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 42, Line: 3, Column: 23}, + EndPos: ast.Position{Offset: 120, Line: 7, Column: 12}, + }, + }, + StartPos: ast.Position{Offset: 31, Line: 3, Column: 12}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 130, Line: 8, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseForStatementInFunctionDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + for x in xs {} + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ForStatement{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 35, Line: 3, Column: 16}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "xs", + Pos: ast.Position{Offset: 40, Line: 3, Column: 21}, + }, + }, + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 43, Line: 3, Column: 24}, + EndPos: ast.Position{Offset: 44, Line: 3, Column: 25}, + }, + }, + StartPos: ast.Position{Offset: 31, Line: 3, Column: 12}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 54, Line: 4, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseAssignment(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + a = 1 + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 31, Line: 3, Column: 12}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 33, Line: 3, Column: 14}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 35, Line: 3, Column: 16}, + EndPos: ast.Position{Offset: 35, Line: 3, Column: 16}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 45, Line: 4, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseAccessAssignment(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + x.foo.bar[0][1].baz = 1 + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.MemberExpression{ + Expression: &ast.IndexExpression{ + TargetExpression: &ast.IndexExpression{ + TargetExpression: &ast.MemberExpression{ + Expression: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 31, Line: 3, Column: 12}, + }, + }, + AccessPos: ast.Position{Offset: 32, Line: 3, Column: 13}, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 33, Line: 3, Column: 14}, + }, + }, + AccessPos: ast.Position{Offset: 36, Line: 3, Column: 17}, + Identifier: ast.Identifier{ + Identifier: "bar", + Pos: ast.Position{Offset: 37, Line: 3, Column: 18}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 41, Line: 3, Column: 22}, + EndPos: ast.Position{Offset: 41, Line: 3, Column: 22}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 40, Line: 3, Column: 21}, + EndPos: ast.Position{Offset: 42, Line: 3, Column: 23}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 44, Line: 3, Column: 25}, + EndPos: ast.Position{Offset: 44, Line: 3, Column: 25}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 43, Line: 3, Column: 24}, + EndPos: ast.Position{Offset: 45, Line: 3, Column: 26}, + }, + }, + AccessPos: ast.Position{Offset: 46, Line: 3, Column: 27}, + Identifier: ast.Identifier{ + Identifier: "baz", + Pos: ast.Position{Offset: 47, Line: 3, Column: 28}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 51, Line: 3, Column: 32}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 53, Line: 3, Column: 34}, + EndPos: ast.Position{Offset: 53, Line: 3, Column: 34}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 63, Line: 4, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseExpressionStatementWithAccess(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { x.foo.bar[0][1].baz } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ExpressionStatement{ + Expression: &ast.MemberExpression{ + Expression: &ast.IndexExpression{ + TargetExpression: &ast.IndexExpression{ + TargetExpression: &ast.MemberExpression{ + Expression: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + AccessPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + AccessPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + Identifier: ast.Identifier{ + Identifier: "bar", + Pos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + EndPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + EndPos: ast.Position{Offset: 30, Line: 2, Column: 29}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + EndPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 31, Line: 2, Column: 30}, + EndPos: ast.Position{Offset: 33, Line: 2, Column: 32}, + }, + }, + AccessPos: ast.Position{Offset: 34, Line: 2, Column: 33}, + Identifier: ast.Identifier{ + Identifier: "baz", + Pos: ast.Position{Offset: 35, Line: 2, Column: 34}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 39, Line: 2, Column: 38}, + }, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseMoveStatement(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + x <- y + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.AssignmentStatement{ + Target: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 34, Line: 3, Column: 12}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Offset: 36, Line: 3, Column: 14}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "y", + Pos: ast.Position{Offset: 39, Line: 3, Column: 17}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + EndPos: ast.Position{Offset: 49, Line: 4, Column: 8}, + }, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionExpressionStatementAfterVariableDeclarationWithCreateExpression(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + let r <- create R() + (fun () {})() + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "r", + Pos: ast.Position{Offset: 34, Line: 3, Column: 14}, + }, + TypeAnnotation: nil, + Value: &ast.CreateExpression{ + InvocationExpression: &ast.InvocationExpression{ + InvokedExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 46, Line: 3, Column: 26}, + }, + }, + Arguments: nil, + ArgumentsStartPos: ast.Position{Offset: 47, Line: 3, Column: 27}, + EndPos: ast.Position{Offset: 48, Line: 3, Column: 28}, + }, + StartPos: ast.Position{Offset: 39, Line: 3, Column: 19}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationMove, + Pos: ast.Position{Offset: 36, Line: 3, Column: 16}, + }, + StartPos: ast.Position{Offset: 30, Line: 3, Column: 10}, + }, + &ast.ExpressionStatement{ + Expression: &ast.InvocationExpression{ + InvokedExpression: &ast.FunctionExpression{ + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 65, Line: 4, Column: 15}, + EndPos: ast.Position{Offset: 66, Line: 4, Column: 16}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: nil, + Range: ast.Range{ + StartPos: ast.Position{Offset: 68, Line: 4, Column: 18}, + EndPos: ast.Position{Offset: 69, Line: 4, Column: 19}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 61, Line: 4, Column: 11}, + }, + Arguments: nil, + ArgumentsStartPos: ast.Position{Offset: 71, Line: 4, Column: 21}, + EndPos: ast.Position{Offset: 72, Line: 4, Column: 22}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + EndPos: ast.Position{Offset: 80, Line: 5, Column: 6}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +// TestParseExpressionStatementAfterReturnStatement tests that a return statement +// does *not* consume an expression from the next statement as the return value +func TestParseExpressionStatementAfterReturnStatement(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + return + destroy x + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.ReturnStatement{ + Expression: nil, + Range: ast.Range{ + StartPos: ast.Position{Offset: 30, Line: 3, Column: 10}, + EndPos: ast.Position{Offset: 35, Line: 3, Column: 15}, + }, + }, + &ast.ExpressionStatement{ + Expression: &ast.DestroyExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 55, Line: 4, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 47, Line: 4, Column: 10}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + EndPos: ast.Position{Offset: 63, Line: 5, Column: 6}, + }, + }, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseSwapStatementInFunctionDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + fun test() { + foo[0] <-> bar.baz + } + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + ParameterList: &ast.ParameterList{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Statements: []ast.Statement{ + &ast.SwapStatement{ + Left: &ast.IndexExpression{ + TargetExpression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 30, Line: 3, Column: 10}, + }, + }, + IndexingExpression: &ast.IntegerExpression{ + PositiveLiteral: []byte("0"), + Value: new(big.Int), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 34, Line: 3, Column: 14}, + EndPos: ast.Position{Offset: 34, Line: 3, Column: 14}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 33, Line: 3, Column: 13}, + EndPos: ast.Position{Offset: 35, Line: 3, Column: 15}, + }, + }, + Right: &ast.MemberExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "bar", + Pos: ast.Position{Offset: 41, Line: 3, Column: 21}, + }, + }, + AccessPos: ast.Position{Offset: 44, Line: 3, Column: 24}, + Identifier: ast.Identifier{ + Identifier: "baz", + Pos: ast.Position{Offset: 45, Line: 3, Column: 25}, + }, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + EndPos: ast.Position{Offset: 55, Line: 4, Column: 6}, + }, + }, + PreConditions: nil, + PostConditions: nil, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseStatementsWithWhitespace(t *testing.T) { + + t.Parallel() + + t.Run("two statements: variable declaration and parenthesized expression, not one function-call", func(t *testing.T) { + t.Parallel() + + const code = ` + a == b + (c) + ` + + statements, errs := testParseStatements(code) + require.Empty(t, errs) + + require.Len(t, statements, 2) + }) + + t.Run("two statements: binary expression and array literal, not an indexing expression", func(t *testing.T) { + t.Parallel() + + const code = ` + a == b + [c] + ` + + statements, errs := testParseStatements(code) + require.Empty(t, errs) + + require.Len(t, statements, 2) + }) + + t.Run("two statements: binary expression and unary prefix negation, not unary postfix force", func(t *testing.T) { + t.Parallel() + + const code = ` + a == b + !c == d + ` + + statements, errs := testParseStatements(code) + require.Empty(t, errs) + + require.Len(t, statements, 2) + }) + + t.Run("one statement: binary expression, right-hand side with member access", func(t *testing.T) { + t.Parallel() + + const code = ` + a == b + .c + ` + + statements, errs := testParseStatements(code) + require.Empty(t, errs) + + require.Len(t, statements, 1) + }) +} diff --git a/runtime/old_parser/transaction.go b/runtime/old_parser/transaction.go new file mode 100644 index 0000000000..a6c72419aa --- /dev/null +++ b/runtime/old_parser/transaction.go @@ -0,0 +1,292 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/parser/lexer" +) + +// parseTransactionDeclaration parses a transaction declaration. +// +// transactionDeclaration : 'transaction' +// parameterList? +// '{' +// fields +// prepare? +// preConditions? +// ( execute +// | execute postConditions +// | postConditions +// | postConditions execute +// | /* no execute or postConditions */ +// ) +// '}' +func parseTransactionDeclaration(p *parser, docString string) (*ast.TransactionDeclaration, error) { + + startPos := p.current.StartPos + + // Skip the `transaction` keyword + p.nextSemanticToken() + + // Parameter list (optional) + + var parameterList *ast.ParameterList + var err error + + if p.current.Is(lexer.TokenParenOpen) { + parameterList, err = parseParameterList(p) + if err != nil { + return nil, err + } + } + + p.skipSpaceAndComments() + _, err = p.mustOne(lexer.TokenBraceOpen) + if err != nil { + return nil, err + } + + // Fields + + fields, err := parseTransactionFields(p) + if err != nil { + return nil, err + } + + // Prepare (optional) or execute (optional) + + var prepare *ast.SpecialFunctionDeclaration + var execute *ast.SpecialFunctionDeclaration + + p.skipSpaceAndComments() + if p.current.Is(lexer.TokenIdentifier) { + + keyword := p.currentTokenSource() + + switch string(keyword) { + case keywordPrepare: + identifier := p.tokenToIdentifier(p.current) + // Skip the `prepare` keyword + p.next() + prepare, err = parseSpecialFunctionDeclaration( + p, + false, + ast.AccessNotSpecified, + nil, + nil, + nil, + identifier, + "", + ) + if err != nil { + return nil, err + } + + case keywordExecute: + execute, err = parseTransactionExecute(p) + if err != nil { + return nil, err + } + + default: + return nil, p.syntaxError( + "unexpected identifier, expected keyword %q or %q, got %q", + keywordPrepare, + keywordExecute, + keyword, + ) + } + } + + // Pre-conditions (optional) + + var preConditions *ast.Conditions + + if execute == nil { + p.skipSpaceAndComments() + if p.isToken(p.current, lexer.TokenIdentifier, keywordPre) { + // Skip the `pre` keyword + p.next() + conditions, err := parseConditions(p, ast.ConditionKindPre) + if err != nil { + return nil, err + } + + preConditions = &conditions + } + } + + // Execute / post-conditions (both optional, in any order) + + var postConditions *ast.Conditions + + var endPos ast.Position + + sawPost := false + atEnd := false + for !atEnd { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenIdentifier: + + keyword := p.currentTokenSource() + switch string(keyword) { + case keywordExecute: + if execute != nil { + return nil, p.syntaxError("unexpected second %q block", keywordExecute) + } + + execute, err = parseTransactionExecute(p) + if err != nil { + return nil, err + } + + case keywordPost: + if sawPost { + return nil, p.syntaxError("unexpected second post-conditions") + } + // Skip the `post` keyword + p.next() + conditions, err := parseConditions(p, ast.ConditionKindPost) + if err != nil { + return nil, err + } + + postConditions = &conditions + sawPost = true + + default: + return nil, p.syntaxError( + "unexpected identifier, expected keyword %q or %q, got %q", + keywordExecute, + keywordPost, + keyword, + ) + } + + case lexer.TokenBraceClose: + endPos = p.current.EndPos + // Skip the closing brace + p.next() + atEnd = true + + default: + return nil, p.syntaxError("unexpected token: %s", p.current.Type) + } + } + + return ast.NewTransactionDeclaration( + p.memoryGauge, + parameterList, + fields, + prepare, + preConditions, + postConditions, + execute, + docString, + ast.NewRange( + p.memoryGauge, + startPos, + endPos, + ), + ), nil +} + +func parseTransactionFields(p *parser) (fields []*ast.FieldDeclaration, err error) { + for { + _, docString := p.parseTrivia(triviaOptions{ + skipNewlines: true, + parseDocStrings: true, + }) + + switch p.current.Type { + case lexer.TokenSemicolon: + // Skip the semicolon + p.next() + continue + + case lexer.TokenBraceClose, lexer.TokenEOF: + return + + case lexer.TokenIdentifier: + switch string(p.currentTokenSource()) { + case keywordLet, keywordVar: + field, err := parseFieldWithVariableKind( + p, + ast.AccessNotSpecified, + nil, + nil, + nil, + docString, + ) + if err != nil { + return nil, err + } + + fields = append(fields, field) + continue + + default: + return + } + + default: + return + } + } +} + +func parseTransactionExecute(p *parser) (*ast.SpecialFunctionDeclaration, error) { + identifier := p.tokenToIdentifier(p.current) + + // Skip the `execute` keyword + p.nextSemanticToken() + + block, err := parseBlock(p) + if err != nil { + return nil, err + } + + return ast.NewSpecialFunctionDeclaration( + p.memoryGauge, + common.DeclarationKindExecute, + ast.NewFunctionDeclaration( + p.memoryGauge, + ast.AccessNotSpecified, + ast.FunctionPurityUnspecified, + false, + false, + identifier, + nil, + nil, + nil, + ast.NewFunctionBlock( + p.memoryGauge, + block, + nil, + nil, + ), + identifier.Pos, + "", + ), + ), nil +} diff --git a/runtime/old_parser/type.go b/runtime/old_parser/type.go new file mode 100644 index 0000000000..3723445708 --- /dev/null +++ b/runtime/old_parser/type.go @@ -0,0 +1,993 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/parser/lexer" +) + +const ( + typeLeftBindingPowerOptional = 10 * (iota + 1) + typeLeftBindingPowerReference + typeLeftBindingPowerRestriction + typeLeftBindingPowerInstantiation +) + +type typeNullDenotationFunc func(parser *parser, token lexer.Token) (ast.Type, error) + +var typeNullDenotations [lexer.TokenMax]typeNullDenotationFunc + +type typeLeftDenotationFunc func(parser *parser, token lexer.Token, left ast.Type) (ast.Type, error) +type typeMetaLeftDenotationFunc func( + p *parser, + rightBindingPower int, + left ast.Type, +) ( + result ast.Type, + err error, + done bool, +) + +var typeLeftBindingPowers [lexer.TokenMax]int +var typeLeftDenotations [lexer.TokenMax]typeLeftDenotationFunc +var typeMetaLeftDenotations [lexer.TokenMax]typeMetaLeftDenotationFunc + +func setTypeNullDenotation(tokenType lexer.TokenType, nullDenotation typeNullDenotationFunc) { + current := typeNullDenotations[tokenType] + if current != nil { + panic(errors.NewUnexpectedError( + "type null denotation for token %s already exists", + tokenType, + )) + } + typeNullDenotations[tokenType] = nullDenotation +} + +func setTypeLeftBindingPower(tokenType lexer.TokenType, power int) { + current := typeLeftBindingPowers[tokenType] + if current > power { + return + } + typeLeftBindingPowers[tokenType] = power +} + +func setTypeLeftDenotation(tokenType lexer.TokenType, leftDenotation typeLeftDenotationFunc) { + current := typeLeftDenotations[tokenType] + if current != nil { + panic(errors.NewUnexpectedError( + "type left denotation for token %s already exists", + tokenType, + )) + } + typeLeftDenotations[tokenType] = leftDenotation +} + +func setTypeMetaLeftDenotation(tokenType lexer.TokenType, metaLeftDenotation typeMetaLeftDenotationFunc) { + current := typeMetaLeftDenotations[tokenType] + if current != nil { + panic(errors.NewUnexpectedError( + "type meta left denotation for token %s already exists", + tokenType, + )) + } + typeMetaLeftDenotations[tokenType] = metaLeftDenotation +} + +type prefixTypeFunc func(parser *parser, right ast.Type, tokenRange ast.Range) ast.Type +type postfixTypeFunc func(parser *parser, left ast.Type, tokenRange ast.Range) ast.Type + +type literalType struct { + nullDenotation typeNullDenotationFunc + tokenType lexer.TokenType +} + +type prefixType struct { + nullDenotation prefixTypeFunc + bindingPower int + tokenType lexer.TokenType +} + +type postfixType struct { + leftDenotation postfixTypeFunc + bindingPower int + tokenType lexer.TokenType +} + +func defineType(def any) { + switch def := def.(type) { + case prefixType: + tokenType := def.tokenType + setTypeNullDenotation( + tokenType, + func(parser *parser, token lexer.Token) (ast.Type, error) { + right, err := parseType(parser, def.bindingPower) + if err != nil { + return nil, err + } + + return def.nullDenotation(parser, right, token.Range), nil + }, + ) + case postfixType: + tokenType := def.tokenType + setTypeLeftBindingPower(tokenType, def.bindingPower) + setTypeLeftDenotation( + tokenType, + func(p *parser, token lexer.Token, left ast.Type) (ast.Type, error) { + return def.leftDenotation(p, left, token.Range), nil + }, + ) + case literalType: + tokenType := def.tokenType + setTypeNullDenotation(tokenType, def.nullDenotation) + default: + panic(errors.NewUnreachableError()) + } +} + +func init() { + defineArrayType() + defineOptionalType() + defineReferenceType() + defineRestrictedOrDictionaryType() + defineFunctionType() + defineInstantiationType() + + setTypeNullDenotation( + lexer.TokenIdentifier, + func(p *parser, token lexer.Token) (ast.Type, error) { + + switch string(p.tokenSource(token)) { + case keywordAuth: + p.skipSpaceAndComments() + + _, err := p.mustOne(lexer.TokenAmpersand) + if err != nil { + return nil, err + } + + right, err := parseType(p, typeLeftBindingPowerReference) + if err != nil { + return nil, err + } + + refType := ast.NewReferenceType( + p.memoryGauge, + nil, + right, + token.StartPos, + ) + refType.LegacyAuthorized = true + + return refType, nil + + default: + return parseNominalTypeRemainder(p, token) + } + }, + ) +} + +func parseNominalTypeRemainder(p *parser, token lexer.Token) (*ast.NominalType, error) { + var nestedIdentifiers []ast.Identifier + + for p.current.Is(lexer.TokenDot) { + // Skip the dot + p.next() + + nestedToken := p.current + + if !nestedToken.Is(lexer.TokenIdentifier) { + return nil, p.syntaxError( + "expected identifier after %s, got %s", + lexer.TokenDot, + nestedToken.Type, + ) + } + + nestedIdentifier := p.tokenToIdentifier(nestedToken) + + // Skip the identifier + p.next() + + nestedIdentifiers = append( + nestedIdentifiers, + nestedIdentifier, + ) + + } + + return ast.NewNominalType( + p.memoryGauge, + p.tokenToIdentifier(token), + nestedIdentifiers, + ), nil +} + +func defineArrayType() { + setTypeNullDenotation( + lexer.TokenBracketOpen, + func(p *parser, startToken lexer.Token) (ast.Type, error) { + + elementType, err := parseType(p, lowestBindingPower) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + + var size *ast.IntegerExpression + + if p.current.Is(lexer.TokenSemicolon) { + // Skip the semicolon + p.nextSemanticToken() + + if !p.current.Type.IsIntegerLiteral() { + p.reportSyntaxError("expected positive integer size for constant sized type") + + // Skip the invalid non-integer literal token + p.next() + + } else { + numberExpression, err := parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + integerExpression, ok := numberExpression.(*ast.IntegerExpression) + if !ok || integerExpression.Value.Sign() < 0 { + p.reportSyntaxError("expected positive integer size for constant sized type") + } else { + size = integerExpression + } + } + } + + p.skipSpaceAndComments() + + endToken, err := p.mustOne(lexer.TokenBracketClose) + if err != nil { + return nil, err + } + + typeRange := ast.NewRange( + p.memoryGauge, + startToken.StartPos, + endToken.EndPos, + ) + + if size != nil { + return ast.NewConstantSizedType( + p.memoryGauge, + elementType, + size, + typeRange, + ), nil + } else { + return ast.NewVariableSizedType( + p.memoryGauge, + elementType, + typeRange, + ), nil + } + }, + ) +} + +func defineOptionalType() { + defineType(postfixType{ + tokenType: lexer.TokenQuestionMark, + bindingPower: typeLeftBindingPowerOptional, + leftDenotation: func(p *parser, left ast.Type, tokenRange ast.Range) ast.Type { + return ast.NewOptionalType( + p.memoryGauge, + left, + tokenRange.EndPos, + ) + }, + }) + + defineType(postfixType{ + tokenType: lexer.TokenDoubleQuestionMark, + bindingPower: typeLeftBindingPowerOptional, + leftDenotation: func(p *parser, left ast.Type, tokenRange ast.Range) ast.Type { + return ast.NewOptionalType( + p.memoryGauge, + ast.NewOptionalType( + p.memoryGauge, + left, + tokenRange.StartPos, + ), + tokenRange.EndPos, + ) + }, + }) +} + +func defineReferenceType() { + defineType(prefixType{ + tokenType: lexer.TokenAmpersand, + bindingPower: typeLeftBindingPowerReference, + nullDenotation: func(p *parser, right ast.Type, tokenRange ast.Range) ast.Type { + return ast.NewReferenceType( + p.memoryGauge, + nil, + right, + tokenRange.StartPos, + ) + }, + }) +} + +func defineRestrictedOrDictionaryType() { + + // For the null denotation it is not clear after the start + // if it is a restricted type or a dictionary type. + // + // If a colon is seen it is a dictionary type. + // If no colon is seen it is a restricted type. + + setTypeNullDenotation( + lexer.TokenBraceOpen, + func(p *parser, startToken lexer.Token) (ast.Type, error) { + + var endPos ast.Position + + var dictionaryType *ast.DictionaryType + var restrictedType *ast.IntersectionType + + var firstType ast.Type + + atEnd := false + + expectType := true + + for !atEnd { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenComma: + if dictionaryType != nil { + return nil, p.syntaxError("unexpected comma in dictionary type") + } + if expectType { + return nil, p.syntaxError("unexpected comma in restricted type") + } + if restrictedType == nil { + firstNominalType, ok := firstType.(*ast.NominalType) + if !ok { + return nil, p.syntaxError("non-nominal type in restriction list: %s", firstType) + } + restrictedType = ast.NewIntersectionType( + p.memoryGauge, + []*ast.NominalType{ + firstNominalType, + }, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + ast.EmptyPosition, + ), + ) + } + // Skip the comma + p.next() + expectType = true + + case lexer.TokenColon: + if restrictedType != nil { + return nil, p.syntaxError("unexpected colon in restricted type") + } + if expectType { + return nil, p.syntaxError("unexpected colon in dictionary type") + } + if dictionaryType == nil { + if firstType == nil { + return nil, p.syntaxError("unexpected colon after missing dictionary key type") + } + dictionaryType = ast.NewDictionaryType( + p.memoryGauge, + firstType, + nil, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + ast.EmptyPosition, + ), + ) + } else { + return nil, p.syntaxError("unexpected colon in dictionary type") + } + // Skip the colon + p.next() + expectType = true + + case lexer.TokenBraceClose: + if expectType { + switch { + case dictionaryType != nil: + p.reportSyntaxError("missing dictionary value type") + case restrictedType != nil: + p.reportSyntaxError("missing type after comma") + } + } + endPos = p.current.EndPos + // Skip the closing brace + p.next() + atEnd = true + + case lexer.TokenEOF: + if expectType { + return nil, p.syntaxError("invalid end of input, expected type") + } else { + return nil, p.syntaxError("invalid end of input, expected %s", lexer.TokenBraceClose) + } + + default: + if !expectType { + return nil, p.syntaxError("unexpected type") + } + + ty, err := parseType(p, lowestBindingPower) + if err != nil { + return nil, err + } + + expectType = false + + switch { + case dictionaryType != nil: + dictionaryType.ValueType = ty + + case restrictedType != nil: + nominalType, ok := ty.(*ast.NominalType) + if !ok { + return nil, p.syntaxError("non-nominal type in restriction list: %s", ty) + } + restrictedType.Types = append(restrictedType.Types, nominalType) + + default: + firstType = ty + } + } + } + + switch { + case restrictedType != nil: + restrictedType.EndPos = endPos + return restrictedType, nil + case dictionaryType != nil: + dictionaryType.EndPos = endPos + return dictionaryType, nil + default: + restrictedType = ast.NewIntersectionType( + p.memoryGauge, + nil, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + endPos, + ), + ) + if firstType != nil { + firstNominalType, ok := firstType.(*ast.NominalType) + if !ok { + return nil, p.syntaxError("non-nominal type in restriction list: %s", firstType) + } + restrictedType.Types = append(restrictedType.Types, firstNominalType) + } + return restrictedType, nil + } + }, + ) + + // For the left denotation we need a meta left denotation: + // We need to look ahead and check if the brace is followed by whitespace or not. + // In case there is a space, the type is *not* considered a restricted type. + // This handles the ambiguous case where a function return type's open brace + // may either be a restricted type (if there is no whitespace) + // or the start of the function body (if there is whitespace). + + setTypeMetaLeftDenotation( + lexer.TokenBraceOpen, + func(p *parser, rightBindingPower int, left ast.Type) (result ast.Type, err error, done bool) { + + // Perform a lookahead + + current := p.current + cursor := p.tokens.Cursor() + + // Skip the `{` token. + p.next() + + // In case there is a space, the type is *not* considered a restricted type. + // The buffered tokens are replayed to allow them to be re-parsed. + + if p.current.Is(lexer.TokenSpace) { + p.current = current + p.tokens.Revert(cursor) + + return left, nil, true + } + + // It was determined that a restricted type is parsed. + // Still, it should have maybe not been parsed if the right binding power + // was higher. In that case, replay the buffered tokens and stop. + + if rightBindingPower >= typeLeftBindingPowerRestriction { + p.current = current + p.tokens.Revert(cursor) + return left, nil, true + } + + nominalTypes, endPos, err := parseNominalTypes(p, lexer.TokenBraceClose) + if err != nil { + return nil, err, true + } + + // Skip the closing brace + p.next() + + intersection := ast.NewIntersectionType( + p.memoryGauge, + nominalTypes, + ast.NewRange( + p.memoryGauge, + left.StartPosition(), + endPos, + ), + ) + intersection.LegacyRestrictedType = left + result = intersection + + return result, err, false + }, + ) +} + +// parseNominalTypes parses zero or more nominal types separated by comma. +func parseNominalTypes( + p *parser, + endTokenType lexer.TokenType, +) ( + nominalTypes []*ast.NominalType, + endPos ast.Position, + err error, +) { + expectType := true + atEnd := false + for !atEnd { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenComma: + if expectType { + return nil, ast.EmptyPosition, p.syntaxError("unexpected comma") + } + // Skip the comma + p.next() + expectType = true + + case endTokenType: + if expectType && len(nominalTypes) > 0 { + p.reportSyntaxError("missing type after comma") + } + endPos = p.current.EndPos + atEnd = true + + case lexer.TokenEOF: + if expectType { + return nil, ast.EmptyPosition, p.syntaxError("invalid end of input, expected type") + } else { + return nil, ast.EmptyPosition, p.syntaxError("invalid end of input, expected %s", endTokenType) + } + + default: + if !expectType { + return nil, ast.EmptyPosition, p.syntaxError( + "unexpected token: got %s, expected %s or %s", + p.current.Type, + lexer.TokenComma, + endTokenType, + ) + } + + ty, err := parseType(p, lowestBindingPower) + if err != nil { + return nil, ast.EmptyPosition, err + } + + expectType = false + + nominalType, ok := ty.(*ast.NominalType) + if !ok { + return nil, ast.EmptyPosition, p.syntaxError("unexpected non-nominal type: %s", ty) + } + nominalTypes = append(nominalTypes, nominalType) + } + } + + return +} + +func defineFunctionType() { + setTypeNullDenotation( + lexer.TokenParenOpen, + func(p *parser, startToken lexer.Token) (ast.Type, error) { + + parameterTypeAnnotations, err := parseParameterTypeAnnotations(p) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + _, err = p.mustOne(lexer.TokenColon) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + returnTypeAnnotation, err := parseTypeAnnotation(p) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + endToken, err := p.mustOne(lexer.TokenParenClose) + if err != nil { + return nil, err + } + + return ast.NewFunctionType( + p.memoryGauge, + ast.FunctionPurityUnspecified, + parameterTypeAnnotations, + returnTypeAnnotation, + ast.NewRange( + p.memoryGauge, + startToken.StartPos, + endToken.EndPos, + ), + ), nil + }, + ) +} + +func parseParameterTypeAnnotations(p *parser) (typeAnnotations []*ast.TypeAnnotation, err error) { + + p.skipSpaceAndComments() + _, err = p.mustOne(lexer.TokenParenOpen) + if err != nil { + return + } + + expectTypeAnnotation := true + + atEnd := false + for !atEnd { + p.skipSpaceAndComments() + switch p.current.Type { + case lexer.TokenComma: + if expectTypeAnnotation { + return nil, p.syntaxError( + "expected type annotation or end of list, got %q", + p.current.Type, + ) + } + // Skip the comma + p.next() + expectTypeAnnotation = true + + case lexer.TokenParenClose: + // Skip the closing paren + p.next() + atEnd = true + + case lexer.TokenEOF: + return nil, p.syntaxError( + "missing %q at end of list", + lexer.TokenParenClose, + ) + + default: + if !expectTypeAnnotation { + return nil, p.syntaxError( + "expected comma or end of list, got %q", + p.current.Type, + ) + } + + typeAnnotation, err := parseTypeAnnotation(p) + if err != nil { + return nil, err + } + + typeAnnotations = append(typeAnnotations, typeAnnotation) + + expectTypeAnnotation = false + } + } + + return +} + +func parseType(p *parser, rightBindingPower int) (ast.Type, error) { + + if p.typeDepth == typeDepthLimit { + return nil, TypeDepthLimitReachedError{ + Pos: p.current.StartPos, + } + } + + p.typeDepth++ + defer func() { + p.typeDepth-- + }() + + p.skipSpaceAndComments() + t := p.current + p.next() + + left, err := applyTypeNullDenotation(p, t) + if err != nil { + return nil, err + } + + for { + var done bool + left, err, done = applyTypeMetaLeftDenotation(p, rightBindingPower, left) + if err != nil { + return nil, err + } + + if done { + break + } + } + + return left, nil +} + +func applyTypeMetaLeftDenotation( + p *parser, + rightBindingPower int, + left ast.Type, +) ( + result ast.Type, + err error, + done bool, +) { + // By default, left denotations are applied if the right binding power + // is less than the left binding power of the current token. + // + // Token-specific meta-left denotations allow customizing this, + // e.g. determining the left binding power based on parsing more tokens, + // or performing look-ahead + + metaLeftDenotation := typeMetaLeftDenotations[p.current.Type] + if metaLeftDenotation == nil { + metaLeftDenotation = defaultTypeMetaLeftDenotation + } + + return metaLeftDenotation(p, rightBindingPower, left) +} + +// defaultTypeMetaLeftDenotation is the default type left denotation, which applies +// if the right binding power is less than the left binding power of the current token +func defaultTypeMetaLeftDenotation( + p *parser, + rightBindingPower int, + left ast.Type, +) ( + result ast.Type, + err error, + done bool, +) { + if rightBindingPower >= typeLeftBindingPowers[p.current.Type] { + return left, nil, true + } + + t := p.current + + p.next() + + result, err = applyTypeLeftDenotation(p, t, left) + + return result, err, false +} + +func parseTypeAnnotation(p *parser) (*ast.TypeAnnotation, error) { + p.skipSpaceAndComments() + + startPos := p.current.StartPos + + isResource := false + if p.current.Is(lexer.TokenAt) { + // Skip the `@` + p.next() + isResource = true + } + + ty, err := parseType(p, lowestBindingPower) + if err != nil { + return nil, err + } + + return ast.NewTypeAnnotation( + p.memoryGauge, + isResource, + ty, + startPos, + ), nil +} + +func applyTypeNullDenotation(p *parser, token lexer.Token) (ast.Type, error) { + tokenType := token.Type + nullDenotation := typeNullDenotations[tokenType] + if nullDenotation == nil { + return nil, p.syntaxError("unexpected token in type: %s", tokenType) + } + return nullDenotation(p, token) +} + +func applyTypeLeftDenotation(p *parser, token lexer.Token, left ast.Type) (ast.Type, error) { + leftDenotation := typeLeftDenotations[token.Type] + if leftDenotation == nil { + return nil, p.syntaxError("unexpected token in type: %s", token.Type) + } + return leftDenotation(p, token, left) +} + +func parseNominalTypeInvocationRemainder(p *parser) (*ast.InvocationExpression, error) { + p.skipSpaceAndComments() + identifier, err := p.mustOne(lexer.TokenIdentifier) + if err != nil { + return nil, err + } + + ty, err := parseNominalTypeRemainder(p, identifier) + if err != nil { + return nil, err + } + + p.skipSpaceAndComments() + parenOpenToken, err := p.mustOne(lexer.TokenParenOpen) + if err != nil { + return nil, err + } + + argumentsStartPos := parenOpenToken.EndPos + arguments, endPos, err := parseArgumentListRemainder(p) + if err != nil { + return nil, err + } + + var invokedExpression ast.Expression = ast.NewIdentifierExpression( + p.memoryGauge, + ty.Identifier, + ) + + for _, nestedIdentifier := range ty.NestedIdentifiers { + invokedExpression = ast.NewMemberExpression( + p.memoryGauge, + invokedExpression, + false, + nestedIdentifier.Pos, + nestedIdentifier, + ) + } + + return ast.NewInvocationExpression( + p.memoryGauge, + invokedExpression, + nil, + arguments, + argumentsStartPos, + endPos, + ), nil +} + +// parseCommaSeparatedTypeAnnotations parses zero or more type annotations separated by comma. +func parseCommaSeparatedTypeAnnotations( + p *parser, + endTokenType lexer.TokenType, +) ( + typeAnnotations []*ast.TypeAnnotation, + err error, +) { + expectTypeAnnotation := true + atEnd := false + for !atEnd { + p.skipSpaceAndComments() + + switch p.current.Type { + case lexer.TokenComma: + if expectTypeAnnotation { + return nil, p.syntaxError("unexpected comma") + } + // Skip the comma + p.next() + expectTypeAnnotation = true + + case endTokenType: + if expectTypeAnnotation && len(typeAnnotations) > 0 { + p.reportSyntaxError("missing type annotation after comma") + } + atEnd = true + + case lexer.TokenEOF: + if expectTypeAnnotation { + return nil, p.syntaxError("invalid end of input, expected type") + } else { + return nil, p.syntaxError("invalid end of input, expected %s", endTokenType) + } + + default: + if !expectTypeAnnotation { + return nil, p.syntaxError( + "unexpected token: got %s, expected %s or %s", + p.current.Type, + lexer.TokenComma, + endTokenType, + ) + } + + typeAnnotation, err := parseTypeAnnotation(p) + if err != nil { + return nil, err + } + + typeAnnotations = append(typeAnnotations, typeAnnotation) + + expectTypeAnnotation = false + } + } + + return +} + +func defineInstantiationType() { + setTypeLeftBindingPower(lexer.TokenLess, typeLeftBindingPowerInstantiation) + setTypeLeftDenotation( + lexer.TokenLess, + func(p *parser, token lexer.Token, left ast.Type) (ast.Type, error) { + typeArgumentsStartPos := token.StartPos + + typeArguments, err := parseCommaSeparatedTypeAnnotations(p, lexer.TokenGreater) + if err != nil { + return nil, err + } + + endToken, err := p.mustOne(lexer.TokenGreater) + if err != nil { + return nil, err + } + + return ast.NewInstantiationType( + p.memoryGauge, + left, + typeArguments, + typeArgumentsStartPos, + endToken.EndPos, + ), nil + }, + ) +} diff --git a/runtime/old_parser/type_test.go b/runtime/old_parser/type_test.go new file mode 100644 index 0000000000..5b656fca3e --- /dev/null +++ b/runtime/old_parser/type_test.go @@ -0,0 +1,2876 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package old_parser + +import ( + "math/big" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func TestParseNominalType(t *testing.T) { + + t.Parallel() + + t.Run("simple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("Int") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + result, + ) + }) + + t.Run("nested", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("Foo.Bar") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Foo", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + NestedIdentifiers: []ast.Identifier{ + { + Identifier: "Bar", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + }, + result, + ) + }) +} + +func TestParseArrayType(t *testing.T) { + + t.Parallel() + + t.Run("variable", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("[Int]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.VariableSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) + }) + + t.Run("constant", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("[Int ; 2 ]") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ConstantSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Size: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + EndPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + result, + ) + }) + + t.Run("constant, negative size", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("[Int ; -2 ]") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: `expected positive integer size for constant sized type`, + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + // TODO: improve/avoid error by skipping full negative integer literal + &SyntaxError{ + Message: `expected token ']'`, + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + + require.Nil(t, result) + }) + + t.Run("constant, invalid size", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("[Int ; X ]") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: `expected positive integer size for constant sized type`, + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.VariableSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 0, Line: 1, Column: 0}, + EndPos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + }, + result, + ) + }) + +} + +func TestParseOptionalType(t *testing.T) { + + t.Parallel() + + t.Run("nominal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("Int?") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.OptionalType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + result, + ) + }) + + t.Run("double", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("Int??") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.OptionalType{ + Type: &ast.OptionalType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + result, + ) + }) + + t.Run("triple", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("Int???") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.OptionalType{ + Type: &ast.OptionalType{ + Type: &ast.OptionalType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + result, + ) + }) +} + +func TestParseReferenceType(t *testing.T) { + + t.Parallel() + + t.Run("unauthorized, nominal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("&Int") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ReferenceType{ + Authorization: nil, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("authorized, nominal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("auth &Int") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ReferenceType{ + Authorization: nil, + LegacyAuthorized: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) +} + +func TestParseOptionalReferenceType(t *testing.T) { + + t.Parallel() + + t.Run("unauthorized", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("&Int?") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.OptionalType{ + Type: &ast.ReferenceType{ + Authorization: nil, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + result, + ) + }) +} + +func TestParseRestrictedType(t *testing.T) { + + t.Parallel() + + t.Run("with restricted type, no restrictions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntersectionType{ + LegacyRestrictedType: &ast.NominalType{ + NestedIdentifiers: nil, + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + result, + ) + }) + + t.Run("with restricted type, one restriction", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{U}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntersectionType{ + LegacyRestrictedType: &ast.NominalType{ + NestedIdentifiers: nil, + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + result, + ) + }) + + t.Run("with restricted type, two restrictions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{U , V }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntersectionType{ + LegacyRestrictedType: &ast.NominalType{ + NestedIdentifiers: nil, + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Offset: 0, Line: 1, Column: 0}, + }, + }, + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + { + Identifier: ast.Identifier{ + Identifier: "V", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + result, + ) + }) + + t.Run("without restricted type, no restrictions", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntersectionType{ + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + result, + ) + }) + + t.Run("without restricted type, one restriction", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{ T }") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.IntersectionType{ + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) + }) + + t.Run("invalid: without restricted type, missing type after comma", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{ T , }") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing type after comma", + Pos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.IntersectionType{ + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + result, + ) + }) + + t.Run("invalid: without restricted type, type without comma", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{ T U }") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected type", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid: without restricted type, colon", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{ T , U : V }") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected colon in restricted type", + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid: with restricted type, colon", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{U , V : W }") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: `unexpected token: got ':', expected ',' or '}'`, + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid: without restricted type, first is non-nominal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{[T]}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "non-nominal type in restriction list: [T]", + Pos: ast.Position{Offset: 5, Line: 1, Column: 5}, + }, + }, + errs, + ) + + // TODO: return type with non-nominal restrictions + assert.Nil(t, result) + }) + + t.Run("invalid: with restricted type, first is non-nominal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{[U]}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected non-nominal type: [U]", + Pos: ast.Position{Offset: 5, Line: 1, Column: 5}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid: without restricted type, second is non-nominal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T, [U]}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "non-nominal type in restriction list: [U]", + Pos: ast.Position{Offset: 7, Line: 1, Column: 7}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid: with restricted type, second is non-nominal", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{U, [V]}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected non-nominal type: [V]", + Pos: ast.Position{Offset: 8, Line: 1, Column: 8}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid: without restricted type, missing end", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected type", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid: with restricted type, missing end", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected type", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid: without restricted type, missing end after type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{U") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected '}'", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid: with restricted type, missing end after type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{U") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected '}'", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid: without restricted type, missing end after comma", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{U,") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected type", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid: with restricted type, missing end after comma", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{U,") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected type", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid: without restricted type, just comma", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{,}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected comma in restricted type", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid: with restricted type, just comma", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T{,}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected comma", + Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) +} + +func TestParseDictionaryType(t *testing.T) { + + t.Parallel() + + t.Run("valid", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T: U}") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.DictionaryType{ + KeyType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + ValueType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + }, + result, + ) + }) + + t.Run("invalid, missing value type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T:}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "missing dictionary value type", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + &ast.DictionaryType{ + KeyType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + ValueType: nil, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + result, + ) + }) + + t.Run("invalid, missing key and value type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{:}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected colon in dictionary type", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid, missing key type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{:U}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected colon in dictionary type", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid, unexpected comma after value type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T:U,}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected comma in dictionary type", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid, unexpected colon after value type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T:U:}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected colon in dictionary type", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid, unexpected colon after colon", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T::U}") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected colon in dictionary type", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + errs, + ) + + // TODO: return type + assert.Nil(t, result) + }) + + t.Run("invalid, missing value type after colon", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T:") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected type", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) + + t.Run("invalid, missing end after key type and value type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("{T:U") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "invalid end of input, expected '}'", + Pos: ast.Position{Offset: 4, Line: 1, Column: 4}, + }, + }, + errs, + ) + + assert.Nil(t, result) + }) +} + +func TestParseFunctionType(t *testing.T) { + + t.Parallel() + + t.Run("no parameters, Void return type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("(():Void)") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FunctionType{ + ParameterTypeAnnotations: nil, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Void", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + result, + ) + }) + + t.Run("three parameters, Int return type", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("( ( String , Bool , @R ) : Int)") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "String", + Pos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Bool", + Pos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 13, Offset: 13}, + }, + { + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 20, Offset: 20}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 27, Offset: 27}, + }, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + EndPos: ast.Position{Line: 1, Column: 30, Offset: 30}, + }, + }, + result, + ) + }) +} + +func TestParseInstantiationType(t *testing.T) { + + t.Parallel() + + t.Run("no type arguments", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T<>") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + result, + ) + }) + + t.Run("one type argument, no spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + result, + ) + }) + + t.Run("one type argument, with spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T< U >") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 5, Offset: 5}, + }, + result, + ) + }) + + t.Run("two type arguments, with spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T< U , @V >") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + { + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "V", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 10, Offset: 10}, + }, + result, + ) + }) + + t.Run("one type argument, no spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + result, + ) + }) + + t.Run("one type argument, nested, with spaces", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("T< U< V > >") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "U", + Pos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "V", + Pos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + EndPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + StartPos: ast.Position{Line: 1, Column: 3, Offset: 3}, + }, + }, + TypeArgumentsStartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 11, Offset: 11}, + }, + result, + ) + }) +} + +func TestParseParametersAndArrayTypes(t *testing.T) { + + t.Parallel() + + const code = ` + pub fun test(a: Int32, b: [Int32; 2], c: [[Int32; 3]]): [[Int64]] {} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.FunctionDeclaration{ + Access: ast.AccessAll, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int32", + Pos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + { + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.ConstantSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int32", + Pos: ast.Position{Offset: 30, Line: 2, Column: 29}, + }, + }, + Size: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + EndPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + EndPos: ast.Position{Offset: 38, Line: 2, Column: 37}, + }, + }, + StartPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + }, + StartPos: ast.Position{Offset: 26, Line: 2, Column: 25}, + }, + { + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Offset: 41, Line: 2, Column: 40}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.VariableSizedType{ + Type: &ast.ConstantSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int32", + Pos: ast.Position{Offset: 46, Line: 2, Column: 45}, + }, + }, + Size: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 53, Line: 2, Column: 52}, + EndPos: ast.Position{Offset: 53, Line: 2, Column: 52}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 45, Line: 2, Column: 44}, + EndPos: ast.Position{Offset: 54, Line: 2, Column: 53}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 44, Line: 2, Column: 43}, + EndPos: ast.Position{Offset: 55, Line: 2, Column: 54}, + }, + }, + StartPos: ast.Position{Offset: 44, Line: 2, Column: 43}, + }, + StartPos: ast.Position{Offset: 41, Line: 2, Column: 40}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + EndPos: ast.Position{Offset: 56, Line: 2, Column: 55}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.VariableSizedType{ + Type: &ast.VariableSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{Identifier: "Int64", + Pos: ast.Position{Offset: 61, Line: 2, Column: 60}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 60, Line: 2, Column: 59}, + EndPos: ast.Position{Offset: 66, Line: 2, Column: 65}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 59, Line: 2, Column: 58}, + EndPos: ast.Position{Offset: 67, Line: 2, Column: 66}, + }, + }, + StartPos: ast.Position{Offset: 59, Line: 2, Column: 58}, + }, + FunctionBlock: &ast.FunctionBlock{ + Block: &ast.Block{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 69, Line: 2, Column: 68}, + EndPos: ast.Position{Offset: 70, Line: 2, Column: 69}, + }, + }, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, + result.Declarations(), + ) +} + +func TestParseDictionaryTypeInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let x: {String: Int} = {} + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{Identifier: "x", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.DictionaryType{ + KeyType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "String", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + }, + ValueType: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 27, Line: 2, Column: 26}, + }, + Value: &ast.DictionaryExpression{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 29, Line: 2, Column: 28}, + EndPos: ast.Position{Offset: 30, Line: 2, Column: 29}, + }, + }, + StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + }, + }, + result.Declarations(), + ) +} + +func TestParseIntegerTypes(t *testing.T) { + + t.Parallel() + + const code = ` + let a: Int8 = 1 + let b: Int16 = 2 + let c: Int32 = 3 + let d: Int64 = 4 + let e: UInt8 = 5 + let f: UInt16 = 6 + let g: UInt32 = 7 + let h: UInt64 = 8 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + a := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int8", + Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 10, Line: 2, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + } + b := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 25, Line: 3, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int16", + Pos: ast.Position{Offset: 28, Line: 3, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 28, Line: 3, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 34, Line: 3, Column: 15}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 36, Line: 3, Column: 17}, + EndPos: ast.Position{Offset: 36, Line: 3, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 21, Line: 3, Column: 2}, + } + c := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "c", + Pos: ast.Position{Offset: 44, Line: 4, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int32", + Pos: ast.Position{Offset: 47, Line: 4, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 47, Line: 4, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 53, Line: 4, Column: 15}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("3"), + Value: big.NewInt(3), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 55, Line: 4, Column: 17}, + EndPos: ast.Position{Offset: 55, Line: 4, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 40, Line: 4, Column: 2}, + } + d := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "d", + Pos: ast.Position{Offset: 63, Line: 5, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int64", + Pos: ast.Position{Offset: 66, Line: 5, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 66, Line: 5, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 72, Line: 5, Column: 15}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("4"), + Value: big.NewInt(4), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 74, Line: 5, Column: 17}, + EndPos: ast.Position{Offset: 74, Line: 5, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 59, Line: 5, Column: 2}, + } + e := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "e", + Pos: ast.Position{Offset: 82, Line: 6, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "UInt8", + Pos: ast.Position{Offset: 85, Line: 6, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 85, Line: 6, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 91, Line: 6, Column: 15}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("5"), + Value: big.NewInt(5), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 93, Line: 6, Column: 17}, + EndPos: ast.Position{Offset: 93, Line: 6, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 78, Line: 6, Column: 2}, + } + f := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 101, Line: 7, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "UInt16", + Pos: ast.Position{Offset: 104, Line: 7, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 104, Line: 7, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 111, Line: 7, Column: 16}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("6"), + Value: big.NewInt(6), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 113, Line: 7, Column: 18}, + EndPos: ast.Position{Offset: 113, Line: 7, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 97, Line: 7, Column: 2}, + } + g := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "g", + Pos: ast.Position{Offset: 121, Line: 8, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "UInt32", + Pos: ast.Position{Offset: 124, Line: 8, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 124, Line: 8, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 131, Line: 8, Column: 16}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("7"), + Value: big.NewInt(7), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 133, Line: 8, Column: 18}, + EndPos: ast.Position{Offset: 133, Line: 8, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 117, Line: 8, Column: 2}, + } + h := &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "h", + Pos: ast.Position{Offset: 141, Line: 9, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "UInt64", + Pos: ast.Position{Offset: 144, Line: 9, Column: 9}, + }, + }, + StartPos: ast.Position{Offset: 144, Line: 9, Column: 9}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 151, Line: 9, Column: 16}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("8"), + Value: big.NewInt(8), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 153, Line: 9, Column: 18}, + EndPos: ast.Position{Offset: 153, Line: 9, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 137, Line: 9, Column: 2}, + } + + utils.AssertEqualWithDiff(t, + []ast.Declaration{a, b, c, d, e, f, g, h}, + result.Declarations(), + ) +} + +func TestParseFunctionTypeInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let add: ((Int8, Int16): Int32) = nothing + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "add", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int8", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + }, + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int16", + Pos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + }, + StartPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int32", + Pos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + }, + StartPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 12, Line: 2, Column: 11}, + EndPos: ast.Position{Offset: 33, Line: 2, Column: 32}, + }, + }, + StartPos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 35, Line: 2, Column: 34}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "nothing", + Pos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionArrayType(t *testing.T) { + + t.Parallel() + + const code = ` + let test: [((Int8): Int16); 2] = [] + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.ConstantSizedType{ + Type: &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int8", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int16", + Pos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + EndPos: ast.Position{Offset: 28, Line: 2, Column: 27}, + }, + }, + Size: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 31, Line: 2, Column: 30}, + EndPos: ast.Position{Offset: 31, Line: 2, Column: 30}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + EndPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 34, Line: 2, Column: 33}, + }, + Value: &ast.ArrayExpression{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 36, Line: 2, Column: 35}, + EndPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionTypeWithArrayReturnType(t *testing.T) { + + t.Parallel() + + const code = ` + let test: ((Int8): [Int16; 2]) = nothing + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int8", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.ConstantSizedType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int16", + Pos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + Size: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 30, Line: 2, Column: 29}, + EndPos: ast.Position{Offset: 30, Line: 2, Column: 29}, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + EndPos: ast.Position{Offset: 31, Line: 2, Column: 30}, + }, + }, + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + EndPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 34, Line: 2, Column: 33}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "nothing", + Pos: ast.Position{Offset: 36, Line: 2, Column: 35}, + }, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionTypeWithFunctionReturnTypeInParentheses(t *testing.T) { + + t.Parallel() + + const code = ` + let test: ((Int8): ((Int16): Int32)) = nothing + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int8", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int16", + Pos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + StartPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int32", + Pos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + StartPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + EndPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + EndPos: ast.Position{Offset: 38, Line: 2, Column: 37}, + }, + }, + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 40, Line: 2, Column: 39}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "nothing", + Pos: ast.Position{Offset: 42, Line: 2, Column: 41}, + }, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionTypeWithFunctionReturnType(t *testing.T) { + + t.Parallel() + + const code = ` + let test: ((Int8): ((Int16): Int32)) = nothing + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + Identifier: ast.Identifier{ + Identifier: "test", + Pos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + IsConstant: true, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int8", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ParameterTypeAnnotations: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int16", + Pos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + StartPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int32", + Pos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + }, + StartPos: ast.Position{Offset: 32, Line: 2, Column: 31}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + EndPos: ast.Position{Offset: 37, Line: 2, Column: 36}, + }, + }, + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + EndPos: ast.Position{Offset: 38, Line: 2, Column: 37}, + }, + }, + StartPos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 40, Line: 2, Column: 39}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "nothing", + Pos: ast.Position{Offset: 42, Line: 2, Column: 41}, + }, + }, + StartPos: ast.Position{Offset: 3, Line: 2, Column: 2}, + }, + }, + result.Declarations(), + ) +} + +func TestParseOptionalTypeDouble(t *testing.T) { + + t.Parallel() + + const code = ` + let x: Int?? = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.OptionalType{ + Type: &ast.OptionalType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + }, + EndPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseFunctionTypeWithResourceTypeAnnotation(t *testing.T) { + + t.Parallel() + + const code = ` + let f: ((): @R) = g + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "f", + Pos: ast.Position{Offset: 13, Line: 2, Column: 12}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.FunctionType{ + ParameterTypeAnnotations: nil, + ReturnTypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "g", + Pos: ast.Position{Offset: 27, Line: 2, Column: 26}, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, + }, + }, + result.Declarations(), + ) +} + +func TestParseReferenceTypeInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let x: &[&R] = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.ReferenceType{ + Type: &ast.VariableSizedType{ + Type: &ast.ReferenceType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseOptionalReference(t *testing.T) { + + t.Parallel() + + const code = ` + let x: &R? = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.OptionalType{ + Type: &ast.ReferenceType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + EndPos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + EndPos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseRestrictedReferenceTypeWithBaseType(t *testing.T) { + + t.Parallel() + + const code = ` + let x: &R{I} = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.ReferenceType{ + Type: &ast.IntersectionType{ + LegacyRestrictedType: &ast.NominalType{ + NestedIdentifiers: nil, + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "I", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseRestrictedReferenceTypeWithoutBaseType(t *testing.T) { + + t.Parallel() + + const code = ` + let x: &{I} = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.ReferenceType{ + Type: &ast.IntersectionType{ + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "I", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + EndPos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseOptionalRestrictedType(t *testing.T) { + + t.Parallel() + + const code = ` + let x: @R{I}? = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.OptionalType{ + Type: &ast.IntersectionType{ + LegacyRestrictedType: &ast.NominalType{ + NestedIdentifiers: nil, + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 16, Line: 2, Column: 15}, + }, + }, + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "I", + Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + }, + EndPos: ast.Position{Offset: 20, Line: 2, Column: 19}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + EndPos: ast.Position{Offset: 24, Line: 2, Column: 23}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 22, Line: 2, Column: 21}, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseOptionalRestrictedTypeOnlyRestrictions(t *testing.T) { + + t.Parallel() + + const code = ` + let x: @{I}? = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: true, + Type: &ast.OptionalType{ + Type: &ast.IntersectionType{ + Types: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "I", + Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, + EndPos: ast.Position{Offset: 18, Line: 2, Column: 17}, + }, + }, + EndPos: ast.Position{Offset: 19, Line: 2, Column: 18}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + EndPos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 21, Line: 2, Column: 20}, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + }, + }, + result.Declarations(), + ) +} + +func TestParseAuthorizedReferenceType(t *testing.T) { + + t.Parallel() + + const code = ` + let x: auth &R = 1 + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Offset: 12, Line: 2, Column: 11}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.ReferenceType{ + LegacyAuthorized: true, + Authorization: nil, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", Pos: ast.Position{Offset: 21, Line: 2, Column: 20}}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + StartPos: ast.Position{Offset: 15, Line: 2, Column: 14}, + }, + Value: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + EndPos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 23, Line: 2, Column: 22}, + }, + StartPos: ast.Position{Offset: 8, Line: 2, Column: 7}, + SecondTransfer: nil, + SecondValue: nil, + ParentIfStatement: nil, + }, + }, + result.Declarations(), + ) +} + +func TestParseInstantiationTypeInVariableDeclaration(t *testing.T) { + + t.Parallel() + + const code = ` + let a: MyContract.MyStruct = b + ` + result, errs := testParseProgram(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.VariableDeclaration{ + Access: ast.AccessNotSpecified, + IsConstant: true, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{Offset: 11, Line: 2, Column: 10}, + }, + TypeAnnotation: &ast.TypeAnnotation{ + IsResource: false, + Type: &ast.InstantiationType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "MyContract", + Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + NestedIdentifiers: []ast.Identifier{ + { + Identifier: "MyStruct", + Pos: ast.Position{Offset: 25, Line: 2, Column: 24}, + }, + }, + }, + TypeArguments: []*ast.TypeAnnotation{ + { + IsResource: false, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Offset: 34, Line: 2, Column: 33}, + }, + }, + StartPos: ast.Position{Offset: 34, Line: 2, Column: 33}, + }, + { + IsResource: true, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "R", + Pos: ast.Position{Offset: 40, Line: 2, Column: 39}, + }, + }, + StartPos: ast.Position{Offset: 39, Line: 2, Column: 38}, + }, + }, + TypeArgumentsStartPos: ast.Position{Offset: 33, Line: 2, Column: 32}, + EndPos: ast.Position{Offset: 42, Line: 2, Column: 41}, + }, + StartPos: ast.Position{Offset: 14, Line: 2, Column: 13}, + }, + Transfer: &ast.Transfer{ + Operation: ast.TransferOperationCopy, + Pos: ast.Position{Offset: 44, Line: 2, Column: 43}, + }, + Value: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "b", + Pos: ast.Position{Offset: 46, Line: 2, Column: 45}, + }, + }, + StartPos: ast.Position{Offset: 7, Line: 2, Column: 6}, + }, + }, + result.Declarations(), + ) +} + +func TestParseConstantSizedSizedArrayWithTrailingUnderscoreSize(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(` + let T:[d;0_]=0 + `) + + utils.AssertEqualWithDiff(t, + []error{ + &InvalidIntegerLiteralError{ + Literal: "0_", + IntegerLiteralKind: common.IntegerLiteralKindDecimal, + InvalidIntegerLiteralKind: InvalidNumberLiteralKindTrailingUnderscore, + Range: ast.Range{ + StartPos: ast.Position{Line: 2, Column: 12, Offset: 13}, + EndPos: ast.Position{Line: 2, Column: 13, Offset: 14}, + }, + }, + }, + errs, + ) +} diff --git a/runtime/parser/benchmark_test.go b/runtime/parser/benchmark_test.go index 13ee5d8689..1828ca6886 100644 --- a/runtime/parser/benchmark_test.go +++ b/runtime/parser/benchmark_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/comment.go b/runtime/parser/comment.go index 5dc763e1f4..1ca171889e 100644 --- a/runtime/parser/comment.go +++ b/runtime/parser/comment.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/declaration.go b/runtime/parser/declaration.go index 2bec673b50..4a9345b584 100644 --- a/runtime/parser/declaration.go +++ b/runtime/parser/declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -166,7 +166,7 @@ func parseDeclaration(p *parser, docString string) (ast.Declaration, error) { } return parseEntitlementOrMappingDeclaration(p, access, accessPos, docString) - case keywordAttachment: + case KeywordAttachment: err := rejectStaticAndNativeModifiers(p, staticPos, nativePos, common.DeclarationKindAttachment) if err != nil { return nil, err @@ -206,7 +206,7 @@ func parseDeclaration(p *parser, docString string) (ast.Declaration, error) { case KeywordView: if purity != ast.FunctionPurityUnspecified { - return nil, p.syntaxError("invalid second view modifier") + p.report(p.syntaxError("invalid second view modifier")) } pos := p.current.StartPos @@ -215,10 +215,15 @@ func parseDeclaration(p *parser, docString string) (ast.Declaration, error) { continue case KeywordPub: - return nil, p.syntaxErrorWithSuggestedFix("`pub` is no longer a valid access keyword", "`access(all)`") + err := handlePub(p) + if err != nil { + return nil, err + } + continue case KeywordPriv: - return nil, p.syntaxErrorWithSuggestedFix("`priv` is no longer a valid access keyword", "`access(self)`") + handlePriv(p) + continue case KeywordAccess: if access != ast.AccessNotSpecified { @@ -275,6 +280,67 @@ func parseDeclaration(p *parser, docString string) (ast.Declaration, error) { } } +func handlePriv(p *parser) { + p.report(p.syntaxErrorWithSuggestedFix( + "`priv` is no longer a valid access keyword", + "access(self)", + )) + p.next() +} + +func handlePub(p *parser) error { + pubToken := p.current + + p.nextSemanticToken() + + // Try to parse `(set)` if given + if !p.current.Is(lexer.TokenParenOpen) { + p.report(NewSyntaxErrorWithSuggestedReplacement( + pubToken.Range, + "`pub` is no longer a valid access keyword", + "access(all)", + )) + return nil + } + + // Skip the opening paren + p.nextSemanticToken() + + const keywordSet = "set" + + if !p.current.Is(lexer.TokenIdentifier) { + return p.syntaxError( + "expected keyword %q, got %s", + keywordSet, + p.current.Type, + ) + } + + keyword := p.currentTokenSource() + if string(keyword) != keywordSet { + return p.syntaxError( + "expected keyword %q, got %q", + keywordSet, + keyword, + ) + } + + // Skip the `set` keyword + p.nextSemanticToken() + + _, err := p.mustOne(lexer.TokenParenClose) + if err != nil { + return err + } + + p.report(NewSyntaxError( + pubToken.StartPos, + "`pub(set)` is no longer a valid access keyword", + )) + + return nil +} + var enumeratedAccessModifierKeywords = common.EnumerateWords( []string{ strconv.Quote(KeywordAll), @@ -400,6 +466,20 @@ func parseAccess(p *parser) (ast.Access, error) { // Skip the keyword p.nextSemanticToken() + case KeywordMapping: + + keywordPos := p.current.StartPos + // Skip the keyword + p.nextSemanticToken() + + entitlementMapName, err := parseNominalType(p, lowestBindingPower) + if err != nil { + return ast.AccessNotSpecified, err + } + access = ast.NewMappedAccess(entitlementMapName, keywordPos) + + p.skipSpaceAndComments() + default: entitlements, err := parseEntitlementList(p) if err != nil { @@ -861,7 +941,9 @@ func parseEventDeclaration( // Skip the identifier p.next() - parameterList, err := parseParameterList(p) + // if this is a `ResourceDestroyed` event (i.e., a default event declaration), parse default arguments + parseDefaultArguments := ast.IsResourceDestructionDefaultEvent(identifier.Identifier) + parameterList, err := parseParameterList(p, parseDefaultArguments) if err != nil { return nil, err } @@ -1328,47 +1410,6 @@ func parseCompositeOrInterfaceDeclaration( } } -func parseRequiredEntitlement(p *parser) (*ast.NominalType, error) { - if !p.isToken(p.current, lexer.TokenIdentifier, KeywordRequire) { - return nil, p.syntaxError( - "expected 'require', got %s", - p.current.Type, - ) - } - - // skip the `require` keyword - p.nextSemanticToken() - - if !p.isToken(p.current, lexer.TokenIdentifier, KeywordEntitlement) { - return nil, p.syntaxError( - "expected 'entitlement', got %s", - p.current.Type, - ) - } - - // skip the `entitlement` keyword - p.nextSemanticToken() - - return rejectAccessKeywords(p, func() (*ast.NominalType, error) { - return parseNominalType(p, lowestBindingPower) - }) -} - -func parseRequiredEntitlements(p *parser) ([]*ast.NominalType, error) { - var requiredEntitlements []*ast.NominalType - - for p.isToken(p.current, lexer.TokenIdentifier, KeywordRequire) { - requiredEntitlement, err := parseRequiredEntitlement(p) - if err != nil { - return nil, err - } - requiredEntitlements = append(requiredEntitlements, requiredEntitlement) - p.skipSpaceAndComments() - } - - return requiredEntitlements, nil -} - func parseAttachmentDeclaration( p *parser, access ast.Access, @@ -1434,13 +1475,6 @@ func parseAttachmentDeclaration( p.skipSpaceAndComments() - requiredEntitlements, err := parseRequiredEntitlements(p) - if err != nil { - return nil, err - } - - p.skipSpaceAndComments() - members, err := parseMembersAndNestedDeclarations(p, lexer.TokenBraceClose) if err != nil { return nil, err @@ -1465,7 +1499,6 @@ func parseAttachmentDeclaration( identifier, baseNominalType, conformances, - requiredEntitlements, members, docString, declarationRange, @@ -1652,7 +1685,7 @@ func parseMemberOrNestedDeclaration(p *parser, docString string) (ast.Declaratio } return parseCompositeOrInterfaceDeclaration(p, access, accessPos, docString) - case keywordAttachment: + case KeywordAttachment: return parseAttachmentDeclaration(p, access, accessPos, docString) case KeywordView: @@ -1665,10 +1698,15 @@ func parseMemberOrNestedDeclaration(p *parser, docString string) (ast.Declaratio continue case KeywordPub: - return nil, p.syntaxErrorWithSuggestedFix("`pub` is no longer a valid access keyword", "`access(all)`") + err := handlePub(p) + if err != nil { + return nil, err + } + continue case KeywordPriv: - return nil, p.syntaxErrorWithSuggestedFix("`priv` is no longer a valid access keyword", "`access(self)`") + handlePriv(p) + continue case KeywordAccess: if access != ast.AccessNotSpecified { @@ -1884,10 +1922,7 @@ func parseSpecialFunctionDeclaration( declarationKind = common.DeclarationKindInitializer case KeywordDestroy: - if purity == ast.FunctionPurityView { - return nil, NewSyntaxError(*purityPos, "invalid view annotation on destructor") - } - declarationKind = common.DeclarationKindDestructor + p.report(&CustomDestructorError{Pos: identifier.Pos}) case KeywordPrepare: declarationKind = common.DeclarationKindPrepare diff --git a/runtime/parser/declaration_test.go b/runtime/parser/declaration_test.go index 7a36b96683..9f3544050f 100644 --- a/runtime/parser/declaration_test.go +++ b/runtime/parser/declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -388,7 +388,9 @@ func TestParseParameterList(t *testing.T) { return Parse( nil, []byte(input), - parseParameterList, + func(p *parser) (*ast.ParameterList, error) { + return parseParameterList(p, false) + }, Config{}, ) } @@ -966,9 +968,9 @@ func TestParseFunctionDeclaration(t *testing.T) { t.Run("without space after return type", func(t *testing.T) { // A brace after the return type is ambiguous: - // It could be the start of a intersection type. + // It could be the start of an intersection type. // However, if there is space after the brace, which is most common - // in function declarations, we consider it not a intersection type + // in function declarations, we consider it not an intersection type t.Parallel() @@ -2011,6 +2013,48 @@ func TestParseAccess(t *testing.T) { ) }) + t.Run("access, entitlement map", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( mapping foo )") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.MappedAccess{ + EntitlementMap: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "foo", + Pos: ast.Position{Offset: 17, Line: 1, Column: 17}, + }, + }, + StartPos: ast.Position{Offset: 9, Line: 1, Column: 9}, + }, + result, + ) + }) + + t.Run("access, entitlement map no name", func(t *testing.T) { + + t.Parallel() + + result, errs := parse("access ( mapping )") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token in type: ')'", + Pos: ast.Position{Offset: 18, Line: 1, Column: 18}, + }, + }, + errs, + ) + + utils.AssertEqualWithDiff(t, + ast.AccessNotSpecified, + result, + ) + }) + } func TestParseImportDeclaration(t *testing.T) { @@ -2557,6 +2601,150 @@ func TestParseEvent(t *testing.T) { ) }) + t.Run("default event", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseDeclarations(` access(all) event ResourceDestroyed ( a : String = "foo")`) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + []ast.Declaration{ + &ast.CompositeDeclaration{ + Members: ast.NewUnmeteredMembers( + []ast.Declaration{ + &ast.SpecialFunctionDeclaration{ + FunctionDeclaration: &ast.FunctionDeclaration{ + ParameterList: &ast.ParameterList{ + Parameters: []*ast.Parameter{ + { + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "String", + Pos: ast.Position{ + Offset: 43, + Line: 1, + Column: 43, + }, + }, + }, + StartPos: ast.Position{ + Offset: 43, + Line: 1, + Column: 43, + }, + }, + DefaultArgument: &ast.StringExpression{ + Value: "foo", + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 52, + Line: 1, + Column: 52, + }, + EndPos: ast.Position{ + Offset: 56, + Line: 1, + Column: 56, + }, + }, + }, + Identifier: ast.Identifier{ + Identifier: "a", + Pos: ast.Position{ + Offset: 39, + Line: 1, + Column: 39, + }, + }, + StartPos: ast.Position{ + Offset: 39, + Line: 1, + Column: 39, + }, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 37, + Line: 1, + Column: 37, + }, + EndPos: ast.Position{ + Offset: 57, + Line: 1, + Column: 57, + }, + }, + }, + StartPos: ast.Position{ + Offset: 37, + Line: 1, + Column: 37, + }, + Access: ast.AccessNotSpecified, + }, + Kind: common.DeclarationKindInitializer, + }, + }, + ), + Identifier: ast.Identifier{ + Identifier: "ResourceDestroyed", + Pos: ast.Position{ + Offset: 19, + Line: 1, + Column: 19, + }, + }, + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 1, + Line: 1, + Column: 1, + }, + EndPos: ast.Position{ + Offset: 57, + Line: 1, + Column: 57, + }, + }, + Access: ast.AccessAll, + CompositeKind: common.CompositeKindEvent, + }, + }, + result, + ) + }) + + t.Run("default event with no default arg", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(" access(all) event ResourceDestroyed ( a : Int )") + + utils.AssertEqualWithDiff(t, []error{ + &SyntaxError{ + Pos: ast.Position{Line: 1, Column: 47, Offset: 47}, + Message: "expected a default argument after type annotation, got ')'", + }, + }, errs) + }) + + t.Run("non-default event with default arg", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(" access(all) event Foo ( a : Int = 3)") + + utils.AssertEqualWithDiff(t, []error{ + &SyntaxError{ + Pos: ast.Position{Line: 1, Column: 33, Offset: 33}, + Message: "cannot use a default argument for this function", + }, + }, errs) + }) + t.Run("invalid event name", func(t *testing.T) { _, errs := testParseDeclarations(`event continue {}`) @@ -3479,25 +3667,6 @@ func TestParseCompositeDeclaration(t *testing.T) { ) }) - t.Run("resource with view destructor", func(t *testing.T) { - - t.Parallel() - - _, errs := testParseDeclarations(`resource S { - view destroy() {} - }`) - - utils.AssertEqualWithDiff(t, - []error{ - &SyntaxError{ - Message: "invalid view annotation on destructor", - Pos: ast.Position{Offset: 17, Line: 2, Column: 3}, - }, - }, - errs, - ) - }) - t.Run("resource with view field", func(t *testing.T) { t.Parallel() @@ -3801,7 +3970,6 @@ func TestParseAttachmentDeclaration(t *testing.T) { result, errs := testParseDeclarations(`access(all) attachment E for S { access(all) var foo: Int init() {} - destroy() {} access(all) fun getFoo(): Int {} }`) require.Empty(t, errs) @@ -3922,67 +4090,17 @@ func TestParseAttachmentDeclaration(t *testing.T) { }, Kind: 0xd, }, - &ast.SpecialFunctionDeclaration{ - FunctionDeclaration: &ast.FunctionDeclaration{ - ParameterList: &ast.ParameterList{ - Range: ast.Range{ - StartPos: ast.Position{ - Offset: 84, - Line: 4, - Column: 10, - }, - EndPos: ast.Position{ - Offset: 85, - Line: 4, - Column: 11, - }, - }, - }, - FunctionBlock: &ast.FunctionBlock{ - Block: &ast.Block{ - Range: ast.Range{ - StartPos: ast.Position{ - Offset: 87, - Line: 4, - Column: 13, - }, - EndPos: ast.Position{ - Offset: 88, - Line: 4, - Column: 14, - }, - }, - }, - }, - Identifier: ast.Identifier{ - Identifier: "destroy", - Pos: ast.Position{ - Offset: 77, - Line: 4, - Column: 3, - }, - }, - StartPos: ast.Position{ - Offset: 77, - Line: 4, - Column: 3, - }, - Access: ast.AccessNotSpecified, - Flags: 0x00, - }, - Kind: 0xe, - }, &ast.FunctionDeclaration{ ParameterList: &ast.ParameterList{ Range: ast.Range{ StartPos: ast.Position{ - Offset: 115, - Line: 5, + Offset: 99, + Line: 4, Column: 25, }, EndPos: ast.Position{ - Offset: 116, - Line: 5, + Offset: 100, + Line: 4, Column: 26, }, }, @@ -3992,15 +4110,15 @@ func TestParseAttachmentDeclaration(t *testing.T) { Identifier: ast.Identifier{ Identifier: "Int", Pos: ast.Position{ - Offset: 119, - Line: 5, + Offset: 103, + Line: 4, Column: 29, }, }, }, StartPos: ast.Position{ - Offset: 119, - Line: 5, + Offset: 103, + Line: 4, Column: 29, }, IsResource: false, @@ -4009,13 +4127,13 @@ func TestParseAttachmentDeclaration(t *testing.T) { Block: &ast.Block{ Range: ast.Range{ StartPos: ast.Position{ - Offset: 123, - Line: 5, + Offset: 107, + Line: 4, Column: 33, }, EndPos: ast.Position{ - Offset: 124, - Line: 5, + Offset: 108, + Line: 4, Column: 34, }, }, @@ -4024,14 +4142,14 @@ func TestParseAttachmentDeclaration(t *testing.T) { Identifier: ast.Identifier{ Identifier: "getFoo", Pos: ast.Position{ - Offset: 109, - Line: 5, + Offset: 93, + Line: 4, Column: 19, }, }, StartPos: ast.Position{ - Offset: 93, - Line: 5, + Offset: 77, + Line: 4, Column: 3, }, Access: ast.AccessAll, @@ -4045,133 +4163,7 @@ func TestParseAttachmentDeclaration(t *testing.T) { Column: 0, }, EndPos: ast.Position{ - Offset: 128, - Line: 6, - Column: 2, - }, - }, - }, - }, - result, - ) - }) - - t.Run("required entitlements", func(t *testing.T) { - - t.Parallel() - - result, errs := testParseDeclarations(`access(all) attachment E for S { - require entitlement X - require entitlement Y - destroy() {} - }`) - require.Empty(t, errs) - - utils.AssertEqualWithDiff(t, - []ast.Declaration{ - &ast.AttachmentDeclaration{ - Access: ast.AccessAll, - Identifier: ast.Identifier{ - Identifier: "E", - Pos: ast.Position{ - Offset: 23, - Line: 1, - Column: 23, - }, - }, - BaseType: &ast.NominalType{ - Identifier: ast.Identifier{ - Identifier: "S", - Pos: ast.Position{ - Offset: 29, - Line: 1, - Column: 29, - }, - }, - }, - RequiredEntitlements: []*ast.NominalType{ - { - Identifier: ast.Identifier{ - Identifier: "X", - Pos: ast.Position{ - Offset: 56, - Line: 2, - Column: 23, - }, - }, - }, - { - Identifier: ast.Identifier{ - Identifier: "Y", - Pos: ast.Position{ - Offset: 81, - Line: 3, - Column: 23, - }, - }, - }, - }, - Members: ast.NewUnmeteredMembers( - []ast.Declaration{ - &ast.SpecialFunctionDeclaration{ - FunctionDeclaration: &ast.FunctionDeclaration{ - ParameterList: &ast.ParameterList{ - Range: ast.Range{ - StartPos: ast.Position{ - Offset: 93, - Line: 4, - Column: 10, - }, - EndPos: ast.Position{ - Offset: 94, - Line: 4, - Column: 11, - }, - }, - }, - FunctionBlock: &ast.FunctionBlock{ - Block: &ast.Block{ - Range: ast.Range{ - StartPos: ast.Position{ - Offset: 96, - Line: 4, - Column: 13, - }, - EndPos: ast.Position{ - Offset: 97, - Line: 4, - Column: 14, - }, - }, - }, - }, - Identifier: ast.Identifier{ - Identifier: "destroy", - Pos: ast.Position{ - Offset: 86, - Line: 4, - Column: 3, - }, - }, - StartPos: ast.Position{ - Offset: 86, - Line: 4, - Column: 3, - }, - Access: ast.AccessNotSpecified, - }, - Kind: 0xe, - }, - }, - ), - Range: ast.Range{ - StartPos: ast.Position{ - Offset: 0, - Line: 1, - Column: 0, - }, - EndPos: ast.Position{ - Offset: 101, + Offset: 112, Line: 5, Column: 2, }, @@ -4182,50 +4174,17 @@ func TestParseAttachmentDeclaration(t *testing.T) { ) }) - t.Run("required entitlements error no identifier", func(t *testing.T) { - - t.Parallel() - - _, errs := testParseDeclarations(`access(all) attachment E for S { - require entitlement - destroy() {} - }`) - utils.AssertEqualWithDiff(t, []error{ - &SyntaxError{ - Pos: ast.Position{Line: 3, Column: 10, Offset: 67}, - Message: "unexpected '('", - }, - }, errs) - }) - - t.Run("required entitlements error no entitlement", func(t *testing.T) { + t.Run("required entitlements error", func(t *testing.T) { t.Parallel() _, errs := testParseDeclarations(`access(all) attachment E for S { - require X - destroy() {} - }`) - utils.AssertEqualWithDiff(t, []error{ - &SyntaxError{ - Pos: ast.Position{Line: 2, Column: 11, Offset: 44}, - Message: "expected 'entitlement', got identifier", - }, - }, errs) - }) - - t.Run("required entitlements error non-nominal type", func(t *testing.T) { - - t.Parallel() - - _, errs := testParseDeclarations(`access(all) attachment E for S { - require entitlement [X] - destroy() {} + require entitlement X }`) utils.AssertEqualWithDiff(t, []error{ &SyntaxError{ - Pos: ast.Position{Line: 2, Column: 26, Offset: 59}, - Message: "unexpected non-nominal type: [X]", + Pos: ast.Position{Line: 2, Column: 3, Offset: 36}, + Message: "unexpected identifier", }, }, errs) }) @@ -4408,8 +4367,6 @@ func TestParseInterfaceDeclaration(t *testing.T) { access(all) fun getFoo(): Int access(all) fun getBar(): Int {} - - destroy() {} } `) @@ -4645,56 +4602,6 @@ func TestParseInterfaceDeclaration(t *testing.T) { }, Access: ast.AccessAll, }, - &ast.SpecialFunctionDeclaration{ - FunctionDeclaration: &ast.FunctionDeclaration{ - ParameterList: &ast.ParameterList{ - Range: ast.Range{ - StartPos: ast.Position{ - Offset: 219, - Line: 11, - Column: 21, - }, - EndPos: ast.Position{ - Offset: 220, - Line: 11, - Column: 22, - }, - }, - }, - FunctionBlock: &ast.FunctionBlock{ - Block: &ast.Block{ - Range: ast.Range{ - StartPos: ast.Position{ - Offset: 222, - Line: 11, - Column: 24, - }, - EndPos: ast.Position{ - Offset: 223, - Line: 11, - Column: 25, - }, - }, - }, - }, - DocString: "", - Identifier: ast.Identifier{ - Identifier: "destroy", - Pos: ast.Position{ - Offset: 212, - Line: 11, - Column: 14, - }, - }, - StartPos: ast.Position{ - Offset: 212, - Line: 11, - Column: 14, - }, - Access: ast.AccessNotSpecified, - }, - Kind: 0xe, - }, }, ), Identifier: ast.Identifier{ @@ -4712,8 +4619,8 @@ func TestParseInterfaceDeclaration(t *testing.T) { Column: 10, }, EndPos: ast.Position{ - Offset: 235, - Line: 12, + Offset: 207, + Line: 10, Column: 10, }, }, @@ -7244,6 +7151,39 @@ func TestParseInvalidImportWithPurity(t *testing.T) { ) } +func TestParseInvalidDefaultArgument(t *testing.T) { + + t.Parallel() + + t.Run("function declaration ", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(" access(all) fun foo ( a : Int = 3) { } ") + + utils.AssertEqualWithDiff(t, []error{ + &SyntaxError{ + Pos: ast.Position{Line: 1, Column: 31, Offset: 31}, + Message: "cannot use a default argument for this function", + }, + }, errs) + }) + + t.Run("function expression ", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseDeclarations(" let foo = fun ( a : Int = 3) { } ") + + utils.AssertEqualWithDiff(t, []error{ + &SyntaxError{ + Pos: ast.Position{Line: 1, Column: 25, Offset: 25}, + Message: "cannot use a default argument for this function", + }, + }, errs) + }) +} + func TestParseInvalidEventWithPurity(t *testing.T) { t.Parallel() @@ -7772,54 +7712,14 @@ func TestParseDestructor(t *testing.T) { destroy() {} } ` - result, errs := testParseProgram(code) - require.Empty(t, errs) - + _, errs := testParseDeclarations(code) utils.AssertEqualWithDiff(t, - []ast.Declaration{ - &ast.CompositeDeclaration{ - Access: ast.AccessNotSpecified, - CompositeKind: common.CompositeKindResource, - Identifier: ast.Identifier{ - Identifier: "Test", - Pos: ast.Position{Offset: 18, Line: 2, Column: 17}, - }, - Members: ast.NewUnmeteredMembers( - []ast.Declaration{ - &ast.SpecialFunctionDeclaration{ - Kind: common.DeclarationKindDestructor, - FunctionDeclaration: &ast.FunctionDeclaration{ - Access: ast.AccessNotSpecified, - Identifier: ast.Identifier{ - Identifier: "destroy", - Pos: ast.Position{Offset: 37, Line: 3, Column: 12}, - }, - ParameterList: &ast.ParameterList{ - Range: ast.Range{ - StartPos: ast.Position{Offset: 44, Line: 3, Column: 19}, - EndPos: ast.Position{Offset: 45, Line: 3, Column: 20}, - }, - }, - FunctionBlock: &ast.FunctionBlock{ - Block: &ast.Block{ - Range: ast.Range{ - StartPos: ast.Position{Offset: 47, Line: 3, Column: 22}, - EndPos: ast.Position{Offset: 48, Line: 3, Column: 23}, - }, - }, - }, - StartPos: ast.Position{Offset: 37, Line: 3, Column: 12}, - }, - }, - }, - ), - Range: ast.Range{ - StartPos: ast.Position{Offset: 9, Line: 2, Column: 8}, - EndPos: ast.Position{Offset: 58, Line: 4, Column: 8}, - }, + []error{ + &CustomDestructorError{ + Pos: ast.Position{Offset: 37, Line: 3, Column: 12}, }, }, - result.Declarations(), + errs, ) } @@ -7985,7 +7885,6 @@ func TestParseInvalidCompositeFunctionNames(t *testing.T) { ` %[1]s %[2]s Test %[4]s { fun init() %[3]s - fun destroy() %[3]s } `, kind.Keyword(), @@ -9086,9 +8985,6 @@ func TestParseMemberDocStrings(t *testing.T) { /// initNoBlock init() - - /// destroyWithBlock - destroy() {} } `) @@ -9141,37 +9037,11 @@ func TestParseMemberDocStrings(t *testing.T) { StartPos: ast.Position{Offset: 121, Line: 8, Column: 14}, }, }, - &ast.SpecialFunctionDeclaration{ - Kind: common.DeclarationKindDestructor, - FunctionDeclaration: &ast.FunctionDeclaration{ - Access: ast.AccessNotSpecified, - DocString: " destroyWithBlock", - Identifier: ast.Identifier{ - Identifier: "destroy", - Pos: ast.Position{Offset: 178, Line: 11, Column: 14}, - }, - ParameterList: &ast.ParameterList{ - Range: ast.Range{ - StartPos: ast.Position{Offset: 185, Line: 11, Column: 21}, - EndPos: ast.Position{Offset: 186, Line: 11, Column: 22}, - }, - }, - FunctionBlock: &ast.FunctionBlock{ - Block: &ast.Block{ - Range: ast.Range{ - StartPos: ast.Position{Offset: 188, Line: 11, Column: 24}, - EndPos: ast.Position{Offset: 189, Line: 11, Column: 25}, - }, - }, - }, - StartPos: ast.Position{Offset: 178, Line: 11, Column: 14}, - }, - }, }, ), Range: ast.Range{ StartPos: ast.Position{Offset: 11, Line: 2, Column: 10}, - EndPos: ast.Position{Offset: 201, Line: 12, Column: 10}, + EndPos: ast.Position{Offset: 138, Line: 9, Column: 10}, }, }, }, @@ -9772,7 +9642,7 @@ func TestSoftKeywordsInFunctionDeclaration(t *testing.T) { }) } - for _, keyword := range softKeywords { + for _, keyword := range SoftKeywords { testSoftKeyword(keyword) } } @@ -9794,7 +9664,7 @@ func TestParseDeprecatedAccessModifiers(t *testing.T) { StartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, EndPos: ast.Position{Offset: 3, Line: 1, Column: 3}, }, - SuggestedFix: "`access(all)`", + SuggestedFix: "access(all)", }, }, errs, @@ -9815,7 +9685,7 @@ func TestParseDeprecatedAccessModifiers(t *testing.T) { StartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, EndPos: ast.Position{Offset: 4, Line: 1, Column: 4}, }, - SuggestedFix: "`access(self)`", + SuggestedFix: "access(self)", }, }, errs, @@ -9830,17 +9700,35 @@ func TestParseDeprecatedAccessModifiers(t *testing.T) { _, errs := testParseDeclarations(" pub(set) fun foo ( ) { }") utils.AssertEqualWithDiff(t, []error{ - &SyntaxErrorWithSuggestedReplacement{ - Message: "`pub` is no longer a valid access keyword", - Range: ast.Range{ - StartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, - EndPos: ast.Position{Offset: 3, Line: 1, Column: 3}, - }, - SuggestedFix: "`access(all)`", + &SyntaxError{ + Message: "`pub(set)` is no longer a valid access keyword", + Pos: ast.Position{Offset: 1, Line: 1, Column: 1}, }, }, errs, ) - }) } + +func TestParseKeywordsAsFieldNames(t *testing.T) { + + t.Parallel() + + for _, keyword := range []string{ + "event", + "contract", + "default", + } { + keyword := keyword + + t.Run(keyword, func(t *testing.T) { + t.Parallel() + + _, errs := testParseDeclarations(fmt.Sprintf( + "struct Foo { var %s: String }", + keyword, + )) + require.Empty(t, errs) + }) + } +} diff --git a/runtime/parser/docstring.go b/runtime/parser/docstring.go index 395609041e..ab8235d0bf 100644 --- a/runtime/parser/docstring.go +++ b/runtime/parser/docstring.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/docstring_test.go b/runtime/parser/docstring_test.go index 80005f9e39..b73edf4aa9 100644 --- a/runtime/parser/docstring_test.go +++ b/runtime/parser/docstring_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/errors.go b/runtime/parser/errors.go index a6e5944005..5d9ce97cc0 100644 --- a/runtime/parser/errors.go +++ b/runtime/parser/errors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,6 +50,10 @@ func (e Error) ChildErrors() []error { return e.Errors } +func (e Error) Unwrap() []error { + return e.Errors +} + // ParserError type ParseError interface { @@ -289,3 +293,49 @@ func (e *MissingCommaInParameterListError) EndPosition(_ common.MemoryGauge) ast func (e *MissingCommaInParameterListError) Error() string { return "missing comma after parameter" } + +// CustomDestructorError + +type CustomDestructorError struct { + Pos ast.Position +} + +var _ ParseError = &CustomDestructorError{} +var _ errors.UserError = &CustomDestructorError{} + +func (*CustomDestructorError) isParseError() {} + +func (*CustomDestructorError) IsUserError() {} + +func (e *CustomDestructorError) StartPosition() ast.Position { + return e.Pos +} + +func (e *CustomDestructorError) EndPosition(_ common.MemoryGauge) ast.Position { + return e.Pos +} + +func (e *CustomDestructorError) Error() string { + return "custom destructor definitions are no longer permitted" +} + +func (e *CustomDestructorError) SecondaryError() string { + return "remove the destructor definition" +} + +// RestrictedTypeError + +type RestrictedTypeError struct { + ast.Range +} + +var _ ParseError = &CustomDestructorError{} +var _ errors.UserError = &CustomDestructorError{} + +func (*RestrictedTypeError) isParseError() {} + +func (*RestrictedTypeError) IsUserError() {} + +func (e *RestrictedTypeError) Error() string { + return "restricted types have been removed; replace with the concrete type or an equivalent intersection type" +} diff --git a/runtime/parser/expression.go b/runtime/parser/expression.go index b9d1b5c8e5..60911b45c8 100644 --- a/runtime/parser/expression.go +++ b/runtime/parser/expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,6 +43,7 @@ const ( exprLeftBindingPowerBitwiseShift exprLeftBindingPowerAddition exprLeftBindingPowerMultiplication + exprLeftBindingPowerMove exprLeftBindingPowerCasting exprLeftBindingPowerUnaryPrefix exprLeftBindingPowerUnaryPostfix @@ -484,10 +485,16 @@ func init() { defineExpr(unaryExpr{ tokenType: lexer.TokenLeftArrow, - bindingPower: exprLeftBindingPowerUnaryPrefix, + bindingPower: exprLeftBindingPowerMove, operation: ast.OperationMove, }) + defineExpr(unaryExpr{ + tokenType: lexer.TokenStar, + bindingPower: exprLeftBindingPowerUnaryPrefix, + operation: ast.OperationMul, + }) + defineExpr(postfixExpr{ tokenType: lexer.TokenExclamationMark, bindingPower: exprLeftBindingPowerUnaryPostfix, @@ -640,6 +647,12 @@ func defineLessThanOrTypeArgumentsExpression() { } else { + // if the error specifically occurred during parsing restricted types, + // this is still an invocation and we should report that error instead + if _, isRestrictedTypeErr := err.(*RestrictedTypeError); isRestrictedTypeErr { + return nil, err, true + } + // The previous attempt to parse an invocation failed, // replay the buffered tokens. @@ -811,7 +824,7 @@ func defineIdentifierExpression() { token.Range.StartPos, ), nil - case keywordAttach: + case KeywordAttach: return parseAttachExpressionRemainder(p, token) case KeywordView: @@ -954,7 +967,7 @@ func parseAttachExpressionRemainder(p *parser, token lexer.Token) (*ast.AttachEx p.skipSpaceAndComments() - if !p.isToken(p.current, lexer.TokenIdentifier, keywordTo) { + if !p.isToken(p.current, lexer.TokenIdentifier, KeywordTo) { return nil, p.syntaxError( "expected 'to', got %s", p.current.Type, @@ -971,37 +984,7 @@ func parseAttachExpressionRemainder(p *parser, token lexer.Token) (*ast.AttachEx p.skipSpaceAndComments() - var entitlements []*ast.NominalType - if p.isToken(p.current, lexer.TokenIdentifier, KeywordWith) { - // consume the `with` token - p.nextSemanticToken() - - _, err = p.mustOne(lexer.TokenParenOpen) - if err != nil { - return nil, err - } - - entitlements, _, err = parseNominalTypes(p, lexer.TokenParenClose, lexer.TokenComma) - for _, entitlement := range entitlements { - _, err = rejectAccessKeywords(p, func() (*ast.NominalType, error) { - return entitlement, nil - }) - if err != nil { - return nil, err - } - } - if err != nil { - return nil, err - } - - _, err = p.mustOne(lexer.TokenParenClose) - if err != nil { - return nil, err - } - p.skipSpaceAndComments() - } - - return ast.NewAttachExpression(p.memoryGauge, base, attachment, entitlements, token.StartPos), nil + return ast.NewAttachExpression(p.memoryGauge, base, attachment, token.StartPos), nil } // Invocation Expression Grammar: diff --git a/runtime/parser/expression_test.go b/runtime/parser/expression_test.go index ac382ca8bb..f93e0769d4 100644 --- a/runtime/parser/expression_test.go +++ b/runtime/parser/expression_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -504,6 +504,111 @@ func TestParseAdvancedExpression(t *testing.T) { ) }) + t.Run("move operator, force casted", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("<-x as! @T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationMove, + Expression: &ast.CastingExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + IsResource: true, + }, + Operation: ast.OperationForceCast, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("move operator, failable casted", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("<-x as? @T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationMove, + Expression: &ast.CastingExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 9, Offset: 9}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, + IsResource: true, + }, + Operation: ast.OperationFailableCast, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("move operator, casted", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression("<-x as @T") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationMove, + Expression: &ast.CastingExpression{ + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "x", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + TypeAnnotation: &ast.TypeAnnotation{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "T", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + IsResource: true, + }, + Operation: ast.OperationCast, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + } func TestParseArrayExpression(t *testing.T) { @@ -2201,6 +2306,43 @@ func TestParseBlockComment(t *testing.T) { }) } +func TestParseMulInfixExpression(t *testing.T) { + + t.Parallel() + + result, errs := testParseExpression(" 1 ** 2") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.BinaryExpression{ + Operation: ast.OperationMul, + Left: &ast.IntegerExpression{ + PositiveLiteral: []byte("1"), + Value: big.NewInt(1), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + EndPos: ast.Position{Line: 1, Column: 1, Offset: 1}, + }, + }, + Right: &ast.UnaryExpression{ + Operation: ast.OperationMul, + Expression: &ast.IntegerExpression{ + PositiveLiteral: []byte("2"), + Value: big.NewInt(2), + Base: 10, + Range: ast.Range{ + StartPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + EndPos: ast.Position{Line: 1, Column: 6, Offset: 6}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 4, Offset: 4}, + }, + }, + result, + ) +} + func BenchmarkParseInfix(b *testing.B) { for i := 0; i < b.N; i++ { @@ -2843,93 +2985,12 @@ func TestParseAttach(t *testing.T) { t.Parallel() - result, errs := testParseExpression("attach E() to r with (X, Y)") - require.Empty(t, errs) - - utils.AssertEqualWithDiff(t, - &ast.AttachExpression{ - Base: &ast.IdentifierExpression{ - Identifier: ast.Identifier{ - Identifier: "r", - Pos: ast.Position{Line: 1, Column: 14, Offset: 14}, - }, - }, - Attachment: &ast.InvocationExpression{ - InvokedExpression: &ast.IdentifierExpression{ - Identifier: ast.Identifier{ - Identifier: "E", - Pos: ast.Position{Line: 1, Column: 7, Offset: 7}, - }, - }, - ArgumentsStartPos: ast.Position{Line: 1, Column: 8, Offset: 8}, - EndPos: ast.Position{Line: 1, Column: 9, Offset: 9}, - }, - Entitlements: []*ast.NominalType{ - ast.NewNominalType( - nil, - ast.Identifier{ - Identifier: "X", - Pos: ast.Position{Line: 1, Column: 22, Offset: 22}, - }, - nil, - ), - ast.NewNominalType( - nil, - ast.Identifier{ - Identifier: "Y", - Pos: ast.Position{Line: 1, Column: 25, Offset: 25}, - }, - nil, - ), - }, - StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, - }, - result, - ) - }) - - t.Run("with provided entitlements not closed", func(t *testing.T) { - - t.Parallel() - - _, errs := testParseExpression("attach E() to r with (X, Y") - utils.AssertEqualWithDiff(t, - []error{ - &SyntaxError{ - Message: "invalid end of input, expected ')'", - Pos: ast.Position{Offset: 26, Line: 1, Column: 26}, - }, - }, - errs, - ) - }) - - t.Run("with provided entitlements extra comma", func(t *testing.T) { - - t.Parallel() - - _, errs := testParseExpression("attach E() to r with (X, Y,)") + _, errs := testParseExpression("attach E() to r with (X)") utils.AssertEqualWithDiff(t, []error{ &SyntaxError{ - Message: "missing type after separator", - Pos: ast.Position{Offset: 27, Line: 1, Column: 27}, - }, - }, - errs, - ) - }) - - t.Run("with provided entitlements unopened", func(t *testing.T) { - - t.Parallel() - - _, errs := testParseExpression("attach E() to r with X, Y)") - utils.AssertEqualWithDiff(t, - []error{ - &SyntaxError{ - Message: "expected token '('", - Pos: ast.Position{Offset: 21, Line: 1, Column: 21}, + Message: "unexpected token: identifier", + Pos: ast.Position{Offset: 16, Line: 1, Column: 16}, }, }, errs, @@ -4555,6 +4616,24 @@ func TestParseLessThanOrTypeArguments(t *testing.T) { result, ) }) + + t.Run("restricted type argument", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseExpression("foo") + utils.AssertEqualWithDiff(t, + []error{ + &RestrictedTypeError{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 6, Line: 1, Column: 6}, + EndPos: ast.Position{Offset: 6, Line: 1, Column: 6}, + }, + }, + }, + errs, + ) + }) } func TestParseBoolExpression(t *testing.T) { @@ -5012,40 +5091,95 @@ func TestParseUnaryExpression(t *testing.T) { t.Parallel() - const code = ` - let foo = -boo - ` - result, errs := testParseProgram(code) - require.Empty(t, errs) + t.Run("minus", func(t *testing.T) { - utils.AssertEqualWithDiff(t, - []ast.Declaration{ - &ast.VariableDeclaration{ - Access: ast.AccessNotSpecified, - IsConstant: true, - Identifier: ast.Identifier{ - Identifier: "foo", - Pos: ast.Position{Offset: 10, Line: 2, Column: 9}, + t.Parallel() + + const code = ` - boo` + + result, errs := testParseExpression(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationMinus, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "boo", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, }, - Transfer: &ast.Transfer{ - Operation: ast.TransferOperationCopy, - Pos: ast.Position{Offset: 14, Line: 2, Column: 13}, + StartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + result, + ) + }) + + t.Run("negate", func(t *testing.T) { + + t.Parallel() + + const code = ` ! boo` + + result, errs := testParseExpression(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationNegate, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "boo", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, + }, }, - Value: &ast.UnaryExpression{ - Operation: ast.OperationMinus, - Expression: &ast.IdentifierExpression{ - Identifier: ast.Identifier{ - Identifier: "boo", - Pos: ast.Position{Offset: 17, Line: 2, Column: 16}, - }, + StartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, + }, + result, + ) + }) + + t.Run("star", func(t *testing.T) { + + t.Parallel() + + const code = ` * boo` + + result, errs := testParseExpression(code) + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.UnaryExpression{ + Operation: ast.OperationMul, + Expression: &ast.IdentifierExpression{ + Identifier: ast.Identifier{ + Identifier: "boo", + Pos: ast.Position{Offset: 3, Line: 1, Column: 3}, }, - StartPos: ast.Position{Offset: 16, Line: 2, Column: 15}, }, - StartPos: ast.Position{Offset: 6, Line: 2, Column: 5}, + StartPos: ast.Position{Offset: 1, Line: 1, Column: 1}, }, - }, - result.Declarations(), - ) + result, + ) + }) + + t.Run("invalid", func(t *testing.T) { + + t.Parallel() + + const code = ` % boo` + + _, errs := testParseExpression(code) + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token in expression: '%'", + Pos: ast.Position{Line: 1, Column: 2, Offset: 2}, + }, + }, + errs, + ) + }) } func TestParseOrExpression(t *testing.T) { @@ -6362,7 +6496,7 @@ func TestParseIdentifiers(t *testing.T) { func TestParseHardKeywords(t *testing.T) { t.Parallel() - testParseIdentifiersWith(t, hardKeywords, func(t *testing.T, keyword string, err error) { + testParseIdentifiersWith(t, HardKeywords, func(t *testing.T, keyword string, err error) { utils.AssertEqualWithDiff(t, []error{ &SyntaxError{ @@ -6378,7 +6512,7 @@ func TestParseHardKeywords(t *testing.T) { func TestParseSoftKeywords(t *testing.T) { t.Parallel() - testParseIdentifiersWith(t, softKeywords, func(t *testing.T, _ string, err error) { + testParseIdentifiersWith(t, SoftKeywords, func(t *testing.T, _ string, err error) { require.Empty(t, err) }) } diff --git a/runtime/parser/function.go b/runtime/parser/function.go index 6ff04f3862..a6028be802 100644 --- a/runtime/parser/function.go +++ b/runtime/parser/function.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,7 +32,7 @@ func parsePurityAnnotation(p *parser) ast.FunctionPurity { return ast.FunctionPurityUnspecified } -func parseParameterList(p *parser) (*ast.ParameterList, error) { +func parseParameterList(p *parser, expectDefaultArguments bool) (*ast.ParameterList, error) { var parameters []*ast.Parameter p.skipSpaceAndComments() @@ -63,7 +63,7 @@ func parseParameterList(p *parser) (*ast.ParameterList, error) { Pos: p.current.StartPos, }) } - parameter, err := parseParameter(p) + parameter, err := parseParameter(p, expectDefaultArguments) if err != nil { return nil, err } @@ -120,7 +120,7 @@ func parseParameterList(p *parser) (*ast.ParameterList, error) { ), nil } -func parseParameter(p *parser) (*ast.Parameter, error) { +func parseParameter(p *parser, expectDefaultArgument bool) (*ast.Parameter, error) { p.skipSpaceAndComments() startPos := p.current.StartPos @@ -167,11 +167,36 @@ func parseParameter(p *parser) (*ast.Parameter, error) { return nil, err } + p.skipSpaceAndComments() + + var defaultArgument ast.Expression + + if expectDefaultArgument { + if !p.current.Is(lexer.TokenEqual) { + return nil, p.syntaxError( + "expected a default argument after type annotation, got %s", + p.current.Type, + ) + } + + // Skip the = + p.nextSemanticToken() + + defaultArgument, err = parseExpression(p, lowestBindingPower) + if err != nil { + return nil, err + } + + } else if p.current.Is(lexer.TokenEqual) { + return nil, p.syntaxError("cannot use a default argument for this function") + } + return ast.NewParameter( p.memoryGauge, argumentLabel, identifier, typeAnnotation, + defaultArgument, startPos, ), nil } @@ -362,7 +387,7 @@ func parseFunctionParameterListAndRest( ) { // Parameter list - parameterList, err = parseParameterList(p) + parameterList, err = parseParameterList(p, false) if err != nil { return } diff --git a/runtime/parser/invalidnumberliteralkind.go b/runtime/parser/invalidnumberliteralkind.go index 1c788b52ae..de7199bb1e 100644 --- a/runtime/parser/invalidnumberliteralkind.go +++ b/runtime/parser/invalidnumberliteralkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/keyword.go b/runtime/parser/keyword.go index 00e7dc9413..e7b4f4f3de 100644 --- a/runtime/parser/keyword.go +++ b/runtime/parser/keyword.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -65,17 +65,33 @@ const ( KeywordDefault = "default" KeywordEnum = "enum" KeywordView = "view" - keywordAttachment = "attachment" - keywordAttach = "attach" - keywordRemove = "remove" - keywordTo = "to" - KeywordWith = "with" + KeywordAttachment = "attachment" + KeywordAttach = "attach" + KeywordRemove = "remove" + KeywordTo = "to" KeywordRequire = "require" KeywordStatic = "static" KeywordNative = "native" KeywordPub = "pub" KeywordPriv = "priv" KeywordInclude = "include" + KeywordTry = "try" + KeywordCatch = "catch" + KeywordFinally = "finally" + KeywordGoto = "goto" + KeywordConst = "const" + KeywordExport = "export" + KeywordThrow = "throw" + KeywordThrows = "throws" + KeywordRequires = "requires" + KeywordWhere = "where" + KeywordFinal = "final" + KeywordInternal = "internal" + KeywordTypealias = "typealias" + KeywordType = "type" + KeywordRepeat = "repeat" + KeywordGuard = "guard" + KeywordIs = "is" // NOTE: ensure to update allKeywords when adding a new keyword ) @@ -122,31 +138,55 @@ var allKeywords = []string{ KeywordDefault, KeywordEnum, KeywordView, - KeywordWith, KeywordMapping, KeywordRequire, - keywordAttach, - keywordAttachment, - keywordTo, - keywordRemove, + KeywordAttach, + KeywordAttachment, + KeywordTo, + KeywordRemove, + KeywordStatic, + KeywordNative, + KeywordPub, + KeywordPriv, KeywordInclude, + KeywordTry, + KeywordCatch, + KeywordFinally, + KeywordGoto, + KeywordConst, + KeywordExport, + KeywordThrow, + KeywordThrows, + KeywordRequires, + KeywordWhere, + KeywordFinal, + KeywordInternal, + KeywordTypealias, + KeywordType, + KeywordRepeat, + KeywordGuard, + KeywordIs, } -// Keywords that can be used in identifier position without ambiguity. -var softKeywords = []string{ +// SoftKeywords are keywords that can be used as identifiers anywhere, +// without any restriction or ambiguity. +var SoftKeywords = []string{ KeywordFrom, KeywordAccount, KeywordAll, KeywordView, - keywordAttach, - keywordRemove, - keywordTo, + KeywordAttach, + KeywordRemove, + KeywordTo, + KeywordType, } -var softKeywordsTable = mph.Build(softKeywords) +var softKeywordsTable = mph.Build(SoftKeywords) -// Keywords that aren't allowed in identifier position. -var hardKeywords = filter( +// HardKeywords are restricted from being used as identifiers in certain places. +// i.e: places where ambiguity can exist, such as composite declaration names, function names, etc. +// However, they are not restricted to be used as fields names, and many other places. +var HardKeywords = filter( allKeywords, func(keyword string) bool { _, ok := softKeywordsTable.Lookup(keyword) @@ -154,7 +194,12 @@ var hardKeywords = filter( }, ) -var hardKeywordsTable = mph.Build(hardKeywords) +var hardKeywordsTable = mph.Build(HardKeywords) + +func IsHardKeyword(identifier string) bool { + _, ok := hardKeywordsTable.Lookup(identifier) + return ok +} func filter[T comparable](items []T, f func(T) bool) []T { result := make([]T, 0, len(items)) diff --git a/runtime/parser/lexer/lexer.go b/runtime/parser/lexer/lexer.go index a2b10ca306..7b69245ce2 100644 --- a/runtime/parser/lexer/lexer.go +++ b/runtime/parser/lexer/lexer.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -357,12 +357,24 @@ func (l *lexer) scanSpace() (containsNewline bool) { func (l *lexer) scanIdentifier() { // lookahead is already lexed. // parse more, if any - l.acceptWhile(func(r rune) bool { - return r >= 'a' && r <= 'z' || - r >= 'A' && r <= 'Z' || - r >= '0' && r <= '9' || - r == '_' - }) + l.acceptWhile(IsIdentifierRune) +} + +func IsIdentifierRune(r rune) bool { + return r >= 'a' && r <= 'z' || + r >= 'A' && r <= 'Z' || + r >= '0' && r <= '9' || + r == '_' +} + +func IsValidIdentifier(s string) bool { + for _, r := range s { + if !IsIdentifierRune(r) { + return false + } + } + + return true } func (l *lexer) scanLineComment() { diff --git a/runtime/parser/lexer/lexer_test.go b/runtime/parser/lexer/lexer_test.go index 9c05281f67..51f8f53f34 100644 --- a/runtime/parser/lexer/lexer_test.go +++ b/runtime/parser/lexer/lexer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/lexer/state.go b/runtime/parser/lexer/state.go index ce52ebba74..4b252d6f09 100644 --- a/runtime/parser/lexer/state.go +++ b/runtime/parser/lexer/state.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/lexer/token.go b/runtime/parser/lexer/token.go index 71e37e5190..cfda861bdf 100644 --- a/runtime/parser/lexer/token.go +++ b/runtime/parser/lexer/token.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/lexer/tokenstream.go b/runtime/parser/lexer/tokenstream.go index 8e3f3e680a..676e80016d 100644 --- a/runtime/parser/lexer/tokenstream.go +++ b/runtime/parser/lexer/tokenstream.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/lexer/tokentype.go b/runtime/parser/lexer/tokentype.go index c9fff21a24..0a15c19b6f 100644 --- a/runtime/parser/lexer/tokentype.go +++ b/runtime/parser/lexer/tokentype.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/parser/parser.go b/runtime/parser/parser.go index 37c86a9b89..497d1f54e4 100644 --- a/runtime/parser/parser.go +++ b/runtime/parser/parser.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -533,8 +533,9 @@ func (p *parser) mustNotKeyword(errMsgContext string, token lexer.Token) (ast.Id ident := p.tokenToIdentifier(token) - if _, ok := hardKeywordsTable.Lookup(ident.Identifier); ok { - return nonIdentifierErr("keyword " + ident.Identifier) + identifier := ident.Identifier + if IsHardKeyword(identifier) { + return nonIdentifierErr("keyword " + identifier) } return ident, nil } diff --git a/runtime/parser/parser_test.go b/runtime/parser/parser_test.go index 44241e5124..ff816dd4c5 100644 --- a/runtime/parser/parser_test.go +++ b/runtime/parser/parser_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -506,7 +506,7 @@ func TestParseBuffering(t *testing.T) { fun isneg(x: SignedFixedPoint): Bool { /* I kinda forget what this is all about */ return x /* but we probably need to figure it out */ - < /* ************/((TODO?{/*))************ *// + < /* ************/((TODO?/*))************ *// -x /* maybe it says NaNs are not negative? */ } ` @@ -515,7 +515,7 @@ func TestParseBuffering(t *testing.T) { []error{ &SyntaxError{ Message: "expected token identifier", - Pos: ast.Position{Offset: 399, Line: 9, Column: 95}, + Pos: ast.Position{Offset: 398, Line: 9, Column: 94}, }, }, err.(Error).Errors, @@ -538,9 +538,11 @@ func TestParseBuffering(t *testing.T) { utils.AssertEqualWithDiff(t, []error{ - &SyntaxError{ - Message: "expected token identifier", - Pos: ast.Position{Offset: 146, Line: 4, Column: 63}, + &RestrictedTypeError{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 138, Line: 4, Column: 55}, + EndPos: ast.Position{Offset: 139, Line: 4, Column: 56}, + }, }, }, err.(Error).Errors, diff --git a/runtime/parser/statement.go b/runtime/parser/statement.go index a5f986b308..cd5c9b93e4 100644 --- a/runtime/parser/statement.go +++ b/runtime/parser/statement.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -97,7 +97,7 @@ func parseStatement(p *parser) (ast.Statement, error) { return parseForStatement(p) case KeywordEmit: return parseEmitStatement(p) - case keywordRemove: + case KeywordRemove: return parseRemoveStatement(p) case KeywordView: diff --git a/runtime/parser/statement_test.go b/runtime/parser/statement_test.go index d37c531729..02596a8980 100644 --- a/runtime/parser/statement_test.go +++ b/runtime/parser/statement_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -2690,10 +2690,10 @@ func TestSoftKeywordsInStatement(t *testing.T) { }) } - for _, keyword := range softKeywords { + for _, keyword := range SoftKeywords { // it's not worth the additional complexity to support assigning to `remove` or `attach`-named // variables, so we just accept this as a parsing error - if keyword == keywordAttach || keyword == keywordRemove { + if keyword == KeywordAttach || keyword == KeywordRemove { continue } testSoftKeyword(keyword) diff --git a/runtime/parser/transaction.go b/runtime/parser/transaction.go index 549c62b347..22b2b46184 100644 --- a/runtime/parser/transaction.go +++ b/runtime/parser/transaction.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,7 +52,7 @@ func parseTransactionDeclaration(p *parser, docString string) (*ast.TransactionD var err error if p.current.Is(lexer.TokenParenOpen) { - parameterList, err = parseParameterList(p) + parameterList, err = parseParameterList(p, false) if err != nil { return nil, err } diff --git a/runtime/parser/type.go b/runtime/parser/type.go index 74cd207ce8..a9df066c64 100644 --- a/runtime/parser/type.go +++ b/runtime/parser/type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -320,10 +320,10 @@ func defineReferenceType() { func defineIntersectionOrDictionaryType() { // For the null denotation it is not clear after the start - // if it is a intersection type or a dictionary type. + // if it is an intersection type or a dictionary type. // // If a colon is seen it is a dictionary type. - // If no colon is seen it is a intersection type. + // If no colon is seen it is an intersection type. setTypeNullDenotation( lexer.TokenBraceOpen, @@ -503,7 +503,7 @@ func defineIntersectionOrDictionaryType() { return left, nil, true } - return nil, p.syntaxError("restricted types have been removed; replace with the concrete type or an equivalent intersection type"), true + return nil, &RestrictedTypeError{Range: p.current.Range}, true }, ) } @@ -916,23 +916,23 @@ func defineIdentifierTypes() { var authorization ast.Authorization - _, err := p.mustOne(lexer.TokenParenOpen) - if err != nil { - return nil, err - } + if p.current.Is(lexer.TokenParenOpen) { + p.next() - entitlements, err := parseEntitlementList(p) - if err != nil { - return nil, err - } - authorization.EntitlementSet = entitlements - _, err = p.mustOne(lexer.TokenParenClose) - if err != nil { - return nil, err + p.skipSpaceAndComments() + + var err error + authorization, err = parseAuthorization(p) + if err != nil { + return nil, err + } + } else { + p.reportSyntaxError("expected authorization (entitlement list)") } + p.skipSpaceAndComments() - _, err = p.mustOne(lexer.TokenAmpersand) + _, err := p.mustOne(lexer.TokenAmpersand) if err != nil { return nil, err } @@ -944,7 +944,7 @@ func defineIdentifierTypes() { return ast.NewReferenceType( p.memoryGauge, - &authorization, + authorization, right, token.StartPos, ), nil @@ -977,6 +977,37 @@ func defineIdentifierTypes() { ) } +func parseAuthorization(p *parser) (auth ast.Authorization, err error) { + keyword := p.currentTokenSource() + switch string(keyword) { + case KeywordMapping: + keywordPos := p.current.StartPos + // Skip the keyword + p.nextSemanticToken() + + entitlementMapName, err := parseNominalType(p, lowestBindingPower) + if err != nil { + return nil, err + } + auth = ast.NewMappedAccess(entitlementMapName, keywordPos) + p.skipSpaceAndComments() + + default: + entitlements, err := parseEntitlementList(p) + if err != nil { + return nil, err + } + auth = entitlements + } + + _, err = p.mustOne(lexer.TokenParenClose) + if err != nil { + return nil, err + } + + return auth, nil +} + // parse a function type starting after the `fun` keyword. // // ('view')? 'fun' diff --git a/runtime/parser/type_test.go b/runtime/parser/type_test.go index 34e059e52f..0f8d5fb129 100644 --- a/runtime/parser/type_test.go +++ b/runtime/parser/type_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -305,7 +305,7 @@ func TestParseReferenceType(t *testing.T) { utils.AssertEqualWithDiff(t, []error{ &SyntaxError{ - Message: "expected token '('", + Message: "expected authorization (entitlement list)", Pos: ast.Position{Offset: 5, Line: 1, Column: 5}, }, }, @@ -322,14 +322,12 @@ func TestParseReferenceType(t *testing.T) { utils.AssertEqualWithDiff(t, &ast.ReferenceType{ - Authorization: &ast.Authorization{ - EntitlementSet: &ast.ConjunctiveEntitlementSet{ - Elements: []*ast.NominalType{ - { - Identifier: ast.Identifier{ - Identifier: "X", - Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, - }, + Authorization: &ast.ConjunctiveEntitlementSet{ + Elements: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, }, }, }, @@ -355,20 +353,18 @@ func TestParseReferenceType(t *testing.T) { utils.AssertEqualWithDiff(t, &ast.ReferenceType{ - Authorization: &ast.Authorization{ - EntitlementSet: &ast.ConjunctiveEntitlementSet{ - Elements: []*ast.NominalType{ - { - Identifier: ast.Identifier{ - Identifier: "X", - Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, - }, + Authorization: &ast.ConjunctiveEntitlementSet{ + Elements: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, }, - { - Identifier: ast.Identifier{ - Identifier: "Y", - Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, - }, + }, + { + Identifier: ast.Identifier{ + Identifier: "Y", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, }, }, }, @@ -394,20 +390,18 @@ func TestParseReferenceType(t *testing.T) { utils.AssertEqualWithDiff(t, &ast.ReferenceType{ - Authorization: &ast.Authorization{ - EntitlementSet: &ast.DisjunctiveEntitlementSet{ - Elements: []*ast.NominalType{ - { - Identifier: ast.Identifier{ - Identifier: "X", - Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, - }, + Authorization: &ast.DisjunctiveEntitlementSet{ + Elements: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Line: 1, Column: 5, Offset: 5}, }, - { - Identifier: ast.Identifier{ - Identifier: "Y", - Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, - }, + }, + { + Identifier: ast.Identifier{ + Identifier: "Y", + Pos: ast.Position{Line: 1, Column: 8, Offset: 8}, }, }, }, @@ -472,6 +466,52 @@ func TestParseReferenceType(t *testing.T) { errs, ) }) + + t.Run("authorized, map", func(t *testing.T) { + + t.Parallel() + + result, errs := testParseType("auth ( mapping X ) & Int") + require.Empty(t, errs) + + utils.AssertEqualWithDiff(t, + &ast.ReferenceType{ + Authorization: &ast.MappedAccess{ + EntitlementMap: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "X", + Pos: ast.Position{Line: 1, Column: 15, Offset: 15}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 7, Offset: 7}, + }, + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: "Int", + Pos: ast.Position{Line: 1, Column: 21, Offset: 21}, + }, + }, + StartPos: ast.Position{Line: 1, Column: 0, Offset: 0}, + }, + result, + ) + }) + + t.Run("authorized, map no name", func(t *testing.T) { + + t.Parallel() + + _, errs := testParseType("auth( mapping ) &Int") + utils.AssertEqualWithDiff(t, + []error{ + &SyntaxError{ + Message: "unexpected token in type: ')'", + Pos: ast.Position{Offset: 15, Line: 1, Column: 15}, + }, + }, + errs, + ) + }) } func TestParseOptionalReferenceType(t *testing.T) { @@ -515,9 +555,11 @@ func TestParseIntersectionType(t *testing.T) { utils.AssertEqualWithDiff(t, []error{ - &SyntaxError{ - Message: "restricted types have been removed; replace with the concrete type or an equivalent intersection type", - Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + &RestrictedTypeError{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, }, }, errs, @@ -531,9 +573,11 @@ func TestParseIntersectionType(t *testing.T) { _, errs := testParseType("T{U}") utils.AssertEqualWithDiff(t, []error{ - &SyntaxError{ - Message: "restricted types have been removed; replace with the concrete type or an equivalent intersection type", - Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + &RestrictedTypeError{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, }, }, errs, @@ -547,9 +591,11 @@ func TestParseIntersectionType(t *testing.T) { _, errs := testParseType("T{U , V }") utils.AssertEqualWithDiff(t, []error{ - &SyntaxError{ - Message: "restricted types have been removed; replace with the concrete type or an equivalent intersection type", - Pos: ast.Position{Offset: 2, Line: 1, Column: 2}, + &RestrictedTypeError{ + Range: ast.Range{ + StartPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + EndPos: ast.Position{Offset: 2, Line: 1, Column: 2}, + }, }, }, errs, @@ -2851,7 +2897,7 @@ func TestParseAuthorizedReferenceTypeWithNoEntitlements(t *testing.T) { utils.AssertEqualWithDiff(t, []error{ &SyntaxError{ - Message: "expected token '('", + Message: "expected authorization (entitlement list)", Pos: ast.Position{Offset: 20, Line: 2, Column: 19}, }, }, diff --git a/runtime/predeclaredvalues_test.go b/runtime/predeclaredvalues_test.go index 0c75774781..14d1914790 100644 --- a/runtime/predeclaredvalues_test.go +++ b/runtime/predeclaredvalues_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,16 +20,20 @@ package runtime_test import ( "math/big" + "strconv" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/onflow/cadence" . "github.com/onflow/cadence/runtime" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" + "github.com/onflow/cadence/runtime/tests/checker" . "github.com/onflow/cadence/runtime/tests/runtime_utils" . "github.com/onflow/cadence/runtime/tests/utils" ) @@ -38,96 +42,218 @@ func TestRuntimePredeclaredValues(t *testing.T) { t.Parallel() - valueDeclaration := stdlib.StandardLibraryValue{ - Name: "foo", - Type: sema.IntType, - Kind: common.DeclarationKindConstant, - Value: interpreter.NewUnmeteredIntValueFromInt64(2), + const contractName = "C" + address := common.MustBytesToAddress([]byte{0x1}) + contractLocation := common.AddressLocation{ + Address: address, + Name: contractName, } - contract := []byte(` - access(all) contract C { - access(all) fun foo(): Int { - return foo - } - } - `) + test := func( + t *testing.T, + contract string, + script string, + valueDeclarations map[common.Location]stdlib.StandardLibraryValue, + checkTransaction func(err error) bool, + checkScript func(result cadence.Value, err error), + ) { - script := []byte(` - import C from 0x1 + runtime := NewTestInterpreterRuntime() - access(all) fun main(): Int { - return foo + C.foo() - } - `) + deploy := DeploymentTransaction(contractName, []byte(contract)) - runtime := NewTestInterpreterRuntime() + var accountCode []byte + var events []cadence.Event - deploy := DeploymentTransaction("C", contract) + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil + }, + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + accountCode = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } - var accountCode []byte - var events []cadence.Event + prepareEnvironment := func(env Environment) { + for location, valueDeclaration := range valueDeclarations { + env.DeclareValue(valueDeclaration, location) + } + } - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil - }, - Storage: NewTestLedger(nil, nil), - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{common.MustBytesToAddress([]byte{0x1})}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil - }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, + // Run deploy transaction + + transactionEnvironment := NewBaseInterpreterEnvironment(Config{}) + prepareEnvironment(transactionEnvironment) + + err := runtime.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: common.TransactionLocation{}, + Environment: transactionEnvironment, + }, + ) + + if checkTransaction(err) { + + scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) + prepareEnvironment(scriptEnvironment) + + checkScript(runtime.ExecuteScript( + Script{ + Source: []byte(script), + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + Environment: scriptEnvironment, + }, + )) + } } - // Run transaction + t.Run("everywhere", func(t *testing.T) { + t.Parallel() - transactionEnvironment := NewBaseInterpreterEnvironment(Config{}) - transactionEnvironment.DeclareValue(valueDeclaration) + test(t, + ` + access(all) contract C { + access(all) fun foo(): Int { + return foo + } + } + `, + ` + import C from 0x1 + + access(all) fun main(): Int { + return foo + C.foo() + } + `, + map[common.Location]stdlib.StandardLibraryValue{ + nil: { + Name: "foo", + Type: sema.IntType, + Kind: common.DeclarationKindConstant, + Value: interpreter.NewUnmeteredIntValueFromInt64(2), + }, + }, + func(err error) bool { + return assert.NoError(t, err) + }, + func(result cadence.Value, err error) { - err := runtime.ExecuteTransaction( - Script{ - Source: deploy, - }, - Context{ - Interface: runtimeInterface, - Location: common.TransactionLocation{}, - Environment: transactionEnvironment, - }, - ) - require.NoError(t, err) + require.NoError(t, err) - // Run script + require.Equal(t, + cadence.Int{Value: big.NewInt(4)}, + result, + ) + }, + ) + }) - scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) - scriptEnvironment.DeclareValue(valueDeclaration) + t.Run("only contract, no use in script", func(t *testing.T) { + t.Parallel() - result, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - Environment: scriptEnvironment, - }, - ) - require.NoError(t, err) + test(t, + ` + access(all) contract C { + access(all) fun foo(): Int { + return foo + } + } + `, + ` + import C from 0x1 + + access(all) fun main(): Int { + return C.foo() + } + `, + map[common.Location]stdlib.StandardLibraryValue{ + contractLocation: { + Name: "foo", + Type: sema.IntType, + Kind: common.DeclarationKindConstant, + Value: interpreter.NewUnmeteredIntValueFromInt64(2), + }, + }, + func(err error) bool { + return assert.NoError(t, err) + }, + func(result cadence.Value, err error) { + + require.NoError(t, err) + + require.Equal(t, + cadence.Int{Value: big.NewInt(2)}, + result, + ) + }, + ) + }) + + t.Run("only contract, use in script", func(t *testing.T) { + t.Parallel() + + test(t, + ` + access(all) contract C { + access(all) fun foo(): Int { + return foo + } + } + `, + ` + import C from 0x1 + + access(all) fun main(): Int { + return foo + C.foo() + } + `, + map[common.Location]stdlib.StandardLibraryValue{ + contractLocation: { + Name: "foo", + Type: sema.IntType, + Kind: common.DeclarationKindConstant, + Value: interpreter.NewUnmeteredIntValueFromInt64(2), + }, + }, + func(err error) bool { + return assert.NoError(t, err) + }, + func(result cadence.Value, err error) { + RequireError(t, err) + + var checkerErr *sema.CheckerError + require.ErrorAs(t, err, &checkerErr) + assert.Equal(t, common.ScriptLocation{}, checkerErr.Location) + + errs := checker.RequireCheckerErrors(t, err, 1) + + var notDeclaredErr *sema.NotDeclaredError + require.ErrorAs(t, errs[0], ¬DeclaredErr) + require.Equal(t, "foo", notDeclaredErr.Name) + }, + ) + }) - require.Equal(t, - cadence.Int{Value: big.NewInt(4)}, - result, - ) } func TestRuntimePredeclaredTypes(t *testing.T) { @@ -172,8 +298,8 @@ func TestRuntimePredeclaredTypes(t *testing.T) { // Run script scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) - scriptEnvironment.DeclareValue(valueDeclaration) - scriptEnvironment.DeclareType(typeDeclaration) + scriptEnvironment.DeclareValue(valueDeclaration, nil) + scriptEnvironment.DeclareType(typeDeclaration, nil) result, err := runtime.ExecuteScript( Script{ @@ -243,8 +369,8 @@ func TestRuntimePredeclaredTypes(t *testing.T) { // Run script scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) - scriptEnvironment.DeclareValue(valueDeclaration) - scriptEnvironment.DeclareType(typeDeclaration) + scriptEnvironment.DeclareValue(valueDeclaration, nil) + scriptEnvironment.DeclareType(typeDeclaration, nil) result, err := runtime.ExecuteScript( Script{ @@ -259,10 +385,13 @@ func TestRuntimePredeclaredTypes(t *testing.T) { require.NoError(t, err) require.Equal(t, - cadence.Struct{ - StructType: cadence.NewStructType(nil, xType.QualifiedIdentifier(), []cadence.Field{}, nil), - Fields: []cadence.Value{}, - }, + cadence.NewStruct([]cadence.Value{}). + WithType(cadence.NewStructType( + nil, + xType.QualifiedIdentifier(), + []cadence.Field{}, + nil, + )), result, ) }) @@ -311,7 +440,7 @@ func TestRuntimePredeclaredTypes(t *testing.T) { // Run script scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) - scriptEnvironment.DeclareValue(valueDeclaration) + scriptEnvironment.DeclareValue(valueDeclaration, nil) _, err := runtime.ExecuteScript( Script{ @@ -387,8 +516,8 @@ func TestRuntimePredeclaredTypes(t *testing.T) { // Run script scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) - scriptEnvironment.DeclareValue(valueDeclaration) - scriptEnvironment.DeclareType(typeDeclaration) + scriptEnvironment.DeclareValue(valueDeclaration, nil) + scriptEnvironment.DeclareType(typeDeclaration, nil) result, err := runtime.ExecuteScript( Script{ @@ -403,10 +532,13 @@ func TestRuntimePredeclaredTypes(t *testing.T) { require.NoError(t, err) require.Equal(t, - cadence.Struct{ - StructType: cadence.NewStructType(nil, yType.QualifiedIdentifier(), []cadence.Field{}, nil), - Fields: []cadence.Value{}, - }, + cadence.NewStruct([]cadence.Value{}). + WithType(cadence.NewStructType( + nil, + yType.QualifiedIdentifier(), + []cadence.Field{}, + nil, + )), result, ) }) @@ -463,7 +595,7 @@ func TestRuntimePredeclaredTypes(t *testing.T) { // Run script scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) - scriptEnvironment.DeclareValue(valueDeclaration) + scriptEnvironment.DeclareValue(valueDeclaration, nil) _, err := runtime.ExecuteScript( Script{ @@ -482,3 +614,129 @@ func TestRuntimePredeclaredTypes(t *testing.T) { }) } + +func TestRuntimePredeclaredTypeWithInjectedFunctions(t *testing.T) { + + t.Parallel() + + xType := &sema.CompositeType{ + Identifier: "X", + Kind: common.CompositeKindStructure, + Members: &sema.StringMemberOrderedMap{}, + } + + const fooFunctionName = "foo" + fooFunctionType := &sema.FunctionType{ + Parameters: []sema.Parameter{ + { + Identifier: "bar", + TypeAnnotation: sema.NewTypeAnnotation(sema.UInt8Type), + }, + }, + ReturnTypeAnnotation: sema.NewTypeAnnotation(sema.StringType), + } + + fooFunctionMember := sema.NewPublicFunctionMember( + nil, + xType, + fooFunctionName, + fooFunctionType, + "", + ) + xType.Members.Set(fooFunctionName, fooFunctionMember) + + xConstructorType := &sema.FunctionType{ + ReturnTypeAnnotation: sema.NewTypeAnnotation(xType), + } + + xConstructorDeclaration := stdlib.StandardLibraryValue{ + Name: "X", + Type: xConstructorType, + Kind: common.DeclarationKindConstant, + Value: interpreter.NewStaticHostFunctionValue( + nil, + xConstructorType, + func(invocation interpreter.Invocation) interpreter.Value { + return interpreter.NewCompositeValue( + invocation.Interpreter, + invocation.LocationRange, + xType.Location, + xType.QualifiedIdentifier(), + xType.Kind, + nil, + common.ZeroAddress, + ) + }, + ), + } + + xTypeDeclaration := stdlib.StandardLibraryType{ + Name: "X", + Type: xType, + Kind: common.DeclarationKindType, + } + + script := []byte(` + access(all) + fun main(): String { + return X().foo(bar: 1) + } + `) + + runtime := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{common.MustBytesToAddress([]byte{0x1})}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + } + + // Run script + + scriptEnvironment := NewScriptInterpreterEnvironment(Config{}) + scriptEnvironment.DeclareValue(xConstructorDeclaration, nil) + scriptEnvironment.DeclareType(xTypeDeclaration, nil) + scriptEnvironment.SetCompositeValueFunctionsHandler( + xType.ID(), + func( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + compositeValue *interpreter.CompositeValue, + ) *interpreter.FunctionOrderedMap { + require.NotNil(t, compositeValue) + + functions := orderedmap.New[interpreter.FunctionOrderedMap](1) + functions.Set(fooFunctionName, interpreter.NewStaticHostFunctionValue( + inter, + fooFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + arg := invocation.Arguments[0] + require.IsType(t, interpreter.UInt8Value(0), arg) + + return interpreter.NewUnmeteredStringValue(strconv.Itoa(int(arg.(interpreter.UInt8Value) + 1))) + }, + )) + return functions + }, + ) + + result, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + Environment: scriptEnvironment, + }, + ) + require.NoError(t, err) + + require.Equal(t, + cadence.String("2"), + result, + ) + +} diff --git a/runtime/pretty/print.go b/runtime/pretty/print.go index 2836a92d5a..dac7e07281 100644 --- a/runtime/pretty/print.go +++ b/runtime/pretty/print.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/pretty/print_test.go b/runtime/pretty/print_test.go index 256ff77c75..c680f3281f 100644 --- a/runtime/pretty/print_test.go +++ b/runtime/pretty/print_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/program_params_validation_test.go b/runtime/program_params_validation_test.go index 2a2f5a86bf..ba746b9aa2 100644 --- a/runtime/program_params_validation_test.go +++ b/runtime/program_params_validation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,24 +58,23 @@ func TestRuntimeScriptParameterTypeValidation(t *testing.T) { } newFooStruct := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{}, - }, - Fields: []cadence.Value{}, - } + return cadence.NewStruct([]cadence.Value{}). + WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{}, + nil, + )) } newPublicAccountKeys := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - QualifiedIdentifier: "Account.Keys", - Fields: []cadence.Field{}, - }, - Fields: []cadence.Value{}, - } + return cadence.NewStruct([]cadence.Value{}). + WithType(cadence.NewStructType( + nil, + "Account.Keys", + []cadence.Field{}, + nil, + )) } executeScript := func(t *testing.T, script string, arg cadence.Value) (err error) { @@ -292,6 +291,104 @@ func TestRuntimeScriptParameterTypeValidation(t *testing.T) { assert.NoError(t, err) }) + t.Run("InclusiveRange", func(t *testing.T) { + t.Parallel() + + script := ` + access(all) fun main(arg: InclusiveRange) { + } + ` + + err := executeScript( + t, + script, + cadence.NewInclusiveRange(cadence.NewInt16(1), cadence.NewInt16(2), cadence.NewInt16(1)), + ) + + assert.NoError(t, err) + }) + + t.Run("InclusiveRange as AnyStruct", func(t *testing.T) { + t.Parallel() + + script := ` + access(all) fun main(arg: AnyStruct) { + } + ` + + err := executeScript( + t, + script, + cadence.NewInclusiveRange( + cadence.NewUInt16(1), + cadence.NewUInt16(2), + cadence.NewUInt16(1), + ), + ) + + assert.NoError(t, err) + }) + + t.Run("Invalid InclusiveRange", func(t *testing.T) { + t.Parallel() + + script := ` + access(all) fun main(arg: InclusiveRange) { + } + ` + + err := executeScript( + t, + script, + cadence.NewInclusiveRange(cadence.NewInt16(1), cadence.NewInt16(2), cadence.NewInt16(1)), + ) + + var checkerError *sema.CheckerError + require.ErrorAs(t, err, &checkerError) + + errs := checker.RequireCheckerErrors(t, checkerError, 1) + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[0]) + }) + + t.Run("Invalid InclusiveRange with mixed value types", func(t *testing.T) { + t.Parallel() + + script := ` + access(all) fun main(arg: InclusiveRange) { + } + ` + + err := executeScript( + t, + script, + cadence.NewInclusiveRange(cadence.NewInt16(1), cadence.NewUInt(2), cadence.NewUInt(1)), + ) + + var entryPointErr *InvalidEntryPointArgumentError + require.ErrorAs(t, err, &entryPointErr) + }) + + t.Run("Invalid InclusiveRange with mixed value types", func(t *testing.T) { + t.Parallel() + + script := ` + access(all) fun main(arg: InclusiveRange) { + } + ` + + err := executeScript( + t, + script, + cadence.NewInclusiveRange(cadence.NewInt16(1), cadence.NewUInt(2), cadence.NewUInt(1)), + ) + + var checkerError *sema.CheckerError + require.ErrorAs(t, err, &checkerError) + + errs := checker.RequireCheckerErrors(t, checkerError, 1) + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[0]) + }) + t.Run("Capability", func(t *testing.T) { t.Parallel() @@ -571,27 +668,26 @@ func TestRuntimeTransactionParameterTypeValidation(t *testing.T) { } newFooStruct := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.AddressLocation{ + return cadence.NewStruct([]cadence.Value{}). + WithType(cadence.NewStructType( + common.AddressLocation{ Address: common.MustBytesToAddress([]byte{0x1}), Name: "C", }, - QualifiedIdentifier: "C.Foo", - Fields: []cadence.Field{}, - }, - Fields: []cadence.Value{}, - } + "C.Foo", + []cadence.Field{}, + nil, + )) } newPublicAccountKeys := func() cadence.Struct { - return cadence.Struct{ - StructType: &cadence.StructType{ - QualifiedIdentifier: "Account.Keys", - Fields: []cadence.Field{}, - }, - Fields: []cadence.Value{}, - } + return cadence.NewStruct([]cadence.Value{}). + WithType(cadence.NewStructType( + nil, + "Account.Keys", + []cadence.Field{}, + nil, + )) } executeTransaction := func( @@ -608,18 +704,49 @@ func TestRuntimeTransactionParameterTypeValidation(t *testing.T) { storage := NewTestLedger(nil, nil) + authorizers := []Address{{0, 0, 0, 0, 0, 0, 0, 1}} + accountCodes := map[Location][]byte{} + runtimeInterface := &TestRuntimeInterface{ Storage: storage, OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return contracts[location], nil + return accountCodes[location], nil }, OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { return json.Decode(nil, b) }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnGetSigningAccounts: func() ([]Address, error) { + return authorizers, nil + }, } addPublicKeyValidation(runtimeInterface, nil) + transactionLocation := NewTransactionLocationGenerator() + for location, contract := range contracts { + deploy := DeploymentTransaction(location.Name, contract) + err := rt.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: transactionLocation(), + }, + ) + + require.NoError(t, err) + } + + authorizers = nil + return rt.ExecuteTransaction( Script{ Source: []byte(script), @@ -627,7 +754,7 @@ func TestRuntimeTransactionParameterTypeValidation(t *testing.T) { }, Context{ Interface: runtimeInterface, - Location: common.TransactionLocation{}, + Location: transactionLocation(), }, ) } @@ -1170,24 +1297,22 @@ func TestRuntimeTransactionParameterTypeValidation(t *testing.T) { cadence.NewReferenceType(cadence.UnauthorizedAccess, cadence.AccountType), ) - arg := cadence.Struct{ - StructType: &cadence.StructType{ - Location: common.AddressLocation{ - Address: address, - Name: "C", - }, - QualifiedIdentifier: "C.S", - Fields: []cadence.Field{ - { - Identifier: "cap", - Type: &cadence.CapabilityType{}, - }, - }, + arg := cadence.NewStruct([]cadence.Value{ + capability, + }).WithType(cadence.NewStructType( + common.AddressLocation{ + Address: address, + Name: "C", }, - Fields: []cadence.Value{ - capability, + "C.S", + []cadence.Field{ + { + Identifier: "cap", + Type: &cadence.CapabilityType{}, + }, }, - } + nil, + )) err := executeTransaction(t, script, contracts, arg) expectRuntimeError(t, err, &ArgumentNotImportableError{}) diff --git a/runtime/repl.go b/runtime/repl.go index f48ef9b23a..37ce1421bf 100644 --- a/runtime/repl.go +++ b/runtime/repl.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -87,7 +87,9 @@ func NewREPL() (*REPL, error) { defer func() { uuid++ }() return uuid, nil }, - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, OnEventEmitted: standardLibraryHandler.NewOnEventEmittedHandler(), } @@ -299,7 +301,7 @@ func (r *REPL) Accept(code []byte, eval bool) (inputIsComplete bool, err error) var expressionType sema.Type expressionStatement, isExpression := statement.(*ast.ExpressionStatement) if isExpression { - expressionType = r.checker.VisitExpression(expressionStatement.Expression, nil) + expressionType = r.checker.VisitExpression(expressionStatement.Expression, expressionStatement, nil) if !eval && expressionType != sema.InvalidType { r.onExpressionType(expressionType) } @@ -342,7 +344,7 @@ func (r *REPL) Suggestions() (result []REPLSuggestion) { names[name] = variable.Type.String() }) - _ = r.checker.Config.BaseValueActivation.ForEach(func(name string, variable *sema.Variable) error { + _ = r.checker.Config.BaseValueActivationHandler(nil).ForEach(func(name string, variable *sema.Variable) error { if names[name] == "" { names[name] = variable.Type.String() } @@ -373,7 +375,7 @@ func (r *REPL) GetGlobal(name string) interpreter.Value { if variable == nil { return nil } - return variable.GetValue() + return variable.GetValue(r.inter) } func (r *REPL) ExportValue(value interpreter.Value) (cadence.Value, error) { diff --git a/runtime/resource_duplicate_test.go b/runtime/resource_duplicate_test.go index 1c53308c7f..6e83361c07 100644 --- a/runtime/resource_duplicate_test.go +++ b/runtime/resource_duplicate_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import ( "fmt" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/onflow/cadence" @@ -32,449 +31,189 @@ import ( "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" - "github.com/onflow/cadence/runtime/tests/checker" . "github.com/onflow/cadence/runtime/tests/runtime_utils" . "github.com/onflow/cadence/runtime/tests/utils" ) -func TestRuntimeResourceDuplicationUsingDestructorIteration(t *testing.T) { +func TestRuntimeResourceDuplicationWithContractTransferInTransaction(t *testing.T) { + t.Parallel() - t.Run("Reported error", func(t *testing.T) { + runtime := NewTestInterpreterRuntime() - t.Parallel() + accountCodes := map[common.Location][]byte{} - script := ` - // This Vault class is from Flow docs, used as our "victim" in this example - access(all) resource Vault { - // Balance of a user's Vault - // we use unsigned fixed point numbers for balances - // because they can represent decimals and do not allow negative values - access(all) var balance: UFix64 + var events []cadence.Event - init(balance: UFix64) { - self.balance = balance - } + signerAccount := common.MustBytesToAddress([]byte{0x1}) - access(all) fun withdraw(amount: UFix64): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount) - } + storage := NewTestLedger(nil, nil) - access(all) fun deposit(from: @Vault) { - self.balance = self.balance + from.balance - destroy from - } - } + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAccount}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { + return json.Decode(nil, b) + }, + } - // --- this code actually makes use of the vuln --- - access(all) resource DummyResource { - access(all) var dictRef: auth(Mutate) &{Bool: AnyResource}; - access(all) var arrRef: auth(Mutate) &[Vault]; - access(all) var victim: @Vault; - init(dictRef: auth(Mutate) &{Bool: AnyResource}, arrRef: auth(Mutate) &[Vault], victim: @Vault) { - self.dictRef = dictRef; - self.arrRef = arrRef; - self.victim <- victim; - } - - destroy() { - self.arrRef.append(<- self.victim) - self.dictRef[false] <-> self.dictRef[true]; // This screws up the destruction order - } - } + nextTransactionLocation := NewTransactionLocationGenerator() - access(all) fun duplicateResource(victim1: @Vault, victim2: @Vault): @[Vault]{ - let arr : @[Vault] <- []; - let dict: @{Bool: DummyResource} <- { } - let ref = &dict as auth(Mutate) &{Bool: AnyResource}; - let arrRef = &arr as auth(Mutate) &[Vault]; + // Deploy Fungible Token contract + + err := runtime.ExecuteTransaction( + Script{ + Source: DeploymentTransaction( + "FungibleToken", + []byte(modifiedFungibleTokenContractInterface), + ), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - var v1: @DummyResource? <- create DummyResource(dictRef: ref, arrRef: arrRef, victim: <- victim1); - dict[false] <-> v1; - destroy v1; + // Deploy Flow Token contract - var v2: @DummyResource? <- create DummyResource(dictRef: ref, arrRef: arrRef, victim: <- victim2); - dict[true] <-> v2; - destroy v2; + err = runtime.ExecuteTransaction( + Script{ + Source: []byte(fmt.Sprintf( + ` + transaction { - destroy dict // Trigger the destruction chain where dict[false] will be destructed twice - return <- arr; - } + prepare(signer: auth(Storage, Contracts, Capabilities) &Account) { + signer.contracts.add(name: "FlowToken", code: "%s".decodeHex(), signer) + } + } + `, + hex.EncodeToString([]byte(modifiedFlowContract)), + )), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - // --- end of vuln code --- + // Deploy Holder contract - access(all) fun main() { + signerAccount = common.MustBytesToAddress([]byte{0x2}) - var v1 <- create Vault(balance: 1000.0); // This will be duplicated - var v2 <- create Vault(balance: 1.0); // This will be lost - var v3 <- create Vault(balance: 0.0); // We'll collect the spoils here + const holderContract = ` + import FlowToken from 0x1 - // The call will return an array of [v1, v1] - var res <- duplicateResource(victim1: <- v1, victim2: <-v2) + access(all) contract Holder { - v3.deposit(from: <- res.removeLast()); - v3.deposit(from: <- res.removeLast()); - destroy res; + access(all) var content: @FlowToken.Vault? - log(v3.balance); - destroy v3; + init() { + self.content <- nil } - ` - - runtime := NewTestInterpreterRuntime() - - accountCodes := map[common.Location][]byte{} - - var events []cadence.Event - - signerAccount := common.MustBytesToAddress([]byte{0x1}) - - storage := NewTestLedger(nil, nil) - - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - OnProgramLog: func(s string) { - assert.Fail(t, "we should not reach this point") - }, - OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { - return json.Decode(nil, b) - }, - } - - _, err := runtime.ExecuteScript( - Script{ - Source: []byte(script), - Arguments: [][]byte{}, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - - var checkerErr *sema.CheckerError - require.ErrorAs(t, err, &checkerErr) - - errs := checker.RequireCheckerErrors(t, checkerErr, 2) - assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) - }) - - t.Run("simplified", func(t *testing.T) { - - t.Parallel() - - script := ` - access(all) resource Vault { - access(all) var balance: UFix64 - access(all) var dictRef: auth(Mutate) &{Bool: Vault}; - - init(balance: UFix64, _ dictRef: auth(Mutate) &{Bool: Vault}) { - self.balance = balance - self.dictRef = dictRef; - } - - access(all) fun withdraw(amount: UFix64): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount, self.dictRef) - } - - access(all) fun deposit(from: @Vault) { - self.balance = self.balance + from.balance - destroy from - } - - destroy() { - self.dictRef[false] <-> self.dictRef[true]; // This screws up the destruction order - } + + access(all) fun setContent(_ vault: @FlowToken.Vault?) { + self.content <-! vault } - access(all) fun main(): UFix64 { + access(all) fun swapContent(_ vault: @FlowToken.Vault?): @FlowToken.Vault? { + let oldVault <- self.content <- vault + return <-oldVault + } - let dict: @{Bool: Vault} <- { } - let dictRef = &dict as auth(Mutate) &{Bool: Vault}; + } + ` + err = runtime.ExecuteTransaction( + Script{ + Source: DeploymentTransaction( + "Holder", + []byte(holderContract), + ), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - var v1 <- create Vault(balance: 1000.0, dictRef); // This will be duplicated - var v2 <- create Vault(balance: 1.0, dictRef); // This will be lost + // Run transaction - var v1Ref = &v1 as &Vault + const code = ` + import FungibleToken from 0x1 + import FlowToken from 0x1 + import Holder from 0x2 - destroy dict.insert(key: false, <- v1) - destroy dict.insert(key: true, <- v2) + transaction { - destroy dict; + prepare(acct: auth(Storage) &Account) { - // v1 is not destroyed! - return v1Ref.balance - } - ` - - runtime := NewTestInterpreterRuntime() - - accountCodes := map[common.Location][]byte{} - - var events []cadence.Event - - signerAccount := common.MustBytesToAddress([]byte{0x1}) - - storage := NewTestLedger(nil, nil) - - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { - return json.Decode(nil, b) - }, - } - - _, err := runtime.ExecuteScript( - Script{ - Source: []byte(script), - Arguments: [][]byte{}, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - - var checkerErr *sema.CheckerError - require.ErrorAs(t, err, &checkerErr) - - errs := checker.RequireCheckerErrors(t, checkerErr, 3) - - assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) - assert.IsType(t, &sema.InvalidatedResourceReferenceError{}, errs[2]) - }) - - t.Run("forEachKey", func(t *testing.T) { - - t.Parallel() - - script := ` - access(all) resource R{} - - access(all) fun main() { - var dict: @{Int: R} <- {} - - var r1: @R? <- create R() - var r2: @R? <- create R() - var r3: @R? <- create R() - - dict[0] <-> r1 - dict[1] <-> r2 - dict[2] <-> r3 - - destroy r1 - destroy r2 - destroy r3 - - let acc = getAuthAccount(0x1) - acc.storage.save(<-dict, to: /storage/foo) - - let ref = acc.storage.borrow(from: /storage/foo)! - - ref.forEachKey(fun(i: Int): Bool { - var r4: @R? <- create R() - ref[i+1] <-> r4 - destroy r4 - return true - }) + // Create vault + let vault <- FlowToken.createEmptyVault() as! @FlowToken.Vault? + + // Move vault into the contract + Holder.setContent(<-vault) + + // Save the contract reference into storage. + // This won't error, since the validation happens at the end of the transaction. + acct.storage.save(Holder as AnyStruct, to: /storage/holder) + + // Move vault back out of the contract + let vault2 <- Holder.swapContent(nil) + let unwrappedVault2 <- vault2! + + // Load the contract reference back from storage. + // Given the value is a reference, this won't duplicate the contract value. + let dupeContract = acct.storage.load(from: /storage/holder)! as! &Holder + + // Move the vault of of the contract. + // The 'dupeVault' must be nil, since it was moved out of the contract + // in the above step. + let dupeVault <- dupeContract.swapContent(nil) + let unwrappedDupeVault <- dupeVault! + + // Deposit the duplicated vault into the original vault + unwrappedVault2.deposit(from: <- unwrappedDupeVault) + + destroy unwrappedVault2 } - ` - - runtime := NewTestInterpreterRuntime() - - accountCodes := map[common.Location][]byte{} - - var events []cadence.Event - - signerAccount := common.MustBytesToAddress([]byte{0x1}) - - storage := NewTestLedger(nil, nil) - - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { - return json.Decode(nil, b) - }, - } - - _, err := runtime.ExecuteScript( - Script{ - Source: []byte(script), - Arguments: [][]byte{}, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - - errs := checker.RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) - }) - - t.Run("array", func(t *testing.T) { - - t.Parallel() - - script := ` - access(all) resource Vault { - access(all) var balance: UFix64 - access(all) var arrRef: auth(Mutate) &[Vault] - - init(balance: UFix64, _ arrRef: auth(Mutate) &[Vault]) { - self.balance = balance - self.arrRef = arrRef; - } - - access(all) fun withdraw(amount: UFix64): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount, self.arrRef) - } - - access(all) fun deposit(from: @Vault) { - self.balance = self.balance + from.balance - destroy from - } - - destroy() { - self.arrRef.append(<-create Vault(balance: 0.0, self.arrRef)) - } } + ` - access(all) fun main(): UFix64 { - - let arr: @[Vault] <- [] - let arrRef = &arr as auth(Mutate) &[Vault]; - - var v1 <- create Vault(balance: 1000.0, arrRef); // This will be duplicated - var v2 <- create Vault(balance: 1.0, arrRef); // This will be lost - - var v1Ref = &v1 as &Vault - - arr.append(<- v1) - arr.append(<- v2) - - destroy arr - - // v1 is not destroyed! - return v1Ref.balance - }` - - runtime := NewTestInterpreterRuntime() - - accountCodes := map[common.Location][]byte{} - - var events []cadence.Event - - signerAccount := common.MustBytesToAddress([]byte{0x1}) - - storage := NewTestLedger(nil, nil) - - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { - return json.Decode(nil, b) - }, - } - - _, err := runtime.ExecuteScript( - Script{ - Source: []byte(script), - Arguments: [][]byte{}, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - RequireError(t, err) - - var checkerErr *sema.CheckerError - require.ErrorAs(t, err, &checkerErr) - - errs := checker.RequireCheckerErrors(t, checkerErr, 1) - - assert.IsType(t, &sema.InvalidatedResourceReferenceError{}, errs[0]) - }) + err = runtime.ExecuteTransaction( + Script{ + Source: []byte(code), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + + var forceNilError interpreter.ForceNilError + require.ErrorAs(t, err, &forceNilError) } -func TestRuntimeResourceDuplicationWithContractTransfer(t *testing.T) { +func TestRuntimeResourceDuplicationWithContractTransferInSameContract(t *testing.T) { t.Parallel() @@ -578,50 +317,29 @@ func TestRuntimeResourceDuplicationWithContractTransfer(t *testing.T) { return <-oldVault } - } - ` - err = runtime.ExecuteTransaction( - Script{ - Source: DeploymentTransaction( - "Holder", - []byte(holderContract), - ), - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) - - // Run transaction - - const code = ` - import FungibleToken from 0x1 - import FlowToken from 0x1 - import Holder from 0x2 - - transaction { - - prepare(acct: auth(Storage) &Account) { - + access(all) fun duplicate(acct: auth(Storage) &Account) { // Create vault let vault <- FlowToken.createEmptyVault() as! @FlowToken.Vault? // Move vault into the contract Holder.setContent(<-vault) - // Save the contract into storage (invalid, even if same account) + // Save the contract into storage (invalid, even if same account). + // Given here it access the enclosing contract itself (not an imported contract), + // the concrete contract value is available. acct.storage.save(Holder as AnyStruct, to: /storage/holder) // Move vault back out of the contract let vault2 <- Holder.swapContent(nil) let unwrappedVault2 <- vault2! - // Load the contract back from storage - let dupeContract = acct.storage.load(from: /storage/holder)! as! Holder + // Load the contract reference back from storage. + // Given the value is a reference, this won't duplicate the contract value. + let dupeContract = acct.storage.load(from: /storage/holder)! as! &Holder - // Move the vault of of the duplicated contract + // Move the vault of of the contract. + // The 'dupeVault' must be nil, since it was moved out of the contract + // in the above step. let dupeVault <- dupeContract.swapContent(nil) let unwrappedDupeVault <- dupeVault! @@ -630,12 +348,15 @@ func TestRuntimeResourceDuplicationWithContractTransfer(t *testing.T) { destroy unwrappedVault2 } - } - ` + } + ` err = runtime.ExecuteTransaction( Script{ - Source: []byte(code), + Source: DeploymentTransaction( + "Holder", + []byte(holderContract), + ), }, Context{ Interface: runtimeInterface, @@ -644,6 +365,6 @@ func TestRuntimeResourceDuplicationWithContractTransfer(t *testing.T) { ) RequireError(t, err) - var nonTransferableValueError interpreter.NonTransferableValueError - require.ErrorAs(t, err, &nonTransferableValueError) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, err, &invalidMoveError) } diff --git a/runtime/resourcedictionary_test.go b/runtime/resourcedictionary_test.go index aad1737a4e..5d4f50f281 100644 --- a/runtime/resourcedictionary_test.go +++ b/runtime/resourcedictionary_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,6 +38,8 @@ const resourceDictionaryContract = ` access(all) resource R { + access(all) event ResourceDestroyed(value: Int = self.value) + access(all) var value: Int init(_ value: Int) { @@ -47,11 +49,6 @@ const resourceDictionaryContract = ` access(all) fun increment() { self.value = self.value + 1 } - - destroy() { - log("destroying R") - log(self.value) - } } access(all) fun createR(_ value: Int): @R { @@ -79,10 +76,6 @@ const resourceDictionaryContract = ` access(all) fun forceInsert(_ id: String, _ r: @R) { self.rs[id] <-! r } - - destroy() { - destroy self.rs - } } access(all) fun createC(): @C { @@ -264,6 +257,7 @@ func TestRuntimeResourceDictionaryValues(t *testing.T) { `) loggedMessages = nil + events = nil err = runtime.ExecuteTransaction( Script{ @@ -278,13 +272,13 @@ func TestRuntimeResourceDictionaryValues(t *testing.T) { assert.Equal(t, []string{ - "3", - `"destroying R"`, "3", "4", }, loggedMessages, ) + require.Len(t, events, 1) + require.Equal(t, "A.000000000000cade.Test.R.ResourceDestroyed(value: 3)", events[0].String()) // Remove the key @@ -303,6 +297,7 @@ func TestRuntimeResourceDictionaryValues(t *testing.T) { `) loggedMessages = nil + events = nil err = runtime.ExecuteTransaction( Script{ @@ -317,13 +312,13 @@ func TestRuntimeResourceDictionaryValues(t *testing.T) { assert.Equal(t, []string{ - "4", - `"destroying R"`, "4", "nil", }, loggedMessages, ) + require.Len(t, events, 1) + require.Equal(t, "A.000000000000cade.Test.R.ResourceDestroyed(value: 4)", events[0].String()) // Read the deleted key @@ -363,6 +358,7 @@ func TestRuntimeResourceDictionaryValues(t *testing.T) { `) loggedMessages = nil + events = nil err = runtime.ExecuteTransaction( Script{ @@ -378,11 +374,12 @@ func TestRuntimeResourceDictionaryValues(t *testing.T) { assert.Equal(t, []string{ "1", - `"destroying R"`, - "1", }, loggedMessages, ) + require.Len(t, events, 1) + require.Equal(t, "A.000000000000cade.Test.R.ResourceDestroyed(value: 1)", events[0].String()) + } func TestRuntimeResourceDictionaryValues_Nested(t *testing.T) { @@ -428,10 +425,6 @@ func TestRuntimeResourceDictionaryValues_Nested(t *testing.T) { access(all) fun forceInsert(_ id: String, _ r: @R) { self.rs[id] <-! r } - - destroy() { - destroy self.rs - } } access(all) fun createC2(): @C2 { @@ -449,10 +442,6 @@ func TestRuntimeResourceDictionaryValues_Nested(t *testing.T) { init() { self.c2s <- {} } - - destroy() { - destroy self.c2s - } } access(all) fun createC(): @C { @@ -627,10 +616,6 @@ func TestRuntimeResourceDictionaryValues_DictionaryTransfer(t *testing.T) { init() { self.rs <- {} } - - destroy() { - destroy self.rs - } } access(all) fun createC(): @C { @@ -993,15 +978,14 @@ func TestRuntimeResourceDictionaryValues_Destruction(t *testing.T) { ) require.NoError(t, err) - assert.Equal(t, - []string{ - `"destroying R"`, - "2", - `"destroying R"`, - "1", - }, - loggedMessages, - ) + require.Len(t, events, 3) + require.Equal(t, "flow.AccountContractAdded", events[0].EventType.ID()) + require.Equal(t, "A.0000000000000001.Test.R.ResourceDestroyed", events[1].EventType.ID()) + require.Equal(t, "A.0000000000000001.Test.R.ResourceDestroyed", events[2].EventType.ID()) + event2Fields := cadence.FieldsMappedByName(events[1]) + event3Fields := cadence.FieldsMappedByName(events[2]) + require.Equal(t, "2", event2Fields["value"].String()) + require.Equal(t, "1", event3Fields["value"].String()) } func TestRuntimeResourceDictionaryValues_Insertion(t *testing.T) { diff --git a/runtime/rlp_test.go b/runtime/rlp_test.go index 49de2444fb..8bb743f31f 100644 --- a/runtime/rlp_test.go +++ b/runtime/rlp_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/runtime.go b/runtime/runtime.go index 2c665dbb36..25dc1704e9 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -436,7 +436,7 @@ func validateArgumentParams( // Ensure the argument is of an importable type argType := arg.StaticType(inter) - if !arg.IsImportable(inter) { + if !arg.IsImportable(inter, locationRange) { return nil, &ArgumentNotImportableError{ Type: argType, } @@ -467,17 +467,22 @@ func validateArgumentParams( } // Ensure static type info is available for all values - interpreter.InspectValue(inter, arg, func(value interpreter.Value) bool { - if value == nil { - return true - } + interpreter.InspectValue( + inter, + arg, + func(value interpreter.Value) bool { + if value == nil { + return true + } - if !hasValidStaticType(inter, value) { - panic(errors.NewUnexpectedError("invalid static type for argument: %d", parameterIndex)) - } + if !hasValidStaticType(inter, value) { + panic(errors.NewUnexpectedError("invalid static type for argument: %d", parameterIndex)) + } - return true - }) + return true + }, + locationRange, + ) argumentValues[parameterIndex] = arg } diff --git a/runtime/runtime_memory_metering_test.go b/runtime/runtime_memory_metering_test.go index 0e3a03c9f7..9e8b2c23b1 100644 --- a/runtime/runtime_memory_metering_test.go +++ b/runtime/runtime_memory_metering_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/runtime_test.go b/runtime/runtime_test.go index b2e4f21760..dfbe0740b0 100644 --- a/runtime/runtime_test.go +++ b/runtime/runtime_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,10 +19,12 @@ package runtime_test import ( - "encoding/binary" + "crypto/rand" "encoding/hex" "errors" "fmt" + "math/big" + mrand "math/rand" "sync" "sync/atomic" "testing" @@ -38,6 +40,7 @@ import ( "github.com/onflow/cadence/runtime/common" runtimeErrors "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" "github.com/onflow/cadence/runtime/tests/checker" @@ -492,7 +495,8 @@ func TestRuntimeTransactionWithArguments(t *testing.T) { check: func(t *testing.T, err error) { RequireError(t, err) - assert.IsType(t, &InvalidEntryPointArgumentError{}, errors.Unwrap(err)) + var invalidEntryPointArgumentErr *InvalidEntryPointArgumentError + assert.ErrorAs(t, err, &invalidEntryPointArgumentErr) }, }, { @@ -510,8 +514,11 @@ func TestRuntimeTransactionWithArguments(t *testing.T) { check: func(t *testing.T, err error) { RequireError(t, err) - assert.IsType(t, &InvalidEntryPointArgumentError{}, errors.Unwrap(err)) - assert.IsType(t, &InvalidValueTypeError{}, errors.Unwrap(errors.Unwrap(err))) + var invalidEntryPointArgumentErr *InvalidEntryPointArgumentError + assert.ErrorAs(t, err, &invalidEntryPointArgumentErr) + + var invalidValueTypeErr *InvalidValueTypeError + assert.ErrorAs(t, err, &invalidValueTypeErr) }, }, { @@ -633,19 +640,20 @@ func TestRuntimeTransactionWithArguments(t *testing.T) { args: encodeArgs( cadence. NewStruct([]cadence.Value{cadence.String("bar")}). - WithType(&cadence.StructType{ - Location: common.AddressLocation{ + WithType(cadence.NewStructType( + common.AddressLocation{ Address: common.MustBytesToAddress([]byte{0x1}), Name: "C", }, - QualifiedIdentifier: "C.Foo", - Fields: []cadence.Field{ + "C.Foo", + []cadence.Field{ { Identifier: "y", Type: cadence.StringType, }, }, - }), + nil, + )), ), expectedLogs: []string{`"bar"`}, }, @@ -681,19 +689,20 @@ func TestRuntimeTransactionWithArguments(t *testing.T) { cadence.NewArray([]cadence.Value{ cadence. NewStruct([]cadence.Value{cadence.String("bar")}). - WithType(&cadence.StructType{ - Location: common.AddressLocation{ + WithType(cadence.NewStructType( + common.AddressLocation{ Address: common.MustBytesToAddress([]byte{0x1}), Name: "C", }, - QualifiedIdentifier: "C.Foo", - Fields: []cadence.Field{ + "C.Foo", + []cadence.Field{ { Identifier: "y", Type: cadence.StringType, }, }, - }), + nil, + )), }), ), expectedLogs: []string{`"bar"`}, @@ -710,14 +719,21 @@ func TestRuntimeTransactionWithArguments(t *testing.T) { storage := NewTestLedger(nil, nil) + authorizers := []Address{{0, 0, 0, 0, 0, 0, 0, 1}} + accountCodes := map[Location][]byte{} + runtimeInterface := &TestRuntimeInterface{ Storage: storage, OnGetSigningAccounts: func() ([]Address, error) { - return tc.authorizers, nil + return authorizers, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return tc.contracts[location], nil + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil }, OnProgramLog: func(message string) { loggedMessages = append(loggedMessages, message) @@ -725,8 +741,29 @@ func TestRuntimeTransactionWithArguments(t *testing.T) { OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { return json.Decode(nil, b) }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, } + transactionLocation := NewTransactionLocationGenerator() + for location, contract := range tc.contracts { + deploy := DeploymentTransaction(location.Name, contract) + err := rt.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: transactionLocation(), + }, + ) + + require.NoError(t, err) + } + + authorizers = tc.authorizers + err := rt.ExecuteTransaction( Script{ Source: []byte(tc.script), @@ -734,7 +771,7 @@ func TestRuntimeTransactionWithArguments(t *testing.T) { }, Context{ Interface: runtimeInterface, - Location: common.TransactionLocation{}, + Location: transactionLocation(), }, ) @@ -982,16 +1019,17 @@ func TestRuntimeScriptArguments(t *testing.T) { args: encodeArgs( cadence. NewStruct([]cadence.Value{cadence.String("bar")}). - WithType(&cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "y", Type: cadence.StringType, }, }, - }), + nil, + )), ), expectedLogs: []string{`"bar"`}, }, @@ -1015,16 +1053,17 @@ func TestRuntimeScriptArguments(t *testing.T) { cadence.NewArray([]cadence.Value{ cadence. NewStruct([]cadence.Value{cadence.String("bar")}). - WithType(&cadence.StructType{ - Location: common.ScriptLocation{}, - QualifiedIdentifier: "Foo", - Fields: []cadence.Field{ + WithType(cadence.NewStructType( + common.ScriptLocation{}, + "Foo", + []cadence.Field{ { Identifier: "y", Type: cadence.StringType, }, }, - }), + nil, + )), }), ), expectedLogs: []string{`"bar"`}, @@ -1674,6 +1713,69 @@ func TestRuntimeCompositeFunctionInvocationFromImportingProgram(t *testing.T) { require.NoError(t, err) } +func TestRuntimeStorageMultipleTransactionsInclusiveRangeFunction(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + inclusiveRangeCreation := []byte(` + access(all) fun createInclusiveRange(): InclusiveRange { + return InclusiveRange(10, 20) + } + `) + + script1 := []byte(` + import "inclusive-range-creation" + transaction { + prepare(signer: auth(Storage) &Account) { + let ir = createInclusiveRange() + signer.storage.save(ir, to: /storage/inclusiveRange) + } + } + `) + + ledger := NewTestLedger(nil, nil) + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + switch location { + case common.StringLocation("inclusive-range-creation"): + return inclusiveRangeCreation, nil + default: + return nil, fmt.Errorf("unknown import location: %s", location) + } + }, + Storage: ledger, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{42}}, nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := runtime.ExecuteTransaction( + Script{ + Source: script1, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + + var checkerErr *sema.CheckerError + require.ErrorAs(t, err, &checkerErr) + + errs := checker.RequireCheckerErrors(t, checkerErr, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + + typeMismatchError := errs[0].(*sema.TypeMismatchError) + assert.Contains(t, typeMismatchError.SecondaryError(), "expected `Storable`, got `InclusiveRange`") +} + func TestRuntimeResourceContractUseThroughReference(t *testing.T) { t.Parallel() @@ -2540,6 +2642,9 @@ func TestRuntimeTransaction_CreateAccount(t *testing.T) { script := []byte(` transaction { prepare(signer: auth(Storage) &Account) { + // Important: Perform a write which will be pending until the end of the transaction, + // but should be (temporarily) committed when the AuthAccount constructor is called + signer.storage.save(42, to: /storage/answer) Account(payer: signer) } } @@ -2547,12 +2652,20 @@ func TestRuntimeTransaction_CreateAccount(t *testing.T) { var events []cadence.Event + var performedWrite bool + + onWrite := func(owner, key, value []byte) { + performedWrite = true + } + runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), + Storage: NewTestLedger(nil, onWrite), OnGetSigningAccounts: func() ([]Address, error) { return []Address{{42}}, nil }, OnCreateAccount: func(payer Address) (address Address, err error) { + // Check that pending writes were committed before + assert.True(t, performedWrite) return Address{42}, nil }, OnEmitEvent: func(event cadence.Event) error { @@ -3130,16 +3243,21 @@ func TestRuntimeStorageLoadedDestructionConcreteType(t *testing.T) { access(all) contract Test { access(all) resource R { - // test that the destructor is linked back into the nested resource - // after being loaded from storage - destroy() { - log("destroyed") - } - } + access(self) var foo: Int + access(all) event ResourceDestroyed(foo: Int = self.foo) + init() { + self.foo = 0 + } + access(all) fun setFoo(_ arg: Int) { + self.foo = arg + } + } init() { // store nested resource in account on deployment - self.account.storage.save(<-create R(), to: /storage/r) + let r <-create R() + r.setFoo(3) + self.account.storage.save(<-r, to: /storage/r) } } `) @@ -3151,6 +3269,7 @@ func TestRuntimeStorageLoadedDestructionConcreteType(t *testing.T) { prepare(acct: auth(Storage) &Account) { let r <- acct.storage.load<@Test.R>(from: /storage/r) + r?.setFoo(6) destroy r } } @@ -3159,7 +3278,7 @@ func TestRuntimeStorageLoadedDestructionConcreteType(t *testing.T) { deploy := DeploymentTransaction("Test", contract) var accountCode []byte - var loggedMessage string + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(_ Location) (bytes []byte, err error) { @@ -3177,9 +3296,9 @@ func TestRuntimeStorageLoadedDestructionConcreteType(t *testing.T) { accountCode = code return nil }, - OnEmitEvent: func(event cadence.Event) error { return nil }, - OnProgramLog: func(message string) { - loggedMessage = message + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil }, } @@ -3208,73 +3327,97 @@ func TestRuntimeStorageLoadedDestructionConcreteType(t *testing.T) { }) require.NoError(t, err) - assert.Equal(t, `"destroyed"`, loggedMessage) + require.Len(t, events, 2) + require.Equal(t, "flow.AccountContractAdded", events[0].EventType.ID()) + require.Equal(t, "A.0000000000000001.Test.R.ResourceDestroyed(foo: 6)", events[1].String()) } -func TestRuntimeStorageLoadedDestructionAnyResource(t *testing.T) { +func TestRuntimeStorageLoadedDestructionConcreteTypeWithAttachment(t *testing.T) { t.Parallel() - runtime := NewTestInterpreterRuntime() + runtime := NewTestInterpreterRuntimeWithAttachments() addressValue := Address{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, } + attachmentContract := []byte(` + import Test from 0x01 + + access(all) contract TestAttach { + access(all) attachment A for Test.R { + access(all) event ResourceDestroyed(foo: Int = base.foo) + } + } + `) + contract := []byte(` access(all) contract Test { + access(all) resource R { - // test that the destructor is linked back into the nested resource - // after being loaded from storage - destroy() { - log("destroyed") - } - } + access(all) var foo: Int + access(all) event ResourceDestroyed(foo: Int = self.foo) + init() { + self.foo = 0 + } + access(all) fun setFoo(_ arg: Int) { + self.foo = arg + } + } init() { // store nested resource in account on deployment - self.account.storage.save(<-create R(), to: /storage/r) + let r <-create R() + r.setFoo(3) + self.account.storage.save(<-r, to: /storage/r) } } `) tx := []byte(` - // NOTE: *not* importing concrete implementation. - // Should be imported automatically when loading the value from storage + import Test from 0x01 + import TestAttach from 0x01 transaction { prepare(acct: auth(Storage) &Account) { - let r <- acct.storage.load<@AnyResource>(from: /storage/r) - destroy r + let r <- acct.storage.load<@Test.R>(from: /storage/r)! + let withAttachment <- attach TestAttach.A() to <-r + withAttachment.setFoo(6) + destroy withAttachment } } `) deploy := DeploymentTransaction("Test", contract) + deployAttachment := DeploymentTransaction("TestAttach", attachmentContract) - var accountCode []byte - var loggedMessage string + accountCodes := map[Location][]byte{} + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { return []Address{addressValue}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code return nil }, - OnEmitEvent: func(event cadence.Event) error { return nil }, - OnProgramLog: func(message string) { - loggedMessage = message + OnCreateAccount: func(payer Address) (address Address, err error) { + return addressValue, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil }, } @@ -3291,11 +3434,9 @@ func TestRuntimeStorageLoadedDestructionAnyResource(t *testing.T) { ) require.NoError(t, err) - assert.NotNil(t, accountCode) - err = runtime.ExecuteTransaction( Script{ - Source: tx, + Source: deployAttachment, }, Context{ Interface: runtimeInterface, @@ -3304,86 +3445,120 @@ func TestRuntimeStorageLoadedDestructionAnyResource(t *testing.T) { ) require.NoError(t, err) - assert.Equal(t, `"destroyed"`, loggedMessage) + err = runtime.ExecuteTransaction( + Script{ + Source: tx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }) + require.NoError(t, err) + + require.Len(t, events, 4) + require.Equal(t, "flow.AccountContractAdded", events[0].EventType.ID()) + require.Equal(t, "flow.AccountContractAdded", events[1].EventType.ID()) + require.Equal(t, "A.0000000000000001.TestAttach.A.ResourceDestroyed(foo: 6)", events[2].String()) + require.Equal(t, "A.0000000000000001.Test.R.ResourceDestroyed(foo: 6)", events[3].String()) } -func TestRuntimeStorageLoadedDestructionAfterRemoval(t *testing.T) { +func TestRuntimeStorageLoadedDestructionConcreteTypeWithAttachmentUnloadedContract(t *testing.T) { t.Parallel() - runtime := NewTestInterpreterRuntime() + runtime := NewTestInterpreterRuntimeWithAttachments() addressValue := Address{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, } + attachmentContract := []byte(` + access(all) contract TestAttach { + access(all) resource interface I { + access(all) var foo: Int + access(all) event ResourceDestroyed(foo: Int = self.foo) + } + + access(all) attachment A for I { + access(all) event ResourceDestroyed(foo: Int = base.foo) + } + } + `) + contract := []byte(` + import TestAttach from 0x01 + access(all) contract Test { - access(all) resource R { - // test that the destructor is linked back into the nested resource - // after being loaded from storage - destroy() { - log("destroyed") - } - } + + access(all) resource R: TestAttach.I { + access(all) var foo: Int + access(all) event ResourceDestroyed(foo: Int = self.foo) + init() { + self.foo = 0 + } + access(all) fun setFoo(_ arg: Int) { + self.foo = arg + } + } init() { // store nested resource in account on deployment - self.account.storage.save(<-create R(), to: /storage/r) + let r <- attach TestAttach.A() to <-create R() + r.setFoo(3) + self.account.storage.save(<-r, to: /storage/r) } } `) tx := []byte(` - // NOTE: *not* importing concrete implementation. - // Should be imported automatically when loading the value from storage + import Test from 0x01 transaction { prepare(acct: auth(Storage) &Account) { - let r <- acct.storage.load<@AnyResource>(from: /storage/r) + let r <- acct.storage.load<@Test.R>(from: /storage/r)! + r.setFoo(6) destroy r } } `) deploy := DeploymentTransaction("Test", contract) - removal := RemovalTransaction("Test") + deployAttachment := DeploymentTransaction("TestAttach", attachmentContract) - var accountCode []byte - - ledger := NewTestLedger(nil, nil) + accountCodes := map[Location][]byte{} + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, - Storage: ledger, + Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { return []Address{addressValue}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code return nil }, - OnRemoveAccountContractCode: func(_ common.AddressLocation) (err error) { - accountCode = nil + OnCreateAccount: func(payer Address) (address Address, err error) { + return addressValue, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) return nil }, - OnEmitEvent: func(event cadence.Event) error { return nil }, } nextTransactionLocation := NewTransactionLocationGenerator() - // Deploy the contract - err := runtime.ExecuteTransaction( Script{ - Source: deploy, + Source: deployAttachment, }, Context{ Interface: runtimeInterface, @@ -3392,13 +3567,9 @@ func TestRuntimeStorageLoadedDestructionAfterRemoval(t *testing.T) { ) require.NoError(t, err) - assert.NotNil(t, accountCode) - - // Remove the contract - err = runtime.ExecuteTransaction( Script{ - Source: removal, + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -3407,10 +3578,6 @@ func TestRuntimeStorageLoadedDestructionAfterRemoval(t *testing.T) { ) require.NoError(t, err) - assert.Nil(t, accountCode) - - // Destroy - err = runtime.ExecuteTransaction( Script{ Source: tx, @@ -3418,189 +3585,110 @@ func TestRuntimeStorageLoadedDestructionAfterRemoval(t *testing.T) { Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), - }, - ) - RequireError(t, err) - - var typeLoadingErr interpreter.TypeLoadingError - require.ErrorAs(t, err, &typeLoadingErr) + }) + require.NoError(t, err) - require.Equal(t, - common.AddressLocation{Address: addressValue}.TypeID(nil, "Test.R"), - typeLoadingErr.TypeID, - ) + require.Len(t, events, 5) + require.Equal(t, "flow.AccountContractAdded", events[0].EventType.ID()) + require.Equal(t, "flow.AccountContractAdded", events[1].EventType.ID()) + require.Equal(t, "A.0000000000000001.TestAttach.A.ResourceDestroyed(foo: 6)", events[2].String()) + require.Equal(t, "A.0000000000000001.TestAttach.I.ResourceDestroyed(foo: 6)", events[3].String()) + require.Equal(t, "A.0000000000000001.Test.R.ResourceDestroyed(foo: 6)", events[4].String()) } -const basicFungibleTokenContract = ` -access(all) contract FungibleToken { +func TestRuntimeStorageLoadedDestructionConcreteTypeSameNamedInterface(t *testing.T) { - access(all) resource interface Provider { - access(all) fun withdraw(amount: Int): @Vault { - pre { - amount > 0: - "Withdrawal amount must be positive" - } - post { - result.balance == amount: - "Incorrect amount returned" - } - } - } + t.Parallel() - access(all) resource interface Receiver { - access(all) balance: Int + runtime := NewTestInterpreterRuntimeWithAttachments() - init(balance: Int) { - pre { - balance >= 0: - "Initial balance must be non-negative" - } - post { - self.balance == balance: - "Balance must be initialized to the initial balance" - } - } + addressValue := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } - access(all) fun deposit(from: @{Receiver}) { - pre { - from.balance > 0: - "Deposit balance needs to be positive!" - } - post { - self.balance == before(self.balance) + before(from.balance): - "Incorrect amount removed" - } - } - } + interfaceContract1 := []byte(` + access(all) contract TestInterface1 { + access(all) resource interface I { + access(all) var foo: Int + access(all) event ResourceDestroyed(foo: Int = self.foo) + } + } + `) - access(all) resource Vault: Provider, Receiver { + interfaceContract2 := []byte(` + access(all) contract TestInterface2 { + access(all) resource interface I { + access(all) var foo: Int + access(all) event ResourceDestroyed(foo: Int = self.foo) + } + } + `) - access(all) var balance: Int + contract := []byte(` + import TestInterface1 from 0x01 + import TestInterface2 from 0x01 - init(balance: Int) { - self.balance = balance - } + access(all) contract Test { - access(all) fun withdraw(amount: Int): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount) - } + access(all) resource R: TestInterface1.I, TestInterface2.I { + access(all) var foo: Int + access(all) event ResourceDestroyed(foo: Int = self.foo) + init() { + self.foo = 0 + } + access(all) fun setFoo(_ arg: Int) { + self.foo = arg + } + } - // transfer combines withdraw and deposit into one function call - access(all) fun transfer(to: &{Receiver}, amount: Int) { - pre { - amount <= self.balance: - "Insufficient funds" - } - post { - self.balance == before(self.balance) - amount: - "Incorrect amount removed" + init() { + // store nested resource in account on deployment + let r <-create R() + r.setFoo(3) + self.account.storage.save(<-r, to: /storage/r) } - to.deposit(from: <-self.withdraw(amount: amount)) - } - - access(all) fun deposit(from: @{Receiver}) { - self.balance = self.balance + from.balance - destroy from } + `) - access(all) fun createEmptyVault(): @Vault { - return <-create Vault(balance: 0) - } - } + tx := []byte(` + import Test from 0x01 - access(all) fun createEmptyVault(): @Vault { - return <-create Vault(balance: 0) - } + transaction { - access(all) resource VaultMinter { - access(all) fun mintTokens(amount: Int, recipient: &{Receiver}) { - recipient.deposit(from: <-create Vault(balance: amount)) + prepare(acct: auth(Storage) &Account) { + let r <- acct.storage.load<@Test.R>(from: /storage/r)! + r.setFoo(6) + destroy r + } } - } - - init() { - self.account.storage.save(<-create Vault(balance: 30), to: /storage/vault) - self.account.storage.save(<-create VaultMinter(), to: /storage/minter) - } -} -` - -func TestRuntimeFungibleTokenUpdateAccountCode(t *testing.T) { - - t.Parallel() - - runtime := NewTestInterpreterRuntime() - - address1Value := Address{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, - } - - address2Value := Address{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, - } - - deploy := DeploymentTransaction("FungibleToken", []byte(basicFungibleTokenContract)) - - setup1Transaction := []byte(` - import FungibleToken from 0x01 - - transaction { - - prepare(acct: auth(Capabilities) &Account) { - - let receiverCap = acct.capabilities.storage - .issue<&{FungibleToken.Receiver}>(/storage/vault) - acct.capabilities.publish(receiverCap, at: /public/receiver) - - let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) - acct.capabilities.publish(vaultCap, at: /public/vault) - } - } `) - setup2Transaction := []byte(` - // NOTE: import location not the same as in setup1Transaction - import FungibleToken from 0x01 - - transaction { - - prepare(acct: auth(Storage, Capabilities) &Account) { - let vault <- FungibleToken.createEmptyVault() - - acct.storage.save(<-vault, to: /storage/vault) - - let receiverCap = acct.capabilities.storage - .issue<&{FungibleToken.Receiver}>(/storage/vault) - acct.capabilities.publish(receiverCap, at: /public/receiver) - - let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) - acct.capabilities.publish(vaultCap, at: /public/vault) - } - } - `) + deploy := DeploymentTransaction("Test", contract) + deployInterface1 := DeploymentTransaction("TestInterface1", interfaceContract1) + deployInterface2 := DeploymentTransaction("TestInterface2", interfaceContract2) accountCodes := map[Location][]byte{} var events []cadence.Event - signerAccount := address1Value - runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) (bytes []byte, err error) { return accountCodes[location], nil }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil + return []Address{addressValue}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { accountCodes[location] = code return nil }, + OnCreateAccount: func(payer Address) (address Address, err error) { + return addressValue, nil + }, OnEmitEvent: func(event cadence.Event) error { events = append(events, event) return nil @@ -3611,7 +3699,7 @@ func TestRuntimeFungibleTokenUpdateAccountCode(t *testing.T) { err := runtime.ExecuteTransaction( Script{ - Source: deploy, + Source: deployInterface1, }, Context{ Interface: runtimeInterface, @@ -3622,7 +3710,7 @@ func TestRuntimeFungibleTokenUpdateAccountCode(t *testing.T) { err = runtime.ExecuteTransaction( Script{ - Source: setup1Transaction, + Source: deployInterface2, }, Context{ Interface: runtimeInterface, @@ -3631,11 +3719,9 @@ func TestRuntimeFungibleTokenUpdateAccountCode(t *testing.T) { ) require.NoError(t, err) - signerAccount = address2Value - err = runtime.ExecuteTransaction( Script{ - Source: setup2Transaction, + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -3643,93 +3729,81 @@ func TestRuntimeFungibleTokenUpdateAccountCode(t *testing.T) { }, ) require.NoError(t, err) + + err = runtime.ExecuteTransaction( + Script{ + Source: tx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }) + require.NoError(t, err) + + require.Len(t, events, 6) + require.Equal(t, "flow.AccountContractAdded", events[0].EventType.ID()) + require.Equal(t, "flow.AccountContractAdded", events[1].EventType.ID()) + require.Equal(t, "flow.AccountContractAdded", events[2].EventType.ID()) + require.Equal(t, "A.0000000000000001.TestInterface1.I.ResourceDestroyed(foo: 6)", events[3].String()) + require.Equal(t, "A.0000000000000001.TestInterface2.I.ResourceDestroyed(foo: 6)", events[4].String()) + require.Equal(t, "A.0000000000000001.Test.R.ResourceDestroyed(foo: 6)", events[5].String()) } -func TestRuntimeFungibleTokenCreateAccount(t *testing.T) { +func TestRuntimeStorageLoadedDestructionAnyResource(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - address1Value := Address{ + addressValue := Address{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, } - address2Value := Address{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, - } + contract := []byte(` + access(all) contract Test { + access(all) resource R { + access(all) event ResourceDestroyed() + } - deploy := []byte(fmt.Sprintf( - ` - transaction { - prepare(signer: auth(Storage) &Account) { - let acct = Account(payer: signer) - acct.contracts.add(name: "FungibleToken", code: "%s".decodeHex()) + init() { + // store nested resource in account on deployment + self.account.storage.save(<-create R(), to: /storage/r) } - } - `, - hex.EncodeToString([]byte(basicFungibleTokenContract)), - )) - - setup1Transaction := []byte(` - import FungibleToken from 0x2 - - transaction { - - prepare(acct: auth(Capabilities) &Account) { - let receiverCap = acct.capabilities.storage - .issue<&{FungibleToken.Receiver}>(/storage/vault) - acct.capabilities.publish(receiverCap, at: /public/receiver1) - - let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) - acct.capabilities.publish(vaultCap, at: /public/vault1) - } - } + } `) - setup2Transaction := []byte(` - // NOTE: import location not the same as in setup1Transaction - import FungibleToken from 0x02 - - transaction { - - prepare(acct: auth(Storage, Capabilities) &Account) { - let vault <- FungibleToken.createEmptyVault() - - acct.storage.save(<-vault, to: /storage/vault) + tx := []byte(` + // NOTE: *not* importing concrete implementation. + // Should be imported automatically when loading the value from storage - let receiverCap = acct.capabilities.storage - .issue<&{FungibleToken.Receiver}>(/storage/vault) - acct.capabilities.publish(receiverCap, at: /public/receiver2) + transaction { - let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) - acct.capabilities.publish(vaultCap, at: /public/vault2) - } - } + prepare(acct: auth(Storage) &Account) { + let r <- acct.storage.load<@AnyResource>(from: /storage/r) + destroy r + } + } `) - accountCodes := map[Location][]byte{} - var events []cadence.Event + deploy := DeploymentTransaction("Test", contract) - signerAccount := address1Value + var accountCode []byte + var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil }, Storage: NewTestLedger(nil, nil), - OnCreateAccount: func(payer Address) (address Address, err error) { - return address2Value, nil - }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil + return []Address{addressValue}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { - accountCodes[location] = code + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + accountCode = code return nil }, OnEmitEvent: func(event cadence.Event) error { @@ -3751,9 +3825,11 @@ func TestRuntimeFungibleTokenCreateAccount(t *testing.T) { ) require.NoError(t, err) + assert.NotNil(t, accountCode) + err = runtime.ExecuteTransaction( Script{ - Source: setup1Transaction, + Source: tx, }, Context{ Interface: runtimeInterface, @@ -3762,144 +3838,82 @@ func TestRuntimeFungibleTokenCreateAccount(t *testing.T) { ) require.NoError(t, err) - err = runtime.ExecuteTransaction( - Script{ - Source: setup2Transaction, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + require.Len(t, events, 2) + require.Equal(t, "flow.AccountContractAdded", events[0].EventType.ID()) + require.Equal(t, "A.0000000000000001.Test.R.ResourceDestroyed()", events[1].String()) } -func TestRuntimeInvokeStoredInterfaceFunction(t *testing.T) { +func TestRuntimeStorageLoadedDestructionAfterRemoval(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - makeDeployTransaction := func(name, code string) []byte { - return []byte(fmt.Sprintf( - ` - transaction { - prepare(signer: auth(Storage) &Account) { - let acct = Account(payer: signer) - acct.contracts.add(name: "%s", code: "%s".decodeHex()) - } - } - `, - name, - hex.EncodeToString([]byte(code)), - )) + addressValue := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, } - contractInterfaceCode := ` - access(all) contract interface TestContractInterface { - - access(all) resource interface RInterface { - - access(all) fun check(a: Int, b: Int) { - pre { a > 1 } - post { b > 1 } - } - } - } - ` - - contractCode := ` - import TestContractInterface from 0x2 - - access(all) contract TestContract: TestContractInterface { - - access(all) resource R: TestContractInterface.RInterface { - - access(all) fun check(a: Int, b: Int) { - pre { a < 3 } - post { b < 3 } - } - } - - access(all) fun createR(): @R { - return <-create R() - } - } - ` - - setupCode := []byte(` - import TestContractInterface from 0x2 - import TestContract from 0x3 + contract := []byte(` + access(all) contract Test { + access(all) resource R {} - transaction { - prepare(signer: auth(Storage) &Account) { - signer.storage.save(<-TestContract.createR(), to: /storage/r) - } - } + init() { + // store nested resource in account on deployment + self.account.storage.save(<-create R(), to: /storage/r) + } + } `) - makeUseCode := func(a int, b int) []byte { - return []byte( - fmt.Sprintf( - ` - import TestContractInterface from 0x2 + tx := []byte(` + // NOTE: *not* importing concrete implementation. + // Should be imported automatically when loading the value from storage - // NOTE: *not* importing concrete implementation. - // Should be imported automatically when loading the value from storage + transaction { - // import TestContract from 0x3 + prepare(acct: auth(Storage) &Account) { + let r <- acct.storage.load<@AnyResource>(from: /storage/r) + destroy r + } + } + `) - transaction { - prepare(signer: auth(Storage) &Account) { - signer.storage.borrow<&{TestContractInterface.RInterface}>(from: /storage/r) - ?.check(a: %d, b: %d) - } - } - `, - a, - b, - ), - ) - } + deploy := DeploymentTransaction("Test", contract) + removal := RemovalTransaction("Test") - accountCodes := map[Location][]byte{} - var events []cadence.Event + var accountCode []byte - var nextAccount byte = 0x2 + ledger := NewTestLedger(nil, nil) runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: NewTestLedger(nil, nil), - OnCreateAccount: func(payer Address) (address Address, err error) { - result := interpreter.NewUnmeteredAddressValueFromBytes([]byte{nextAccount}) - nextAccount++ - return result.ToAddress(), nil + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil }, + Storage: ledger, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{{0x1}}, nil + return []Address{addressValue}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + accountCode = code return nil }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) + OnRemoveAccountContractCode: func(_ common.AddressLocation) (err error) { + accountCode = nil return nil }, + OnEmitEvent: func(event cadence.Event) error { return nil }, } nextTransactionLocation := NewTransactionLocationGenerator() - deployTransaction := makeDeployTransaction("TestContractInterface", contractInterfaceCode) + // Deploy the contract + err := runtime.ExecuteTransaction( Script{ - Source: deployTransaction, + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -3908,10 +3922,13 @@ func TestRuntimeInvokeStoredInterfaceFunction(t *testing.T) { ) require.NoError(t, err) - deployTransaction = makeDeployTransaction("TestContract", contractCode) + assert.NotNil(t, accountCode) + + // Remove the contract + err = runtime.ExecuteTransaction( Script{ - Source: deployTransaction, + Source: removal, }, Context{ Interface: runtimeInterface, @@ -3920,140 +3937,203 @@ func TestRuntimeInvokeStoredInterfaceFunction(t *testing.T) { ) require.NoError(t, err) + assert.Nil(t, accountCode) + + // Destroy + err = runtime.ExecuteTransaction( Script{ - Source: setupCode, + Source: tx, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) - require.NoError(t, err) - - for a := 1; a <= 3; a++ { - for b := 1; b <= 3; b++ { - - t.Run(fmt.Sprintf("%d/%d", a, b), func(t *testing.T) { - - err = runtime.ExecuteTransaction( - Script{ - Source: makeUseCode(a, b), - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - - if a == 2 && b == 2 { - assert.NoError(t, err) - } else { - RequireError(t, err) + RequireError(t, err) - assertRuntimeErrorIsUserError(t, err) + var typeLoadingErr interpreter.TypeLoadingError + require.ErrorAs(t, err, &typeLoadingErr) - require.ErrorAs(t, err, &interpreter.ConditionError{}) - } - }) - } - } + require.Equal(t, + common.AddressLocation{Address: addressValue}.TypeID(nil, "Test.R"), + typeLoadingErr.TypeID, + ) } -func TestRuntimeBlock(t *testing.T) { +const basicFungibleTokenContract = ` +access(all) contract FungibleToken { - t.Parallel() + access(all) resource interface Provider { + access(all) fun withdraw(amount: Int): @Vault { + pre { + amount > 0: + "Withdrawal amount must be positive" + } + post { + result.balance == amount: + "Incorrect amount returned" + } + } + } - runtime := NewTestInterpreterRuntime() + access(all) resource interface Receiver { + access(all) balance: Int - script := []byte(` - transaction { - prepare() { - let block = getCurrentBlock() - log(block) - log(block.height) - log(block.view) - log(block.id) - log(block.timestamp) + init(balance: Int) { + pre { + balance >= 0: + "Initial balance must be non-negative" + } + post { + self.balance == balance: + "Balance must be initialized to the initial balance" + } + } - let nextBlock = getBlock(at: block.height + UInt64(1)) - log(nextBlock) - log(nextBlock?.height) - log(nextBlock?.view) - log(nextBlock?.id) - log(nextBlock?.timestamp) + access(all) fun deposit(from: @{Receiver}) { + pre { + from.balance > 0: + "Deposit balance needs to be positive!" + } + post { + self.balance == before(self.balance) + before(from.balance): + "Incorrect amount removed" + } } - } - `) + } - var loggedMessages []string + access(all) resource Vault: Provider, Receiver { - storage := NewTestLedger(nil, nil) + access(all) var balance: Int - runtimeInterface := &TestRuntimeInterface{ - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return nil, nil - }, - OnProgramLog: func(message string) { - loggedMessages = append(loggedMessages, message) - }, - } + init(balance: Int) { + self.balance = balance + } - nextTransactionLocation := NewTransactionLocationGenerator() + access(all) fun withdraw(amount: Int): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } - err := runtime.ExecuteTransaction( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + // transfer combines withdraw and deposit into one function call + access(all) fun transfer(to: &{Receiver}, amount: Int) { + pre { + amount <= self.balance: + "Insufficient funds" + } + post { + self.balance == before(self.balance) - amount: + "Incorrect amount removed" + } + to.deposit(from: <-self.withdraw(amount: amount)) + } - assert.Equal(t, - []string{ - "Block(height: 1, view: 1, id: 0x0000000000000000000000000000000000000000000000000000000000000001, timestamp: 1.00000000)", - "1", - "1", - "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]", - "1.00000000", - "Block(height: 2, view: 2, id: 0x0000000000000000000000000000000000000000000000000000000000000002, timestamp: 2.00000000)", - "2", - "2", - "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]", - "2.00000000", - }, - loggedMessages, - ) + access(all) fun deposit(from: @{Receiver}) { + self.balance = self.balance + from.balance + destroy from + } + + access(all) fun createEmptyVault(): @Vault { + return <-create Vault(balance: 0) + } + } + + access(all) fun createEmptyVault(): @Vault { + return <-create Vault(balance: 0) + } + + access(all) resource VaultMinter { + access(all) fun mintTokens(amount: Int, recipient: &{Receiver}) { + recipient.deposit(from: <-create Vault(balance: amount)) + } + } + + init() { + self.account.storage.save(<-create Vault(balance: 30), to: /storage/vault) + self.account.storage.save(<-create VaultMinter(), to: /storage/minter) + } } +` -func TestRuntimeUnsafeRandom(t *testing.T) { +func TestRuntimeFungibleTokenUpdateAccountCode(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - script := []byte(` + address1Value := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } + + address2Value := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, + } + + deploy := DeploymentTransaction("FungibleToken", []byte(basicFungibleTokenContract)) + + setup1Transaction := []byte(` + import FungibleToken from 0x01 + transaction { - prepare() { - let rand = unsafeRandom() - log(rand) - } + + prepare(acct: auth(Capabilities) &Account) { + + let receiverCap = acct.capabilities.storage + .issue<&{FungibleToken.Receiver}>(/storage/vault) + acct.capabilities.publish(receiverCap, at: /public/receiver) + + let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) + acct.capabilities.publish(vaultCap, at: /public/vault) + } } `) - var loggedMessages []string + setup2Transaction := []byte(` + // NOTE: import location not the same as in setup1Transaction + import FungibleToken from 0x01 + + transaction { + + prepare(acct: auth(Storage, Capabilities) &Account) { + let vault <- FungibleToken.createEmptyVault() + + acct.storage.save(<-vault, to: /storage/vault) + + let receiverCap = acct.capabilities.storage + .issue<&{FungibleToken.Receiver}>(/storage/vault) + acct.capabilities.publish(receiverCap, at: /public/receiver) + + let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) + acct.capabilities.publish(vaultCap, at: /public/vault) + } + } + `) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + signerAccount := address1Value runtimeInterface := &TestRuntimeInterface{ - OnReadRandom: func(buffer []byte) error { - binary.LittleEndian.PutUint64(buffer, 7558174677681708339) + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAccount}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code return nil }, - OnProgramLog: func(message string) { - loggedMessages = append(loggedMessages, message) + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil }, } @@ -4061,7 +4141,7 @@ func TestRuntimeUnsafeRandom(t *testing.T) { err := runtime.ExecuteTransaction( Script{ - Source: script, + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -4070,262 +4150,115 @@ func TestRuntimeUnsafeRandom(t *testing.T) { ) require.NoError(t, err) - assert.Equal(t, - []string{ - "7558174677681708339", + err = runtime.ExecuteTransaction( + Script{ + Source: setup1Transaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + signerAccount = address2Value + + err = runtime.ExecuteTransaction( + Script{ + Source: setup2Transaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), }, - loggedMessages, ) + require.NoError(t, err) } -func TestRuntimeTransactionTopLevelDeclarations(t *testing.T) { +func TestRuntimeFungibleTokenCreateAccount(t *testing.T) { t.Parallel() - t.Run("transaction with function", func(t *testing.T) { - runtime := NewTestInterpreterRuntime() - - script := []byte(` - access(all) fun test() {} + runtime := NewTestInterpreterRuntime() - transaction {} - `) + address1Value := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } - runtimeInterface := &TestRuntimeInterface{ - OnGetSigningAccounts: func() ([]Address, error) { - return nil, nil - }, - } + address2Value := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, + } - nextTransactionLocation := NewTransactionLocationGenerator() + deploy := []byte(fmt.Sprintf( + ` + transaction { + prepare(signer: auth(Storage) &Account) { + let acct = Account(payer: signer) + acct.contracts.add(name: "FungibleToken", code: "%s".decodeHex()) + } + } + `, + hex.EncodeToString([]byte(basicFungibleTokenContract)), + )) - err := runtime.ExecuteTransaction( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) - }) + setup1Transaction := []byte(` + import FungibleToken from 0x2 - t.Run("transaction with resource", func(t *testing.T) { - runtime := NewTestInterpreterRuntime() + transaction { - script := []byte(` - access(all) resource R {} + prepare(acct: auth(Capabilities) &Account) { + let receiverCap = acct.capabilities.storage + .issue<&{FungibleToken.Receiver}>(/storage/vault) + acct.capabilities.publish(receiverCap, at: /public/receiver1) - transaction {} - `) + let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) + acct.capabilities.publish(vaultCap, at: /public/vault1) + } + } + `) - runtimeInterface := &TestRuntimeInterface{ - OnGetSigningAccounts: func() ([]Address, error) { - return nil, nil - }, - } + setup2Transaction := []byte(` + // NOTE: import location not the same as in setup1Transaction + import FungibleToken from 0x02 - nextTransactionLocation := NewTransactionLocationGenerator() + transaction { - err := runtime.ExecuteTransaction( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - RequireError(t, err) + prepare(acct: auth(Storage, Capabilities) &Account) { + let vault <- FungibleToken.createEmptyVault() - assertRuntimeErrorIsUserError(t, err) + acct.storage.save(<-vault, to: /storage/vault) - var checkerErr *sema.CheckerError - require.ErrorAs(t, err, &checkerErr) + let receiverCap = acct.capabilities.storage + .issue<&{FungibleToken.Receiver}>(/storage/vault) + acct.capabilities.publish(receiverCap, at: /public/receiver2) - errs := checker.RequireCheckerErrors(t, checkerErr, 1) - - assert.IsType(t, &sema.InvalidTopLevelDeclarationError{}, errs[0]) - }) -} - -func TestRuntimeStoreIntegerTypes(t *testing.T) { - - t.Parallel() - - runtime := NewTestInterpreterRuntime() - - addressValue := interpreter.AddressValue{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xCA, 0xDE, - } - - for _, integerType := range sema.AllIntegerTypes { - - typeName := integerType.String() - - t.Run(typeName, func(t *testing.T) { - - contract := []byte( - fmt.Sprintf( - ` - access(all) contract Test { - - access(all) let n: %s - - init() { - self.n = 42 - } - } - `, - typeName, - ), - ) - - deploy := DeploymentTransaction("Test", contract) - - var accountCode []byte - var events []cadence.Event - - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil - }, - Storage: NewTestLedger(nil, nil), - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{addressValue.ToAddress()}, nil - }, - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil - }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - } - - nextTransactionLocation := NewTransactionLocationGenerator() - - err := runtime.ExecuteTransaction( - Script{ - Source: deploy, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) - - assert.NotNil(t, accountCode) - }) - } -} - -func TestRuntimeResourceOwnerFieldUseComposite(t *testing.T) { - - t.Parallel() - - runtime := NewTestInterpreterRuntime() - - address := Address{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, - } - - contract := []byte(` - access(all) contract Test { - - access(all) resource R { - - access(all) fun logOwnerAddress() { - log(self.owner?.address) - } - } - - access(all) fun createR(): @R { - return <-create R() - } - } - `) - - deploy := DeploymentTransaction("Test", contract) - - tx := []byte(` - import Test from 0x1 - - transaction { - - prepare(signer: auth(Storage, Capabilities) &Account) { - - let r <- Test.createR() - log(r.owner?.address) - r.logOwnerAddress() - - signer.storage.save(<-r, to: /storage/r) - let cap = signer.capabilities.storage.issue<&Test.R>(/storage/r) - signer.capabilities.publish(cap, at: /public/r) - - let ref1 = signer.storage.borrow<&Test.R>(from: /storage/r)! - log(ref1.owner?.address) - ref1.logOwnerAddress() - - let publicAccount = getAccount(0x01) - let ref2 = publicAccount.capabilities.borrow<&Test.R>(/public/r)! - log(ref2.owner?.address) - ref2.logOwnerAddress() - } - } - `) - - tx2 := []byte(` - import Test from 0x1 - - transaction { - - prepare(signer: auth(Storage) &Account) { - let ref1 = signer.storage.borrow<&Test.R>(from: /storage/r)! - log(ref1.owner?.address) - log(ref1.owner?.balance) - log(ref1.owner?.availableBalance) - log(ref1.owner?.storage?.used) - log(ref1.owner?.storage?.capacity) - ref1.logOwnerAddress() - - let publicAccount = getAccount(0x01) - let ref2 = publicAccount.capabilities.borrow<&Test.R>(/public/r)! - log(ref2.owner?.address) - log(ref2.owner?.balance) - log(ref2.owner?.availableBalance) - log(ref2.owner?.storage?.used) - log(ref2.owner?.storage?.capacity) - ref2.logOwnerAddress() - } - } - `) + let vaultCap = acct.capabilities.storage.issue<&FungibleToken.Vault>(/storage/vault) + acct.capabilities.publish(vaultCap, at: /public/vault2) + } + } + `) accountCodes := map[Location][]byte{} var events []cadence.Event - var loggedMessages []string - storage := NewTestLedger(nil, nil) + signerAccount := address1Value runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) (bytes []byte, err error) { return accountCodes[location], nil }, - Storage: storage, + Storage: NewTestLedger(nil, nil), + OnCreateAccount: func(payer Address) (address Address, err error) { + return address2Value, nil + }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil + return []Address{signerAccount}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { accountCodes[location] = code return nil }, @@ -4333,25 +4266,6 @@ func TestRuntimeResourceOwnerFieldUseComposite(t *testing.T) { events = append(events, event) return nil }, - OnProgramLog: func(message string) { - loggedMessages = append(loggedMessages, message) - }, - OnGetAccountBalance: func(_ Address) (uint64, error) { - // return a dummy value - return 12300000000, nil - }, - OnGetAccountAvailableBalance: func(_ Address) (uint64, error) { - // return a dummy value - return 152300000000, nil - }, - OnGetStorageUsed: func(_ Address) (uint64, error) { - // return a dummy value - return 120, nil - }, - OnGetStorageCapacity: func(_ Address) (uint64, error) { - // return a dummy value - return 1245, nil - }, } nextTransactionLocation := NewTransactionLocationGenerator() @@ -4369,7 +4283,7 @@ func TestRuntimeResourceOwnerFieldUseComposite(t *testing.T) { err = runtime.ExecuteTransaction( Script{ - Source: tx, + Source: setup1Transaction, }, Context{ Interface: runtimeInterface, @@ -4378,19 +4292,9 @@ func TestRuntimeResourceOwnerFieldUseComposite(t *testing.T) { ) require.NoError(t, err) - assert.Equal(t, - []string{ - "nil", "nil", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - }, - loggedMessages, - ) - - loggedMessages = nil err = runtime.ExecuteTransaction( Script{ - Source: tx2, + Source: setup2Transaction, }, Context{ Interface: runtimeInterface, @@ -4398,131 +4302,118 @@ func TestRuntimeResourceOwnerFieldUseComposite(t *testing.T) { }, ) require.NoError(t, err) - - assert.Equal(t, - []string{ - "0x0000000000000001", // ref1.owner?.address - "123.00000000", // ref2.owner?.balance - "1523.00000000", // ref2.owner?.availableBalance - "120", // ref1.owner?.storage.used - "1245", // ref1.owner?.storage.capacity - - "0x0000000000000001", - - "0x0000000000000001", // ref2.owner?.address - "123.00000000", // ref2.owner?.balance - "1523.00000000", // ref2.owner?.availableBalance - "120", // ref2.owner?.storage.used - "1245", // ref2.owner?.storage.capacity - - "0x0000000000000001", - }, - loggedMessages, - ) } -func TestRuntimeResourceOwnerFieldUseArray(t *testing.T) { +func TestRuntimeInvokeStoredInterfaceFunction(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - address := Address{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + makeDeployToNewAccountTransaction := func(name, code string) []byte { + return []byte(fmt.Sprintf( + ` + transaction { + prepare(signer: auth(Storage) &Account) { + let acct = Account(payer: signer) + acct.contracts.add(name: "%s", code: "%s".decodeHex()) + } + } + `, + name, + hex.EncodeToString([]byte(code)), + )) } - contract := []byte(` - access(all) contract Test { + contractInterfaceCode := ` + access(all) contract interface TestContractInterface { - access(all) resource R { + access(all) resource interface RInterface { - access(all) fun logOwnerAddress() { - log(self.owner?.address) + access(all) fun check(a: Int, b: Int) { + pre { a > 1 } + post { b > 1 } } } - - access(all) fun createR(): @R { - return <-create R() - } } - `) - - deploy := DeploymentTransaction("Test", contract) + ` - tx := []byte(` - import Test from 0x1 + contractCode := ` + import TestContractInterface from 0x2 - transaction { + access(all) contract TestContract: TestContractInterface { - prepare(signer: auth(Storage, Capabilities) &Account) { + access(all) resource R: TestContractInterface.RInterface { - let rs <- [ - <-Test.createR(), - <-Test.createR() - ] - log(rs[0].owner?.address) - log(rs[1].owner?.address) - rs[0].logOwnerAddress() - rs[1].logOwnerAddress() + access(all) fun check(a: Int, b: Int) { + pre { a < 3 } + post { b < 3 } + } + } - signer.storage.save(<-rs, to: /storage/rs) - let cap = signer.capabilities.storage.issue<&[Test.R]>(/storage/rs) - signer.capabilities.publish(cap, at: /public/rs) + access(all) fun createR(): @R { + return <-create R() + } + } + ` - let ref1 = signer.storage.borrow<&[Test.R]>(from: /storage/rs)! - log(ref1[0].owner?.address) - log(ref1[1].owner?.address) - ref1[0].logOwnerAddress() - ref1[1].logOwnerAddress() + setupCode := []byte(` + import TestContractInterface from 0x2 + import TestContract from 0x3 - let publicAccount = getAccount(0x01) - let ref2 = publicAccount.capabilities.borrow<&[Test.R]>(/public/rs)! - log(ref2[0].owner?.address) - log(ref2[1].owner?.address) - ref2[0].logOwnerAddress() - ref2[1].logOwnerAddress() + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.save(<-TestContract.createR(), to: /storage/r) } } `) - tx2 := []byte(` - import Test from 0x1 + makeUseCode := func(a int, b int) []byte { + return []byte( + fmt.Sprintf( + ` + import TestContractInterface from 0x2 - transaction { + // NOTE: *not* importing concrete implementation. + // Should be imported automatically when loading the value from storage - prepare(signer: auth(Storage) &Account) { - let ref1 = signer.storage.borrow<&[Test.R]>(from: /storage/rs)! - log(ref1[0].owner?.address) - log(ref1[1].owner?.address) - ref1[0].logOwnerAddress() - ref1[1].logOwnerAddress() + // import TestContract from 0x3 - let publicAccount = getAccount(0x01) - let ref2 = publicAccount.capabilities.borrow<&[Test.R]>(/public/rs)! - log(ref2[0].owner?.address) - log(ref2[1].owner?.address) - ref2[0].logOwnerAddress() - ref2[1].logOwnerAddress() - } - } - `) + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.borrow<&{TestContractInterface.RInterface}>(from: /storage/r) + ?.check(a: %d, b: %d) + } + } + `, + a, + b, + ), + ) + } accountCodes := map[Location][]byte{} var events []cadence.Event - var loggedMessages []string + + var nextAccount byte = 0x2 runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) (bytes []byte, err error) { return accountCodes[location], nil }, Storage: NewTestLedger(nil, nil), + OnCreateAccount: func(payer Address) (address Address, err error) { + result := interpreter.NewUnmeteredAddressValueFromBytes([]byte{nextAccount}) + nextAccount++ + return result.ToAddress(), nil + }, OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil + return []Address{{0x1}}, nil }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { return accountCodes[location], nil }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { accountCodes[location] = code return nil @@ -4531,16 +4422,14 @@ func TestRuntimeResourceOwnerFieldUseArray(t *testing.T) { events = append(events, event) return nil }, - OnProgramLog: func(message string) { - loggedMessages = append(loggedMessages, message) - }, } nextTransactionLocation := NewTransactionLocationGenerator() + deployToNewAccountTransaction := makeDeployToNewAccountTransaction("TestContractInterface", contractInterfaceCode) err := runtime.ExecuteTransaction( Script{ - Source: deploy, + Source: deployToNewAccountTransaction, }, Context{ Interface: runtimeInterface, @@ -4549,9 +4438,10 @@ func TestRuntimeResourceOwnerFieldUseArray(t *testing.T) { ) require.NoError(t, err) + deployToNewAccountTransaction = makeDeployToNewAccountTransaction("TestContract", contractCode) err = runtime.ExecuteTransaction( Script{ - Source: tx, + Source: deployToNewAccountTransaction, }, Context{ Interface: runtimeInterface, @@ -4560,22 +4450,91 @@ func TestRuntimeResourceOwnerFieldUseArray(t *testing.T) { ) require.NoError(t, err) - assert.Equal(t, - []string{ - "nil", "nil", - "nil", "nil", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", + err = runtime.ExecuteTransaction( + Script{ + Source: setupCode, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), }, - loggedMessages, ) + require.NoError(t, err) - loggedMessages = nil - err = runtime.ExecuteTransaction( + for a := 1; a <= 3; a++ { + for b := 1; b <= 3; b++ { + + t.Run(fmt.Sprintf("%d/%d", a, b), func(t *testing.T) { + + err = runtime.ExecuteTransaction( + Script{ + Source: makeUseCode(a, b), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + if a == 2 && b == 2 { + assert.NoError(t, err) + } else { + RequireError(t, err) + + assertRuntimeErrorIsUserError(t, err) + + require.ErrorAs(t, err, &interpreter.ConditionError{}) + } + }) + } + } +} + +func TestRuntimeBlock(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + script := []byte(` + transaction { + prepare() { + let block = getCurrentBlock() + log(block) + log(block.height) + log(block.view) + log(block.id) + log(block.timestamp) + + let nextBlock = getBlock(at: block.height + UInt64(1)) + log(nextBlock) + log(nextBlock?.height) + log(nextBlock?.view) + log(nextBlock?.id) + log(nextBlock?.timestamp) + } + } + `) + + var loggedMessages []string + + storage := NewTestLedger(nil, nil) + + runtimeInterface := &TestRuntimeInterface{ + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return nil, nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := runtime.ExecuteTransaction( Script{ - Source: tx2, + Source: script, }, Context{ Interface: runtimeInterface, @@ -4586,433 +4545,507 @@ func TestRuntimeResourceOwnerFieldUseArray(t *testing.T) { assert.Equal(t, []string{ - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", + "Block(height: 1, view: 1, id: 0x0000000000000000000000000000000000000000000000000000000000000001, timestamp: 1.00000000)", + "1", + "1", + "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]", + "1.00000000", + "Block(height: 2, view: 2, id: 0x0000000000000000000000000000000000000000000000000000000000000002, timestamp: 2.00000000)", + "2", + "2", + "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]", + "2.00000000", }, loggedMessages, ) } -func TestRuntimeResourceOwnerFieldUseDictionary(t *testing.T) { +func TestRuntimeRandom(t *testing.T) { t.Parallel() - runtime := NewTestInterpreterRuntime() - - address := Address{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + transactionSource := ` + transaction { + prepare() { + let rand = revertibleRandom<%[1]s>(%[2]s) + log(rand) + } + } + ` + scriptSource := ` + access(all) fun main(): %[1]s { + let rand = revertibleRandom<%[1]s>(%[2]s) + return rand + } + ` + + // read randoms from `crypto/rand` when the random values + // do not matter in the rest of the test + readCryptoRandom := func(buffer []byte) error { + // random value does not matter in this test + _, err := rand.Read(buffer) + return err } - contract := []byte(` - access(all) contract Test { + executeScript := func( + ty sema.Type, + moduloArgument string, + randomGenerator func(buffer []byte) error, + ) (cadence.Value, error) { - access(all) resource R { + nextScriptLocation := NewScriptLocationGenerator() + runtime := NewTestInterpreterRuntime() - access(all) fun logOwnerAddress() { - log(self.owner?.address) - } - } + if moduloArgument != "" { + // example "modulo: UInt8(77)" + moduloArgument = fmt.Sprintf("modulo: %s(%s)", ty.String(), moduloArgument) + } + return runtime.ExecuteScript( + Script{ + Source: []byte( + fmt.Sprintf(scriptSource, + ty.String(), + moduloArgument, + )), + }, + Context{ + Interface: &TestRuntimeInterface{ + OnReadRandom: randomGenerator, + }, + Location: nextScriptLocation(), + }, + ) + } - access(all) fun createR(): @R { - return <-create R() - } - } - `) + testTypes := func(t *testing.T, testType func(*testing.T, sema.Type)) { + for _, ty := range sema.AllFixedSizeUnsignedIntegerTypes { + ty := ty + t.Run(ty.String(), func(t *testing.T) { + t.Parallel() - deploy := DeploymentTransaction("Test", contract) + testType(t, ty) + }) + } + } - tx := []byte(` - import Test from 0x1 + numericTypeByteSize := func(t *testing.T, ty sema.Type) int { + require.IsType(t, &sema.NumericType{}, ty) + return ty.(*sema.NumericType).ByteSize() + } - transaction { + newRandBuffer := func(t *testing.T) []byte { + // `randBuffer` is the random source + randBuffer := make([]byte, 32) + _, err := rand.Read(randBuffer) + require.NoError(t, err) - prepare(signer: auth(Storage, Capabilities) &Account) { + return randBuffer + } - let rs <- { - "a": <-Test.createR(), - "b": <-Test.createR() - } - log(rs["a"]?.owner?.address) - log(rs["b"]?.owner?.address) - rs["a"]?.logOwnerAddress() - rs["b"]?.logOwnerAddress() + newReadFromBuffer := func(readBuffer []byte) func(buffer []byte) error { + return func(buffer []byte) error { + // randoms are read from the random source + copy(buffer, readBuffer) + return nil + } + } - signer.storage.save(<-rs, to: /storage/rs) - let cap = signer.capabilities.storage.issue<&{String: Test.R}>(/storage/rs) - signer.capabilities.publish(cap, at: /public/rs) + // test based on a transaction, all other tests are script-based - test all types + t.Run("transaction without modulo", func(t *testing.T) { + t.Parallel() - let ref1 = signer.storage.borrow<&{String: Test.R}>(from: /storage/rs)! - log(ref1["a"]?.owner?.address) - log(ref1["b"]?.owner?.address) - ref1["a"]?.logOwnerAddress() - ref1["b"]?.logOwnerAddress() + runValidCaseWithoutModulo := func(t *testing.T, ty sema.Type) { - let publicAccount = getAccount(0x01) - let ref2 = publicAccount.capabilities.borrow<&{String: Test.R}>(/public/rs)! - log(ref2["a"]?.owner?.address) - log(ref2["b"]?.owner?.address) - ref2["a"]?.logOwnerAddress() - ref2["b"]?.logOwnerAddress() - } - } - `) + randBuffer := newRandBuffer(t) - tx2 := []byte(` - import Test from 0x1 + var loggedMessage string + runtimeInterface := &TestRuntimeInterface{ + OnReadRandom: newReadFromBuffer(randBuffer), + OnProgramLog: func(message string) { + loggedMessage = message + }, + } - transaction { + runtime := NewTestInterpreterRuntime() - prepare(signer: auth(Storage) &Account) { - let ref1 = signer.storage.borrow<&{String: Test.R}>(from: /storage/rs)! - log(ref1["a"]?.owner?.address) - log(ref1["b"]?.owner?.address) - ref1["a"]?.logOwnerAddress() - ref1["b"]?.logOwnerAddress() + nextTransactionLocation := NewTransactionLocationGenerator() + err := runtime.ExecuteTransaction( + Script{ + Source: []byte( + fmt.Sprintf(transactionSource, ty.String(), ""), + ), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - let publicAccount = getAccount(0x01) - let ref2 = publicAccount.capabilities.borrow<&{String: Test.R}>(/public/rs)! - log(ref2["a"]?.owner?.address) - log(ref2["b"]?.owner?.address) - ref2["a"]?.logOwnerAddress() - ref2["b"]?.logOwnerAddress() - } - } - `) + // prepare the expected value from the random source + expected := new(big.Int).SetBytes(randBuffer[:numericTypeByteSize(t, ty)]) + assert.Equal(t, expected.String(), loggedMessage) + } + testTypes(t, runValidCaseWithoutModulo) + }) - accountCodes := map[Location][]byte{} - var events []cadence.Event - var loggedMessages []string + // no modulo is passed - test all types + t.Run("script without modulo", func(t *testing.T) { + t.Parallel() - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: NewTestLedger(nil, nil), - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - OnProgramLog: func(message string) { - loggedMessages = append(loggedMessages, message) - }, - } + runValidCaseWithoutModulo := func(t *testing.T, ty sema.Type) { + randBuffer := newRandBuffer(t) - nextTransactionLocation := NewTransactionLocationGenerator() + value, err := executeScript(ty, "", newReadFromBuffer(randBuffer)) + require.NoError(t, err) + // prepare the expected value from the random source + expected := new(big.Int).SetBytes(randBuffer[:numericTypeByteSize(t, ty)]) + assert.Equal(t, expected.String(), value.String()) + } + testTypes(t, runValidCaseWithoutModulo) + }) - err := runtime.ExecuteTransaction( - Script{ - Source: deploy, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + // random modulo is passed as the modulo argument - test all types + t.Run("script with modulo all types", func(t *testing.T) { + t.Parallel() - err = runtime.ExecuteTransaction( - Script{ - Source: tx, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + runValidCaseWithModulo := func(t *testing.T, ty sema.Type) { + byteSize := numericTypeByteSize(t, ty) - assert.Equal(t, - []string{ - "nil", "nil", - "nil", "nil", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - }, - loggedMessages, - ) + moduloBuffer := newRandBuffer(t) - loggedMessages = nil - err = runtime.ExecuteTransaction( - Script{ - Source: tx2, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + // build a big Int from the modulo buffer, with the required `ty` size + // big.Int are used as they cover all the tested types including the small ones (UInt8 ..) + modulo := new(big.Int).SetBytes(moduloBuffer[:byteSize]) - assert.Equal(t, - []string{ - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - "0x0000000000000001", "0x0000000000000001", - }, - loggedMessages, - ) -} + // make sure `modulo` is non zero, without loss of generality. + // a random bit of `modulo` is set to `1` by operating an `Or` with a random + // power of 2. + // `power` is a random number strictly less than the bitsize of `modulo` + power := mrand.Intn(byteSize * 8) + // `powerOfTwo` is a random power of 2 + powerOfTwo := new(big.Int).Lsh(big.NewInt(1), uint(power)) + // force a bit of `modulo` to `1` + modulo.Or(modulo, powerOfTwo) -func TestRuntimeMetrics(t *testing.T) { + value, err := executeScript(ty, modulo.String(), readCryptoRandom) + require.NoError(t, err) + // convert `value` to big Int for comparison + valueBig, ok := new(big.Int).SetString(value.String(), 10) + require.True(t, ok) + // check that modulo > value + require.Equal(t, 1, modulo.Cmp(valueBig)) + } + testTypes(t, runValidCaseWithModulo) + }) - t.Parallel() + // test valid edge cases of the value modulo - test all types + t.Run("script with modulo edge cases all types", func(t *testing.T) { - runtime := NewTestInterpreterRuntime() + t.Run("max modulo", func(t *testing.T) { + t.Parallel() - imported1Location := common.StringLocation("imported1") + // case where modulo is the max value of the type + runValidCaseWithMaxModulo := func(t *testing.T, ty sema.Type) { - importedScript1 := []byte(` - access(all) fun generate(): [Int] { - return [1, 2, 3] - } - `) + // set modulo to the max value of the type: (1 << bitSize) - 1 + // big.Int are used as they cover all the tested types including the small ones (UInt8 ..) + bitSize := numericTypeByteSize(t, ty) << 3 + one := big.NewInt(1) + modulo := new(big.Int).Lsh(one, uint(bitSize)) + modulo.Sub(modulo, one) - imported2Location := common.StringLocation("imported2") + value, err := executeScript(ty, modulo.String(), readCryptoRandom) + require.NoError(t, err) + // convert `value` to big Int for comparison + valueBig, ok := new(big.Int).SetString(value.String(), 10) + require.True(t, ok) + // check that modulo > value + require.Equal(t, 1, modulo.Cmp(valueBig)) + } + testTypes(t, runValidCaseWithMaxModulo) + }) - importedScript2 := []byte(` - access(all) fun getPath(): StoragePath { - return /storage/foo - } - `) + t.Run("one modulo", func(t *testing.T) { + t.Parallel() - script1 := []byte(` - import "imported1" + // case where modulo is 1 and expected value in 0 + runValidCaseWithOneModulo := func(t *testing.T, ty sema.Type) { + // set modulo to 1 + value, err := executeScript(ty, "1", readCryptoRandom) + require.NoError(t, err) - transaction { - prepare(signer: auth(Storage) &Account) { - signer.storage.save(generate(), to: /storage/foo) - } - execute {} - } - `) + // check that value is zero + require.Equal(t, "0", value.String()) + } - script2 := []byte(` - import "imported2" + testTypes(t, runValidCaseWithOneModulo) + }) + }) - transaction { - prepare(signer: auth(Storage) &Account) { - signer.storage.load<[Int]>(from: getPath()) - } - execute {} - } - `) + // function should error if zero is used as modulo - test all types + t.Run("script with zero modulo", func(t *testing.T) { + t.Parallel() - storage := NewTestLedger(nil, nil) + runCaseWithZeroModulo := func(t *testing.T, ty sema.Type) { + // set modulo to "0" + _, err := executeScript(ty, "0", readCryptoRandom) + assertUserError(t, err) + require.ErrorContains(t, err, stdlib.ZeroModuloError.Error()) + } + testTypes(t, runCaseWithZeroModulo) + }) +} - type reports struct { - programParsed map[Location]int - programChecked map[Location]int - programInterpreted map[Location]int - } +func TestRuntimeTransactionTopLevelDeclarations(t *testing.T) { - newRuntimeInterface := func() (runtimeInterface Interface, r *reports) { + t.Parallel() - r = &reports{ - programParsed: map[common.Location]int{}, - programChecked: map[common.Location]int{}, - programInterpreted: map[common.Location]int{}, - } + t.Run("transaction with function", func(t *testing.T) { + runtime := NewTestInterpreterRuntime() - runtimeInterface = &TestRuntimeInterface{ - Storage: storage, + script := []byte(` + access(all) fun test() {} + + transaction {} + `) + + runtimeInterface := &TestRuntimeInterface{ OnGetSigningAccounts: func() ([]Address, error) { - return []Address{{42}}, nil - }, - OnGetCode: func(location Location) (bytes []byte, err error) { - switch location { - case imported1Location: - return importedScript1, nil - case imported2Location: - return importedScript2, nil - default: - return nil, fmt.Errorf("unknown import location: %s", location) - } - }, - OnProgramParsed: func(location common.Location, duration time.Duration) { - r.programParsed[location]++ - }, - OnProgramChecked: func(location common.Location, duration time.Duration) { - r.programChecked[location]++ - }, - OnProgramInterpreted: func(location common.Location, duration time.Duration) { - r.programInterpreted[location]++ + return nil, nil }, } - return - } - - i1, r1 := newRuntimeInterface() - - nextTransactionLocation := NewTransactionLocationGenerator() + nextTransactionLocation := NewTransactionLocationGenerator() - transactionLocation := nextTransactionLocation() - err := runtime.ExecuteTransaction( - Script{ - Source: script1, - }, - Context{ - Interface: i1, - Location: transactionLocation, - }, - ) - require.NoError(t, err) + err := runtime.ExecuteTransaction( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + }) - assert.Equal(t, - map[common.Location]int{ - transactionLocation: 1, - imported1Location: 1, - }, - r1.programParsed, - ) - assert.Equal(t, - map[common.Location]int{ - transactionLocation: 1, - imported1Location: 1, - }, - r1.programChecked, - ) - assert.Equal(t, - map[common.Location]int{ - transactionLocation: 1, - }, - r1.programInterpreted, - ) + t.Run("transaction with resource", func(t *testing.T) { + runtime := NewTestInterpreterRuntime() - i2, r2 := newRuntimeInterface() + script := []byte(` + access(all) resource R {} - transactionLocation = nextTransactionLocation() + transaction {} + `) - err = runtime.ExecuteTransaction( - Script{ - Source: script2, - }, - Context{ - Interface: i2, - Location: transactionLocation, - }, - ) - require.NoError(t, err) + runtimeInterface := &TestRuntimeInterface{ + OnGetSigningAccounts: func() ([]Address, error) { + return nil, nil + }, + } - assert.Equal(t, - map[common.Location]int{ - transactionLocation: 1, - imported2Location: 1, - }, - r2.programParsed, - ) - assert.Equal(t, - map[common.Location]int{ - transactionLocation: 1, - imported2Location: 1, - }, - r2.programChecked, - ) - assert.Equal(t, - map[common.Location]int{ - transactionLocation: 1, - }, - r2.programInterpreted, - ) -} + nextTransactionLocation := NewTransactionLocationGenerator() -type ownerKeyPair struct { - owner, key []byte + err := runtime.ExecuteTransaction( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + + assertRuntimeErrorIsUserError(t, err) + + var checkerErr *sema.CheckerError + require.ErrorAs(t, err, &checkerErr) + + errs := checker.RequireCheckerErrors(t, checkerErr, 1) + + assert.IsType(t, &sema.InvalidTopLevelDeclarationError{}, errs[0]) + }) } -func (w ownerKeyPair) String() string { - return string(w.key) +func TestRuntimeStoreIntegerTypes(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + addressValue := interpreter.AddressValue{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xCA, 0xDE, + } + + for _, integerType := range sema.AllIntegerTypes { + + typeName := integerType.String() + + t.Run(typeName, func(t *testing.T) { + + contract := []byte( + fmt.Sprintf( + ` + access(all) contract Test { + + access(all) let n: %s + + init() { + self.n = 42 + } + } + `, + typeName, + ), + ) + + deploy := DeploymentTransaction("Test", contract) + + var accountCode []byte + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{addressValue.ToAddress()}, nil + }, + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil + }, + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + accountCode = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := runtime.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + assert.NotNil(t, accountCode) + }) + } } -func TestRuntimeContractWriteback(t *testing.T) { +func TestRuntimeResourceOwnerFieldUseComposite(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - addressValue := cadence.BytesToAddress([]byte{0xCA, 0xDE}) + address := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } contract := []byte(` access(all) contract Test { - access(all) var test: Int + access(all) resource R { - init() { - self.test = 1 + access(all) fun logOwnerAddress() { + log(self.owner?.address) + } } - access(all) fun setTest(_ test: Int) { - self.test = test - } + access(all) fun createR(): @R { + return <-create R() + } } `) deploy := DeploymentTransaction("Test", contract) - readTx := []byte(` - import Test from 0xCADE + tx := []byte(` + import Test from 0x1 - transaction { + transaction { - prepare(signer: &Account) { - log(Test.test) - } - } - `) + prepare(signer: auth(Storage, Capabilities) &Account) { - writeTx := []byte(` - import Test from 0xCADE + let r <- Test.createR() + log(r.owner?.address) + r.logOwnerAddress() - transaction { + signer.storage.save(<-r, to: /storage/r) + let cap = signer.capabilities.storage.issue<&Test.R>(/storage/r) + signer.capabilities.publish(cap, at: /public/r) - prepare(signer: &Account) { - Test.setTest(2) + let ref1 = signer.storage.borrow<&Test.R>(from: /storage/r)! + log(ref1.owner?.address) + ref1.logOwnerAddress() + + let publicAccount = getAccount(0x01) + let ref2 = publicAccount.capabilities.borrow<&Test.R>(/public/r)! + log(ref2.owner?.address) + ref2.logOwnerAddress() } - } + } `) - var accountCode []byte - var events []cadence.Event - var loggedMessages []string - var writes []ownerKeyPair + tx2 := []byte(` + import Test from 0x1 - onWrite := func(owner, key, value []byte) { - writes = append(writes, ownerKeyPair{ - owner, - key, - }) - } + transaction { - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil - }, - Storage: NewTestLedger(nil, onWrite), - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{Address(addressValue)}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil + prepare(signer: auth(Storage) &Account) { + let ref1 = signer.storage.borrow<&Test.R>(from: /storage/r)! + log(ref1.owner?.address) + log(ref1.owner?.balance) + log(ref1.owner?.availableBalance) + log(ref1.owner?.storage?.used) + log(ref1.owner?.storage?.capacity) + ref1.logOwnerAddress() + + let publicAccount = getAccount(0x01) + let ref2 = publicAccount.capabilities.borrow<&Test.R>(/public/r)! + log(ref2.owner?.address) + log(ref2.owner?.balance) + log(ref2.owner?.availableBalance) + log(ref2.owner?.storage?.used) + log(ref2.owner?.storage?.capacity) + ref2.logOwnerAddress() + } + } + `) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + var loggedMessages []string + + storage := NewTestLedger(nil, nil) + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) (err error) { - accountCode = code + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code return nil }, OnEmitEvent: func(event cadence.Event) error { @@ -5022,6 +5055,22 @@ func TestRuntimeContractWriteback(t *testing.T) { OnProgramLog: func(message string) { loggedMessages = append(loggedMessages, message) }, + OnGetAccountBalance: func(_ Address) (uint64, error) { + // return a dummy value + return 12300000000, nil + }, + OnGetAccountAvailableBalance: func(_ Address) (uint64, error) { + // return a dummy value + return 152300000000, nil + }, + OnGetStorageUsed: func(_ Address) (uint64, error) { + // return a dummy value + return 120, nil + }, + OnGetStorageCapacity: func(_ Address) (uint64, error) { + // return a dummy value + return 1245, nil + }, } nextTransactionLocation := NewTransactionLocationGenerator() @@ -5037,34 +5086,9 @@ func TestRuntimeContractWriteback(t *testing.T) { ) require.NoError(t, err) - assert.NotNil(t, accountCode) - - assert.Equal(t, - []ownerKeyPair{ - // storage index to contract domain storage map - { - addressValue[:], - []byte("contract"), - }, - // contract value - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, - }, - // contract domain storage map - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2}, - }, - }, - writes, - ) - - writes = nil - err = runtime.ExecuteTransaction( Script{ - Source: readTx, + Source: tx, }, Context{ Interface: runtimeInterface, @@ -5073,13 +5097,19 @@ func TestRuntimeContractWriteback(t *testing.T) { ) require.NoError(t, err) - assert.Empty(t, writes) - - writes = nil + assert.Equal(t, + []string{ + "nil", "nil", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + }, + loggedMessages, + ) + loggedMessages = nil err = runtime.ExecuteTransaction( Script{ - Source: writeTx, + Source: tx2, }, Context{ Interface: runtimeInterface, @@ -5089,42 +5119,47 @@ func TestRuntimeContractWriteback(t *testing.T) { require.NoError(t, err) assert.Equal(t, - []ownerKeyPair{ - // contract value - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, - }, + []string{ + "0x0000000000000001", // ref1.owner?.address + "123.00000000", // ref2.owner?.balance + "1523.00000000", // ref2.owner?.availableBalance + "120", // ref1.owner?.storage.used + "1245", // ref1.owner?.storage.capacity + + "0x0000000000000001", + + "0x0000000000000001", // ref2.owner?.address + "123.00000000", // ref2.owner?.balance + "1523.00000000", // ref2.owner?.availableBalance + "120", // ref2.owner?.storage.used + "1245", // ref2.owner?.storage.capacity + + "0x0000000000000001", }, - writes, + loggedMessages, ) } -func TestRuntimeStorageWriteback(t *testing.T) { +func TestRuntimeResourceOwnerFieldUseArray(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - addressValue := cadence.BytesToAddress([]byte{0xCA, 0xDE}) + address := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } contract := []byte(` access(all) contract Test { access(all) resource R { - access(all) var test: Int - - init() { - self.test = 1 + access(all) fun logOwnerAddress() { + log(self.owner?.address) } - - access(all) fun setTest(_ test: Int) { - self.test = test - } } - access(all) fun createR(): @R { return <-create R() } @@ -5133,32 +5168,82 @@ func TestRuntimeStorageWriteback(t *testing.T) { deploy := DeploymentTransaction("Test", contract) - var accountCode []byte + tx := []byte(` + import Test from 0x1 + + transaction { + + prepare(signer: auth(Storage, Capabilities) &Account) { + + let rs <- [ + <-Test.createR(), + <-Test.createR() + ] + log(rs[0].owner?.address) + log(rs[1].owner?.address) + rs[0].logOwnerAddress() + rs[1].logOwnerAddress() + + signer.storage.save(<-rs, to: /storage/rs) + let cap = signer.capabilities.storage.issue<&[Test.R]>(/storage/rs) + signer.capabilities.publish(cap, at: /public/rs) + + let ref1 = signer.storage.borrow<&[Test.R]>(from: /storage/rs)! + log(ref1[0].owner?.address) + log(ref1[1].owner?.address) + ref1[0].logOwnerAddress() + ref1[1].logOwnerAddress() + + let publicAccount = getAccount(0x01) + let ref2 = publicAccount.capabilities.borrow<&[Test.R]>(/public/rs)! + log(ref2[0].owner?.address) + log(ref2[1].owner?.address) + ref2[0].logOwnerAddress() + ref2[1].logOwnerAddress() + } + } + `) + + tx2 := []byte(` + import Test from 0x1 + + transaction { + + prepare(signer: auth(Storage) &Account) { + let ref1 = signer.storage.borrow<&[Test.R]>(from: /storage/rs)! + log(ref1[0].owner?.address) + log(ref1[1].owner?.address) + ref1[0].logOwnerAddress() + ref1[1].logOwnerAddress() + + let publicAccount = getAccount(0x01) + let ref2 = publicAccount.capabilities.borrow<&[Test.R]>(/public/rs)! + log(ref2[0].owner?.address) + log(ref2[1].owner?.address) + ref2[0].logOwnerAddress() + ref2[1].logOwnerAddress() + } + } + `) + + accountCodes := map[Location][]byte{} var events []cadence.Event var loggedMessages []string - var writes []ownerKeyPair - - onWrite := func(owner, key, _ []byte) { - writes = append(writes, ownerKeyPair{ - owner, - key, - }) - } runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, - Storage: NewTestLedger(nil, onWrite), + Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{Address(addressValue)}, nil + return []Address{address}, nil }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCode, nil + return accountCodes[location], nil }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCode = code + accountCodes[location] = code return nil }, OnEmitEvent: func(event cadence.Event) error { @@ -5183,43 +5268,33 @@ func TestRuntimeStorageWriteback(t *testing.T) { ) require.NoError(t, err) - assert.NotNil(t, accountCode) - - assert.Equal(t, - []ownerKeyPair{ - // storage index to contract domain storage map - { - addressValue[:], - []byte("contract"), - }, - // contract value - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, - }, - // contract domain storage map - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2}, - }, + err = runtime.ExecuteTransaction( + Script{ + Source: tx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), }, - writes, ) + require.NoError(t, err) - writes = nil - - err = runtime.ExecuteTransaction( - Script{ - Source: []byte(` - import Test from 0xCADE - - transaction { + assert.Equal(t, + []string{ + "nil", "nil", + "nil", "nil", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + }, + loggedMessages, + ) - prepare(signer: auth(Storage) &Account) { - signer.storage.save(<-Test.createR(), to: /storage/r) - } - } - `), + loggedMessages = nil + err = runtime.ExecuteTransaction( + Script{ + Source: tx2, }, Context{ Interface: runtimeInterface, @@ -5229,386 +5304,434 @@ func TestRuntimeStorageWriteback(t *testing.T) { require.NoError(t, err) assert.Equal(t, - []ownerKeyPair{ - // storage index to storage domain storage map - { - addressValue[:], - []byte("storage"), - }, - // resource value - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3}, - }, - // storage domain storage map - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4}, - }, + []string{ + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", }, - writes, + loggedMessages, ) +} - readTx := []byte(` - import Test from 0xCADE - - transaction { +func TestRuntimeResourceOwnerFieldUseDictionary(t *testing.T) { - prepare(signer: auth(Storage) &Account) { - log(signer.storage.borrow<&Test.R>(from: /storage/r)!.test) - } - } - `) + t.Parallel() - writes = nil + runtime := NewTestInterpreterRuntime() - err = runtime.ExecuteTransaction( - Script{ - Source: readTx, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + address := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } - assert.Empty(t, writes) + contract := []byte(` + access(all) contract Test { - writeTx := []byte(` - import Test from 0xCADE + access(all) resource R { - transaction { + access(all) fun logOwnerAddress() { + log(self.owner?.address) + } + } - prepare(signer: auth(Storage) &Account) { - let r = signer.storage.borrow<&Test.R>(from: /storage/r)! - r.setTest(2) - } + access(all) fun createR(): @R { + return <-create R() + } } `) - writes = nil + deploy := DeploymentTransaction("Test", contract) - err = runtime.ExecuteTransaction( - Script{ - Source: writeTx, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + tx := []byte(` + import Test from 0x1 - assert.Equal(t, - []ownerKeyPair{ - // resource value - { - addressValue[:], - []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3}, - }, - }, - writes, - ) -} + transaction { -type logPanicError struct{} + prepare(signer: auth(Storage, Capabilities) &Account) { -func (logPanicError) Error() string { - return "" -} + let rs <- { + "a": <-Test.createR(), + "b": <-Test.createR() + } + log(rs["a"]?.owner?.address) + log(rs["b"]?.owner?.address) + rs["a"]?.logOwnerAddress() + rs["b"]?.logOwnerAddress() -var _ error = logPanicError{} + signer.storage.save(<-rs, to: /storage/rs) + let cap = signer.capabilities.storage.issue<&{String: Test.R}>(/storage/rs) + signer.capabilities.publish(cap, at: /public/rs) -func TestRuntimeExternalError(t *testing.T) { + let ref1 = signer.storage.borrow<&{String: Test.R}>(from: /storage/rs)! + log(ref1["a"]?.owner?.address) + log(ref1["b"]?.owner?.address) + ref1["a"]?.logOwnerAddress() + ref1["b"]?.logOwnerAddress() - t.Parallel() + let publicAccount = getAccount(0x01) + let ref2 = publicAccount.capabilities.borrow<&{String: Test.R}>(/public/rs)! + log(ref2["a"]?.owner?.address) + log(ref2["b"]?.owner?.address) + ref2["a"]?.logOwnerAddress() + ref2["b"]?.logOwnerAddress() + } + } + `) - interpreterRuntime := NewTestInterpreterRuntime() + tx2 := []byte(` + import Test from 0x1 - script := []byte(` transaction { - prepare() { - log("ok") - } + + prepare(signer: auth(Storage) &Account) { + let ref1 = signer.storage.borrow<&{String: Test.R}>(from: /storage/rs)! + log(ref1["a"]?.owner?.address) + log(ref1["b"]?.owner?.address) + ref1["a"]?.logOwnerAddress() + ref1["b"]?.logOwnerAddress() + + let publicAccount = getAccount(0x01) + let ref2 = publicAccount.capabilities.borrow<&{String: Test.R}>(/public/rs)! + log(ref2["a"]?.owner?.address) + log(ref2["b"]?.owner?.address) + ref2["a"]?.logOwnerAddress() + ref2["b"]?.logOwnerAddress() + } } `) + accountCodes := map[Location][]byte{} + var events []cadence.Event + var loggedMessages []string + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return nil, nil + return []Address{address}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil }, OnProgramLog: func(message string) { - panic(logPanicError{}) + loggedMessages = append(loggedMessages, message) }, } nextTransactionLocation := NewTransactionLocationGenerator() - err := interpreterRuntime.ExecuteTransaction( + err := runtime.ExecuteTransaction( Script{ - Source: script, + Source: deploy, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) + require.NoError(t, err) - RequireError(t, err) - - assertRuntimeErrorIsExternalError(t, err) -} - -func TestRuntimeExternalNonError(t *testing.T) { - - t.Parallel() - - interpreterRuntime := NewTestInterpreterRuntime() - - script := []byte(` - transaction { - prepare() { - log("ok") - } - } - `) - - type logPanic struct{} - - runtimeInterface := &TestRuntimeInterface{ - OnGetSigningAccounts: func() ([]Address, error) { - return nil, nil + err = runtime.ExecuteTransaction( + Script{ + Source: tx, }, - OnProgramLog: func(message string) { - panic(logPanic{}) + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), }, - } + ) + require.NoError(t, err) - nextTransactionLocation := NewTransactionLocationGenerator() + assert.Equal(t, + []string{ + "nil", "nil", + "nil", "nil", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + }, + loggedMessages, + ) - err := interpreterRuntime.ExecuteTransaction( + loggedMessages = nil + err = runtime.ExecuteTransaction( Script{ - Source: script, + Source: tx2, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) + require.NoError(t, err) - RequireError(t, err) - - var runtimeError Error - require.ErrorAs(t, err, &runtimeError) - - innerError := runtimeError.Unwrap() - require.ErrorAs(t, innerError, &runtimeErrors.ExternalNonError{}) + assert.Equal(t, + []string{ + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + "0x0000000000000001", "0x0000000000000001", + }, + loggedMessages, + ) } -func TestRuntimeDeployCodeCaching(t *testing.T) { +func TestRuntimeMetrics(t *testing.T) { t.Parallel() - const helloWorldContract = ` - access(all) contract HelloWorld { + runtime := NewTestInterpreterRuntime() - access(all) let greeting: String + imported1Location := common.StringLocation("imported1") - init() { - self.greeting = "Hello, World!" - } + importedScript1 := []byte(` + access(all) fun generate(): [Int] { + return [1, 2, 3] + } + `) - access(all) fun hello(): String { - return self.greeting - } + imported2Location := common.StringLocation("imported2") + + importedScript2 := []byte(` + access(all) fun getPath(): StoragePath { + return /storage/foo } - ` + `) - const callHelloTxTemplate = ` - import HelloWorld from 0x%s + script1 := []byte(` + import "imported1" - transaction { - prepare(signer: &Account) { - assert(HelloWorld.hello() == "Hello, World!") - } - } - ` + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.save(generate(), to: /storage/foo) + } + execute {} + } + `) - createAccountTx := []byte(` - transaction { - prepare(signer: auth(BorrowValue) &Account) { - Account(payer: signer) - } - } + script2 := []byte(` + import "imported2" + + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.load<[Int]>(from: getPath()) + } + execute {} + } `) - deployTx := DeploymentTransaction("HelloWorld", []byte(helloWorldContract)) + storage := NewTestLedger(nil, nil) - runtime := NewTestInterpreterRuntime() + type reports struct { + programParsed map[Location]int + programChecked map[Location]int + programInterpreted map[Location]int + } - accountCodes := map[common.Location][]byte{} - var events []cadence.Event + newRuntimeInterface := func() (runtimeInterface Interface, r *reports) { - var accountCounter uint8 = 0 + r = &reports{ + programParsed: map[common.Location]int{}, + programChecked: map[common.Location]int{}, + programInterpreted: map[common.Location]int{}, + } - var signerAddresses []Address + runtimeInterface = &TestRuntimeInterface{ + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{42}}, nil + }, + OnGetCode: func(location Location) (bytes []byte, err error) { + switch location { + case imported1Location: + return importedScript1, nil + case imported2Location: + return importedScript2, nil + default: + return nil, fmt.Errorf("unknown import location: %s", location) + } + }, + OnProgramParsed: func(location common.Location, duration time.Duration) { + r.programParsed[location]++ + }, + OnProgramChecked: func(location common.Location, duration time.Duration) { + r.programChecked[location]++ + }, + OnProgramInterpreted: func(location common.Location, duration time.Duration) { + r.programInterpreted[location]++ + }, + } - runtimeInterface := &TestRuntimeInterface{ - OnCreateAccount: func(payer Address) (address Address, err error) { - accountCounter++ - return Address{accountCounter}, nil - }, - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: NewTestLedger(nil, nil), - OnGetSigningAccounts: func() ([]Address, error) { - return signerAddresses, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, + return } - nextTransactionLocation := NewTransactionLocationGenerator() - - // create the account + i1, r1 := newRuntimeInterface() - signerAddresses = []Address{{accountCounter}} + nextTransactionLocation := NewTransactionLocationGenerator() + transactionLocation := nextTransactionLocation() err := runtime.ExecuteTransaction( Script{ - Source: createAccountTx, + Source: script1, }, Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), + Interface: i1, + Location: transactionLocation, }, ) require.NoError(t, err) - // deploy the contract - - signerAddresses = []Address{{accountCounter}} - - err = runtime.ExecuteTransaction( - Script{ - Source: deployTx, + assert.Equal(t, + map[common.Location]int{ + transactionLocation: 1, + imported1Location: 1, }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), + r1.programParsed, + ) + assert.Equal(t, + map[common.Location]int{ + transactionLocation: 1, + imported1Location: 1, }, + r1.programChecked, + ) + assert.Equal(t, + map[common.Location]int{ + transactionLocation: 1, + }, + r1.programInterpreted, ) - require.NoError(t, err) - // call the hello function + i2, r2 := newRuntimeInterface() - callTx := []byte(fmt.Sprintf(callHelloTxTemplate, Address{accountCounter})) + transactionLocation = nextTransactionLocation() err = runtime.ExecuteTransaction( Script{ - Source: callTx, + Source: script2, }, Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), + Interface: i2, + Location: transactionLocation, }, ) require.NoError(t, err) + + assert.Equal(t, + map[common.Location]int{ + transactionLocation: 1, + imported2Location: 1, + }, + r2.programParsed, + ) + assert.Equal(t, + map[common.Location]int{ + transactionLocation: 1, + imported2Location: 1, + }, + r2.programChecked, + ) + assert.Equal(t, + map[common.Location]int{ + transactionLocation: 1, + }, + r2.programInterpreted, + ) } -func TestRuntimeUpdateCodeCaching(t *testing.T) { +type ownerKeyPair struct { + owner, key []byte +} + +func (w ownerKeyPair) String() string { + return string(w.key) +} + +func TestRuntimeContractWriteback(t *testing.T) { t.Parallel() - const helloWorldContract1 = ` - access(all) contract HelloWorld { + runtime := NewTestInterpreterRuntime() - access(all) fun hello(): String { - return "1" - } - } - ` + addressValue := cadence.BytesToAddress([]byte{0xCA, 0xDE}) - const helloWorldContract2 = ` - access(all) contract HelloWorld { + contract := []byte(` + access(all) contract Test { - access(all) fun hello(): String { - return "2" + access(all) var test: Int + + init() { + self.test = 1 } + + access(all) fun setTest(_ test: Int) { + self.test = test + } } - ` + `) - const callHelloScriptTemplate = ` - import HelloWorld from 0x%s + deploy := DeploymentTransaction("Test", contract) - access(all) fun main(): String { - return HelloWorld.hello() - } - ` + readTx := []byte(` + import Test from 0xCADE - const callHelloTransactionTemplate = ` - import HelloWorld from 0x%s - - transaction { - prepare(signer: &Account) { - log(HelloWorld.hello()) - } - } - ` + transaction { - createAccountTx := []byte(` - transaction { - prepare(signer: auth(BorrowValue) &Account) { - Account(payer: signer) - } - } + prepare(signer: &Account) { + log(Test.test) + } + } `) - deployTx := DeploymentTransaction("HelloWorld", []byte(helloWorldContract1)) - updateTx := UpdateTransaction("HelloWorld", []byte(helloWorldContract2)) + writeTx := []byte(` + import Test from 0xCADE - runtime := NewTestInterpreterRuntime() + transaction { - accountCodes := map[common.Location][]byte{} + prepare(signer: &Account) { + Test.setTest(2) + } + } + `) + + var accountCode []byte var events []cadence.Event var loggedMessages []string + var writes []ownerKeyPair - var accountCounter uint8 = 0 - - var signerAddresses []Address - - var programHits []string + onWrite := func(owner, key, value []byte) { + writes = append(writes, ownerKeyPair{ + owner, + key, + }) + } runtimeInterface := &TestRuntimeInterface{ - OnCreateAccount: func(payer Address) (address Address, err error) { - accountCounter++ - return Address{accountCounter}, nil - }, - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil }, - Storage: NewTestLedger(nil, nil), + Storage: NewTestLedger(nil, onWrite), OnGetSigningAccounts: func() ([]Address, error) { - return signerAddresses, nil + return []Address{Address(addressValue)}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) (err error) { + accountCode = code return nil }, OnEmitEvent: func(event cadence.Event) error { @@ -5621,15 +5744,10 @@ func TestRuntimeUpdateCodeCaching(t *testing.T) { } nextTransactionLocation := NewTransactionLocationGenerator() - nextScriptLocation := NewScriptLocationGenerator() - - // create the account - - signerAddresses = []Address{{accountCounter}} err := runtime.ExecuteTransaction( Script{ - Source: createAccountTx, + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -5638,15 +5756,34 @@ func TestRuntimeUpdateCodeCaching(t *testing.T) { ) require.NoError(t, err) - // deploy the contract + assert.NotNil(t, accountCode) - programHits = nil + assert.Equal(t, + []ownerKeyPair{ + // storage index to contract domain storage map + { + addressValue[:], + []byte("contract"), + }, + // contract value + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, + }, + // contract domain storage map + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2}, + }, + }, + writes, + ) - signerAddresses = []Address{{accountCounter}} + writes = nil err = runtime.ExecuteTransaction( Script{ - Source: deployTx, + Source: readTx, }, Context{ Interface: runtimeInterface, @@ -5654,45 +5791,109 @@ func TestRuntimeUpdateCodeCaching(t *testing.T) { }, ) require.NoError(t, err) - require.Empty(t, programHits) - - location := common.AddressLocation{ - Address: signerAddresses[0], - Name: "HelloWorld", - } - - require.NotContains(t, runtimeInterface.Programs, location) - // call the initial hello function + assert.Empty(t, writes) - callScript := []byte(fmt.Sprintf(callHelloScriptTemplate, Address{accountCounter})) + writes = nil - result1, err := runtime.ExecuteScript( + err = runtime.ExecuteTransaction( Script{ - Source: callScript, + Source: writeTx, }, Context{ Interface: runtimeInterface, - Location: nextScriptLocation(), + Location: nextTransactionLocation(), }, ) require.NoError(t, err) - require.Equal(t, cadence.String("1"), result1) - // The deployed hello world contract was imported, - // assert that it was stored in the program storage - // after it was parsed and checked + assert.Equal(t, + []ownerKeyPair{ + // contract value + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, + }, + }, + writes, + ) +} - initialProgram := runtimeInterface.Programs[location] - require.NotNil(t, initialProgram) +func TestRuntimeStorageWriteback(t *testing.T) { - // update the contract + t.Parallel() - programHits = nil + runtime := NewTestInterpreterRuntime() - err = runtime.ExecuteTransaction( + addressValue := cadence.BytesToAddress([]byte{0xCA, 0xDE}) + + contract := []byte(` + access(all) contract Test { + + access(all) resource R { + + access(all) var test: Int + + init() { + self.test = 1 + } + + access(all) fun setTest(_ test: Int) { + self.test = test + } + } + + + access(all) fun createR(): @R { + return <-create R() + } + } + `) + + deploy := DeploymentTransaction("Test", contract) + + var accountCode []byte + var events []cadence.Event + var loggedMessages []string + var writes []ownerKeyPair + + onWrite := func(owner, key, _ []byte) { + writes = append(writes, ownerKeyPair{ + owner, + key, + }) + } + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil + }, + Storage: NewTestLedger(nil, onWrite), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{Address(addressValue)}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCode, nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCode = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := runtime.ExecuteTransaction( Script{ - Source: updateTx, + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -5700,40 +5901,89 @@ func TestRuntimeUpdateCodeCaching(t *testing.T) { }, ) require.NoError(t, err) - require.Empty(t, programHits) - // Assert that the contract update did NOT change - // the program in program storage + assert.NotNil(t, accountCode) - require.Same(t, - initialProgram, - runtimeInterface.Programs[location], + assert.Equal(t, + []ownerKeyPair{ + // storage index to contract domain storage map + { + addressValue[:], + []byte("contract"), + }, + // contract value + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, + }, + // contract domain storage map + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2}, + }, + }, + writes, ) - require.NotNil(t, runtimeInterface.Programs[location]) - // call the new hello function from a script + writes = nil - result2, err := runtime.ExecuteScript( + err = runtime.ExecuteTransaction( Script{ - Source: callScript, + Source: []byte(` + import Test from 0xCADE + + transaction { + + prepare(signer: auth(Storage) &Account) { + signer.storage.save(<-Test.createR(), to: /storage/r) + } + } + `), }, Context{ Interface: runtimeInterface, - Location: nextScriptLocation(), + Location: nextTransactionLocation(), }, ) require.NoError(t, err) - require.Equal(t, cadence.String("2"), result2) - - // call the new hello function from a transaction - callTransaction := []byte(fmt.Sprintf(callHelloTransactionTemplate, Address{accountCounter})) + assert.Equal(t, + []ownerKeyPair{ + // storage index to storage domain storage map + { + addressValue[:], + []byte("storage"), + }, + // resource value + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3}, + }, + // storage domain storage map + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4}, + }, + }, + writes, + ) - loggedMessages = nil + readTx := []byte(` + import Test from 0xCADE + + transaction { + + prepare(signer: auth(Storage) &Account) { + log(signer.storage.borrow<&Test.R>(from: /storage/r)!.test) + } + } + `) + + writes = nil err = runtime.ExecuteTransaction( Script{ - Source: callTransaction, + Source: readTx, }, Context{ Interface: runtimeInterface, @@ -5741,16 +5991,141 @@ func TestRuntimeUpdateCodeCaching(t *testing.T) { }, ) require.NoError(t, err) - require.Equal(t, - []string{`"2"`}, - loggedMessages, + + assert.Empty(t, writes) + + writeTx := []byte(` + import Test from 0xCADE + + transaction { + + prepare(signer: auth(Storage) &Account) { + let r = signer.storage.borrow<&Test.R>(from: /storage/r)! + r.setTest(2) + } + } + `) + + writes = nil + + err = runtime.ExecuteTransaction( + Script{ + Source: writeTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + assert.Equal(t, + []ownerKeyPair{ + // resource value + { + addressValue[:], + []byte{'$', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3}, + }, + }, + writes, ) } -func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { +type logPanicError struct{} - // We do not want to hit the stored programs for toplevel programs - // (scripts and transactions) until we have moved the caching layer to Cadence. +func (logPanicError) Error() string { + return "" +} + +var _ error = logPanicError{} + +func TestRuntimeExternalError(t *testing.T) { + + t.Parallel() + + interpreterRuntime := NewTestInterpreterRuntime() + + script := []byte(` + transaction { + prepare() { + log("ok") + } + } + `) + + runtimeInterface := &TestRuntimeInterface{ + OnGetSigningAccounts: func() ([]Address, error) { + return nil, nil + }, + OnProgramLog: func(message string) { + panic(logPanicError{}) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := interpreterRuntime.ExecuteTransaction( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + + assertRuntimeErrorIsExternalError(t, err) +} + +func TestRuntimeExternalNonError(t *testing.T) { + + t.Parallel() + + interpreterRuntime := NewTestInterpreterRuntime() + + script := []byte(` + transaction { + prepare() { + log("ok") + } + } + `) + + type logPanic struct{} + + runtimeInterface := &TestRuntimeInterface{ + OnGetSigningAccounts: func() ([]Address, error) { + return nil, nil + }, + OnProgramLog: func(message string) { + panic(logPanic{}) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := interpreterRuntime.ExecuteTransaction( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + + var runtimeError Error + require.ErrorAs(t, err, &runtimeError) + + innerError := runtimeError.Unwrap() + require.ErrorAs(t, innerError, &runtimeErrors.ExternalNonError{}) +} + +func TestRuntimeDeployCodeCaching(t *testing.T) { t.Parallel() @@ -5794,14 +6169,10 @@ func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { accountCodes := map[common.Location][]byte{} var events []cadence.Event - programs := map[common.Location]*interpreter.Program{} - var accountCounter uint8 = 0 var signerAddresses []Address - var programsHits []Location - runtimeInterface := &TestRuntimeInterface{ OnCreateAccount: func(payer Address) (address Address, err error) { accountCounter++ @@ -5810,30 +6181,6 @@ func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { OnGetCode: func(location Location) (bytes []byte, err error) { return accountCodes[location], nil }, - OnGetAndSetProgram: func( - location Location, - load func() (*interpreter.Program, error), - ) ( - program *interpreter.Program, - err error, - ) { - programsHits = append(programsHits, location) - - var ok bool - program, ok = programs[location] - if ok { - return - } - - program, err = load() - - // NOTE: important: still set empty program, - // even if error occurred - - programs[location] = program - - return - }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { return signerAddresses, nil @@ -5854,10 +6201,10 @@ func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { nextTransactionLocation := NewTransactionLocationGenerator() - signerAddresses = []Address{{accountCounter}} - // create the account + signerAddresses = []Address{{accountCounter}} + err := runtime.ExecuteTransaction( Script{ Source: createAccountTx, @@ -5869,6 +6216,8 @@ func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { ) require.NoError(t, err) + // deploy the contract + signerAddresses = []Address{{accountCounter}} err = runtime.ExecuteTransaction( @@ -5882,7 +6231,7 @@ func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { ) require.NoError(t, err) - // call the function + // call the hello function callTx := []byte(fmt.Sprintf(callHelloTxTemplate, Address{accountCounter})) @@ -5896,151 +6245,110 @@ func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { }, ) require.NoError(t, err) - - require.Equal(t, - []common.Location{ - common.TransactionLocation{ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, - common.TransactionLocation{ - 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, - common.TransactionLocation{ - 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, - common.AddressLocation{ - Address: Address{0x1}, - Name: "HelloWorld", - }, - common.AddressLocation{ - Address: Address{0x1}, - Name: "HelloWorld", - }, - }, - programsHits, - ) } -func TestRuntimeTransaction_ContractUpdate(t *testing.T) { +func TestRuntimeUpdateCodeCaching(t *testing.T) { t.Parallel() - runtime := NewTestInterpreterRuntime() + const helloWorldContract1 = ` + access(all) contract HelloWorld { - const contract1 = ` - access(all) contract Test { + access(all) fun hello(): String { + return "1" + } + } + ` - access(all) resource R { + const helloWorldContract2 = ` + access(all) contract HelloWorld { - access(all) let name: String + access(all) fun hello(): String { + return "2" + } + } + ` - init(name: String) { - self.name = name - } - - access(all) fun hello(): Int { - return 1 - } - } - - access(all) var rs: @{String: R} - - access(all) fun hello(): Int { - return 1 - } + const callHelloScriptTemplate = ` + import HelloWorld from 0x%s - init() { - self.rs <- {} - self.rs["r1"] <-! create R(name: "1") - } - } + access(all) fun main(): String { + return HelloWorld.hello() + } ` - const contract2 = ` - access(all) contract Test { - - access(all) resource R { + const callHelloTransactionTemplate = ` + import HelloWorld from 0x%s - access(all) let name: String + transaction { + prepare(signer: &Account) { + log(HelloWorld.hello()) + } + } + ` - init(name: String) { - self.name = name - } + createAccountTx := []byte(` + transaction { + prepare(signer: auth(BorrowValue) &Account) { + Account(payer: signer) + } + } + `) - access(all) fun hello(): Int { - return 2 - } - } + deployTx := DeploymentTransaction("HelloWorld", []byte(helloWorldContract1)) + updateTx := UpdateTransaction("HelloWorld", []byte(helloWorldContract2)) - access(all) var rs: @{String: R} + runtime := NewTestInterpreterRuntime() - access(all) fun hello(): Int { - return 2 - } + accountCodes := map[common.Location][]byte{} + var events []cadence.Event + var loggedMessages []string - init() { - self.rs <- {} - panic("should never be executed") - } - } - ` + var accountCounter uint8 = 0 - var accountCode []byte - var events []cadence.Event + var signerAddresses []Address - signerAddress := common.MustBytesToAddress([]byte{0x42}) + var programHits []string runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAddress}, nil + OnCreateAccount: func(payer Address) (address Address, err error) { + accountCounter++ + return Address{accountCounter}, nil }, - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, - OnResolveLocation: func(identifiers []Identifier, location Location) ([]ResolvedLocation, error) { - require.Empty(t, identifiers) - require.IsType(t, common.AddressLocation{}, location) - - return []ResolvedLocation{ - { - Location: common.AddressLocation{ - Address: location.(common.AddressLocation).Address, - Name: "Test", - }, - Identifiers: []ast.Identifier{ - { - Identifier: "Test", - }, - }, - }, - }, nil + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return signerAddresses, nil }, - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code return nil }, OnEmitEvent: func(event cadence.Event) error { events = append(events, event) return nil }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, } nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() - // Deploy the Test contract + // create the account - deployTx1 := DeploymentTransaction("Test", []byte(contract1)) + signerAddresses = []Address{{accountCounter}} err := runtime.ExecuteTransaction( Script{ - Source: deployTx1, + Source: createAccountTx, }, Context{ Interface: runtimeInterface, @@ -6049,36 +6357,38 @@ func TestRuntimeTransaction_ContractUpdate(t *testing.T) { ) require.NoError(t, err) - location := common.AddressLocation{ - Address: signerAddress, - Name: "Test", - } - - require.NotContains(t, runtimeInterface.Programs, location) + // deploy the contract - // Use the Test contract + programHits = nil - script1 := []byte(` - import 0x42 + signerAddresses = []Address{{accountCounter}} - access(all) fun main() { - // Check stored data + err = runtime.ExecuteTransaction( + Script{ + Source: deployTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + require.Empty(t, programHits) - assert(Test.rs.length == 1) - assert(Test.rs["r1"]?.name == "1") + location := common.AddressLocation{ + Address: signerAddresses[0], + Name: "HelloWorld", + } - // Check functions + require.NotContains(t, runtimeInterface.Programs, location) - assert(Test.rs["r1"]?.hello() == 1) - assert(Test.hello() == 1) - } - `) + // call the initial hello function - nextScriptLocation := NewScriptLocationGenerator() + callScript := []byte(fmt.Sprintf(callHelloScriptTemplate, Address{accountCounter})) - _, err = runtime.ExecuteScript( + result1, err := runtime.ExecuteScript( Script{ - Source: script1, + Source: callScript, }, Context{ Interface: runtimeInterface, @@ -6086,6 +6396,7 @@ func TestRuntimeTransaction_ContractUpdate(t *testing.T) { }, ) require.NoError(t, err) + require.Equal(t, cadence.String("1"), result1) // The deployed hello world contract was imported, // assert that it was stored in the program storage @@ -6094,13 +6405,13 @@ func TestRuntimeTransaction_ContractUpdate(t *testing.T) { initialProgram := runtimeInterface.Programs[location] require.NotNil(t, initialProgram) - // Update the Test contract + // update the contract - deployTx2 := UpdateTransaction("Test", []byte(contract2)) + programHits = nil err = runtime.ExecuteTransaction( Script{ - Source: deployTx2, + Source: updateTx, }, Context{ Interface: runtimeInterface, @@ -6108,6 +6419,7 @@ func TestRuntimeTransaction_ContractUpdate(t *testing.T) { }, ) require.NoError(t, err) + require.Empty(t, programHits) // Assert that the contract update did NOT change // the program in program storage @@ -6118,626 +6430,756 @@ func TestRuntimeTransaction_ContractUpdate(t *testing.T) { ) require.NotNil(t, runtimeInterface.Programs[location]) - // Use the new Test contract - - script2 := []byte(` - import 0x42 + // call the new hello function from a script - access(all) fun main() { - // Existing data is still available and the same as before + result2, err := runtime.ExecuteScript( + Script{ + Source: callScript, + }, + Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) + require.Equal(t, cadence.String("2"), result2) - assert(Test.rs.length == 1) - assert(Test.rs["r1"]?.name == "1") + // call the new hello function from a transaction - // New function code is executed. - // Compare with script1 above, which checked 1. + callTransaction := []byte(fmt.Sprintf(callHelloTransactionTemplate, Address{accountCounter})) - assert(Test.rs["r1"]?.hello() == 2) - assert(Test.hello() == 2) - } - `) + loggedMessages = nil - _, err = runtime.ExecuteScript( + err = runtime.ExecuteTransaction( Script{ - Source: script2, + Source: callTransaction, }, Context{ Interface: runtimeInterface, - Location: nextScriptLocation(), + Location: nextTransactionLocation(), }, ) require.NoError(t, err) + require.Equal(t, + []string{`"2"`}, + loggedMessages, + ) } -func TestRuntimeExecuteScriptArguments(t *testing.T) { +func TestRuntimeProgramsHitForToplevelPrograms(t *testing.T) { + + // We do not want to hit the stored programs for toplevel programs + // (scripts and transactions) until we have moved the caching layer to Cadence. t.Parallel() - runtime := NewTestInterpreterRuntime() + const helloWorldContract = ` + access(all) contract HelloWorld { - script := []byte(` - access(all) fun main(num: Int) {} - `) + access(all) let greeting: String - type testCase struct { - name string - arguments [][]byte - valid bool - } + init() { + self.greeting = "Hello, World!" + } - test := func(tc testCase) { - t.Run(tc.name, func(t *testing.T) { + access(all) fun hello(): String { + return self.greeting + } + } + ` - // NOTE: to parallelize this sub-test, - // access to `programs` must be made thread-safe first + const callHelloTxTemplate = ` + import HelloWorld from 0x%s - storage := NewTestLedger(nil, nil) + transaction { + prepare(signer: &Account) { + assert(HelloWorld.hello() == "Hello, World!") + } + } + ` - runtimeInterface := &TestRuntimeInterface{ - Storage: storage, - OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { - return json.Decode(nil, b) - }, - } + createAccountTx := []byte(` + transaction { + prepare(signer: auth(BorrowValue) &Account) { + Account(payer: signer) + } + } + `) - _, err := runtime.ExecuteScript( - Script{ - Source: script, - Arguments: tc.arguments, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{0x1}, - }, - ) + deployTx := DeploymentTransaction("HelloWorld", []byte(helloWorldContract)) - if tc.valid { - require.NoError(t, err) - } else { - RequireError(t, err) + runtime := NewTestInterpreterRuntime() - assertRuntimeErrorIsUserError(t, err) + accountCodes := map[common.Location][]byte{} + var events []cadence.Event - require.ErrorAs(t, err, &InvalidEntryPointParameterCountError{}) - } - }) - } + programs := map[common.Location]*interpreter.Program{} - for _, testCase := range []testCase{ - { - name: "too few arguments", - arguments: [][]byte{}, - valid: false, - }, - { - name: "correct number of arguments", - arguments: encodeArgs( - cadence.NewInt(1), - ), - valid: true, + var accountCounter uint8 = 0 + + var signerAddresses []Address + + var programsHits []Location + + runtimeInterface := &TestRuntimeInterface{ + OnCreateAccount: func(payer Address) (address Address, err error) { + accountCounter++ + return Address{accountCounter}, nil }, - { - name: "too many arguments", - arguments: encodeArgs( - cadence.NewInt(1), - cadence.NewInt(2), - ), - valid: false, + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, - } { - test(testCase) - } -} - -func TestRuntimePanics(t *testing.T) { + OnGetAndSetProgram: func( + location Location, + load func() (*interpreter.Program, error), + ) ( + program *interpreter.Program, + err error, + ) { + programsHits = append(programsHits, location) - t.Parallel() + var ok bool + program, ok = programs[location] + if ok { + return + } - runtime := NewTestInterpreterRuntime() + program, err = load() - script := []byte(` - access(all) fun main() { - [1][1] - } - `) + // NOTE: important: still set empty program, + // even if error occurred - storage := NewTestLedger(nil, nil) + programs[location] = program - runtimeInterface := &TestRuntimeInterface{ - Storage: storage, + return + }, + Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{{42}}, nil + return signerAddresses, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil }, } nextTransactionLocation := NewTransactionLocationGenerator() - _, err := runtime.ExecuteScript( + signerAddresses = []Address{{accountCounter}} + + // create the account + + err := runtime.ExecuteTransaction( Script{ - Source: script, + Source: createAccountTx, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) - RequireError(t, err) - -} - -func TestRuntimeAccountsInDictionary(t *testing.T) { + require.NoError(t, err) - t.Parallel() + signerAddresses = []Address{{accountCounter}} - t.Run("store auth account reference", func(t *testing.T) { - t.Parallel() + err = runtime.ExecuteTransaction( + Script{ + Source: deployTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - runtime := NewTestInterpreterRuntime() + // call the function - script := []byte(` - access(all) fun main() { - let dict: {Int: &Account} = {} - let ref = &dict as auth(Mutate) &{Int: AnyStruct} - ref[0] = getAuthAccount(0x01) as AnyStruct - } - `) + callTx := []byte(fmt.Sprintf(callHelloTxTemplate, Address{accountCounter})) - runtimeInterface := &TestRuntimeInterface{} + err = runtime.ExecuteTransaction( + Script{ + Source: callTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - _, err := runtime.ExecuteScript( - Script{ - Source: script, + require.Equal(t, + []common.Location{ + common.TransactionLocation{ + 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, + common.TransactionLocation{ + 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }, - ) + common.TransactionLocation{ + 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + }, + common.AddressLocation{ + Address: Address{0x1}, + Name: "HelloWorld", + }, + common.AddressLocation{ + Address: Address{0x1}, + Name: "HelloWorld", + }, + }, + programsHits, + ) +} - require.NoError(t, err) - }) +func TestRuntimeTransaction_ContractUpdate(t *testing.T) { - t.Run("invalid: public account reference stored as auth account reference", func(t *testing.T) { + t.Parallel() - t.Parallel() + runtime := NewTestInterpreterRuntime() - runtime := NewTestInterpreterRuntime() + const contract1 = ` + access(all) contract Test { - script := []byte(` - access(all) fun main() { - let dict: {Int: auth(Storage) &Account} = {} - let ref = &dict as auth(Mutate) &{Int: AnyStruct} - ref[0] = getAccount(0x01) as AnyStruct - } - `) + access(all) resource R { - runtimeInterface := &TestRuntimeInterface{} + access(all) let name: String - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) + init(name: String) { + self.name = name + } - RequireError(t, err) + access(all) fun hello(): Int { + return 1 + } + } - assertRuntimeErrorIsUserError(t, err) + access(all) var rs: @{String: R} - var typeErr interpreter.ContainerMutationError - require.ErrorAs(t, err, &typeErr) - }) + access(all) fun hello(): Int { + return 1 + } - t.Run("public account reference storage as public account reference", func(t *testing.T) { + init() { + self.rs <- {} + self.rs["r1"] <-! create R(name: "1") + } + } + ` - t.Parallel() + const contract2 = ` + access(all) contract Test { - runtime := NewTestInterpreterRuntime() + access(all) resource R { - script := []byte(` - access(all) fun main() { - let dict: {Int: &Account} = {} - let ref = &dict as auth(Mutate) &{Int: AnyStruct} - ref[0] = getAccount(0x01) as AnyStruct - } - `) - - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - } - - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - require.NoError(t, err) - }) -} - -func TestRuntimeStackOverflow(t *testing.T) { - - if testing.Short() { - t.Skip() - } - - t.Parallel() + access(all) let name: String - runtime := NewTestInterpreterRuntime() + init(name: String) { + self.name = name + } - const contract = ` + access(all) fun hello(): Int { + return 2 + } + } - access(all) contract Recurse { + access(all) var rs: @{String: R} - access(self) fun recurse() { - self.recurse() - } + access(all) fun hello(): Int { + return 2 + } - init() { - self.recurse() - } - } + init() { + self.rs <- {} + panic("should never be executed") + } + } ` - deployTx := DeploymentTransaction("Recurse", []byte(contract)) - + var accountCode []byte var events []cadence.Event - var loggedMessages []string - var signerAddress common.Address - accountCodes := map[common.Location]string{} + + signerAddress := common.MustBytesToAddress([]byte{0x42}) runtimeInterface := &TestRuntimeInterface{ Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { return []Address{signerAddress}, nil }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = string(code) - return nil + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil }, - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - code = []byte(accountCodes[location]) - return code, nil + OnResolveLocation: func(identifiers []Identifier, location Location) ([]ResolvedLocation, error) { + require.Empty(t, identifiers) + require.IsType(t, common.AddressLocation{}, location) + + return []ResolvedLocation{ + { + Location: common.AddressLocation{ + Address: location.(common.AddressLocation).Address, + Name: "Test", + }, + Identifiers: []ast.Identifier{ + { + Identifier: "Test", + }, + }, + }, + }, nil + }, + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil + }, + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + accountCode = code + return nil }, OnEmitEvent: func(event cadence.Event) error { events = append(events, event) return nil }, - OnProgramLog: func(message string) { - loggedMessages = append(loggedMessages, message) - }, - OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { - return json.Decode(nil, b) - }, } nextTransactionLocation := NewTransactionLocationGenerator() - // Deploy + // Deploy the Test contract + + deployTx1 := DeploymentTransaction("Test", []byte(contract1)) err := runtime.ExecuteTransaction( Script{ - Source: deployTx, + Source: deployTx1, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) - RequireError(t, err) + require.NoError(t, err) - assertRuntimeErrorIsUserError(t, err) + location := common.AddressLocation{ + Address: signerAddress, + Name: "Test", + } - var callStackLimitExceededErr CallStackLimitExceededError - require.ErrorAs(t, err, &callStackLimitExceededErr) -} + require.NotContains(t, runtimeInterface.Programs, location) -func TestRuntimeInternalErrors(t *testing.T) { + // Use the Test contract - t.Parallel() + script1 := []byte(` + import 0x42 - t.Run("script with go error", func(t *testing.T) { + access(all) fun main() { + // Check stored data - t.Parallel() + assert(Test.rs.length == 1) + assert(Test.rs["r1"]?.name == "1") - script := []byte(` - access(all) fun main() { - log("hello") - } - `) + // Check functions - runtime := NewTestInterpreterRuntime() + assert(Test.rs["r1"]?.hello() == 1) + assert(Test.hello() == 1) + } + `) - runtimeInterface := &TestRuntimeInterface{ - OnProgramLog: func(message string) { - // panic due to go-error in cadence implementation - var val any = message - _ = val.(int) - }, - } + nextScriptLocation := NewScriptLocationGenerator() - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) + _, err = runtime.ExecuteScript( + Script{ + Source: script1, + }, + Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) - RequireError(t, err) + // The deployed hello world contract was imported, + // assert that it was stored in the program storage + // after it was parsed and checked - assertRuntimeErrorIsInternalError(t, err) - }) + initialProgram := runtimeInterface.Programs[location] + require.NotNil(t, initialProgram) - t.Run("script with cadence error", func(t *testing.T) { + // Update the Test contract - t.Parallel() + deployTx2 := UpdateTransaction("Test", []byte(contract2)) - script := []byte(` - access(all) fun main() { - log("hello") - } - `) + err = runtime.ExecuteTransaction( + Script{ + Source: deployTx2, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - runtime := NewTestInterpreterRuntime() + // Assert that the contract update did NOT change + // the program in program storage - runtimeInterface := &TestRuntimeInterface{ - OnProgramLog: func(message string) { - // intentionally panic - panic(fmt.Errorf("panic trying to log %s", message)) - }, - } + require.Same(t, + initialProgram, + runtimeInterface.Programs[location], + ) + require.NotNil(t, runtimeInterface.Programs[location]) - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) + // Use the new Test contract - RequireError(t, err) + script2 := []byte(` + import 0x42 - assertRuntimeErrorIsExternalError(t, err) - }) + access(all) fun main() { + // Existing data is still available and the same as before - t.Run("transaction", func(t *testing.T) { + assert(Test.rs.length == 1) + assert(Test.rs["r1"]?.name == "1") - t.Parallel() + // New function code is executed. + // Compare with script1 above, which checked 1. - script := []byte(` - transaction { - prepare() {} - execute { - log("hello") - } - } - `) + assert(Test.rs["r1"]?.hello() == 2) + assert(Test.hello() == 2) + } + `) - runtime := NewTestInterpreterRuntime() + _, err = runtime.ExecuteScript( + Script{ + Source: script2, + }, + Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + require.NoError(t, err) +} - runtimeInterface := &TestRuntimeInterface{ - OnProgramLog: func(message string) { - // panic due to Cadence implementation error - var val any = message - _ = val.(int) - }, - } +func TestRuntimeExecuteScriptArguments(t *testing.T) { - err := runtime.ExecuteTransaction( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.TransactionLocation{}, - }, - ) + t.Parallel() - RequireError(t, err) + runtime := NewTestInterpreterRuntime() - assertRuntimeErrorIsInternalError(t, err) - }) + script := []byte(` + access(all) fun main(num: Int) {} + `) - t.Run("contract function", func(t *testing.T) { + type testCase struct { + name string + arguments [][]byte + valid bool + } - t.Parallel() + test := func(tc testCase) { + t.Run(tc.name, func(t *testing.T) { - addressValue := Address{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, - } + // NOTE: to parallelize this sub-test, + // access to `programs` must be made thread-safe first - contract := []byte(` - access(all) contract Test { - access(all) fun hello() { - log("Hello World!") - } - } - `) + storage := NewTestLedger(nil, nil) - var accountCode []byte + runtimeInterface := &TestRuntimeInterface{ + Storage: storage, + OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + return json.Decode(nil, b) + }, + } - storage := NewTestLedger(nil, nil) + _, err := runtime.ExecuteScript( + Script{ + Source: script, + Arguments: tc.arguments, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{0x1}, + }, + ) - runtime := NewTestInterpreterRuntime() + if tc.valid { + require.NoError(t, err) + } else { + RequireError(t, err) - runtimeInterface := &TestRuntimeInterface{ - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{addressValue}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil - }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code - return nil - }, - OnEmitEvent: func(_ cadence.Event) error { - return nil - }, - OnProgramLog: func(message string) { - // panic due to Cadence implementation error - var val any = message - _ = val.(int) - }, - } + assertRuntimeErrorIsUserError(t, err) - nextTransactionLocation := NewTransactionLocationGenerator() + require.ErrorAs(t, err, &InvalidEntryPointParameterCountError{}) + } + }) + } - deploy := DeploymentTransaction("Test", contract) - err := runtime.ExecuteTransaction( - Script{ - Source: deploy, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + for _, testCase := range []testCase{ + { + name: "too few arguments", + arguments: [][]byte{}, + valid: false, + }, + { + name: "correct number of arguments", + arguments: encodeArgs( + cadence.NewInt(1), + ), + valid: true, + }, + { + name: "too many arguments", + arguments: encodeArgs( + cadence.NewInt(1), + cadence.NewInt(2), + ), + valid: false, + }, + } { + test(testCase) + } +} - assert.NotNil(t, accountCode) +func TestRuntimePanics(t *testing.T) { - _, err = runtime.InvokeContractFunction( - common.AddressLocation{ - Address: addressValue, - Name: "Test", - }, - "hello", - nil, - nil, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) + t.Parallel() - RequireError(t, err) + runtime := NewTestInterpreterRuntime() - assertRuntimeErrorIsInternalError(t, err) - }) + script := []byte(` + access(all) fun main() { + [1][1] + } + `) - t.Run("parse and check", func(t *testing.T) { + storage := NewTestLedger(nil, nil) - t.Parallel() + runtimeInterface := &TestRuntimeInterface{ + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{{42}}, nil + }, + } - script := []byte("access(all) fun test() {}") + nextTransactionLocation := NewTransactionLocationGenerator() + + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + +} + +func TestRuntimeAccountsInDictionary(t *testing.T) { + + t.Parallel() + + t.Run("store auth account reference", func(t *testing.T) { + t.Parallel() runtime := NewTestInterpreterRuntime() - runtimeInterface := &TestRuntimeInterface{ - OnGetAndSetProgram: func(_ Location, _ func() (*interpreter.Program, error)) (*interpreter.Program, error) { - panic(errors.New("crash while getting/setting program")) - }, - } + script := []byte(` + access(all) fun main() { + let dict: {Int: &Account} = {} + let ref = &dict as auth(Mutate) &{Int: AnyStruct} + ref[0] = getAuthAccount(0x01) as AnyStruct + } + `) - nextTransactionLocation := NewTransactionLocationGenerator() + runtimeInterface := &TestRuntimeInterface{} - _, err := runtime.ParseAndCheckProgram( - script, + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, Context{ Interface: runtimeInterface, - Location: nextTransactionLocation(), + Location: common.ScriptLocation{}, }, ) - RequireError(t, err) - - assertRuntimeErrorIsExternalError(t, err) + require.NoError(t, err) }) - t.Run("read stored", func(t *testing.T) { + t.Run("invalid: public account reference stored as auth account reference", func(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - runtimeInterface := &TestRuntimeInterface{ - Storage: TestLedger{ - OnGetValue: func(owner, key []byte) (value []byte, err error) { - panic(errors.New("crasher")) - }, - }, - } + script := []byte(` + access(all) fun main() { + let dict: {Int: auth(Storage) &Account} = {} + let ref = &dict as auth(Mutate) &{Int: AnyStruct} + ref[0] = getAccount(0x01) as AnyStruct + } + `) - address, err := common.BytesToAddress([]byte{0x42}) - require.NoError(t, err) + runtimeInterface := &TestRuntimeInterface{} - _, err = runtime.ReadStored( - address, - cadence.Path{ - Domain: common.PathDomainStorage, - Identifier: "test", + _, err := runtime.ExecuteScript( + Script{ + Source: script, }, Context{ Interface: runtimeInterface, + Location: common.ScriptLocation{}, }, ) RequireError(t, err) - assertRuntimeErrorIsExternalError(t, err) + assertRuntimeErrorIsUserError(t, err) + + var typeErr interpreter.ContainerMutationError + require.ErrorAs(t, err, &typeErr) }) - t.Run("read linked", func(t *testing.T) { + t.Run("public account reference storage as public account reference", func(t *testing.T) { t.Parallel() runtime := NewTestInterpreterRuntime() - runtimeInterface := &TestRuntimeInterface{ - Storage: TestLedger{ - OnGetValue: func(owner, key []byte) (value []byte, err error) { - panic(errors.New("crasher")) - }, - }, - } + script := []byte(` + access(all) fun main() { + let dict: {Int: &Account} = {} + let ref = &dict as auth(Mutate) &{Int: AnyStruct} + ref[0] = getAccount(0x01) as AnyStruct + } + `) - address, err := common.BytesToAddress([]byte{0x42}) - require.NoError(t, err) + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + } - _, err = runtime.ReadStored( - address, - cadence.Path{ - Domain: common.PathDomainStorage, - Identifier: "test", + _, err := runtime.ExecuteScript( + Script{ + Source: script, }, Context{ Interface: runtimeInterface, + Location: common.ScriptLocation{}, }, ) + require.NoError(t, err) + }) +} - RequireError(t, err) +func TestRuntimeStackOverflow(t *testing.T) { - assertRuntimeErrorIsExternalError(t, err) - }) + if testing.Short() { + t.Skip() + } - t.Run("panic with non error", func(t *testing.T) { + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + const contract = ` + + access(all) contract Recurse { + + access(self) fun recurse() { + self.recurse() + } + + init() { + self.recurse() + } + } + ` + + deployTx := DeploymentTransaction("Recurse", []byte(contract)) + + var events []cadence.Event + var loggedMessages []string + var signerAddress common.Address + accountCodes := map[common.Location]string{} + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAddress}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = string(code) + return nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = []byte(accountCodes[location]) + return code, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + return json.Decode(nil, b) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy + + err := runtime.ExecuteTransaction( + Script{ + Source: deployTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + + assertRuntimeErrorIsUserError(t, err) + + var callStackLimitExceededErr CallStackLimitExceededError + require.ErrorAs(t, err, &callStackLimitExceededErr) +} + +func TestRuntimeInternalErrors(t *testing.T) { + + t.Parallel() + + t.Run("script with go error", func(t *testing.T) { t.Parallel() - script := []byte(`access(all) fun main() {}`) + script := []byte(` + access(all) fun main() { + log("hello") + } + `) runtime := NewTestInterpreterRuntime() runtimeInterface := &TestRuntimeInterface{ - OnMeterMemory: func(usage common.MemoryUsage) error { - // panic with a non-error type - panic("crasher") + OnProgramLog: func(message string) { + // panic due to go-error in cadence implementation + var val any = message + _ = val.(int) }, } @@ -6756,871 +7198,2074 @@ func TestRuntimeInternalErrors(t *testing.T) { assertRuntimeErrorIsInternalError(t, err) }) -} + t.Run("script with cadence error", func(t *testing.T) { -func TestRuntimeComputationMetring(t *testing.T) { - t.Parallel() + t.Parallel() - type test struct { - name string - code string - ok bool - hits uint - intensity uint - } + script := []byte(` + access(all) fun main() { + log("hello") + } + `) - compLimit := uint(6) + runtime := NewTestInterpreterRuntime() - tests := []test{ - { - name: "Infinite while loop", - code: ` - while true {} - `, - ok: false, - hits: compLimit, - intensity: 6, - }, - { - name: "Limited while loop", - code: ` - var i = 0 - while i < 5 { - i = i + 1 - } - `, - ok: false, - hits: compLimit, - intensity: 6, - }, - { - name: "statement + createArray + transferArray + too many for-in loop iterations", - code: ` - for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] {} - `, - ok: false, - hits: compLimit, - intensity: 15, - }, - { - name: "statement + createArray + transferArray + two for-in loop iterations", - code: ` - for i in [1, 2] {} - `, - ok: true, - hits: 5, - intensity: 6, - }, - { - name: "statement + functionInvocation + encoding", - code: ` - acc.storage.save("A quick brown fox jumps over the lazy dog", to:/storage/some_path) - `, - ok: true, - hits: 3, - intensity: 88, - }, - } + runtimeInterface := &TestRuntimeInterface{ + OnProgramLog: func(message string) { + // intentionally panic + panic(fmt.Errorf("panic trying to log %s", message)) + }, + } - for _, test := range tests { + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) - t.Run(test.name, func(t *testing.T) { + RequireError(t, err) - script := []byte( - fmt.Sprintf( - ` - transaction { - prepare(acc: auth(Storage) &Account) { - %s - } - } - `, - test.code, - ), - ) + assertRuntimeErrorIsExternalError(t, err) + }) - runtime := NewTestInterpreterRuntime() + t.Run("transaction", func(t *testing.T) { - compErr := errors.New("computation exceeded limit") - var hits, totalIntensity uint - meterComputationFunc := func(kind common.ComputationKind, intensity uint) error { - hits++ - totalIntensity += intensity - if hits >= compLimit { - return compErr - } - return nil - } + t.Parallel() - address := common.MustBytesToAddress([]byte{0x1}) + script := []byte(` + transaction { + prepare() {} + execute { + log("hello") + } + } + `) - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil - }, - OnMeterComputation: meterComputationFunc, - } + runtime := NewTestInterpreterRuntime() - nextTransactionLocation := NewTransactionLocationGenerator() + runtimeInterface := &TestRuntimeInterface{ + OnProgramLog: func(message string) { + // panic due to Cadence implementation error + var val any = message + _ = val.(int) + }, + } + + err := runtime.ExecuteTransaction( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.TransactionLocation{}, + }, + ) + + RequireError(t, err) + + assertRuntimeErrorIsInternalError(t, err) + }) + + t.Run("contract function", func(t *testing.T) { + + t.Parallel() + + addressValue := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } + + contract := []byte(` + access(all) contract Test { + access(all) fun hello() { + log("Hello World!") + } + } + `) + + var accountCode []byte + + storage := NewTestLedger(nil, nil) + + runtime := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{addressValue}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil + }, + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + accountCode = code + return nil + }, + OnEmitEvent: func(_ cadence.Event) error { + return nil + }, + OnProgramLog: func(message string) { + // panic due to Cadence implementation error + var val any = message + _ = val.(int) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + deploy := DeploymentTransaction("Test", contract) + err := runtime.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + assert.NotNil(t, accountCode) + + _, err = runtime.InvokeContractFunction( + common.AddressLocation{ + Address: addressValue, + Name: "Test", + }, + "hello", + nil, + nil, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + + assertRuntimeErrorIsInternalError(t, err) + }) + + t.Run("parse and check", func(t *testing.T) { + + t.Parallel() + + script := []byte("access(all) fun test() {}") + + runtime := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + OnGetAndSetProgram: func(_ Location, _ func() (*interpreter.Program, error)) (*interpreter.Program, error) { + panic(errors.New("crash while getting/setting program")) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + _, err := runtime.ParseAndCheckProgram( + script, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + + assertRuntimeErrorIsExternalError(t, err) + }) + + t.Run("read stored", func(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + Storage: TestLedger{ + OnGetValue: func(owner, key []byte) (value []byte, err error) { + panic(errors.New("crasher")) + }, + }, + } + + address, err := common.BytesToAddress([]byte{0x42}) + require.NoError(t, err) + + _, err = runtime.ReadStored( + address, + cadence.Path{ + Domain: common.PathDomainStorage, + Identifier: "test", + }, + Context{ + Interface: runtimeInterface, + }, + ) + + RequireError(t, err) + + assertRuntimeErrorIsExternalError(t, err) + }) + + t.Run("read linked", func(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + Storage: TestLedger{ + OnGetValue: func(owner, key []byte) (value []byte, err error) { + panic(errors.New("crasher")) + }, + }, + } + + address, err := common.BytesToAddress([]byte{0x42}) + require.NoError(t, err) + + _, err = runtime.ReadStored( + address, + cadence.Path{ + Domain: common.PathDomainStorage, + Identifier: "test", + }, + Context{ + Interface: runtimeInterface, + }, + ) + + RequireError(t, err) + + assertRuntimeErrorIsExternalError(t, err) + }) + + t.Run("panic with non error", func(t *testing.T) { + + t.Parallel() + + script := []byte(`access(all) fun main() {}`) + + runtime := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{ + OnMeterMemory: func(usage common.MemoryUsage) error { + // panic with a non-error type + panic("crasher") + }, + } + + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + + RequireError(t, err) + + assertRuntimeErrorIsInternalError(t, err) + }) + +} + +func TestRuntimeComputationMetring(t *testing.T) { + t.Parallel() + + type test struct { + name string + code string + ok bool + hits uint + intensity uint + } + + compLimit := uint(6) + + tests := []test{ + { + name: "Infinite while loop", + code: ` + while true {} + `, + ok: false, + hits: compLimit, + intensity: 6, + }, + { + name: "Limited while loop", + code: ` + var i = 0 + while i < 5 { + i = i + 1 + } + `, + ok: false, + hits: compLimit, + intensity: 6, + }, + { + name: "statement + createArray + transferArray + too many for-in loop iterations", + code: ` + for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] {} + `, + ok: false, + hits: compLimit, + intensity: 6, + }, + { + name: "statement + createArray + transferArray + two for-in loop iterations", + code: ` + for i in [1, 2] {} + `, + ok: true, + hits: 4, + intensity: 4, + }, + { + name: "statement + functionInvocation + encoding", + code: ` + acc.storage.save("A quick brown fox jumps over the lazy dog", to:/storage/some_path) + `, + ok: true, + hits: 3, + intensity: 88, + }, + } + + for _, test := range tests { + + t.Run(test.name, func(t *testing.T) { + + script := []byte( + fmt.Sprintf( + ` + transaction { + prepare(acc: auth(Storage) &Account) { + %s + } + } + `, + test.code, + ), + ) + + runtime := NewTestInterpreterRuntime() + + compErr := errors.New("computation exceeded limit") + var hits, totalIntensity uint + meterComputationFunc := func(kind common.ComputationKind, intensity uint) error { + hits++ + totalIntensity += intensity + if hits >= compLimit { + return compErr + } + return nil + } + + address := common.MustBytesToAddress([]byte{0x1}) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnMeterComputation: meterComputationFunc, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := runtime.ExecuteTransaction( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + if test.ok { + require.NoError(t, err) + } else { + RequireError(t, err) + + var executionErr Error + require.ErrorAs(t, err, &executionErr) + require.ErrorAs(t, err.(Error).Unwrap(), &compErr) + } + + assert.Equal(t, test.hits, hits) + assert.Equal(t, test.intensity, totalIntensity) + }) + } +} + +func TestRuntimeImportAnyStruct(t *testing.T) { + + t.Parallel() + + rt := NewTestInterpreterRuntime() + + var loggedMessages []string + + address := common.MustBytesToAddress([]byte{0x1}) + + storage := NewTestLedger(nil, nil) + + runtimeInterface := &TestRuntimeInterface{ + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + return json.Decode(nil, b) + }, + } + + err := rt.ExecuteTransaction( + Script{ + Source: []byte(` + transaction(args: [AnyStruct]) { + prepare(signer: &Account) {} + } + `), + Arguments: [][]byte{ + []byte(`{"value":[{"value":"0xf8d6e0586b0a20c7","type":"Address"},{"value":{"domain":"private","identifier":"USDCAdminCap-ca258982-c98e-4ef0-adef-7ff80ee96b10"},"type":"Path"}],"type":"Array"}`), + }, + }, + Context{ + Interface: runtimeInterface, + Location: common.TransactionLocation{}, + }, + ) + require.NoError(t, err) +} + +// Error needs to be `runtime.Error`, and the inner error should be `errors.UserError`. +func assertRuntimeErrorIsUserError(t *testing.T, err error) { + var runtimeError Error + require.ErrorAs(t, err, &runtimeError) + + innerError := runtimeError.Unwrap() + require.True( + t, + runtimeErrors.IsUserError(innerError), + "Expected `UserError`, found `%T`", innerError, + ) +} + +// Error needs to be `runtime.Error`, and the inner error should be `errors.InternalError`. +func assertRuntimeErrorIsInternalError(t *testing.T, err error) { + var runtimeError Error + require.ErrorAs(t, err, &runtimeError) + + innerError := runtimeError.Unwrap() + require.True( + t, + runtimeErrors.IsInternalError(innerError), + "Expected `InternalError`, found `%T`", innerError, + ) +} + +// Error needs to be `runtime.Error`, and the inner error should be `interpreter.ExternalError`. +func assertRuntimeErrorIsExternalError(t *testing.T, err error) { + var runtimeError Error + require.ErrorAs(t, err, &runtimeError) + + innerError := runtimeError.Unwrap() + require.ErrorAs(t, innerError, &runtimeErrors.ExternalError{}) +} + +func BenchmarkRuntimeScriptNoop(b *testing.B) { + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + } + + script := Script{ + Source: []byte("access(all) fun main() {}"), + } + + environment := NewScriptInterpreterEnvironment(Config{}) + + context := Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + Environment: environment, + } + + require.NotNil(b, stdlib.CryptoChecker()) + + runtime := NewTestInterpreterRuntime() + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + _, _ = runtime.ExecuteScript(script, context) + } +} + +func TestRuntimeImportTestStdlib(t *testing.T) { + + t.Parallel() + + rt := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{} + + _, err := rt.ExecuteScript( + Script{ + Source: []byte(` + import Test + + access(all) fun main() { + Test.assert(true) + } + `), + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + + RequireError(t, err) + + errs := checker.RequireCheckerErrors(t, err, 1) + + notDeclaredErr := &sema.NotDeclaredError{} + require.ErrorAs(t, errs[0], ¬DeclaredErr) + assert.Equal(t, "Test", notDeclaredErr.Name) +} + +func TestRuntimeGetCurrentBlockScript(t *testing.T) { + + t.Parallel() + + rt := NewTestInterpreterRuntime() + + runtimeInterface := &TestRuntimeInterface{} + + _, err := rt.ExecuteScript( + Script{ + Source: []byte(` + access(all) fun main(): AnyStruct { + return getCurrentBlock() + } + `), + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + + RequireError(t, err) + + var subErr *ValueNotExportableError + require.ErrorAs(t, err, &subErr) +} + +func TestRuntimeTypeMismatchErrorMessage(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + address1 := common.MustBytesToAddress([]byte{0x1}) + address2 := common.MustBytesToAddress([]byte{0x2}) + + contract := []byte(` + access(all) contract Foo { + access(all) struct Bar {} + } + `) + + deploy := DeploymentTransaction("Foo", contract) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + signerAccount := address1 + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAccount}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() + + // Deploy same contract to two different accounts + + for _, address := range []Address{address1, address2} { + signerAccount = address + + err := runtime.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + } + + // Set up account + + setupTransaction := []byte(` + import Foo from 0x1 + + transaction { + + prepare(acct: auth(Storage) &Account) { + acct.storage.save(Foo.Bar(), to: /storage/bar) + } + } + `) + + signerAccount = address1 + + err := runtime.ExecuteTransaction( + Script{ + Source: setupTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Use wrong type + + script := []byte(` + import Foo from 0x2 + + access(all) fun main() { + getAuthAccount(0x1) + .storage.borrow<&Foo.Bar>(from: /storage/bar) + } + `) + + _, err = runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: nextScriptLocation(), + }, + ) + RequireError(t, err) + + require.ErrorContains(t, err, "expected type `A.0000000000000002.Foo.Bar`, got `A.0000000000000001.Foo.Bar`") + +} + +func TestRuntimeErrorExcerpts(t *testing.T) { + + t.Parallel() + + rt := NewTestInterpreterRuntime() + + script := []byte(` + access(all) fun main(): Int { + // fill lines so the error occurs on lines 9 and 10 + // + // + // + // + let a = [1,2,3,4] + return a + .firstIndex(of: 5)! + } + `) + + runtimeInterface := &TestRuntimeInterface{ + OnGetAccountBalance: noopRuntimeUInt64Getter, + OnGetAccountAvailableBalance: noopRuntimeUInt64Getter, + OnGetStorageUsed: noopRuntimeUInt64Getter, + OnGetStorageCapacity: noopRuntimeUInt64Getter, + OnAccountKeysCount: noopRuntimeUInt64Getter, + Storage: NewTestLedger(nil, nil), + } + + _, err := rt.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + RequireError(t, err) + + errorString := `Execution failed: +error: unexpectedly found nil while forcing an Optional value + --> 0000000000000000000000000000000000000000000000000000000000000000:9:15 + | + 9 | return a +10 | .firstIndex(of: 5)! + | ^^^^^^^^^^^^^^^^ +` + + require.Equal(t, errorString, err.Error()) +} + +func TestRuntimeErrorExcerptsMultiline(t *testing.T) { + + t.Parallel() + + rt := NewTestInterpreterRuntime() + + script := []byte(` + access(all) fun main(): String { + // fill lines so the error occurs on lines 9 and 10 + // + // + // + // + let a = [1,2,3,4] + return a + .firstIndex(of: 5) + ?.toString()! + } + `) + + runtimeInterface := &TestRuntimeInterface{ + OnGetAccountBalance: noopRuntimeUInt64Getter, + OnGetAccountAvailableBalance: noopRuntimeUInt64Getter, + OnGetStorageUsed: noopRuntimeUInt64Getter, + OnGetStorageCapacity: noopRuntimeUInt64Getter, + OnAccountKeysCount: noopRuntimeUInt64Getter, + Storage: NewTestLedger(nil, nil), + } + + _, err := rt.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + RequireError(t, err) + + errorString := `Execution failed: +error: unexpectedly found nil while forcing an Optional value + --> 0000000000000000000000000000000000000000000000000000000000000000:9:15 + | + 9 | return a +10 | .firstIndex(of: 5) +11 | ?.toString()! + | ^^^^^^^^^^^^^^ +` + + require.Equal(t, errorString, err.Error()) +} + +// https://github.com/onflow/cadence/issues/2464 +func TestRuntimeAccountTypeEquality(t *testing.T) { + + t.Parallel() + + rt := NewTestInterpreterRuntime() + + script := []byte(` + access(all) fun main(address: Address): AnyStruct { + let acct = getAuthAccount(address) + let path = /public/tmp + + let cap = acct.capabilities.account.issue<&Account>() + acct.capabilities.publish(cap, at: path) + + let capType = acct.capabilities.borrow<&Account>(path)!.getType() + + return Type() == capType + } + `) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + return json.Decode(nil, b) + }, + OnEmitEvent: func(_ cadence.Event) error { + return nil + }, + } + + result, err := rt.ExecuteScript( + Script{ + Source: script, + Arguments: encodeArgs( + cadence.Address(common.MustBytesToAddress([]byte{0x1})), + ), + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + require.NoError(t, err) + + require.Equal(t, cadence.Bool(true), result) +} + +func TestRuntimeUserPanicToError(t *testing.T) { + t.Parallel() + + err := fmt.Errorf( + "wrapped: %w", + runtimeErrors.NewDefaultUserError("user error"), + ) + retErr := UserPanicToError(func() { panic(err) }) + require.Equal(t, retErr, err) +} + +func TestRuntimeFlowEventTypes(t *testing.T) { + + t.Parallel() + + rt := NewTestInterpreterRuntime() + + script := []byte(` + access(all) fun main(): Type? { + return CompositeType("flow.AccountContractAdded") + } + `) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + } + + result, err := rt.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + require.NoError(t, err) + + accountContractAddedType := ExportType( + stdlib.AccountContractAddedEventType, + map[sema.TypeID]cadence.Type{}, + ) + + require.Equal(t, + cadence.Optional{ + Value: cadence.TypeValue{ + StaticType: accountContractAddedType, + }, + }, + result, + ) +} + +func TestRuntimeInvalidatedResourceUse(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + signerAccount := common.MustBytesToAddress([]byte{0x1}) + + signers := []Address{signerAccount} + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return signers, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + attacker := []byte(fmt.Sprintf(` + import VictimContract from %s + + access(all) contract AttackerContract { + + access(all) resource AttackerResource { + access(all) var vault: @VictimContract.Vault + access(all) var firstCopy: @VictimContract.Vault + + init(vault: @VictimContract.Vault) { + self.vault <- vault + self.firstCopy <- self.vault.withdraw(amount: 0.0) + } + + access(all) fun shenanigans(): UFix64{ + let fullBalance = self.vault.balance + + var withdrawn <- self.vault.withdraw(amount: 0.0) + + // "Rug pull" the vault from under the in-flight + // withdrawal and deposit it into our "first copy" wallet + self.vault <-> withdrawn + self.firstCopy.deposit(from: <- withdrawn) + + // Return the pre-deposit balance for caller to withdraw + return fullBalance + } + + access(all) fun fetchfirstCopy(): @VictimContract.Vault { + var withdrawn <- self.firstCopy.withdraw(amount: 0.0) + self.firstCopy <-> withdrawn + return <- withdrawn + } + } + + access(all) fun doubleBalanceOfVault(_ victim: @VictimContract.Vault): @VictimContract.Vault { + var r <- create AttackerResource(vault: <- victim) + + // The magic happens during the execution of the following line of code + // var withdrawAmmount = r.shenanigans() + var secondCopy <- r.vault.withdraw(amount: r.shenanigans()) + + // Deposit the second copy of the funds as retained by the AttackerResource instance + secondCopy.deposit(from: <- r.fetchfirstCopy()) + + destroy r + return <- secondCopy + } + + access(all) fun attack() { + var v1 <- VictimContract.faucet() + var v2<- AttackerContract.doubleBalanceOfVault(<- v1) + destroy v2 + } + }`, + signerAccount.HexWithPrefix(), + )) + + victim := []byte(` + access(all) contract VictimContract { + access(all) resource Vault { + + // Balance of a user's Vault + // we use unsigned fixed point numbers for balances + // because they can represent decimals and do not allow negative values + access(all) var balance: UFix64 + + init(balance: UFix64) { + self.balance = balance + } + + access(all) fun withdraw(amount: UFix64): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } + + access(all) fun deposit(from: @Vault) { + self.balance = self.balance + from.balance + destroy from + } + } + + access(all) fun faucet(): @VictimContract.Vault { + return <- create VictimContract.Vault(balance: 5.0) + } + } + `) + + // Deploy Victim + + deployVictim := DeploymentTransaction("VictimContract", victim) + err := runtime.ExecuteTransaction( + Script{ + Source: deployVictim, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Deploy Attacker + + deployAttacker := DeploymentTransaction("AttackerContract", attacker) + + err = runtime.ExecuteTransaction( + Script{ + Source: deployAttacker, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Attack + + attackTransaction := []byte(fmt.Sprintf(` + import VictimContract from %s + import AttackerContract from %s + + transaction { + execute { + AttackerContract.attack() + } + }`, + signerAccount.HexWithPrefix(), + signerAccount.HexWithPrefix(), + )) + + signers = nil + + err = runtime.ExecuteTransaction( + Script{ + Source: attackTransaction, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + + var invalidatedResourceReferenceError interpreter.InvalidatedResourceReferenceError + require.ErrorAs(t, err, &invalidatedResourceReferenceError) + +} + +func TestRuntimeInvalidatedResourceUse2(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + signerAccount := common.MustBytesToAddress([]byte{0x1}) + + signers := []Address{signerAccount} + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return signers, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + attacker := []byte(fmt.Sprintf(` + import VictimContract from %s + + access(all) contract AttackerContract { + + access(all) resource InnerResource { + access(all) var name: String + access(all) var parent: &OuterResource? + access(all) var vault: @VictimContract.Vault? + + init(_ name: String) { + self.name = name + self.parent = nil + self.vault <- nil + } + + access(all) fun setParent(_ parent: &OuterResource) { + self.parent = parent + } + + access(all) fun setVault(_ vault: @VictimContract.Vault) { + self.vault <-! vault + } + + destroy() { + self.parent!.shenanigans() + var vault: @VictimContract.Vault <- self.vault! + self.parent!.collect(<- vault) + } + } + + access(all) resource OuterResource { + access(all) var inner1: @InnerResource + access(all) var inner2: @InnerResource + access(all) var collector: &VictimContract.Vault + + init(_ victim: @VictimContract.Vault, _ collector: &VictimContract.Vault) { + self.collector = collector + var i1 <- create InnerResource("inner1") + var i2 <- create InnerResource("inner2") + self.inner1 <- i1 + self.inner2 <- i2 + self.inner1.setVault(<- victim) + self.inner1.setParent(&self as &OuterResource) + self.inner2.setParent(&self as &OuterResource) + } + + access(all) fun shenanigans() { + self.inner1 <-> self.inner2 + } + + access(all) fun collect(_ from: @VictimContract.Vault) { + self.collector.deposit(from: <- from) + } + } + + access(all) fun doubleBalanceOfVault(_ vault: @VictimContract.Vault): @VictimContract.Vault { + var collector <- vault.withdraw(amount: 0.0) + var outer <- create OuterResource(<- vault, &collector as &VictimContract.Vault) + destroy outer + return <- collector + } + + access(all) fun attack() { + var v1 <- VictimContract.faucet() + var v2 <- AttackerContract.doubleBalanceOfVault(<- v1) + destroy v2 + } + }`, + signerAccount.HexWithPrefix(), + )) + + // Deploy Attacker + + deployAttacker := DeploymentTransaction("AttackerContract", attacker) + + err := runtime.ExecuteTransaction( + Script{ + Source: deployAttacker, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + + assertRuntimeErrorIsUserError(t, err) + + var parserError parser.Error + require.ErrorAs(t, err, &parserError) + + assert.IsType(t, &parser.CustomDestructorError{}, parserError.Errors[0]) +} + +func TestRuntimeOptionalReferenceAttack(t *testing.T) { + + t.Parallel() + + script := ` + access(all) resource Vault { + access(all) var balance: UFix64 + + init(balance: UFix64) { + self.balance = balance + } + + access(all) fun withdraw(amount: UFix64): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } + + access(all) fun deposit(from: @Vault) { + self.balance = self.balance + from.balance + destroy from + } + } + + access(all) fun empty(): @Vault { + return <- create Vault(balance: 0.0) + } + + access(all) fun giveme(): @Vault { + return <- create Vault(balance: 10.0) + } + + access(all) fun main() { + var vault <- giveme() //get 10 token + var someDict:@{Int:Vault} <- {1:<-vault} + var r = (&someDict[1] as &AnyResource) as! &Vault + var double <- empty() + double.deposit(from: <- someDict.remove(key:1)!) + double.deposit(from: <- r.withdraw(amount:10.0)) + log(double.balance) // 20 + destroy double + destroy someDict + } + ` + + runtime := NewTestInterpreterRuntime() + + accountCodes := map[common.Location][]byte{} + + var events []cadence.Event + + signerAccount := common.MustBytesToAddress([]byte{0x1}) + + storage := NewTestLedger(nil, nil) + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: storage, + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAccount}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(s string) { + + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + return json.Decode(nil, b) + }, + } + + _, err := runtime.ExecuteScript( + Script{ + Source: []byte(script), + Arguments: [][]byte{}, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + + RequireError(t, err) - err := runtime.ExecuteTransaction( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - if test.ok { - require.NoError(t, err) - } else { - RequireError(t, err) + var checkerErr *sema.CheckerError + require.ErrorAs(t, err, &checkerErr) - var executionErr Error - require.ErrorAs(t, err, &executionErr) - require.ErrorAs(t, err.(Error).Unwrap(), &compErr) - } + errs := checker.RequireCheckerErrors(t, checkerErr, 1) - assert.Equal(t, test.hits, hits) - assert.Equal(t, test.intensity, totalIntensity) - }) - } + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) } -func TestRuntimeImportAnyStruct(t *testing.T) { +func TestRuntimeReturnDestroyedOptional(t *testing.T) { t.Parallel() - rt := NewTestInterpreterRuntime() + runtime := NewTestInterpreterRuntime() - var loggedMessages []string + script := []byte(` + access(all) resource Foo {} - address := common.MustBytesToAddress([]byte{0x1}) + access(all) fun main(): AnyStruct { + let y: @Foo? <- create Foo() + let z: @AnyResource <- y + var ref = &z as &AnyResource + ref = returnSameRef(ref) + destroy z + return ref + } - storage := NewTestLedger(nil, nil) + access(all) fun returnSameRef(_ ref: &AnyResource): &AnyResource { + return ref + } + `) runtimeInterface := &TestRuntimeInterface{ - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil - }, - OnProgramLog: func(message string) { - loggedMessages = append(loggedMessages, message) - }, - OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { - return json.Decode(nil, b) - }, + Storage: NewTestLedger(nil, nil), } - err := rt.ExecuteTransaction( + // Test + + _, err := runtime.ExecuteScript( Script{ - Source: []byte(` - transaction(args: [AnyStruct]) { - prepare(signer: &Account) {} - } - `), - Arguments: [][]byte{ - []byte(`{"value":[{"value":"0xf8d6e0586b0a20c7","type":"Address"},{"value":{"domain":"private","identifier":"USDCAdminCap-ca258982-c98e-4ef0-adef-7ff80ee96b10"},"type":"Path"}],"type":"Array"}`), - }, + Source: script, }, Context{ Interface: runtimeInterface, - Location: common.TransactionLocation{}, + Location: common.ScriptLocation{}, }, ) - require.NoError(t, err) + + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) } -// Error needs to be `runtime.Error`, and the inner error should be `errors.UserError`. -func assertRuntimeErrorIsUserError(t *testing.T, err error) { - var runtimeError Error - require.ErrorAs(t, err, &runtimeError) +func TestRuntimeComputationMeteringError(t *testing.T) { - innerError := runtimeError.Unwrap() - require.True( - t, - runtimeErrors.IsUserError(innerError), - "Expected `UserError`, found `%T`", innerError, - ) -} + t.Parallel() -// Error needs to be `runtime.Error`, and the inner error should be `errors.InternalError`. -func assertRuntimeErrorIsInternalError(t *testing.T, err error) { - var runtimeError Error - require.ErrorAs(t, err, &runtimeError) + runtime := NewTestInterpreterRuntime() - innerError := runtimeError.Unwrap() - require.True( - t, - runtimeErrors.IsInternalError(innerError), - "Expected `InternalError`, found `%T`", innerError, - ) -} + t.Run("regular error returned", func(t *testing.T) { + t.Parallel() -// Error needs to be `runtime.Error`, and the inner error should be `interpreter.ExternalError`. -func assertRuntimeErrorIsExternalError(t *testing.T, err error) { - var runtimeError Error - require.ErrorAs(t, err, &runtimeError) + script := []byte(` + access(all) fun foo() {} - innerError := runtimeError.Unwrap() - require.ErrorAs(t, innerError, &runtimeErrors.ExternalError{}) -} + access(all) fun main() { + foo() + } + `) -func BenchmarkRuntimeScriptNoop(b *testing.B) { + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) error { + return fmt.Errorf("computation limit exceeded") + }, + } - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - } + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) - script := Script{ - Source: []byte("access(all) fun main() {}"), - } + require.Error(t, err) - environment := NewScriptInterpreterEnvironment(Config{}) + // Returned error MUST be an external error. + // It can NOT be an internal error. + assertRuntimeErrorIsExternalError(t, err) + }) - context := Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - Environment: environment, - } + t.Run("regular error panicked", func(t *testing.T) { + t.Parallel() - require.NotNil(b, stdlib.CryptoChecker()) + script := []byte(` + access(all) fun foo() {} - runtime := NewTestInterpreterRuntime() + access(all) fun main() { + foo() + } + `) - b.ReportAllocs() - b.ResetTimer() + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) error { + panic(fmt.Errorf("computation limit exceeded")) + }, + } - for i := 0; i < b.N; i++ { - _, _ = runtime.ExecuteScript(script, context) - } -} + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) -func TestRuntimeImportTestStdlib(t *testing.T) { + require.Error(t, err) - t.Parallel() + // Returned error MUST be an external error. + // It can NOT be an internal error. + assertRuntimeErrorIsExternalError(t, err) + }) - rt := NewTestInterpreterRuntime() + t.Run("go runtime error panicked", func(t *testing.T) { + t.Parallel() - runtimeInterface := &TestRuntimeInterface{} + script := []byte(` + access(all) fun foo() {} - _, err := rt.ExecuteScript( - Script{ - Source: []byte(` - import Test + access(all) fun main() { + foo() + } + `) - access(all) fun main() { - Test.assert(true) - } - `), - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) error { + // Cause a runtime error + var x any = "hello" + _ = x.(int) + return nil + }, + } + + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + + require.Error(t, err) + + // Returned error MUST be an internal error. + assertRuntimeErrorIsInternalError(t, err) + }) + + t.Run("go runtime error returned", func(t *testing.T) { + t.Parallel() + + script := []byte(` + access(all) fun foo() {} + + access(all) fun main() { + foo() + } + `) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) (err error) { + // Cause a runtime error. Catch it and return. + var x any = "hello" + defer func() { + if r := recover(); r != nil { + if r, ok := r.(error); ok { + err = r + } + } + }() - RequireError(t, err) + _ = x.(int) - errs := checker.RequireCheckerErrors(t, err, 1) + return + }, + } - notDeclaredErr := &sema.NotDeclaredError{} - require.ErrorAs(t, errs[0], ¬DeclaredErr) - assert.Equal(t, "Test", notDeclaredErr.Name) + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + + require.Error(t, err) + + // Returned error MUST be an internal error. + assertRuntimeErrorIsInternalError(t, err) + }) } -func TestRuntimeGetCurrentBlockScript(t *testing.T) { +func TestRuntimeWrappedErrorHandling(t *testing.T) { t.Parallel() - rt := NewTestInterpreterRuntime() - - runtimeInterface := &TestRuntimeInterface{} + foo := []byte(` + access(all) contract Foo { + access(all) resource R { + access(all) var x: Int - _, err := rt.ExecuteScript( - Script{ - Source: []byte(` - access(all) fun main(): AnyStruct { - return getCurrentBlock() + init() { + self.x = 0 } - `), - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) + } - RequireError(t, err) + access(all) fun createR(): @R { + return <-create R() + } + } + `) - var subErr *ValueNotExportableError - require.ErrorAs(t, err, &subErr) -} + brokenFoo := []byte(` + access(all) contract Foo { + access(all) resource R { + access(all) var x: Int -func TestRuntimeTypeMismatchErrorMessage(t *testing.T) { + init() { + self.x = "hello" + } + } - t.Parallel() + access(all) fun createR(): @R { + return <-create R() + } + } + `) - runtime := NewTestInterpreterRuntime() + tx1 := []byte(` + import Foo from 0x1 - address1 := common.MustBytesToAddress([]byte{0x1}) - address2 := common.MustBytesToAddress([]byte{0x2}) + transaction { + prepare(signer: auth (Storage, Capabilities) &Account) { + signer.storage.save(<- Foo.createR(), to: /storage/r) + let cap = signer.capabilities.storage.issue<&Foo.R>(/storage/r) + signer.capabilities.publish(cap, at: /public/r) + } + } + `) - contract := []byte(` - access(all) contract Foo { - access(all) struct Bar {} - } + tx2 := []byte(` + transaction { + prepare(signer: &Account) { + let cap = signer.capabilities.get<&AnyStruct>(/public/r) + cap.check() + } + } `) - deploy := DeploymentTransaction("Foo", contract) + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: false, + }) - accountCodes := map[Location][]byte{} + address := common.MustBytesToAddress([]byte{0x1}) + + deploy := DeploymentTransaction("Foo", foo) + + var contractCode []byte var events []cadence.Event - signerAccount := address1 + isContractBroken := false runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil + OnGetCode: func(_ Location) (bytes []byte, err error) { + return contractCode, nil }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil + return []Address{address}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + if isContractBroken && contractCode != nil { + return brokenFoo, nil + } + return contractCode, nil }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { - accountCodes[location] = code + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + contractCode = code return nil }, OnEmitEvent: func(event cadence.Event) error { events = append(events, event) return nil }, + OnGetAndSetProgram: func(location Location, load func() (*interpreter.Program, error)) (*interpreter.Program, error) { + program, err := load() + if err == nil { + return program, nil + } + return program, fmt.Errorf("wrapped error: %w", err) + }, } nextTransactionLocation := NewTransactionLocationGenerator() - nextScriptLocation := NewScriptLocationGenerator() - - // Deploy same contract to two different accounts - - for _, address := range []Address{address1, address2} { - signerAccount = address - - err := runtime.ExecuteTransaction( - Script{ - Source: deploy, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) - } - - // Set up account - - setupTransaction := []byte(` - import Foo from 0x1 - - transaction { - prepare(acct: auth(Storage) &Account) { - acct.storage.save(Foo.Bar(), to: /storage/bar) - } - } - `) - - signerAccount = address1 + // Deploy err := runtime.ExecuteTransaction( Script{ - Source: setupTransaction, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) - - // Use wrong type - - script := []byte(` - import Foo from 0x2 - - access(all) fun main() { - getAuthAccount(0x1) - .storage.borrow<&Foo.Bar>(from: /storage/bar) - } - `) - - _, err = runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: nextScriptLocation(), - }, - ) - RequireError(t, err) - - require.ErrorContains(t, err, "expected type `A.0000000000000002.Foo.Bar`, got `A.0000000000000001.Foo.Bar`") - -} - -func TestRuntimeErrorExcerpts(t *testing.T) { - - t.Parallel() - - rt := NewTestInterpreterRuntime() - - script := []byte(` - access(all) fun main(): Int { - // fill lines so the error occurs on lines 9 and 10 - // - // - // - // - let a = [1,2,3,4] - return a - .firstIndex(of: 5)! - } - `) - - runtimeInterface := &TestRuntimeInterface{ - OnGetAccountBalance: noopRuntimeUInt64Getter, - OnGetAccountAvailableBalance: noopRuntimeUInt64Getter, - OnGetStorageUsed: noopRuntimeUInt64Getter, - OnGetStorageCapacity: noopRuntimeUInt64Getter, - OnAccountKeysCount: noopRuntimeUInt64Getter, - Storage: NewTestLedger(nil, nil), - } - - _, err := rt.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - RequireError(t, err) - - errorString := `Execution failed: -error: unexpectedly found nil while forcing an Optional value - --> 0000000000000000000000000000000000000000000000000000000000000000:9:15 - | - 9 | return a -10 | .firstIndex(of: 5)! - | ^^^^^^^^^^^^^^^^ -` - - require.Equal(t, errorString, err.Error()) -} - -func TestRuntimeErrorExcerptsMultiline(t *testing.T) { + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - t.Parallel() + // Run Tx to save values - rt := NewTestInterpreterRuntime() + err = runtime.ExecuteTransaction( + Script{ + Source: tx1, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - script := []byte(` - access(all) fun main(): String { - // fill lines so the error occurs on lines 9 and 10 - // - // - // - // - let a = [1,2,3,4] - return a - .firstIndex(of: 5) - ?.toString()! - } - `) + // Run Tx to load value. + // Mark the contract is broken - runtimeInterface := &TestRuntimeInterface{ - OnGetAccountBalance: noopRuntimeUInt64Getter, - OnGetAccountAvailableBalance: noopRuntimeUInt64Getter, - OnGetStorageUsed: noopRuntimeUInt64Getter, - OnGetStorageCapacity: noopRuntimeUInt64Getter, - OnAccountKeysCount: noopRuntimeUInt64Getter, - Storage: NewTestLedger(nil, nil), - } + isContractBroken = true - _, err := rt.ExecuteScript( + err = runtime.ExecuteTransaction( Script{ - Source: script, + Source: tx2, }, Context{ Interface: runtimeInterface, - Location: common.ScriptLocation{}, + Location: nextTransactionLocation(), }, ) - RequireError(t, err) - errorString := `Execution failed: -error: unexpectedly found nil while forcing an Optional value - --> 0000000000000000000000000000000000000000000000000000000000000000:9:15 - | - 9 | return a -10 | .firstIndex(of: 5) -11 | ?.toString()! - | ^^^^^^^^^^^^^^ -` + RequireError(t, err) - require.Equal(t, errorString, err.Error()) + // Returned error MUST be a user error. + // It can NOT be an internal error. + assertRuntimeErrorIsUserError(t, err) } -// https://github.com/onflow/cadence/issues/2464 -func TestRuntimeAccountTypeEquality(t *testing.T) { - - t.Parallel() - - rt := NewTestInterpreterRuntime() +func BenchmarkRuntimeResourceTracking(b *testing.B) { - script := []byte(` - access(all) fun main(address: Address): AnyStruct { - let acct = getAuthAccount(address) - let path = /public/tmp + runtime := NewTestInterpreterRuntime() - let cap = acct.capabilities.account.issue<&Account>() - acct.capabilities.publish(cap, at: path) + contractsAddress := common.MustBytesToAddress([]byte{0x1}) - let capType = acct.capabilities.borrow<&Account>(path)!.getType() + accountCodes := map[Location][]byte{} - return Type() == capType - } - `) + signerAccount := contractsAddress runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, Storage: NewTestLedger(nil, nil), - OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { - return json.Decode(nil, b) + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAccount}, nil }, - OnEmitEvent: func(_ cadence.Event) error { + OnResolveLocation: NewSingleIdentifierLocationResolver(b), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code return nil }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + return json.Decode(nil, b) + }, } - result, err := rt.ExecuteScript( + environment := NewBaseInterpreterEnvironment(Config{}) + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract + + err := runtime.ExecuteTransaction( Script{ - Source: script, - Arguments: encodeArgs( - cadence.Address(common.MustBytesToAddress([]byte{0x1})), + Source: DeploymentTransaction( + "Foo", + []byte(` + access(all) contract Foo { + access(all) resource R {} + + access(all) fun getResourceArray(): @[R] { + var resourceArray: @[R] <- [] + var i = 0 + while i < 1000 { + resourceArray.append(<- create R()) + i = i + 1 + } + return <- resourceArray + } + } + `), ), }, Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, + Interface: runtimeInterface, + Location: nextTransactionLocation(), + Environment: environment, }, ) - require.NoError(t, err) + require.NoError(b, err) - require.Equal(t, cadence.Bool(true), result) -} + err = runtime.ExecuteTransaction( + Script{ + Source: []byte(` + import Foo from 0x1 -func TestRuntimeUserPanicToError(t *testing.T) { - t.Parallel() + transaction { + prepare(signer: &Account) { + signer.storage.save(<- Foo.getResourceArray(), to: /storage/r) + } + } + `), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + Environment: environment, + }, + ) + require.NoError(b, err) - err := fmt.Errorf( - "wrapped: %w", - runtimeErrors.NewDefaultUserError("user error"), + b.ReportAllocs() + b.ResetTimer() + + err = runtime.ExecuteTransaction( + Script{ + Source: []byte(` + import Foo from 0x1 + + transaction { + prepare(signer: &Account) { + // When the array is loaded from storage, all elements are also loaded. + // So all moves of this resource will check for tracking of all elements aas well. + + var array1 <- signer.storage.load<@[Foo.R]>(from: /storage/r)! + var array2 <- array1 + var array3 <- array2 + var array4 <- array3 + var array5 <- array4 + destroy array5 + } + } + `), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + Environment: environment, + }, ) - retErr := UserPanicToError(func() { panic(err) }) - require.Equal(t, retErr, err) + require.NoError(b, err) } -func TestRuntimeDestructorReentrancyPrevention(t *testing.T) { - +func TestRuntimeTypesAndConversions(t *testing.T) { t.Parallel() - rt := NewTestInterpreterRuntime() + test := func(name string, semaType sema.Type) { + t.Run(name, func(t *testing.T) { - script := []byte(` - access(all) resource Vault { - // Balance of a user's Vault - // we use unsigned fixed point numbers for balances - // because they can represent decimals and do not allow negative values - access(all) var balance: UFix64 + t.Parallel() - init(balance: UFix64) { - self.balance = balance - } + var staticType interpreter.StaticType - access(all) fun withdraw(amount: UFix64): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount) - } + t.Run("sema -> static", func(t *testing.T) { + staticType = interpreter.ConvertSemaToStaticType(nil, semaType) + require.NotNil(t, staticType) + }) - access(all) fun deposit(from: @Vault) { - self.balance = self.balance + from.balance - destroy from - } - } + if staticType != nil { + t.Run("static -> sema", func(t *testing.T) { - // --- this code actually makes use of the vuln --- - access(all) resource InnerResource { - access(all) var victim: @Vault; - access(all) var here: Bool; - access(all) var parent: &OuterResource; - init(victim: @Vault, parent: &OuterResource) { - self.victim <- victim; - self.here = false; - self.parent = parent; - } + t.Parallel() - destroy() { - if self.here == false { - self.here = true; - self.parent.reenter(); // will cause us to re-enter this destructor - } - self.parent.collect(from: <- self.victim); - } - } + inter, err := interpreter.NewInterpreter(nil, nil, &interpreter.Config{}) + require.NoError(t, err) - access(all) resource OuterResource { - access(all) var inner: @InnerResource?; - access(all) var collector: &Vault; - init(victim: @Vault, collector: &Vault) { - self.collector = collector; - self.inner <- create InnerResource(victim: <- victim, parent: &self as &OuterResource); - } - access(all) fun reenter() { - let inner <- self.inner <- nil; - destroy inner; - } - access(all) fun collect(from: @Vault) { - self.collector.deposit(from: <- from); - } + convertedSemaType, err := inter.ConvertStaticToSemaType(staticType) + require.NoError(t, err) + require.True(t, semaType.Equal(convertedSemaType)) + }) + } + + var cadenceType cadence.Type + + t.Run("sema -> cadence", func(t *testing.T) { + + cadenceType = ExportType(semaType, map[sema.TypeID]cadence.Type{}) + require.NotNil(t, cadenceType) + }) + + if cadenceType != nil { + + t.Run("cadence -> static", func(t *testing.T) { + + t.Parallel() + + convertedStaticType := ImportType(nil, cadenceType) + require.True(t, staticType.Equal(convertedStaticType)) + }) + } + }) + } - destroy() { - destroy self.inner; - } - } + for name, ty := range checker.AllBaseSemaTypes() { + // Inclusive range is a dynamically created type. + if _, isInclusiveRange := ty.(*sema.InclusiveRangeType); isInclusiveRange { + continue + } + test(name, ty) + } +} - access(all) fun doubleBalanceOfVault(vault: @Vault): @Vault { - var collector <- vault.withdraw(amount: 0.0); - var r <- create OuterResource(victim: <- vault, collector: &collector as &Vault); - destroy r; - return <- collector; - } +func TestRuntimeEventEmission(t *testing.T) { - // --- end of vuln code --- + t.Parallel() - access(all) fun main(): UFix64 { - var v1 <- create Vault(balance: 1000.0); - var v2 <- doubleBalanceOfVault(vault: <- v1); - var v3 <- doubleBalanceOfVault(vault: <- v2); - let balance = v3.balance - destroy v3 - return balance - } - `) + t.Run("primitive", func(t *testing.T) { + t.Parallel() - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - } + runtime := NewTestInterpreterRuntime() - _, err := rt.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - RequireError(t, err) + script := []byte(` + access(all) + event TestEvent(ref: Int) - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) -} + access(all) + fun main() { + emit TestEvent(ref: 42) + } + `) -func TestRuntimeFlowEventTypes(t *testing.T) { + var events []cadence.Event - t.Parallel() + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } - rt := NewTestInterpreterRuntime() + nextScriptLocation := NewScriptLocationGenerator() - script := []byte(` - access(all) fun main(): Type? { - return CompositeType("flow.AccountContractAdded") - } - `) + location := nextScriptLocation() - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - } + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: location, + }, + ) + require.NoError(t, err) - result, err := rt.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) - require.NoError(t, err) + require.Len(t, events, 1) + event := events[0] - accountContractAddedType := ExportType( - stdlib.AccountContractAddedEventType, - map[sema.TypeID]cadence.Type{}, - ) + assert.EqualValues( + t, + location.TypeID(nil, "TestEvent"), + event.Type().ID(), + ) - require.Equal(t, - cadence.Optional{ - Value: cadence.TypeValue{ - StaticType: accountContractAddedType, + assert.Equal( + t, + map[string]cadence.Value{ + "ref": cadence.NewInt(42), }, - }, - result, - ) -} + cadence.FieldsMappedByName(event), + ) -func TestRuntimeInvalidatedResourceUse(t *testing.T) { + }) - t.Parallel() + t.Run("reference", func(t *testing.T) { + t.Parallel() - runtime := NewTestInterpreterRuntime() + runtime := NewTestInterpreterRuntime() - signerAccount := common.MustBytesToAddress([]byte{0x1}) + script := []byte(` + access(all) + event TestEvent(ref: &Int) - signers := []Address{signerAccount} + access(all) + fun main() { + emit TestEvent(ref: &42 as &Int) + } + `) - accountCodes := map[Location][]byte{} - var events []cadence.Event + var events []cadence.Event - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: NewTestLedger(nil, nil), - OnGetSigningAccounts: func() ([]Address, error) { - return signers, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { - accountCodes[location] = code - return nil - }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - } + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } - nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() - attacker := []byte(fmt.Sprintf(` - import VictimContract from %s + location := nextScriptLocation() - access(all) contract AttackerContract { + _, err := runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: location, + }, + ) + require.NoError(t, err) - access(all) resource AttackerResource { - access(all) var vault: @VictimContract.Vault - access(all) var firstCopy: @VictimContract.Vault + require.Len(t, events, 1) + event := events[0] - init(vault: @VictimContract.Vault) { - self.vault <- vault - self.firstCopy <- self.vault.withdraw(amount: 0.0) - } + assert.EqualValues( + t, + location.TypeID(nil, "TestEvent"), + event.Type().ID(), + ) - access(all) fun shenanigans(): UFix64{ - let fullBalance = self.vault.balance + assert.Equal( + t, + map[string]cadence.Value{ + "ref": cadence.NewInt(42), + }, + cadence.FieldsMappedByName(event), + ) - var withdrawn <- self.vault.withdraw(amount: 0.0) + }) +} - // "Rug pull" the vault from under the in-flight - // withdrawal and deposit it into our "first copy" wallet - self.vault <-> withdrawn - self.firstCopy.deposit(from: <- withdrawn) +func TestRuntimeInvalidWrappedPrivateCapability(t *testing.T) { - // Return the pre-deposit balance for caller to withdraw - return fullBalance - } + t.Parallel() - access(all) fun fetchfirstCopy(): @VictimContract.Vault { - var withdrawn <- self.firstCopy.withdraw(amount: 0.0) - self.firstCopy <-> withdrawn - return <- withdrawn - } + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: false, + }) - destroy() { - destroy self.vault - destroy self.firstCopy - } - } + address := common.MustBytesToAddress([]byte{0x1}) - access(all) fun doubleBalanceOfVault(_ victim: @VictimContract.Vault): @VictimContract.Vault { - var r <- create AttackerResource(vault: <- victim) + helperContract := []byte(` + access(all) + contract Foo { - // The magic happens during the execution of the following line of code - // var withdrawAmmount = r.shenanigans() - var secondCopy <- r.vault.withdraw(amount: r.shenanigans()) + access(all) + struct Thing { - // Deposit the second copy of the funds as retained by the AttackerResource instance - secondCopy.deposit(from: <- r.fetchfirstCopy()) + access(all) + let cap: Capability - destroy r - return <- secondCopy - } + init(cap: Capability) { + self.cap = cap + } + } + } + `) - access(all) fun attack() { - var v1 <- VictimContract.faucet() - var v2<- AttackerContract.doubleBalanceOfVault(<- v1) - destroy v2 - } - }`, - signerAccount.HexWithPrefix(), - )) + getCapScript := []byte(` + import Foo from 0x1 - victim := []byte(` - access(all) contract VictimContract { - access(all) resource Vault { + access(all) + fun main(addr: Address): AnyStruct { + let acct = getAuthAccount(addr) + let cap = acct.capabilities.account.issue() + return Foo.Thing(cap: cap) + } + `) + + attackTx := []byte(` + import Foo from 0x1 - // Balance of a user's Vault - // we use unsigned fixed point numbers for balances - // because they can represent decimals and do not allow negative values - access(all) var balance: UFix64 + transaction(thing: Foo.Thing) { + prepare(_: &Account) { + thing.cap.borrow()! + .storage.save("Hello, World", to: /storage/attack) + } + } + `) - init(balance: UFix64) { - self.balance = balance - } + deploy := DeploymentTransaction("Foo", helperContract) - access(all) fun withdraw(amount: UFix64): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount) - } + var accountCode []byte + var events []cadence.Event - access(all) fun deposit(from: @Vault) { - self.balance = self.balance + from.balance - destroy from - } - } + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(_ Location) (bytes []byte, err error) { + return accountCode, nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { + return accountCode, nil + }, + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + accountCode = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + return json.Decode(nil, b) + }, + } - access(all) fun faucet(): @VictimContract.Vault { - return <- create VictimContract.Vault(balance: 5.0) - } - } - `) + nextTransactionLocation := NewTransactionLocationGenerator() + nextScriptLocation := NewScriptLocationGenerator() - // Deploy Victim + // Deploy helper contract - deployVictim := DeploymentTransaction("VictimContract", victim) err := runtime.ExecuteTransaction( Script{ - Source: deployVictim, + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -7629,41 +9274,30 @@ func TestRuntimeInvalidatedResourceUse(t *testing.T) { ) require.NoError(t, err) - // Deploy Attacker - - deployAttacker := DeploymentTransaction("AttackerContract", attacker) + // Get Capability - err = runtime.ExecuteTransaction( + capability, err := runtime.ExecuteScript( Script{ - Source: deployAttacker, + Source: getCapScript, + Arguments: encodeArgs( + cadence.BytesToAddress([]byte{0x1}), + ), }, Context{ Interface: runtimeInterface, - Location: nextTransactionLocation(), + Location: nextScriptLocation(), }, ) require.NoError(t, err) // Attack - attackTransaction := []byte(fmt.Sprintf(` - import VictimContract from %s - import AttackerContract from %s - - transaction { - execute { - AttackerContract.attack() - } - }`, - signerAccount.HexWithPrefix(), - signerAccount.HexWithPrefix(), - )) - - signers = nil - err = runtime.ExecuteTransaction( Script{ - Source: attackTransaction, + Source: attackTx, + Arguments: encodeArgs( + capability, + ), }, Context{ Interface: runtimeInterface, @@ -7672,11 +9306,11 @@ func TestRuntimeInvalidatedResourceUse(t *testing.T) { ) RequireError(t, err) - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) - + var argumentNotImportableErr *ArgumentNotImportableError + require.ErrorAs(t, err, &argumentNotImportableErr) } -func TestRuntimeInvalidatedResourceUse2(t *testing.T) { +func TestRuntimeNestedResourceMoveInDestructor(t *testing.T) { t.Parallel() @@ -7687,7 +9321,6 @@ func TestRuntimeInvalidatedResourceUse2(t *testing.T) { signers := []Address{signerAccount} accountCodes := map[Location][]byte{} - var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ OnGetCode: func(location Location) (bytes []byte, err error) { @@ -7706,7 +9339,6 @@ func TestRuntimeInvalidatedResourceUse2(t *testing.T) { return nil }, OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) return nil }, } @@ -7714,162 +9346,177 @@ func TestRuntimeInvalidatedResourceUse2(t *testing.T) { nextTransactionLocation := NewTransactionLocationGenerator() attacker := []byte(fmt.Sprintf(` - import VictimContract from %s + import Bar from %[1]s - access(all) contract AttackerContract { + access(all) contract Foo { + access(all) var temp: @Bar.Vault? + init() { + self.temp <- nil + } - access(all) resource InnerResource { - access(all) var name: String - access(all) var parent: &OuterResource? - access(all) var vault: @VictimContract.Vault? + access(all) fun doubler(_ vault: @Bar.Vault): @Bar.Vault { + destroy <- create R(<-vault) + var doubled <- self.temp <- nil + return <- doubled! + } - init(_ name: String) { - self.name = name - self.parent = nil - self.vault <- nil - } + access(all) resource R { + access(all) var bounty: @Bar.Vault + access(all) var dummy: @Bar.Vault - access(all) fun setParent(_ parent: &OuterResource) { - self.parent = parent + init(_ v: @Bar.Vault) { + self.bounty <- v + self.dummy <- Bar.createEmptyVault() } - access(all) fun setVault(_ vault: @VictimContract.Vault) { - self.vault <-! vault + access(all) fun swap() { + self.bounty <-> self.dummy } destroy() { - self.parent!.shenanigans() - var vault: @VictimContract.Vault <- self.vault! - self.parent!.collect(<- vault) - } - } + // Nested resource is moved here once + var bounty <- self.bounty - access(all) resource OuterResource { - access(all) var inner1: @InnerResource - access(all) var inner2: @InnerResource - access(all) var collector: &VictimContract.Vault + // Nested resource is again moved here. This one should fail. + self.swap() - init(_ victim: @VictimContract.Vault, _ collector: &VictimContract.Vault) { - self.collector = collector - var i1 <- create InnerResource("inner1") - var i2 <- create InnerResource("inner2") - self.inner1 <- i1 - self.inner2 <- i2 - self.inner1.setVault(<- victim) - self.inner1.setParent(&self as &OuterResource) - self.inner2.setParent(&self as &OuterResource) - } + var dummy <- self.dummy - access(all) fun shenanigans() { - self.inner1 <-> self.inner2 - } + var r1 = &bounty as &Bar.Vault - access(all) fun collect(_ from: @VictimContract.Vault) { - self.collector.deposit(from: <- from) - } + Foo.account.save(<-dummy, to: /storage/dummy) + Foo.account.save(<-bounty, to: /storage/bounty) - destroy() { - destroy self.inner1 - // inner1 and inner2 got swapped during the above line - destroy self.inner2 - } - } + var dummy2 <- Foo.account.load<@Bar.Vault>(from: /storage/dummy)! + var bounty2 <- Foo.account.load<@Bar.Vault>(from: /storage/bounty)! - access(all) fun doubleBalanceOfVault(_ vault: @VictimContract.Vault): @VictimContract.Vault { - var collector <- vault.withdraw(amount: 0.0) - var outer <- create OuterResource(<- vault, &collector as &VictimContract.Vault) - destroy outer - return <- collector + dummy2.deposit(from:<-bounty2) + Foo.temp <-! dummy2 + } } - - access(all) fun attack() { - var v1 <- VictimContract.faucet() - var v2 <- AttackerContract.doubleBalanceOfVault(<- v1) - destroy v2 - } }`, signerAccount.HexWithPrefix(), )) - victim := []byte(` - access(all) contract VictimContract { - access(all) resource Vault { - - // Balance of a user's Vault - // we use unsigned fixed point numbers for balances - // because they can represent decimals and do not allow negative values - access(all) var balance: UFix64 - - init(balance: UFix64) { - self.balance = balance - } - - access(all) fun withdraw(amount: UFix64): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount) - } - - access(all) fun deposit(from: @Vault) { - self.balance = self.balance + from.balance - destroy from - } - } - - access(all) fun faucet(): @VictimContract.Vault { - return <- create VictimContract.Vault(balance: 5.0) - } - } - `) + // Deploy Attacker - // Deploy Victim + deployAttacker := DeploymentTransaction("Foo", attacker) - deployVictim := DeploymentTransaction("VictimContract", victim) err := runtime.ExecuteTransaction( Script{ - Source: deployVictim, + Source: deployAttacker, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) - require.NoError(t, err) - // Deploy Attacker + RequireError(t, err) + assertRuntimeErrorIsUserError(t, err) - deployAttacker := DeploymentTransaction("AttackerContract", attacker) + var parserError parser.Error + require.ErrorAs(t, err, &parserError) + assert.IsType(t, &parser.CustomDestructorError{}, parserError.Errors[0]) +} - err = runtime.ExecuteTransaction( - Script{ - Source: deployAttacker, +func TestRuntimeNestedResourceMoveWithSecondTransferInDestructor(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + signerAccount := common.MustBytesToAddress([]byte{0x1}) + + signers := []Address{signerAccount} + + accountCodes := map[Location][]byte{} + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return signers, nil }, - ) - require.NoError(t, err) + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + attacker := []byte(fmt.Sprintf(` + import Bar from %[1]s + + access(all) contract Foo { + access(all) var temp: @Bar.Vault? + init() { + self.temp <- nil + } + + access(all) fun doubler(_ vault: @Bar.Vault): @Bar.Vault { + destroy <- create R(<-vault) + var doubled <- self.temp <- nil + return <- doubled! + } + + access(all) resource R { + access(all) var bounty: @Bar.Vault + access(all) var dummy: @Bar.Vault + + init(_ v: @Bar.Vault) { + self.bounty <- v + self.dummy <- Bar.createEmptyVault() + } + + access(all) fun swap() { + self.bounty <-> self.dummy + } - // Attack + destroy() { + // Nested resource is moved here once + var bounty <- self.bounty.withdraw(amount: 0.0) + var throwaway <- bounty <- self.bounty + destroy throwaway - attackTransaction := []byte(fmt.Sprintf(` - import VictimContract from %s - import AttackerContract from %s + // Nested resource is again moved here. This one should fail. + self.swap() - transaction { - execute { - AttackerContract.attack() + var dummy <- self.dummy + + var r1 = &bounty as &Bar.Vault + + Foo.account.save(<-dummy, to: /storage/dummy) + Foo.account.save(<-bounty, to: /storage/bounty) + + var dummy2 <- Foo.account.load<@Bar.Vault>(from: /storage/dummy)! + var bounty2 <- Foo.account.load<@Bar.Vault>(from: /storage/bounty)! + + dummy2.deposit(from:<-bounty2) + Foo.temp <-! dummy2 + } } }`, signerAccount.HexWithPrefix(), - signerAccount.HexWithPrefix(), )) - signers = nil + // Deploy Attacker - err = runtime.ExecuteTransaction( + deployAttacker := DeploymentTransaction("Foo", attacker) + + err := runtime.ExecuteTransaction( Script{ - Source: attackTransaction, + Source: deployAttacker, }, Context{ Interface: runtimeInterface, @@ -7878,101 +9525,64 @@ func TestRuntimeInvalidatedResourceUse2(t *testing.T) { ) RequireError(t, err) + assertRuntimeErrorIsUserError(t, err) - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + var parserError parser.Error + require.ErrorAs(t, err, &parserError) + assert.IsType(t, &parser.CustomDestructorError{}, parserError.Errors[0]) } -func TestRuntimeInvalidRecursiveTransferViaVariableDeclaration(t *testing.T) { +func TestRuntimeNestedResourceMoveInTransaction(t *testing.T) { t.Parallel() - runtime := NewTestInterpreterRuntimeWithConfig(Config{ - AtreeValidationEnabled: false, - }) - - address := common.MustBytesToAddress([]byte{0x1}) - - contract := []byte(` - access(all) contract Test{ - - access(all) resource Holder{ - - access(all) var vaults: @[AnyResource] - - init(_ vaults: @[AnyResource]){ - self.vaults <- vaults - } - - access(all) fun x(): @[AnyResource] { - var x <- self.vaults <- [<-Test.dummy()] - return <-x - } - - destroy() { - var t <- self.vaults[0] <- self.vaults // here is the problem - destroy t - Test.account.storage.save(<- self.x(), to: /storage/x42) - } - } - - access(all) fun createHolder(_ vaults: @[AnyResource]): @Holder { - return <- create Holder(<-vaults) - } - - access(all) resource Dummy {} - - access(all) fun dummy(): @Dummy { - return <- create Dummy() - } - } - `) - - tx := []byte(` - import Test from 0x1 - - transaction { + runtime := NewTestInterpreterRuntime() - prepare(acct: &Account) { - var holder <- Test.createHolder(<-[<-Test.dummy(), <-Test.dummy()]) - destroy holder - } - } - `) + signerAccount := common.MustBytesToAddress([]byte{0x1}) - deploy := DeploymentTransaction("Test", contract) + signers := []Address{signerAccount} - var accountCode []byte - var events []cadence.Event + accountCodes := map[Location][]byte{} runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil + return signers, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code return nil }, OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) return nil }, } nextTransactionLocation := NewTransactionLocationGenerator() - // Deploy + foo := []byte(` + access(all) contract Foo { + access(all) resource Vault {} + + access(all) fun createVault(): @Foo.Vault { + return <- create Foo.Vault() + } + } + `) + + // Deploy Foo + deployVault := DeploymentTransaction("Foo", foo) err := runtime.ExecuteTransaction( Script{ - Source: deploy, + Source: deployVault, }, Context{ Interface: runtimeInterface, @@ -7981,220 +9591,226 @@ func TestRuntimeInvalidRecursiveTransferViaVariableDeclaration(t *testing.T) { ) require.NoError(t, err) - // Test + // Transaction + + attackTransaction := []byte(fmt.Sprintf(` + import Foo from %[1]s + + transaction { + + let vault: @Foo.Vault? + + prepare(acc: &Account) { + self.vault <- Foo.createVault() + } + + execute { + let vault2 <- self.vault + destroy <- vault2 + } + }`, + signerAccount.HexWithPrefix(), + )) err = runtime.ExecuteTransaction( Script{ - Source: tx, + Source: attackTransaction, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) - RequireError(t, err) - require.ErrorAs(t, err, &interpreter.RecursiveTransferError{}) + require.NoError(t, err) } -func TestRuntimeInvalidRecursiveTransferViaFunctionArgument(t *testing.T) { +func TestRuntimePreconditionDuplication(t *testing.T) { t.Parallel() - runtime := NewTestInterpreterRuntimeWithConfig(Config{ - AtreeValidationEnabled: false, - }) - - address := common.MustBytesToAddress([]byte{0x1}) - - contract := []byte(` - access(all) contract Test{ - - access(all) resource Holder { - - access(all) var vaults: @[AnyResource] - - init(_ vaults: @[AnyResource]) { - self.vaults <- vaults - } - - destroy() { - self.vaults.append(<-self.vaults) - } - } - - access(all) fun createHolder(_ vaults: @[AnyResource]): @Holder { - return <- create Holder(<-vaults) - } - - access(all) resource Dummy {} - - access(all) fun dummy(): @Dummy { - return <- create Dummy() - } - } - `) - - tx := []byte(` - import Test from 0x1 - - transaction { + runtime := NewTestInterpreterRuntime() - prepare(acct: &Account) { - var holder <- Test.createHolder(<-[<-Test.dummy(), <-Test.dummy()]) - destroy holder - } - } - `) + signerAccount := common.MustBytesToAddress([]byte{0x1}) - deploy := DeploymentTransaction("Test", contract) + signers := []Address{signerAccount} - var accountCode []byte - var events []cadence.Event + accountCodes := map[Location][]byte{} runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil + return signers, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code return nil }, OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) return nil }, } nextTransactionLocation := NewTransactionLocationGenerator() - // Deploy + attacker := []byte(fmt.Sprintf(` + import Bar from %[1]s - err := runtime.ExecuteTransaction( - Script{ - Source: deploy, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + access(all) contract Foo { + access(all) var temp: @Bar.Vault? - // Test + init() { + self.temp <- nil + } - err = runtime.ExecuteTransaction( - Script{ - Source: tx, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - RequireError(t, err) + access(all) fun doubler(_ vault: @Bar.Vault): @Bar.Vault { + var r <- create R(<-vault) + r.doMagic() + destroy r + var doubled <- self.temp <- nil + return <- doubled! + } - require.ErrorAs(t, err, &interpreter.RecursiveTransferError{}) -} + access(all) fun conditionFunction(_ unusedref: &Bar.Vault, _ v : @Bar.Vault, _ ref: &R): Bool { + // This gets called twice: once from the interface's precondition and the second + // time from the function's own precondition. We save both copies of the vault + // to the R object + if ref.counter == 0 { + ref.setVictim1(<- v) + ref.setCounter(1) + } else { + ref.setVictim2(<- v) + } + return true + } -func TestRuntimeOptionalReferenceAttack(t *testing.T) { + access(all) resource interface RInterface{ + access(all) fun funcFromIface( _ v: @Bar.Vault, _ ref: &R): Void { + post { + Foo.conditionFunction(&v as &Bar.Vault, <- v, ref) + } + } + } - t.Parallel() + access(all) resource R: RInterface { + access(all) var bounty: @Bar.Vault? + access(all) var victim1: @Bar.Vault? + access(all) var victim2: @Bar.Vault? + access(all) var counter: Int + + init(_ v: @Bar.Vault) { + self.counter = 0 + self.bounty <- v + self.victim1 <- nil + self.victim2 <- nil + } - script := ` - access(all) resource Vault { - access(all) var balance: UFix64 + access(all) fun funcFromIface(_ v: @Bar.Vault, _ ref: &R): Void { + post { + Foo.conditionFunction(&v as &Bar.Vault, <- v, ref) + } + } - init(balance: UFix64) { - self.balance = balance - } + access(all) fun doMagic(): Void { + var origVault <- self.bounty <- nil + self.funcFromIface(<- origVault!, &self as &R) - access(all) fun withdraw(amount: UFix64): @Vault { - self.balance = self.balance - amount - return <-create Vault(balance: amount) - } + var v1 <- self.victim1 <- nil + var v2 <- self.victim2 <- nil - access(all) fun deposit(from: @Vault) { - self.balance = self.balance + from.balance - destroy from - } - } + // Following moves copied from Supun's test + var r1 = &v2 as &Bar.Vault? + Foo.account.storage.save(<-v1!, to: /storage/v1) + Foo.account.storage.save(<-v2!, to: /storage/v2) + var v1Reloaded <- Foo.account.storage.load<@Bar.Vault>(from: /storage/v1)! + var v2Reloaded <- Foo.account.storage.load<@Bar.Vault>(from: /storage/v2)! - access(all) fun empty(): @Vault { - return <- create Vault(balance: 0.0) - } + v1Reloaded.deposit(from:<-v2Reloaded) + Foo.temp <-! v1Reloaded + } - access(all) fun giveme(): @Vault { - return <- create Vault(balance: 10.0) - } + access(all) fun setVictim1(_ v: @Bar.Vault?) { + self.victim1 <-! v + } - access(all) fun main() { - var vault <- giveme() //get 10 token - var someDict:@{Int:Vault} <- {1:<-vault} - var r = (&someDict[1] as &AnyResource) as! &Vault - var double <- empty() - double.deposit(from: <- someDict.remove(key:1)!) - double.deposit(from: <- r.withdraw(amount:10.0)) - log(double.balance) // 20 - destroy double - destroy someDict - } - ` + access(all) fun setVictim2(_ v: @Bar.Vault?) { + self.victim2 <-! v + } - runtime := NewTestInterpreterRuntime() + access(all) fun setCounter(_ v: Int) { + self.counter = v + } + } + }`, + signerAccount.HexWithPrefix(), + )) - accountCodes := map[common.Location][]byte{} + bar := []byte(` + access(all) contract Bar { + access(all) resource Vault { + + // Balance of a user's Vault + // we use unsigned fixed point numbers for balances + // because they can represent decimals and do not allow negative values + access(all) var balance: UFix64 + + init(balance: UFix64) { + self.balance = balance + } + + access(all) fun withdraw(amount: UFix64): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } + + access(all) fun deposit(from: @Vault) { + self.balance = self.balance + from.balance + destroy from + } + } - var events []cadence.Event + access(all) fun createEmptyVault(): @Bar.Vault { + return <- create Bar.Vault(balance: 0.0) + } - signerAccount := common.MustBytesToAddress([]byte{0x1}) + access(all) fun createVault(balance: UFix64): @Bar.Vault { + return <- create Bar.Vault(balance: balance) + } + } + `) - storage := NewTestLedger(nil, nil) + // Deploy Bar - runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, - Storage: storage, - OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil - }, - OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil - }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code - return nil + deployVault := DeploymentTransaction("Bar", bar) + err := runtime.ExecuteTransaction( + Script{ + Source: deployVault, }, - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), }, - OnProgramLog: func(s string) { + ) + require.NoError(t, err) - }, - OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { - return json.Decode(nil, b) - }, - } + // Deploy Attacker - _, err := runtime.ExecuteScript( + deployAttacker := DeploymentTransaction("Foo", attacker) + + err = runtime.ExecuteTransaction( Script{ - Source: []byte(script), - Arguments: [][]byte{}, + Source: deployAttacker, }, Context{ Interface: runtimeInterface, - Location: common.ScriptLocation{}, + Location: nextTransactionLocation(), }, ) @@ -8203,323 +9819,506 @@ func TestRuntimeOptionalReferenceAttack(t *testing.T) { var checkerErr *sema.CheckerError require.ErrorAs(t, err, &checkerErr) - errs := checker.RequireCheckerErrors(t, checkerErr, 1) + errs := checker.RequireCheckerErrors(t, checkerErr, 3) - assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + assert.IsType(t, &sema.PurityError{}, errs[0]) + assert.IsType(t, &sema.InvalidInterfaceConditionResourceInvalidationError{}, errs[1]) + assert.IsType(t, &sema.PurityError{}, errs[2]) } -func TestRuntimeReturnDestroyedOptional(t *testing.T) { +func TestRuntimeStorageReferenceStaticTypeSpoofing(t *testing.T) { t.Parallel() - runtime := NewTestInterpreterRuntime() + t.Run("force cast", func(t *testing.T) { + t.Parallel() - script := []byte(` - access(all) resource Foo {} + runtime := NewTestInterpreterRuntime() - access(all) fun main(): AnyStruct { - let y: @Foo? <- create Foo() - let z: @AnyResource <- y - var ref = &z as &AnyResource - ref = returnSameRef(ref) - destroy z - return ref - } + signerAccount := common.MustBytesToAddress([]byte{0x1}) - access(all) fun returnSameRef(_ ref: &AnyResource): &AnyResource { - return ref - } - `) + signers := []Address{signerAccount} - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - } + accountCodes := map[Location][]byte{} - // Test + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return signers, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + } - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) + nextTransactionLocation := NewTransactionLocationGenerator() - RequireError(t, err) - require.ErrorAs(t, err, &interpreter.DestroyedResourceError{}) -} + attacker := []byte(fmt.Sprintf(` + import Bar from %[1]s -func TestRuntimeComputationMeteringError(t *testing.T) { + access(all) contract Foo { + init() { + var tripled <- self.tripleVault(victim: <- Bar.createVault(balance: 100.0)) - t.Parallel() + destroy tripled + } - runtime := NewTestInterpreterRuntime() + // Fake resource that is presented to the static checker to get it to + // wave thru the call to "reverse" + access(all) resource FakeArray { + access(all) fun reverse(): @[Bar.Vault] { return <- [] } + } - t.Run("regular error returned", func(t *testing.T) { - t.Parallel() + access(all) fun tripleVault(victim: @Bar.Vault): @Bar.Vault{ + // Step 1: Create a storage reference to a FakeArray, first borrowing + // it as &AnyResource and then performing a runtime cast to + // &FakeArray. This intermediary step avoid the "dereference + // failed" error later on. + + Foo.account.storage.save(<- create FakeArray(), to: /storage/flipflop) + let anyStructRef = Foo.account.storage.borrow<&AnyResource>(from: /storage/flipflop)! + let flipFlopStorageRef = anyStructRef as! &FakeArray + + // Step 2: Ditch FakeArray and place the victim resource array + // at the same path in storage + destroy <- Foo.account.storage.load<@FakeArray>(from: /storage/flipflop) + Foo.account.storage.save(<- [<- victim], to: /storage/flipflop) + + // Step 3: As static checker still thinks flipFlopStorageRef is &FakeArray + // we can go ahead and call reverse() to get infinite copies of the resource + // array which should not be possible + let reversed1 <- flipFlopStorageRef.reverse() + let reversed2 <- flipFlopStorageRef.reverse() + reversed1[0].deposit(from: <- reversed2.removeLast()) + let bounty <- reversed1.removeLast() + destroy reversed1 + destroy reversed2 + + // Clean up our value from storage. Throw the third copy of + // the assets into our bounty stash for good measure + var arr <- Foo.account.storage.load<@[Bar.Vault]>(from: /storage/flipflop)! + bounty.deposit(from: <- arr.removeLast()) + destroy arr + return <- bounty + } + }`, + signerAccount.HexWithPrefix(), + )) - script := []byte(` - access(all) fun foo() {} + bar := []byte(` + access(all) contract Bar { + access(all) resource Vault { - access(all) fun main() { - foo() + // Balance of a user's Vault + // we use unsigned fixed point numbers for balances + // because they can represent decimals and do not allow negative values + access(all) var balance: UFix64 + + init(balance: UFix64) { + self.balance = balance + } + + access(all) fun withdraw(amount: UFix64): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } + + access(all) fun deposit(from: @Vault) { + self.balance = self.balance + from.balance + destroy from + } } - `) - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - OnMeterComputation: func(compKind common.ComputationKind, intensity uint) error { - return fmt.Errorf("computation limit exceeded") - }, - } + access(all) fun createEmptyVault(): @Bar.Vault { + return <- create Bar.Vault(balance: 0.0) + } - _, err := runtime.ExecuteScript( + access(all) fun createVault(balance: UFix64): @Bar.Vault { + return <- create Bar.Vault(balance: balance) + } + } + `) + + // Deploy Bar + + deployVault := DeploymentTransaction("Bar", bar) + err := runtime.ExecuteTransaction( Script{ - Source: script, + Source: deployVault, }, Context{ Interface: runtimeInterface, - Location: common.ScriptLocation{}, + Location: nextTransactionLocation(), }, ) + require.NoError(t, err) - require.Error(t, err) - - // Returned error MUST be an external error. - // It can NOT be an internal error. - assertRuntimeErrorIsExternalError(t, err) - }) - - t.Run("regular error panicked", func(t *testing.T) { - t.Parallel() - - script := []byte(` - access(all) fun foo() {} - - access(all) fun main() { - foo() - } - `) + // Deploy Attacker - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - OnMeterComputation: func(compKind common.ComputationKind, intensity uint) error { - panic(fmt.Errorf("computation limit exceeded")) - }, - } + deployAttacker := DeploymentTransaction("Foo", attacker) - _, err := runtime.ExecuteScript( + err = runtime.ExecuteTransaction( Script{ - Source: script, + Source: deployAttacker, }, Context{ Interface: runtimeInterface, - Location: common.ScriptLocation{}, + Location: nextTransactionLocation(), }, ) require.Error(t, err) - - // Returned error MUST be an external error. - // It can NOT be an internal error. - assertRuntimeErrorIsExternalError(t, err) + var dereferenceError interpreter.DereferenceError + require.ErrorAs(t, err, &dereferenceError) }) - t.Run("go runtime error panicked", func(t *testing.T) { + t.Run("optional cast", func(t *testing.T) { t.Parallel() - script := []byte(` - access(all) fun foo() {} + runtime := NewTestInterpreterRuntime() - access(all) fun main() { - foo() - } - `) + signerAccount := common.MustBytesToAddress([]byte{0x1}) + + signers := []Address{signerAccount} + + accountCodes := map[Location][]byte{} runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, Storage: NewTestLedger(nil, nil), - OnMeterComputation: func(compKind common.ComputationKind, intensity uint) error { - // Cause a runtime error - var x any = "hello" - _ = x.(int) + OnGetSigningAccounts: func() ([]Address, error) { + return signers, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { return nil }, } - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: common.ScriptLocation{}, - }, - ) + nextTransactionLocation := NewTransactionLocationGenerator() - require.Error(t, err) + attacker := []byte(fmt.Sprintf(` + import Bar from %[1]s - // Returned error MUST be an internal error. - assertRuntimeErrorIsInternalError(t, err) - }) + access(all) contract Foo { + init() { + var tripled <- self.tripleVault(victim: <- Bar.createVault(balance: 100.0)) - t.Run("go runtime error returned", func(t *testing.T) { - t.Parallel() + destroy tripled + } - script := []byte(` - access(all) fun foo() {} + // Fake resource that is presented to the static checker to get it to + // wave thru the call to "reverse" + access(all) resource FakeArray { + access(all) fun reverse(): @[Bar.Vault] { return <- [] } + } - access(all) fun main() { - foo() + access(all) fun tripleVault(victim: @Bar.Vault): @Bar.Vault{ + // Step 1: Create a storage reference to a FakeArray, first borrowing + // it as &AnyResource and then performing a runtime cast to + // &FakeArray. This intermediary step avoid the "dereference + // failed" error later on. + + Foo.account.storage.save(<- create FakeArray(), to: /storage/flipflop) + let anyStructRef = Foo.account.storage.borrow<&AnyResource>(from: /storage/flipflop)! + let flipFlopStorageRef = (anyStructRef as? &FakeArray)! + + // Step 2: Ditch FakeArray and place the victim resource array + // at the same path in storage + destroy <- Foo.account.storage.load<@FakeArray>(from: /storage/flipflop) + Foo.account.storage.save(<- [<- victim], to: /storage/flipflop) + + // Step 3: As static checker still thinks flipFlopStorageRef is &FakeArray + // we can go ahead and call reverse() to get infinite copies of the resource + // array which should not be possible + let reversed1 <- flipFlopStorageRef.reverse() + let reversed2 <- flipFlopStorageRef.reverse() + reversed1[0].deposit(from: <- reversed2.removeLast()) + let bounty <- reversed1.removeLast() + destroy reversed1 + destroy reversed2 + + // Clean up our value from storage. Throw the third copy of + // the assets into our bounty stash for good measure + var arr <- Foo.account.storage.load<@[Bar.Vault]>(from: /storage/flipflop)! + bounty.deposit(from: <- arr.removeLast()) + destroy arr + return <- bounty } - `) + }`, + signerAccount.HexWithPrefix(), + )) - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - OnMeterComputation: func(compKind common.ComputationKind, intensity uint) (err error) { - // Cause a runtime error. Catch it and return. - var x any = "hello" - defer func() { - if r := recover(); r != nil { - if r, ok := r.(error); ok { - err = r - } - } - }() + bar := []byte(` + access(all) contract Bar { + access(all) resource Vault { + + // Balance of a user's Vault + // we use unsigned fixed point numbers for balances + // because they can represent decimals and do not allow negative values + access(all) var balance: UFix64 + + init(balance: UFix64) { + self.balance = balance + } + + access(all) fun withdraw(amount: UFix64): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } - _ = x.(int) + access(all) fun deposit(from: @Vault) { + self.balance = self.balance + from.balance + destroy from + } + } - return + access(all) fun createEmptyVault(): @Bar.Vault { + return <- create Bar.Vault(balance: 0.0) + } + + access(all) fun createVault(balance: UFix64): @Bar.Vault { + return <- create Bar.Vault(balance: balance) + } + } + `) + + // Deploy Bar + + deployVault := DeploymentTransaction("Bar", bar) + err := runtime.ExecuteTransaction( + Script{ + Source: deployVault, }, - } + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - _, err := runtime.ExecuteScript( + // Deploy Attacker + + deployAttacker := DeploymentTransaction("Foo", attacker) + + err = runtime.ExecuteTransaction( Script{ - Source: script, + Source: deployAttacker, }, Context{ Interface: runtimeInterface, - Location: common.ScriptLocation{}, + Location: nextTransactionLocation(), }, ) require.Error(t, err) - - // Returned error MUST be an internal error. - assertRuntimeErrorIsInternalError(t, err) + var dereferenceError interpreter.DereferenceError + require.ErrorAs(t, err, &dereferenceError) }) } -func TestRuntimeWrappedErrorHandling(t *testing.T) { +func TestRuntimeIfLetElseBranchConfusion(t *testing.T) { t.Parallel() - foo := []byte(` - access(all) contract Foo { - access(all) resource R { - access(all) var x: Int + runtime := NewTestInterpreterRuntime() - init() { - self.x = 0 - } + signerAccount := common.MustBytesToAddress([]byte{0x1}) + + signers := []Address{signerAccount} + + accountCodes := map[Location][]byte{} + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return signers, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + attacker := []byte(fmt.Sprintf(` + import Bar from %[1]s + + access(all) contract Foo { + access(all) var temp: @Bar.Vault? + init() { + self.temp <- nil } - access(all) fun createR(): @R { - return <-create R() + access(all) fun doubler(_ vault: @Bar.Vault): @Bar.Vault { + destroy <- create R(<-vault) + var doubled <- self.temp <- nil + return <- doubled! } - } - `) - brokenFoo := []byte(` - access(all) contract Foo { access(all) resource R { - access(all) var x: Int + access(self) var r: @Bar.Vault? + access(self) var r2: @Bar.Vault? - init() { - self.x = "hello" + init(_ v: @Bar.Vault) { + self.r <- nil + self.r2 <- v } - } - access(all) fun createR(): @R { - return <-create R() + destroy() { + if let dummy <- self.r <- self.r2{ + // unreachable token destroys to please checker + destroy dummy + destroy self.r + } else { + var dummy <- self.r2 + var bounty <- self.r + var r1 = &bounty as &Bar.Vault? + Foo.account.save(<-dummy!, to: /storage/dummy) + Foo.account.save(<-bounty!, to: /storage/bounty) + var dummy2 <- Foo.account.load<@Bar.Vault>(from: /storage/dummy)! + var bounty2 <- Foo.account.load<@Bar.Vault>(from: /storage/bounty)! + + dummy2.deposit(from:<-bounty2) + Foo.temp <-! dummy2 + } + } } - } - `) + }`, + signerAccount.HexWithPrefix(), + )) - tx1 := []byte(` - import Foo from 0x1 + // Deploy Attacker - transaction { - prepare(signer: auth (Storage, Capabilities) &Account) { - signer.storage.save(<- Foo.createR(), to: /storage/r) - let cap = signer.capabilities.storage.issue<&Foo.R>(/storage/r) - signer.capabilities.publish(cap, at: /public/r) - } - } - `) + deployAttacker := DeploymentTransaction("Foo", attacker) - tx2 := []byte(` - transaction { - prepare(signer: &Account) { - let cap = signer.capabilities.get<&AnyStruct>(/public/r)! - cap.check() - } - } - `) + err := runtime.ExecuteTransaction( + Script{ + Source: deployAttacker, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) - runtime := NewTestInterpreterRuntimeWithConfig(Config{ - AtreeValidationEnabled: false, - }) + RequireError(t, err) + assertRuntimeErrorIsUserError(t, err) - address := common.MustBytesToAddress([]byte{0x1}) + var parserError parser.Error + require.ErrorAs(t, err, &parserError) + assert.IsType(t, &parser.CustomDestructorError{}, parserError.Errors[0]) +} - deploy := DeploymentTransaction("Foo", foo) +func TestResourceLossViaSelfRugPull(t *testing.T) { - var contractCode []byte - var events []cadence.Event + t.Parallel() - isContractBroken := false + runtime := NewTestInterpreterRuntime() + + signerAccount := common.MustBytesToAddress([]byte{0x1}) + + signers := []Address{signerAccount} + + accountCodes := map[Location][]byte{} runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return contractCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil + return signers, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - if isContractBroken && contractCode != nil { - return brokenFoo, nil - } - return contractCode, nil + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - contractCode = code + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) (err error) { + accountCodes[location] = code return nil }, + OnProgramLog: func(_ string) {}, OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) return nil }, - OnGetAndSetProgram: func(location Location, load func() (*interpreter.Program, error)) (*interpreter.Program, error) { - program, err := load() - if err == nil { - return program, nil - } - return program, fmt.Errorf("wrapped error: %w", err) - }, } nextTransactionLocation := NewTransactionLocationGenerator() - // Deploy + bar := []byte(` + access(all) contract Bar { + + access(all) resource Vault { + + + // Balance of a user's Vault + // we use unsigned fixed point numbers for balances + // because they can represent decimals and do not allow negative values + access(all) var balance: UFix64 + + init(balance: UFix64) { + self.balance = balance + } + + access(all) fun withdraw(amount: UFix64): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } + + access(all) fun deposit(from: @Vault) { + self.balance = self.balance + from.balance + destroy from + } + } + + access(all) fun createEmptyVault(): @Bar.Vault { + return <- create Bar.Vault(balance: 0.0) + } + + access(all) fun createVault(balance: UFix64): @Bar.Vault { + return <- create Bar.Vault(balance: balance) + } + } + `) + + // Deploy Bar + deployVault := DeploymentTransaction("Bar", bar) err := runtime.ExecuteTransaction( Script{ - Source: deploy, + Source: deployVault, }, Context{ Interface: runtimeInterface, @@ -8528,423 +10327,521 @@ func TestRuntimeWrappedErrorHandling(t *testing.T) { ) require.NoError(t, err) - // Run Tx to save values + attacker := []byte(fmt.Sprintf(` + import Bar from %[1]s - err = runtime.ExecuteTransaction( - Script{ - Source: tx1, - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - }, - ) - require.NoError(t, err) + access(all) contract Foo { + access(all) var rCopy1: @R? + init() { + self.rCopy1 <- nil + log("Creating a Vault with 1337 units"); + var r <- Bar.createVault(balance: 1337.0) + self.loser(<- r) + } + access(all) resource R { + access(all) var optional: @[Bar.Vault]? - // Run Tx to load value. - // Mark the contract is broken + init() { + self.optional <- [] + } - isContractBroken = true + access(all) fun rugpullAndAssign(_ callback: fun(): Void, _ victim: @Bar.Vault) { + callback() + // "self" has now been invalidated and accessing "a" for reading would + // trigger a "not initialized" error. However, force-assigning to it succeeds + // and leaves the victim object hanging from an invalidated resource + self.optional <-! [<- victim] + } + } + + access(all) fun loser(_ victim: @Bar.Vault): Void{ + var array: @[R] <- [<- create R()] + let arrRef = &array as auth(Remove) &[R] + fun rugPullCallback(): Void{ + // Here we move the R resource from the array to a contract field + // invalidating the "self" during the execution of rugpullAndAssign + Foo.rCopy1 <-! arrRef.removeLast() + } + array[0].rugpullAndAssign(rugPullCallback, <- victim) + destroy array + + var y: @R? <- nil + self.rCopy1 <-> y + destroy y + } + + }`, + signerAccount.HexWithPrefix(), + )) + + // Deploy Attacker + + deployAttacker := DeploymentTransaction("Foo", attacker) err = runtime.ExecuteTransaction( Script{ - Source: tx2, + Source: deployAttacker, }, Context{ Interface: runtimeInterface, Location: nextTransactionLocation(), }, ) - RequireError(t, err) - // Returned error MUST be a user error. - // It can NOT be an internal error. - assertRuntimeErrorIsUserError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) } -func BenchmarkRuntimeResourceTracking(b *testing.B) { +func TestRuntimeValueTransferResourceLoss(t *testing.T) { - runtime := NewTestInterpreterRuntime() + t.Parallel() + + contract := []byte(` + access(all) contract Foo { + + access(all) resource R { + + access(all) let id: String + + access(all) event ResourceDestroyed(id: String = self.id) + + init(_ id: String) { + log("Creating ".concat(id)) + self.id = id + } + } + + access(all) fun createR(_ id: String): @Foo.R { + return <- create Foo.R(id) + } + } + `) - contractsAddress := common.MustBytesToAddress([]byte{0x1}) + runtime := NewTestInterpreterRuntimeWithConfig(Config{ + AtreeValidationEnabled: false, + }) - accountCodes := map[Location][]byte{} + address := common.MustBytesToAddress([]byte{0x1}) - signerAccount := contractsAddress + var contractCode []byte + var events []cadence.Event + var logs []string runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(location Location) (bytes []byte, err error) { - return accountCodes[location], nil - }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{signerAccount}, nil + return []Address{address}, nil }, - OnResolveLocation: NewSingleIdentifierLocationResolver(b), - OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { - return accountCodes[location], nil + OnGetAccountContractCode: func(location common.AddressLocation) ([]byte, error) { + return contractCode, nil }, - OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { - accountCodes[location] = code + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { + contractCode = code return nil }, OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) return nil }, - OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { + OnDecodeArgument: func(b []byte, t cadence.Type) (value cadence.Value, err error) { return json.Decode(nil, b) }, + OnProgramLog: func(s string) { + logs = append(logs, s) + }, } - environment := NewBaseInterpreterEnvironment(Config{}) - nextTransactionLocation := NewTransactionLocationGenerator() - // Deploy contract + // Deploy + deploymentTx := DeploymentTransaction("Foo", contract) err := runtime.ExecuteTransaction( Script{ - Source: DeploymentTransaction( - "Foo", - []byte(` - access(all) contract Foo { - access(all) resource R {} - - access(all) fun getResourceArray(): @[R] { - var resourceArray: @[R] <- [] - var i = 0 - while i < 1000 { - resourceArray.append(<- create R()) - i = i + 1 - } - return <- resourceArray - } - } - `), - ), + Source: deploymentTx, }, Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - Environment: environment, + Interface: runtimeInterface, + Location: nextTransactionLocation(), }, ) - require.NoError(b, err) + require.NoError(t, err) - err = runtime.ExecuteTransaction( - Script{ - Source: []byte(` - import Foo from 0x1 + // Execute script - transaction { - prepare(signer: &Account) { - signer.storage.save(<- Foo.getResourceArray(), to: /storage/r) - } - } - `), - }, - Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - Environment: environment, - }, - ) - require.NoError(b, err) + nextScriptLocation := NewScriptLocationGenerator() - b.ReportAllocs() - b.ResetTimer() + script := []byte(fmt.Sprintf(` + import Foo from %[1]s - err = runtime.ExecuteTransaction( - Script{ - Source: []byte(` - import Foo from 0x1 + access(all) struct IndexSwitcher { + access(self) var counter: Int + init() { + self.counter = 0 + } + access(all) fun callback(): Int { + self.counter = self.counter + 1 + if self.counter == 1 { + // Which key we want to be read? + // Let's point it to a non-existent key + return 123 + } else { + // Which key we want to be assigned to? + // We point it to 0 to overwrite the victim value + return 0 + } + } + } - transaction { - prepare(signer: &Account) { - // When the array is loaded from storage, all elements are also loaded. - // So all moves of this resource will check for tracking of all elements aas well. + access(all) fun loseResource(victim: @Foo.R) { + var a <- Foo.createR("dummy resource") + var dict: @{Int: Foo.R} <- { 0: <- victim } + var indexSwitcher = IndexSwitcher() + + // this callback should only be evaluated once, rather than twice + var b <- dict[indexSwitcher.callback()] <- a + destroy b + destroy dict + } - var array1 <- signer.storage.load<@[Foo.R]>(from: /storage/r)! - var array2 <- array1 - var array3 <- array2 - var array4 <- array3 - var array5 <- array4 - destroy array5 - } - } - `), + access(all) fun main(): Void { + var victim <- Foo.createR("victim resource") + loseResource(victim: <- victim) + }`, + address.HexWithPrefix(), + )) + + _, err = runtime.ExecuteScript( + Script{ + Source: script, }, Context{ - Interface: runtimeInterface, - Location: nextTransactionLocation(), - Environment: environment, + Interface: runtimeInterface, + Location: nextScriptLocation(), }, ) - require.NoError(b, err) -} -func TestRuntimeTypesAndConversions(t *testing.T) { - t.Parallel() + require.NoError(t, err) - test := func(name string, semaType sema.Type) { - t.Run(name, func(t *testing.T) { + require.Len(t, logs, 2) + require.Equal(t, `"Creating victim resource"`, logs[0]) - t.Parallel() + require.Len(t, events, 3) + require.Equal(t, "flow.AccountContractAdded", events[0].EventType.ID()) + require.Equal(t, `A.0000000000000001.Foo.R.ResourceDestroyed(id: "dummy resource")`, events[1].String()) + require.Equal(t, `A.0000000000000001.Foo.R.ResourceDestroyed(id: "victim resource")`, events[2].String()) +} - var staticType interpreter.StaticType +func TestRuntimeNonPublicAccessModifierInInterface(t *testing.T) { - t.Run("sema -> static", func(t *testing.T) { - staticType = interpreter.ConvertSemaToStaticType(nil, semaType) - require.NotNil(t, staticType) - }) + t.Parallel() - if staticType != nil { - t.Run("static -> sema", func(t *testing.T) { + runtime := NewTestInterpreterRuntimeWithAttachments() - t.Parallel() + address1 := common.MustBytesToAddress([]byte{0x1}) + address2 := common.MustBytesToAddress([]byte{0x2}) - inter, err := interpreter.NewInterpreter(nil, nil, &interpreter.Config{}) - require.NoError(t, err) + contract1 := []byte(` + access(all) + contract C1 { - convertedSemaType, err := inter.ConvertStaticToSemaType(staticType) - require.NoError(t, err) - require.True(t, semaType.Equal(convertedSemaType)) - }) - } + access(all) + struct interface SI { - var cadenceType cadence.Type + access(contract) + fun contractTest() - t.Run("sema -> cadence", func(t *testing.T) { + access(account) + fun accountTest() + } - cadenceType = ExportType(semaType, map[sema.TypeID]cadence.Type{}) - require.NotNil(t, cadenceType) - }) + access(all) + fun test(_ si: {SI}) { + si.contractTest() + si.accountTest() + } + } + `) - if cadenceType != nil { + contract2 := []byte(` + import C1 from 0x1 - t.Run("cadence -> static", func(t *testing.T) { + access(all) + contract C2 { - t.Parallel() + access(all) + struct S1: C1.SI { + access(contract) + fun contractTest() {} - convertedStaticType := ImportType(nil, cadenceType) - require.True(t, staticType.Equal(convertedStaticType)) - }) + access(account) + fun accountTest() {} } - }) - } - for name, ty := range checker.AllBaseSemaTypes() { - test(name, ty) - } -} + access(all) + struct S2: C1.SI { + access(all) + fun contractTest() {} -func TestRuntimeEventEmission(t *testing.T) { + access(all) + fun accountTest() {} + } - t.Parallel() + access(all) + fun test() { + S1().contractTest() + S1().accountTest() + S2().contractTest() + S2().accountTest() + } + } + `) - t.Run("primitive", func(t *testing.T) { - t.Parallel() + deploy1 := DeploymentTransaction("C1", contract1) + deploy2 := DeploymentTransaction("C2", contract2) - runtime := NewTestInterpreterRuntime() + var signer Address - script := []byte(` - access(all) - event TestEvent(ref: Int) + accountCodes := map[Location][]byte{} + var events []cadence.Event - access(all) - fun main() { - emit TestEvent(ref: 42) - } - `) + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signer}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } - var events []cadence.Event + nextTransactionLocation := NewTransactionLocationGenerator() - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, - } + // Deploy first contract to first account - nextScriptLocation := NewScriptLocationGenerator() + signer = address1 - location := nextScriptLocation() + err := runtime.ExecuteTransaction( + Script{ + Source: deploy1, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: location, - }, - ) - require.NoError(t, err) + // Deploy second contract to second account - require.Len(t, events, 1) - event := events[0] + signer = address2 - assert.EqualValues( - t, - location.TypeID(nil, "TestEvent"), - event.Type().ID(), - ) + err = runtime.ExecuteTransaction( + Script{ + Source: deploy2, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) - assert.Equal( - t, - []cadence.Value{ - cadence.NewInt(42), - }, - event.GetFieldValues(), - ) + var conformanceErr *sema.ConformanceError + require.ErrorAs(t, err, &conformanceErr) - }) + require.Len(t, conformanceErr.MemberMismatches, 2) +} - t.Run("reference", func(t *testing.T) { - t.Parallel() +func TestRuntimeContractWithInvalidCapability(t *testing.T) { + + t.Parallel() - runtime := NewTestInterpreterRuntime() + runtime := NewTestInterpreterRuntimeWithAttachments() - script := []byte(` - access(all) - event TestEvent(ref: &Int) + address := common.MustBytesToAddress([]byte{0x1}) - access(all) - fun main() { - emit TestEvent(ref: &42) - } - `) + contract := []byte(` + access(all) + contract Test { - var events []cadence.Event + access(all) var invalidCap: Capability + access(all) var unrelatedStoragePath: StoragePath - runtimeInterface := &TestRuntimeInterface{ - Storage: NewTestLedger(nil, nil), - OnEmitEvent: func(event cadence.Event) error { - events = append(events, event) - return nil - }, + init() { + self.invalidCap = self.account.capabilities.get<&AnyResource>(/public/path) + self.unrelatedStoragePath = /storage/validPath + } } + `) - nextScriptLocation := NewScriptLocationGenerator() - - location := nextScriptLocation() + script := []byte(` + import Test from 0x1 - _, err := runtime.ExecuteScript( - Script{ - Source: script, - }, - Context{ - Interface: runtimeInterface, - Location: location, - }, - ) - require.NoError(t, err) + access(all) fun main() { + log(Test.unrelatedStoragePath) + log(Test.invalidCap) + } + `) - require.Len(t, events, 1) - event := events[0] + deploy := DeploymentTransaction("Test", contract) - assert.EqualValues( - t, - location.TypeID(nil, "TestEvent"), - event.Type().ID(), - ) + accountCodes := map[Location][]byte{} + var events []cadence.Event + var logs []string - assert.Equal( - t, - []cadence.Value{ - cadence.NewInt(42), - }, - event.GetFieldValues(), - ) + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil + }, + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(s string) { + logs = append(logs, s) + }, + } - }) -} + // Deploy contract -func TestRuntimeInvalidWrappedPrivateCapability(t *testing.T) { + err := runtime.ExecuteTransaction( + Script{ + Source: deploy, + }, + Context{ + Interface: runtimeInterface, + Location: common.TransactionLocation{}, + }, + ) + require.NoError(t, err) - t.Parallel() + // Run script - runtime := NewTestInterpreterRuntimeWithConfig(Config{ - AtreeValidationEnabled: false, - }) + _, err = runtime.ExecuteScript( + Script{ + Source: script, + }, + Context{ + Interface: runtimeInterface, + Location: common.ScriptLocation{}, + }, + ) + require.NoError(t, err) - address := common.MustBytesToAddress([]byte{0x1}) + require.Equal( + t, + []string{ + "/storage/validPath", + "Capability<&AnyResource>(address: 0x0000000000000001, id: 0)", + }, + logs, + ) +} - helperContract := []byte(` - access(all) - contract Foo { +func TestRuntimeAccountEntitlementEscalation(t *testing.T) { - access(all) - struct Thing { + t.Parallel() - access(all) - let cap: Capability + addressValue := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } - init(cap: Capability) { - self.cap = cap - } - } - } - `) + runtime := NewTestInterpreterRuntime() - getCapScript := []byte(` - import Foo from 0x1 + contract := []byte(` + access(all) contract Test{ - access(all) - fun main(addr: Address): AnyStruct { - let acct = getAuthAccount(addr) - let cap = acct.capabilities.account.issue() - return Foo.Thing(cap: cap) - } + access(all) struct S{ + access(mapping Identity) var s: AnyStruct + + init(_ a: AnyStruct){ + self.s = a + } + } + } `) - attackTx := []byte(` - import Foo from 0x1 + deploy := DeploymentTransaction("Test", contract) - transaction(thing: Foo.Thing) { - prepare(_: &Account) { - thing.cap.borrow()! - .storage.save("Hello, World", to: /storage/attack) - } - } - `) + initialTx := []byte(` + transaction { - deploy := DeploymentTransaction("Foo", helperContract) + prepare(acct: auth(Storage) &Account) { + acct.storage.save(42, to: /storage/foo) + } + } + `) - var accountCode []byte + exploitTx := []byte(` + import Test from 0x01 + + transaction { + prepare(acct: auth(Storage) &Account) {} + execute { + var a = getAccount(0x1) + var r = &Test.S(a) as auth(Storage) &Test.S + var rr = r.s as! auth(Storage) &Account + + rr.storage.load(from: /storage/foo) + } + } + `) + + accountCodes := map[Location][]byte{} var events []cadence.Event runtimeInterface := &TestRuntimeInterface{ - OnGetCode: func(_ Location) (bytes []byte, err error) { - return accountCode, nil + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, Storage: NewTestLedger(nil, nil), OnGetSigningAccounts: func() ([]Address, error) { - return []Address{address}, nil + return []Address{addressValue}, nil }, OnResolveLocation: NewSingleIdentifierLocationResolver(t), - OnGetAccountContractCode: func(_ common.AddressLocation) (code []byte, err error) { - return accountCode, nil + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil }, - OnUpdateAccountContractCode: func(_ common.AddressLocation, code []byte) error { - accountCode = code + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code return nil }, + OnCreateAccount: func(payer Address) (address Address, err error) { + return addressValue, nil + }, OnEmitEvent: func(event cadence.Event) error { events = append(events, event) return nil }, - OnDecodeArgument: func(b []byte, t cadence.Type) (cadence.Value, error) { - return json.Decode(nil, b) - }, } nextTransactionLocation := NewTransactionLocationGenerator() - nextScriptLocation := NewScriptLocationGenerator() - - // Deploy helper contract err := runtime.ExecuteTransaction( Script{ @@ -8957,30 +10854,83 @@ func TestRuntimeInvalidWrappedPrivateCapability(t *testing.T) { ) require.NoError(t, err) - // Get Capability + err = runtime.ExecuteTransaction( + Script{ + Source: initialTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }) + require.NoError(t, err) - capability, err := runtime.ExecuteScript( + err = runtime.ExecuteTransaction( Script{ - Source: getCapScript, - Arguments: encodeArgs( - cadence.BytesToAddress([]byte{0x1}), - ), + Source: exploitTx, }, Context{ Interface: runtimeInterface, - Location: nextScriptLocation(), + Location: nextTransactionLocation(), + }) + require.ErrorAs(t, err, &interpreter.InvalidMemberReferenceError{}) +} + +func TestRuntimeAccountStorageBorrowEphemeralReferenceValue(t *testing.T) { + + t.Parallel() + + addressValue := Address{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + } + + runtime := NewTestInterpreterRuntime() + + contract := []byte(` + access(all) contract C { + + init() { + let pubAccount = getAccount(0x01) + self.account.storage.save(pubAccount as AnyStruct, to: /storage/account) + let authAccount = self.account.storage.borrow(from: /storage/account)! + } + } + `) + + deploy := DeploymentTransaction("C", contract) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + OnGetCode: func(location Location) (bytes []byte, err error) { + return accountCodes[location], nil }, - ) - require.NoError(t, err) + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{addressValue}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + return accountCodes[location], nil + }, + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnCreateAccount: func(payer Address) (address Address, err error) { + return addressValue, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } - // Attack + nextTransactionLocation := NewTransactionLocationGenerator() - err = runtime.ExecuteTransaction( + err := runtime.ExecuteTransaction( Script{ - Source: attackTx, - Arguments: encodeArgs( - capability, - ), + Source: deploy, }, Context{ Interface: runtimeInterface, @@ -8989,6 +10939,6 @@ func TestRuntimeInvalidWrappedPrivateCapability(t *testing.T) { ) RequireError(t, err) - var argumentNotImportableErr *ArgumentNotImportableError - require.ErrorAs(t, err, &argumentNotImportableErr) + var nestedReferenceErr interpreter.NestedReferenceError + require.ErrorAs(t, err, &nestedReferenceErr) } diff --git a/runtime/script_executor.go b/runtime/script_executor.go index b7da51835d..61212a30da 100644 --- a/runtime/script_executor.go +++ b/runtime/script_executor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/access.go b/runtime/sema/access.go index b936f4495d..fcad025d94 100644 --- a/runtime/sema/access.go +++ b/runtime/sema/access.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,12 +32,11 @@ import ( type Access interface { isAccess() + IsPrimitiveAccess() bool ID() TypeID String() string QualifiedString() string Equal(other Access) bool - // IsLessPermissiveThan returns whether receiver access is less permissive than argument access - IsLessPermissiveThan(Access) bool // PermitsAccess returns whether receiver access permits argument access PermitsAccess(Access) bool } @@ -52,6 +51,7 @@ const ( // EntitlementSetAccess type EntitlementSetAccess struct { + _ common.Incomparable Entitlements *EntitlementOrderedSet SetKind EntitlementSetKind } @@ -72,8 +72,26 @@ func NewEntitlementSetAccess( } } +func NewAccessFromEntitlementOrderedSet( + set *EntitlementOrderedSet, + setKind EntitlementSetKind, +) Access { + if set == nil || set.Len() == 0 { + return UnauthorizedAccess + } + + return EntitlementSetAccess{ + Entitlements: set, + SetKind: setKind, + } +} + func (EntitlementSetAccess) isAccess() {} +func (EntitlementSetAccess) IsPrimitiveAccess() bool { + return false +} + func (e EntitlementSetAccess) ID() TypeID { entitlementTypeIDs := make([]TypeID, 0, e.Entitlements.Len()) e.Entitlements.Foreach(func(entitlement *EntitlementType, _ struct{}) { @@ -232,18 +250,6 @@ func (e EntitlementSetAccess) PermitsAccess(other Access) bool { } } -func (e EntitlementSetAccess) IsLessPermissiveThan(other Access) bool { - switch otherAccess := other.(type) { - case PrimitiveAccess: - return ast.PrimitiveAccess(otherAccess) != ast.AccessSelf - case EntitlementSetAccess: - // subset check returns true on equality, and we want this function to be false on equality, so invert the >= check - return !e.PermitsAccess(otherAccess) - default: - return true - } -} - // EntitlementMapAccess type EntitlementMapAccess struct { @@ -266,6 +272,10 @@ func NewEntitlementMapAccess(mapType *EntitlementMapType) *EntitlementMapAccess func (*EntitlementMapAccess) isAccess() {} +func (*EntitlementMapAccess) IsPrimitiveAccess() bool { + return false +} + func (e *EntitlementMapAccess) ID() TypeID { return e.Type.ID() } @@ -316,25 +326,19 @@ func (e *EntitlementMapAccess) PermitsAccess(other Access) bool { // the input entitlement. It is only safe for `R` to give out these entitlements if it actually // possesses them, so we require the initializing value to have every possible entitlement that may // be produced by the map + // + // However, if the map is or includes the `Identity`, there is no possible set that is permitted by + // this map, since the theoretical codomain of the Identity map is infinite case EntitlementSetAccess: + if e.Type.IncludesIdentity { + return false + } return e.Codomain().PermitsAccess(otherAccess) default: return false } } -func (e *EntitlementMapAccess) IsLessPermissiveThan(other Access) bool { - switch otherAccess := other.(type) { - case PrimitiveAccess: - return ast.PrimitiveAccess(otherAccess) != ast.AccessSelf - case *EntitlementMapAccess: - // this should be false on equality - return !e.Type.Equal(otherAccess.Type) - default: - return true - } -} - func (e *EntitlementMapAccess) Domain() EntitlementSetAccess { e.domainOnce.Do(func() { domain := common.MappedSliceWithNoDuplicates( @@ -348,7 +352,7 @@ func (e *EntitlementMapAccess) Domain() EntitlementSetAccess { return e.domain } -func (e *EntitlementMapAccess) Codomain() EntitlementSetAccess { +func (e *EntitlementMapAccess) Codomain() Access { e.codomainOnce.Do(func() { codomain := common.MappedSliceWithNoDuplicates( e.Type.Relations, @@ -435,6 +439,10 @@ var _ Access = PrimitiveAccess(0) func (PrimitiveAccess) isAccess() {} +func (PrimitiveAccess) IsPrimitiveAccess() bool { + return true +} + func (PrimitiveAccess) ID() TypeID { panic(errors.NewUnreachableError()) } @@ -455,15 +463,10 @@ func (a PrimitiveAccess) Equal(other Access) bool { return false } -func (a PrimitiveAccess) IsLessPermissiveThan(otherAccess Access) bool { - if otherPrimitive, ok := otherAccess.(PrimitiveAccess); ok { - return ast.PrimitiveAccess(a) < ast.PrimitiveAccess(otherPrimitive) - } - // primitive and entitlement access should never mix in interface conformance checks - return true -} - func (a PrimitiveAccess) PermitsAccess(otherAccess Access) bool { + if a == InaccessibleAccess { + return otherAccess == InaccessibleAccess + } if otherPrimitive, ok := otherAccess.(PrimitiveAccess); ok { return ast.PrimitiveAccess(a) >= ast.PrimitiveAccess(otherPrimitive) } diff --git a/runtime/sema/access_test.go b/runtime/sema/access_test.go index 63e3418214..eecba8a9d2 100644 --- a/runtime/sema/access_test.go +++ b/runtime/sema/access_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/accesscheckmode.go b/runtime/sema/accesscheckmode.go index a0bb313b6f..1c8b2ff47e 100644 --- a/runtime/sema/accesscheckmode.go +++ b/runtime/sema/accesscheckmode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/account.cdc b/runtime/sema/account.cdc index bc5aa6989d..ce8d65a696 100644 --- a/runtime/sema/account.cdc +++ b/runtime/sema/account.cdc @@ -324,14 +324,15 @@ struct Account { let account: Account.AccountCapabilities /// Returns the capability at the given public path. - /// Returns nil if the capability does not exist, - /// or if the given type is not a supertype of the capability's borrow type. + /// If the capability does not exist, + /// or if the given type is not a supertype of the capability's borrow type, + /// returns an "invalid" capability with ID 0 that will always fail to `check` or `borrow` access(all) - view fun get(_ path: PublicPath): Capability? + view fun get(_ path: PublicPath): Capability /// Borrows the capability at the given public path. /// Returns nil if the capability does not exist, or cannot be borrowed using the given type. - /// The function is equivalent to `get(path)?.borrow()`. + /// The function is equivalent to `get(path).borrow()`. access(all) view fun borrow(_ path: PublicPath): T? @@ -362,6 +363,10 @@ struct Account { access(Capabilities | StorageCapabilities | IssueStorageCapabilityController) fun issue(_ path: StoragePath): Capability + /// Issue/create a new storage capability. + access(Capabilities | StorageCapabilities | IssueStorageCapabilityController) + fun issueWithType(_ path: StoragePath, type: Type): Capability + /// Get the storage capability controller for the capability with the specified ID. /// /// Returns nil if the ID does not reference an existing storage capability. @@ -391,10 +396,15 @@ struct Account { access(all) struct AccountCapabilities { + /// Issue/create a new account capability. access(Capabilities | AccountCapabilities | IssueAccountCapabilityController) fun issue(): Capability + /// Issue/create a new account capability. + access(Capabilities | AccountCapabilities | IssueAccountCapabilityController) + fun issueWithType(_ type: Type): Capability + /// Get capability controller for capability with the specified ID. /// /// Returns nil if the ID does not reference an existing account capability. diff --git a/runtime/sema/account.gen.go b/runtime/sema/account.gen.go index 6908cf6063..89d05b2917 100644 --- a/runtime/sema/account.gen.go +++ b/runtime/sema/account.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1233,21 +1233,20 @@ var Account_CapabilitiesTypeGetFunctionType = &FunctionType{ }, }, ReturnTypeAnnotation: NewTypeAnnotation( - &OptionalType{ - Type: MustInstantiate( - &CapabilityType{}, - &GenericType{ - TypeParameter: Account_CapabilitiesTypeGetFunctionTypeParameterT, - }, - ), - }, + MustInstantiate( + &CapabilityType{}, + &GenericType{ + TypeParameter: Account_CapabilitiesTypeGetFunctionTypeParameterT, + }, + ), ), } const Account_CapabilitiesTypeGetFunctionDocString = ` Returns the capability at the given public path. -Returns nil if the capability does not exist, -or if the given type is not a supertype of the capability's borrow type. +If the capability does not exist, +or if the given type is not a supertype of the capability's borrow type, +returns an "invalid" capability with ID 0 that will always fail to ` + "`check`" + ` or ` + "`borrow`" + ` ` const Account_CapabilitiesTypeBorrowFunctionName = "borrow" @@ -1284,7 +1283,7 @@ var Account_CapabilitiesTypeBorrowFunctionType = &FunctionType{ const Account_CapabilitiesTypeBorrowFunctionDocString = ` Borrows the capability at the given public path. Returns nil if the capability does not exist, or cannot be borrowed using the given type. -The function is equivalent to ` + "`get(path)?.borrow()`" + `. +The function is equivalent to ` + "`get(path).borrow()`" + `. ` const Account_CapabilitiesTypeExistsFunctionName = "exists" @@ -1477,6 +1476,29 @@ const Account_StorageCapabilitiesTypeIssueFunctionDocString = ` Issue/create a new storage capability. ` +const Account_StorageCapabilitiesTypeIssueWithTypeFunctionName = "issueWithType" + +var Account_StorageCapabilitiesTypeIssueWithTypeFunctionType = &FunctionType{ + Parameters: []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "path", + TypeAnnotation: NewTypeAnnotation(StoragePathType), + }, + { + Identifier: "type", + TypeAnnotation: NewTypeAnnotation(MetaType), + }, + }, + ReturnTypeAnnotation: NewTypeAnnotation( + &CapabilityType{}, + ), +} + +const Account_StorageCapabilitiesTypeIssueWithTypeFunctionDocString = ` +Issue/create a new storage capability. +` + const Account_StorageCapabilitiesTypeGetControllerFunctionName = "getController" var Account_StorageCapabilitiesTypeGetControllerFunctionType = &FunctionType{ @@ -1596,6 +1618,16 @@ func init() { Account_StorageCapabilitiesTypeIssueFunctionType, Account_StorageCapabilitiesTypeIssueFunctionDocString, ), + NewUnmeteredFunctionMember( + Account_StorageCapabilitiesType, + newEntitlementAccess( + []Type{CapabilitiesType, StorageCapabilitiesType, IssueStorageCapabilityControllerType}, + Disjunction, + ), + Account_StorageCapabilitiesTypeIssueWithTypeFunctionName, + Account_StorageCapabilitiesTypeIssueWithTypeFunctionType, + Account_StorageCapabilitiesTypeIssueWithTypeFunctionDocString, + ), NewUnmeteredFunctionMember( Account_StorageCapabilitiesType, newEntitlementAccess( @@ -1660,6 +1692,25 @@ const Account_AccountCapabilitiesTypeIssueFunctionDocString = ` Issue/create a new account capability. ` +const Account_AccountCapabilitiesTypeIssueWithTypeFunctionName = "issueWithType" + +var Account_AccountCapabilitiesTypeIssueWithTypeFunctionType = &FunctionType{ + Parameters: []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "type", + TypeAnnotation: NewTypeAnnotation(MetaType), + }, + }, + ReturnTypeAnnotation: NewTypeAnnotation( + &CapabilityType{}, + ), +} + +const Account_AccountCapabilitiesTypeIssueWithTypeFunctionDocString = ` +Issue/create a new account capability. +` + const Account_AccountCapabilitiesTypeGetControllerFunctionName = "getController" var Account_AccountCapabilitiesTypeGetControllerFunctionType = &FunctionType{ @@ -1768,6 +1819,16 @@ func init() { Account_AccountCapabilitiesTypeIssueFunctionType, Account_AccountCapabilitiesTypeIssueFunctionDocString, ), + NewUnmeteredFunctionMember( + Account_AccountCapabilitiesType, + newEntitlementAccess( + []Type{CapabilitiesType, AccountCapabilitiesType, IssueAccountCapabilityControllerType}, + Disjunction, + ), + Account_AccountCapabilitiesTypeIssueWithTypeFunctionName, + Account_AccountCapabilitiesTypeIssueWithTypeFunctionType, + Account_AccountCapabilitiesTypeIssueWithTypeFunctionDocString, + ), NewUnmeteredFunctionMember( Account_AccountCapabilitiesType, newEntitlementAccess( diff --git a/runtime/sema/account.go b/runtime/sema/account.go index 9d7a371fa0..0e08584423 100644 --- a/runtime/sema/account.go +++ b/runtime/sema/account.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,13 @@ package sema +import ( + "fmt" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" +) + //go:generate go run ./gen account.cdc account.gen.go var AccountTypeAnnotation = NewTypeAnnotation(AccountType) @@ -56,6 +63,31 @@ var FullyEntitledAccountReferenceTypeAnnotation = NewTypeAnnotation(FullyEntitle func init() { Account_ContractsTypeAddFunctionType.Arity = &Arity{Min: 2} + Account_CapabilitiesTypeGetFunctionType.TypeArgumentsCheck = + func(memoryGauge common.MemoryGauge, + typeArguments *TypeParameterTypeOrderedMap, + _ []*ast.TypeAnnotation, + invocationRange ast.HasPosition, + report func(err error), + ) { + typeArg, ok := typeArguments.Get(Account_CapabilitiesTypeGetFunctionTypeParameterT) + if !ok || typeArg == nil { + // Invalid, already reported by checker + return + } + if typeArg == NeverType { + report(&InvalidTypeArgumentError{ + TypeArgumentName: Account_CapabilitiesTypeGetFunctionTypeParameterT.Name, + Range: ast.NewRangeFromPositioned(memoryGauge, invocationRange), + Details: fmt.Sprintf( + "Type argument for `%s` cannot be `%s`", + Account_CapabilitiesTypeGetFunctionName, + NeverType, + ), + }) + } + } + addToBaseActivation(AccountMappingType) addToBaseActivation(CapabilitiesMappingType) addToBaseActivation(StorageType) diff --git a/runtime/sema/account_capability_controller.gen.go b/runtime/sema/account_capability_controller.gen.go index 02d09d0769..894c436b54 100644 --- a/runtime/sema/account_capability_controller.gen.go +++ b/runtime/sema/account_capability_controller.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -105,6 +105,7 @@ var AccountCapabilityControllerType = &SimpleType{ TypeTag: AccountCapabilityControllerTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/account_capability_controller.go b/runtime/sema/account_capability_controller.go index fd0357ecc1..1d2abaaabc 100644 --- a/runtime/sema/account_capability_controller.go +++ b/runtime/sema/account_capability_controller.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/any_type.go b/runtime/sema/any_type.go index 7feaaf28dc..eb06753c37 100644 --- a/runtime/sema/any_type.go +++ b/runtime/sema/any_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ var AnyType = &SimpleType{ IsResource: false, // `Any` is never a valid type in user programs Storable: true, + Primitive: false, Equatable: false, Comparable: false, // `Any` is never a valid type in user programs diff --git a/runtime/sema/anyattachment_types.go b/runtime/sema/anyattachment_types.go index ef154c4926..f4566e137d 100644 --- a/runtime/sema/anyattachment_types.go +++ b/runtime/sema/anyattachment_types.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ var AnyResourceAttachmentType = &SimpleType{ TypeID: AnyResourceAttachmentTypeName, TypeTag: AnyResourceAttachmentTypeTag, IsResource: true, + Primitive: false, // The actual storability of a value is checked at run-time Storable: true, Equatable: false, @@ -45,6 +46,7 @@ var AnyStructAttachmentType = &SimpleType{ TypeID: AnyStructAttachmentTypeName, TypeTag: AnyStructAttachmentTypeTag, IsResource: false, + Primitive: false, // The actual storability of a value is checked at run-time Storable: true, Equatable: false, diff --git a/runtime/sema/anyresource_type.go b/runtime/sema/anyresource_type.go index 6b20d9563a..36aa0fede0 100644 --- a/runtime/sema/anyresource_type.go +++ b/runtime/sema/anyresource_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ var AnyResourceType = &SimpleType{ TypeID: "AnyResource", TypeTag: AnyResourceTypeTag, IsResource: true, + Primitive: false, // The actual storability of a value is checked at run-time Storable: true, Equatable: false, diff --git a/runtime/sema/anystruct_type.go b/runtime/sema/anystruct_type.go index a4739610a3..950b75ffea 100644 --- a/runtime/sema/anystruct_type.go +++ b/runtime/sema/anystruct_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ var AnyStructType = &SimpleType{ IsResource: false, // The actual storability of a value is checked at run-time Storable: true, + Primitive: false, Equatable: false, Comparable: false, Exportable: true, diff --git a/runtime/sema/before_extractor.go b/runtime/sema/before_extractor.go index e20e3363a5..e7e0ab0c75 100644 --- a/runtime/sema/before_extractor.go +++ b/runtime/sema/before_extractor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/before_extractor_test.go b/runtime/sema/before_extractor_test.go index 0286d4b308..b82b748b19 100644 --- a/runtime/sema/before_extractor_test.go +++ b/runtime/sema/before_extractor_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/binaryoperationkind.go b/runtime/sema/binaryoperationkind.go index baffb61939..796f9aba1a 100644 --- a/runtime/sema/binaryoperationkind.go +++ b/runtime/sema/binaryoperationkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/block.gen.go b/runtime/sema/block.gen.go index 7c490c3a0c..8f059af05d 100644 --- a/runtime/sema/block.gen.go +++ b/runtime/sema/block.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -72,6 +72,7 @@ var BlockType = &SimpleType{ TypeTag: BlockTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/block.go b/runtime/sema/block.go index 320f2f9853..b44b3c5200 100644 --- a/runtime/sema/block.go +++ b/runtime/sema/block.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/bool_type.go b/runtime/sema/bool_type.go index 1870777d78..36f1db3e70 100644 --- a/runtime/sema/bool_type.go +++ b/runtime/sema/bool_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ var BoolType = &SimpleType{ TypeTag: BoolTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: true, Exportable: true, diff --git a/runtime/sema/character.cdc b/runtime/sema/character.cdc index 48bf5b170e..7b54afdf5d 100644 --- a/runtime/sema/character.cdc +++ b/runtime/sema/character.cdc @@ -1,6 +1,6 @@ access(all) -struct Character: Storable, Equatable, Comparable, Exportable, Importable { +struct Character: Storable, Primitive, Equatable, Comparable, Exportable, Importable { /// The byte array of the UTF-8 encoding. access(all) diff --git a/runtime/sema/character.gen.go b/runtime/sema/character.gen.go index 69909c376f..3938f01bb8 100644 --- a/runtime/sema/character.gen.go +++ b/runtime/sema/character.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -53,6 +53,7 @@ var CharacterType = &SimpleType{ TypeTag: CharacterTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: true, Exportable: true, diff --git a/runtime/sema/character.go b/runtime/sema/character.go index 7e8475cb25..12f8ead9a5 100644 --- a/runtime/sema/character.go +++ b/runtime/sema/character.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/check_array_expression.go b/runtime/sema/check_array_expression.go index 8121ae30f3..2da9858d0c 100644 --- a/runtime/sema/check_array_expression.go +++ b/runtime/sema/check_array_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ package sema import "github.com/onflow/cadence/runtime/ast" -func (checker *Checker) VisitArrayExpression(expression *ast.ArrayExpression) Type { +func (checker *Checker) VisitArrayExpression(arrayExpression *ast.ArrayExpression) Type { // visit all elements, ensure they are all the same type @@ -29,7 +29,7 @@ func (checker *Checker) VisitArrayExpression(expression *ast.ArrayExpression) Ty var elementType Type var resultType ArrayType - elementCount := len(expression.Values) + elementCount := len(arrayExpression.Values) switch typ := expectedType.(type) { @@ -43,7 +43,7 @@ func (checker *Checker) VisitArrayExpression(expression *ast.ArrayExpression) Ty &ConstantSizedArrayLiteralSizeError{ ExpectedSize: typ.Size, ActualSize: literalCount, - Range: expression.Range, + Range: arrayExpression.Range, }, ) } @@ -68,13 +68,12 @@ func (checker *Checker) VisitArrayExpression(expression *ast.ArrayExpression) Ty if elementCount > 0 { argumentTypes = make([]Type, elementCount) - for i, value := range expression.Values { - valueType := checker.VisitExpression(value, elementType) + for i, element := range arrayExpression.Values { + valueType := checker.VisitExpression(element, arrayExpression, elementType) argumentTypes[i] = valueType - checker.checkVariableMove(value) - checker.checkResourceMoveOperation(value, valueType) + checker.checkResourceMoveOperation(element, valueType) } } @@ -87,7 +86,7 @@ func (checker *Checker) VisitArrayExpression(expression *ast.ArrayExpression) Ty checker.report( &TypeAnnotationRequiredError{ Cause: "cannot infer type from array literal:", - Pos: expression.StartPos, + Pos: arrayExpression.StartPos, }, ) @@ -100,7 +99,7 @@ func (checker *Checker) VisitArrayExpression(expression *ast.ArrayExpression) Ty } checker.Elaboration.SetArrayExpressionTypes( - expression, + arrayExpression, ArrayExpressionTypes{ ArgumentTypes: argumentTypes, ArrayType: resultType, diff --git a/runtime/sema/check_assignment.go b/runtime/sema/check_assignment.go index a45c0f2a36..b22bc84054 100644 --- a/runtime/sema/check_assignment.go +++ b/runtime/sema/check_assignment.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -53,7 +53,13 @@ func (checker *Checker) checkAssignment( targetType = checker.visitAssignmentValueType(target) - valueType = checker.VisitExpression(value, targetType) + // For all non-self member assignments, + // require an explicit type annotation for references + checkValue := checker.VisitExpression + if checker.accessedSelfMember(target) == nil { + checkValue = checker.VisitExpressionWithReferenceCheck + } + valueType = checkValue(value, assignment, targetType) // NOTE: Visiting the `value` checks the compatibility between value and target types. // Check for the *target* type, so that assignment using non-resource typed value (e.g. `nil`) @@ -104,7 +110,6 @@ func (checker *Checker) checkAssignment( } checker.enforceViewAssignment(assignment, target) - checker.checkVariableMove(value) checker.recordResourceInvalidation( value, @@ -114,6 +119,46 @@ func (checker *Checker) checkAssignment( checker.recordReferenceCreation(target, value) + // Track nested resource moves. + // Even though this is needed only for second value transfers, it is added here because: + // 1) The second value transfers are checked as assignments, + // so the info needed (value's type etc.) is only available here. + // Adding it here covers second value transfers. + // 2) Having it in assignment would cover all cases, even the ones that are statically rejected by the checker. + // So this would also act as a defensive check for all other cases. + valueIsResource := valueType != nil && valueType.IsResourceType() + if valueIsResource { + checker.elaborateNestedResourceMoveExpression(value) + } + + return +} + +func (checker *Checker) rootOfAccessChain(target ast.Expression) (baseVariable *Variable, accessChain []Type) { + var inAccessChain = true + + // seek the variable expression (if it exists) at the base of the access chain + for inAccessChain { + switch targetExp := target.(type) { + case *ast.IdentifierExpression: + baseVariable = checker.valueActivations.Find(targetExp.Identifier.Identifier) + if baseVariable != nil { + accessChain = append(accessChain, baseVariable.Type) + } + inAccessChain = false + case *ast.IndexExpression: + target = targetExp.TargetExpression + elementType := checker.Elaboration.IndexExpressionTypes(targetExp).IndexedType.ElementType(true) + accessChain = append(accessChain, elementType) + case *ast.MemberExpression: + target = targetExp.Expression + memberType, _, _, _ := checker.visitMember(targetExp, true) + accessChain = append(accessChain, memberType) + default: + inAccessChain = false + } + } + return } @@ -144,31 +189,7 @@ func (checker *Checker) enforceViewAssignment(assignment ast.Statement, target a return } - var baseVariable *Variable - var accessChain = make([]Type, 0) - var inAccessChain = true - - // seek the variable expression (if it exists) at the base of the access chain - for inAccessChain { - switch targetExp := target.(type) { - case *ast.IdentifierExpression: - baseVariable = checker.valueActivations.Find(targetExp.Identifier.Identifier) - if baseVariable != nil { - accessChain = append(accessChain, baseVariable.Type) - } - inAccessChain = false - case *ast.IndexExpression: - target = targetExp.TargetExpression - elementType := checker.Elaboration.IndexExpressionTypes(targetExp).IndexedType.ElementType(true) - accessChain = append(accessChain, elementType) - case *ast.MemberExpression: - target = targetExp.Expression - memberType, _, _, _ := checker.visitMember(targetExp) - accessChain = append(accessChain, memberType) - default: - inAccessChain = false - } - } + baseVariable, accessChain := checker.rootOfAccessChain(target) // if the base of the access chain is not a variable, then we cannot make any static guarantees about // whether or not it is a local struct-kinded variable. E.g. in the case of `(b ? s1 : s2).x`, we can't @@ -250,48 +271,51 @@ func (checker *Checker) accessedSelfMember(expression ast.Expression) *Member { return member } -func (checker *Checker) visitAssignmentValueType( - targetExpression ast.Expression, -) (targetType Type) { - +func (checker *Checker) withAssignment(b bool, f func() Type) Type { inAssignment := checker.inAssignment - checker.inAssignment = true + checker.inAssignment = b defer func() { checker.inAssignment = inAssignment }() + return f() +} +func (checker *Checker) visitAssignmentValueType( + targetExpression ast.Expression, +) (targetType Type) { // Check the target is valid (e.g. identifier expression, // indexing expression, or member access expression) + return checker.withAssignment(true, func() Type { + if !IsValidAssignmentTargetExpression(targetExpression) { + checker.report( + &InvalidAssignmentTargetError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, targetExpression), + }, + ) + + return InvalidType + } - if !IsValidAssignmentTargetExpression(targetExpression) { - checker.report( - &InvalidAssignmentTargetError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, targetExpression), - }, - ) - - return InvalidType - } - - switch target := targetExpression.(type) { - case *ast.IdentifierExpression: - return checker.visitIdentifierExpressionAssignment(target) + switch target := targetExpression.(type) { + case *ast.IdentifierExpression: + return checker.visitIdentifierExpressionAssignment(target) - case *ast.IndexExpression: - return checker.visitIndexExpressionAssignment(target) + case *ast.IndexExpression: + return checker.visitIndexExpressionAssignment(target) - case *ast.MemberExpression: - return checker.visitMemberExpressionAssignment(target) + case *ast.MemberExpression: + return checker.visitMemberExpressionAssignment(target) - default: - panic(errors.NewUnreachableError()) - } + default: + panic(errors.NewUnreachableError()) + } + }) } func (checker *Checker) visitIdentifierExpressionAssignment( target *ast.IdentifierExpression, ) (targetType Type) { - identifier := target.Identifier.Identifier + identifier := target.Identifier // check identifier was declared before variable := checker.findAndCheckValueVariable(target, true) @@ -299,11 +323,15 @@ func (checker *Checker) visitIdentifierExpressionAssignment( return InvalidType } + if variable.Type.IsResourceType() { + checker.checkResourceVariableCapturingInFunction(variable, identifier) + } + // check identifier is not a constant if variable.IsConstant { checker.report( &AssignmentToConstantError{ - Name: identifier, + Name: identifier.Identifier, Range: ast.NewRangeFromPositioned(checker.memoryGauge, target), }, ) @@ -312,7 +340,7 @@ func (checker *Checker) visitIdentifierExpressionAssignment( return variable.Type } -var mutableEntitledAccess = NewEntitlementSetAccess( +var mutateEntitledAccess = NewEntitlementSetAccess( []*EntitlementType{MutateType}, Disjunction, ) @@ -326,16 +354,21 @@ func (checker *Checker) visitIndexExpressionAssignment( indexExpression *ast.IndexExpression, ) (elementType Type) { - elementType = checker.visitIndexExpression(indexExpression, true) + // in an statement like `ref.foo[i] = x`, the entire statement itself + // is an assignment, but the evaluation of the index expression itself (i.e. `ref.foo`) + // is not, so we temporarily clear the `inAssignment` status here before restoring it later. + elementType = checker.withAssignment(false, func() Type { + return checker.visitIndexExpression(indexExpression, true) + }) indexExprTypes := checker.Elaboration.IndexExpressionTypes(indexExpression) - indexedRefType, isReference := referenceType(indexExprTypes.IndexedType) + indexedRefType, isReference := MaybeReferenceType(indexExprTypes.IndexedType) if isReference && - !mutableEntitledAccess.PermitsAccess(indexedRefType.Authorization) && + !mutateEntitledAccess.PermitsAccess(indexedRefType.Authorization) && !insertAndRemoveEntitledAccess.PermitsAccess(indexedRefType.Authorization) { checker.report(&UnauthorizedReferenceAssignmentError{ - RequiredAccess: [2]Access{mutableEntitledAccess, insertAndRemoveEntitledAccess}, + RequiredAccess: [2]Access{mutateEntitledAccess, insertAndRemoveEntitledAccess}, FoundAccess: indexedRefType.Authorization, Range: ast.NewRangeFromPositioned(checker.memoryGauge, indexExpression), }) @@ -352,7 +385,7 @@ func (checker *Checker) visitMemberExpressionAssignment( target *ast.MemberExpression, ) (memberType Type) { - _, memberType, member, isOptional := checker.visitMember(target) + _, memberType, member, isOptional := checker.visitMember(target, true) if member == nil { return InvalidType @@ -457,7 +490,24 @@ func (checker *Checker) visitMemberExpressionAssignment( reportAssignmentToConstant() } - return memberType + if memberType.IsResourceType() { + // if the member is a resource, check that it is not captured in a function, + // based off the activation depth of the root of the access chain, i.e. `a` in `a.b.c` + // we only want to make this check for transactions, as they are the only "resource-like" types + // (that can contain resources and must destroy them in their `execute` blocks), that are themselves + // not checked by the capturing logic, since they are not themselves resources. + baseVariable, _ := checker.rootOfAccessChain(target) + + if baseVariable == nil { + return + } + + if _, isTransaction := baseVariable.Type.(*TransactionType); isTransaction { + checker.checkResourceVariableCapturingInFunction(baseVariable, member.Identifier) + } + } + + return } func IsValidAssignmentTargetExpression(expression ast.Expression) bool { diff --git a/runtime/sema/check_attach_expression.go b/runtime/sema/check_attach_expression.go index 9dd401c8bc..c8bebb7d33 100644 --- a/runtime/sema/check_attach_expression.go +++ b/runtime/sema/check_attach_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ package sema import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" - "github.com/onflow/cadence/runtime/common/orderedmap" ) func (checker *Checker) VisitAttachExpression(expression *ast.AttachExpression) Type { @@ -35,14 +34,13 @@ func (checker *Checker) VisitAttachExpression(expression *ast.AttachExpression) attachment := expression.Attachment baseExpression := expression.Base - baseType := checker.VisitExpression(baseExpression, checker.expectedType) + baseType := checker.VisitExpression(baseExpression, expression, checker.expectedType) attachmentType := checker.checkInvocationExpression(attachment) if attachmentType.IsInvalidType() || baseType.IsInvalidType() { return InvalidType } - checker.checkVariableMove(baseExpression) checker.checkResourceMoveOperation(baseExpression, attachmentType) // check that the attachment type is a valid attachment, @@ -107,38 +105,5 @@ func (checker *Checker) VisitAttachExpression(expression *ast.AttachExpression) checker.Elaboration.SetAttachTypes(expression, attachmentCompositeType) - // compute the set of all the entitlements provided to this attachment - providedEntitlements := orderedmap.New[EntitlementOrderedSet](len(expression.Entitlements)) - for _, entitlement := range expression.Entitlements { - nominalType := checker.convertNominalType(entitlement) - if entitlementType, isEntitlement := nominalType.(*EntitlementType); isEntitlement { - _, present := providedEntitlements.Set(entitlementType, struct{}{}) - if present { - checker.report(&DuplicateEntitlementProvidedError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, entitlement), - Entitlement: entitlementType, - }) - } - continue - } - checker.report(&InvalidNonEntitlementProvidedError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, entitlement), - InvalidType: nominalType, - }) - } - - // if the attachment requires entitlements, check that they are provided as requested - if attachmentCompositeType.RequiredEntitlements != nil { - attachmentCompositeType.RequiredEntitlements.Foreach(func(key *EntitlementType, _ struct{}) { - if !providedEntitlements.Contains(key) { - checker.report(&RequiredEntitlementNotProvidedError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, expression), - AttachmentType: attachmentCompositeType, - RequiredEntitlement: key, - }) - } - }) - } - return baseType } diff --git a/runtime/sema/check_binary_expression.go b/runtime/sema/check_binary_expression.go index b4f77fbc2d..e15d1894a0 100644 --- a/runtime/sema/check_binary_expression.go +++ b/runtime/sema/check_binary_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -67,7 +67,12 @@ func (checker *Checker) VisitBinaryExpression(expression *ast.BinaryExpression) // Visit the expression, with contextually expected type. Use the expected type // only for inferring wherever possible, but do not check for compatibility. // Compatibility is checked separately for each operand kind. - leftType = checker.VisitExpressionWithForceType(expression.Left, expectedType, false) + leftType = checker.VisitExpressionWithForceType( + expression.Left, + expression, + expectedType, + false, + ) leftIsInvalid := leftType.IsInvalidType() @@ -123,7 +128,12 @@ func (checker *Checker) VisitBinaryExpression(expression *ast.BinaryExpression) expectedType = leftType } - rightType = checker.VisitExpressionWithForceType(expression.Right, expectedType, false) + rightType = checker.VisitExpressionWithForceType( + expression.Right, + expression, + expectedType, + false, + ) rightIsInvalid := rightType.IsInvalidType() @@ -174,7 +184,12 @@ func (checker *Checker) VisitBinaryExpression(expression *ast.BinaryExpression) expectedType = optionalLeftType.Type } } - return checker.VisitExpressionWithForceType(expression.Right, expectedType, false) + return checker.VisitExpressionWithForceType( + expression.Right, + expression, + expectedType, + false, + ) }) rightIsInvalid := rightType.IsInvalidType() @@ -441,13 +456,6 @@ func (checker *Checker) checkBinaryExpressionNilCoalescing( return InvalidType } - leftInner := leftOptional.Type - - if leftInner == NeverType { - return rightType - } - canNarrow := false - if !rightIsInvalid { if rightType.IsResourceType() { @@ -458,25 +466,7 @@ func (checker *Checker) checkBinaryExpressionNilCoalescing( }, ) } - - if !IsSubType(rightType, leftOptional) { - - checker.report( - &InvalidBinaryOperandError{ - Operation: operation, - Side: common.OperandSideRight, - ExpectedType: leftOptional, - ActualType: rightType, - Range: ast.NewRangeFromPositioned(checker.memoryGauge, expression.Right), - }, - ) - } else { - canNarrow = IsSubType(rightType, leftInner) - } } - if !canNarrow { - return leftOptional - } - return leftInner + return LeastCommonSuperType(leftOptional.Type, rightType) } diff --git a/runtime/sema/check_block.go b/runtime/sema/check_block.go index f45510d094..a260b40858 100644 --- a/runtime/sema/check_block.go +++ b/runtime/sema/check_block.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/check_casting_expression.go b/runtime/sema/check_casting_expression.go index 1ec4cf2a4c..71097cbccb 100644 --- a/runtime/sema/check_casting_expression.go +++ b/runtime/sema/check_casting_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,7 +44,7 @@ func (checker *Checker) VisitCastingExpression(expression *ast.CastingExpression beforeErrors := len(checker.errors) - leftHandType, exprActualType := checker.visitExpression(leftHandExpression, expectedType) + leftHandType, exprActualType := checker.visitExpression(leftHandExpression, expression, expectedType) hasErrors := len(checker.errors) > beforeErrors @@ -204,15 +204,15 @@ func FailableCastCanSucceed(subType, superType Type) bool { switch typedSubType := subType.(type) { case *IntersectionType: - // A intersection type `{Us}` - // is a subtype of a intersection type `{Vs}`: + // An intersection type `{Us}` + // is a subtype of an intersection type `{Vs}`: // if the run-time type conforms to `Vs` // `Us` and `Vs` do *not* have to be subsets. return true case *CompositeType: - // A type `T` is a subtype of a intersection type `{Us}`: + // A type `T` is a subtype of an intersection type `{Us}`: // // When `T != AnyResource && T != AnyStruct && T != Any`: // if `T` conforms to `Us`. @@ -224,7 +224,7 @@ func FailableCastCanSucceed(subType, superType Type) bool { switch subType { case AnyResourceType, AnyStructType, AnyType: - // A type `T` is a subtype of a intersection type `{Us}`: + // A type `T` is a subtype of an intersection type `{Us}`: // if the run-time type conforms to `Vs` return true @@ -234,7 +234,7 @@ func FailableCastCanSucceed(subType, superType Type) bool { switch subType.(type) { case *IntersectionType: - // A intersection type `{Us}` is a subtype of a type `V`: + // An intersection type `{Us}` is a subtype of a type `V`: // if the run-time type is V. return true } @@ -244,7 +244,7 @@ func FailableCastCanSucceed(subType, superType Type) bool { switch superType { case AnyResourceType, AnyStructType: - // A intersection type `{Us}` or a type `T` s a subtype of the type `AnyResource` / `AnyStruct`: + // An intersection type `{Us}` or a type `T` s a subtype of the type `AnyResource` / `AnyStruct`: // if `T` is `AnyType`, or `T` is a subtype of `AnyResource` / `AnyStruct`, or if `Us` are subtypes of `AnyResource` / `AnyStruct` innerSubtype := subType diff --git a/runtime/sema/check_composite_declaration.go b/runtime/sema/check_composite_declaration.go index affc99e870..e6a42aa358 100644 --- a/runtime/sema/check_composite_declaration.go +++ b/runtime/sema/check_composite_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -66,68 +66,76 @@ func (checker *Checker) checkAttachmentBaseType(attachmentType *CompositeType, a }) } -func (checker *Checker) checkAttachmentMembersAccess(attachmentType *CompositeType) { +func (checker *Checker) checkAttachmentMemberAccess( + attachmentType *CompositeType, + member *Member, + baseType Type, + supportedBaseEntitlements *EntitlementOrderedSet, +) { + var requestedEntitlements *EntitlementOrderedSet - // all the access modifiers for attachment members must be elements of the - // codomain of the attachment's entitlement map. This is because the codomain - // of the attachment's declared map specifies all the entitlements one can possibly - // have to that attachment, since the only way to obtain an attachment reference - // is to access it off of a base (and hence through the map). - // --------------------------------------------------- - // entitlement map M { - // E -> F - // X -> Y - // U -> V - // } - // - // access(M) attachment A for R { - // access(F) fun foo() {} - // access(Y | F) fun bar() {} - // access(V & Y) fun baz() {} - // - // access(V | Q) fun qux() {} - // } - // --------------------------------------------------- - // - // in this example, the only entitlements one can ever obtain to an &A reference are - // `F`, `Y` and `V`, and as such these are the only entitlements that may be used - // in `A`'s definition. Thus the definitions of `foo`, `bar`, and `baz` are valid, - // while the definition of `qux` is not. - var attachmentAccess Access = UnauthorizedAccess - if attachmentType.AttachmentEntitlementAccess != nil { - attachmentAccess = attachmentType.AttachmentEntitlementAccess - } - - if attachmentAccess, ok := attachmentAccess.(*EntitlementMapAccess); ok { - codomain := attachmentAccess.Codomain() - attachmentType.Members.Foreach(func(_ string, member *Member) { - if memberAccess, ok := member.Access.(EntitlementSetAccess); ok { - memberAccess.Entitlements.Foreach(func(entitlement *EntitlementType, _ struct{}) { - if !codomain.Entitlements.Contains(entitlement) { - checker.report(&InvalidAttachmentEntitlementError{ - Attachment: attachmentType, - AttachmentAccessModifier: attachmentAccess, - InvalidEntitlement: entitlement, - Pos: member.Identifier.Pos, - }) - } - }) - } - }) - return + switch memberAccess := member.Access.(type) { + case EntitlementSetAccess: + requestedEntitlements = memberAccess.Entitlements + + // if the attachment field/function is declared with mapped access, the domain of the map must be a + // subset of the supported entitlements on the base. This is because the attachment reference + // will never be able to possess any entitlements other than these, so any map relations that map + // from other entitlements will be unreachable + case *EntitlementMapAccess: + requestedEntitlements = memberAccess.Domain().Entitlements + + default: + requestedEntitlements = &orderedmap.OrderedMap[*EntitlementType, struct{}]{} } - // if the attachment's access is public, its members may not have entitlement access - attachmentType.Members.Foreach(func(_ string, member *Member) { - if _, ok := member.Access.(PrimitiveAccess); ok { - return + requestedEntitlements.Foreach(func(entitlement *EntitlementType, _ struct{}) { + if !supportedBaseEntitlements.Contains(entitlement) { + checker.report(&InvalidAttachmentEntitlementError{ + Attachment: attachmentType, + BaseType: baseType, + InvalidEntitlement: entitlement, + Pos: member.Identifier.Pos, + }) } - checker.report(&InvalidAttachmentEntitlementError{ - Attachment: attachmentType, - AttachmentAccessModifier: attachmentAccess, - Pos: member.Identifier.Pos, + }) +} + +func (checker *Checker) checkAttachmentMembersAccess(attachmentType *CompositeType) { + + // all the access modifiers for attachment members must be valid entitlements for the base type + var supportedBaseEntitlements *EntitlementOrderedSet + baseType := attachmentType.GetBaseType() + if base, ok := attachmentType.GetBaseType().(EntitlementSupportingType); ok { + // TODO: + access := base.SupportedEntitlements().Access() + if access, ok := access.(EntitlementSetAccess); ok { + supportedBaseEntitlements = access.Entitlements + } + } + if supportedBaseEntitlements == nil { + supportedBaseEntitlements = &orderedmap.OrderedMap[*EntitlementType, struct{}]{} + } + + attachmentType.EffectiveInterfaceConformanceSet(). + ForEach(func(interfaceType *InterfaceType) { + interfaceType.Members.Foreach(func(_ string, member *Member) { + checker.checkAttachmentMemberAccess( + attachmentType, + member, + baseType, + supportedBaseEntitlements, + ) + }) }) + attachmentType.Members.Foreach(func(_ string, member *Member) { + checker.checkAttachmentMemberAccess( + attachmentType, + member, + baseType, + supportedBaseEntitlements, + ) }) } @@ -267,19 +275,12 @@ func (checker *Checker) visitCompositeLikeDeclaration(declaration ast.CompositeL ) } - // NOTE: check destructors after initializer and functions - - checker.withSelfResourceInvalidationAllowed(func() { - checker.checkDestructors( - members.Destructors(), - members.FieldsByIdentifier(), - compositeType.Members, - compositeType, - declaration.DeclarationKind(), - declaration.DeclarationDocString(), - ContainerKindComposite, - ) - }) + if !compositeType.IsResourceType() && compositeType.DefaultDestroyEvent != nil { + checker.report(&DefaultDestroyEventInNonResourceError{ + Kind: declaration.DeclarationKind().Name(), + Range: ast.NewRangeFromPositioned(checker.memoryGauge, declaration), + }) + } // NOTE: visit entitlements, then interfaces, then composites // DON'T use `nestedDeclarations`, because of non-deterministic order @@ -297,6 +298,10 @@ func (checker *Checker) visitCompositeLikeDeclaration(declaration ast.CompositeL } for _, nestedComposite := range members.Composites() { + if compositeType.DefaultDestroyEvent != nil && nestedComposite.IsResourceDestructionDefaultEvent() { + // we enforce elsewhere that each composite can have only one default destroy event + checker.checkDefaultDestroyEvent(compositeType.DefaultDestroyEvent, nestedComposite, compositeType, declaration) + } ast.AcceptDeclaration[struct{}](nestedComposite, checker) } @@ -442,10 +447,23 @@ func (checker *Checker) declareNestedDeclarations( firstNestedCompositeDeclaration := nestedCompositeDeclarations[0] - reportInvalidNesting( - firstNestedCompositeDeclaration.DeclarationKind(), - firstNestedCompositeDeclaration.Identifier, - ) + // we want to permit this nesting under 2 conditions: the container is a resource declaration, + // and this nested declaration is a default destroy event + + if firstNestedCompositeDeclaration.IsResourceDestructionDefaultEvent() { + if len(nestedCompositeDeclarations) > 1 { + firstNestedCompositeDeclaration = nestedCompositeDeclarations[1] + reportInvalidNesting( + firstNestedCompositeDeclaration.DeclarationKind(), + firstNestedCompositeDeclaration.Identifier, + ) + } + } else { + reportInvalidNesting( + firstNestedCompositeDeclaration.DeclarationKind(), + firstNestedCompositeDeclaration.Identifier, + ) + } } else if len(nestedInterfaceDeclarations) > 0 { @@ -620,35 +638,7 @@ func (checker *Checker) declareNestedDeclarations( func (checker *Checker) declareAttachmentType(declaration *ast.AttachmentDeclaration) *CompositeType { composite := checker.declareCompositeType(declaration) - composite.baseType = checker.convertNominalType(declaration.BaseType) - - attachmentAccess := checker.accessFromAstAccess(declaration.Access) - if attachmentAccess, ok := attachmentAccess.(*EntitlementMapAccess); ok { - composite.AttachmentEntitlementAccess = attachmentAccess - } - - // add all the required entitlements to a set for this attachment - requiredEntitlements := orderedmap.New[EntitlementOrderedSet](len(declaration.RequiredEntitlements)) - for _, entitlement := range declaration.RequiredEntitlements { - nominalType := checker.convertNominalType(entitlement) - if entitlementType, isEntitlement := nominalType.(*EntitlementType); isEntitlement { - _, present := requiredEntitlements.Set(entitlementType, struct{}{}) - if present { - checker.report(&DuplicateEntitlementRequirementError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, entitlement), - Entitlement: entitlementType, - }) - } - continue - } - checker.report(&InvalidNonEntitlementRequirement{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, entitlement), - InvalidType: nominalType, - }) - } - composite.RequiredEntitlements = requiredEntitlements - return composite } @@ -794,8 +784,19 @@ func (checker *Checker) declareCompositeLikeMembersAndValue( checker.enterValueScope() defer checker.leaveValueScope(declaration.EndPosition, false) + // Declare nested types + checker.declareCompositeLikeNestedTypes(declaration, false) + // Declare nested types' explicit conformances + + for _, nestedInterfaceDeclaration := range members.Interfaces() { + // resolve conformances + nestedInterfaceType := checker.Elaboration.InterfaceDeclarationType(nestedInterfaceDeclaration) + nestedInterfaceType.ExplicitInterfaceConformances = + checker.explicitInterfaceConformances(nestedInterfaceDeclaration, nestedInterfaceType) + } + // NOTE: determine initializer parameter types while nested types are in scope, // and after declaring nested types as the initializer may use nested type in parameters @@ -833,6 +834,18 @@ func (checker *Checker) declareCompositeLikeMembersAndValue( nestedCompositeDeclarationVariable := checker.valueActivations.Find(identifier.Identifier) + if ast.IsResourceDestructionDefaultEvent(identifier.Identifier) { + // Find the default event's type declaration + checker.Elaboration.SetDefaultDestroyDeclaration(declaration, nestedCompositeDeclaration) + defaultEventType := + checker.typeActivations.Find(identifier.Identifier) + defaultEventComposite, ok := defaultEventType.Type.(*CompositeType) + if !ok { + panic(errors.NewUnreachableError()) + } + compositeType.DefaultDestroyEvent = defaultEventComposite + } + declarationMembers.Set( nestedCompositeDeclarationVariable.Identifier, &Member{ @@ -848,12 +861,7 @@ func (checker *Checker) declareCompositeLikeMembersAndValue( }, ) } - for _, nestedInterfaceDeclaration := range members.Interfaces() { - // resolve conformances - nestedInterfaceType := checker.Elaboration.InterfaceDeclarationType(nestedInterfaceDeclaration) - nestedInterfaceType.ExplicitInterfaceConformances = - checker.explicitInterfaceConformances(nestedInterfaceDeclaration, nestedInterfaceType) - } + for _, nestedCompositeDeclaration := range nestedComposites { declareNestedComposite(nestedCompositeDeclaration) } @@ -1436,33 +1444,6 @@ func (checker *Checker) checkMemberConflicts( return true } - - // At most one of them have could default impls. - // If one has a default impl, then the other MUST have a condition. - // FLIP: https://github.com/onflow/flips/pull/83 - - if newMember.HasImplementation { - if existingMember.HasConditions { - continue - } - } else if existingMember.HasImplementation { - if newMember.HasConditions { - continue - } - } else { - // None of them have default impls - continue - } - - checker.report( - &DefaultFunctionConflictError{ - CompositeKindedType: compositeType, - Member: newMember, - Range: errorRange, - }, - ) - - return true } return false @@ -1624,9 +1605,9 @@ func (checker *Checker) memberSatisfied( // Check access effectiveInterfaceMemberAccess := checker.effectiveInterfaceMemberAccess(interfaceMember.Access) - effectiveCompositeMemberAccess := checker.effectiveCompositeMemberAccess(compositeMember.Access) + effectiveCompositeMemberAccess := checker.EffectiveCompositeMemberAccess(compositeMember.Access) - return !effectiveCompositeMemberAccess.IsLessPermissiveThan(effectiveInterfaceMemberAccess) + return effectiveCompositeMemberAccess.Equal(effectiveInterfaceMemberAccess) } func CompositeLikeConstructorType( @@ -1820,8 +1801,10 @@ func (checker *Checker) defaultMembersAndOrigins( functionAccess := checker.accessFromAstAccess(function.Access) functionType := checker.functionType( + function.IsNative(), function.Purity, functionAccess, + function.TypeParameterList, function.ParameterList, function.ReturnTypeAnnotation, ) @@ -1954,7 +1937,7 @@ func (checker *Checker) enumMembersAndOrigins( // Enum cases must be effectively public enumAccess := checker.accessFromAstAccess(enumCase.Access) - if !checker.effectiveCompositeMemberAccess(enumAccess).Equal(PrimitiveAccess(ast.AccessAll)) { + if !checker.EffectiveCompositeMemberAccess(enumAccess).Equal(PrimitiveAccess(ast.AccessAll)) { checker.report( &InvalidAccessModifierError{ DeclarationKind: enumCase.DeclarationKind(), @@ -2002,6 +1985,176 @@ func (checker *Checker) enumMembersAndOrigins( return } +func (checker *Checker) checkDefaultDestroyParamExpressionKind( + arg ast.Expression, + containerDeclarationKind common.DeclarationKind, +) { + + rejectReferenceTypedSubExpressions := func(typ Type) { + if _, isReferenceType := UnwrapOptionalType(typ).(*ReferenceType); isReferenceType { + checker.report(&DefaultDestroyInvalidArgumentError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, arg), + Kind: ReferenceTypedMemberAccess, + }) + } + } + + switch arg := arg.(type) { + case *ast.StringExpression, + *ast.BoolExpression, + *ast.NilExpression, + *ast.IntegerExpression, + *ast.FixedPointExpression, + *ast.PathExpression: + + break + + case *ast.IdentifierExpression: + + identifier := arg.Identifier.Identifier + // these are guaranteed to exist at time of destruction, so we allow them + if identifier == SelfIdentifier { + break + } + if identifier == BaseIdentifier && containerDeclarationKind == common.DeclarationKindAttachment { + break + } + + idTypeVariable := checker.typeActivations.Find(identifier) + + // if it's an attachment, then it's also okay + if idTypeVariable != nil { + if compositeType, isComposite := idTypeVariable.Type.(*CompositeType); isComposite && compositeType.Kind == common.CompositeKindAttachment { + break + } + } + checker.report(&DefaultDestroyInvalidArgumentError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, arg), + Kind: InvalidIdentifier, + }) + + case *ast.MemberExpression: + + memberExpressionInfo, ok := checker.Elaboration.MemberExpressionMemberAccessInfo(arg) + if !ok { + panic(errors.NewUnreachableError()) + } + + rejectReferenceTypedSubExpressions(memberExpressionInfo.ResultingType) + + checker.checkDefaultDestroyParamExpressionKind(arg.Expression, containerDeclarationKind) + + case *ast.IndexExpression: + + checker.checkDefaultDestroyParamExpressionKind(arg.TargetExpression, containerDeclarationKind) + checker.checkDefaultDestroyParamExpressionKind(arg.IndexingExpression, containerDeclarationKind) + + indexExprType := checker.Elaboration.IndexExpressionTypes(arg) + + // indexing expressions on arrays can fail, and must be disallowed, but + // indexing expressions on dicts, or composites (for attachments) will return `nil` and thus never fail + targetExprType := indexExprType.IndexedType + // `nil` indicates that the index is a type-index (i.e. for an attachment access) + if targetExprType == nil { + return + } + + rejectReferenceTypedSubExpressions(indexExprType.ResultType) + + switch targetExprType := targetExprType.(type) { + case *DictionaryType: + return + case *ReferenceType: + if _, isDictionaryType := targetExprType.Type.(*DictionaryType); isDictionaryType { + return + } + } + + checker.report(&DefaultDestroyInvalidArgumentError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, arg), + Kind: NonDictionaryIndexExpression, + }) + + default: + + checker.report(&DefaultDestroyInvalidArgumentError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, arg), + Kind: InvalidExpression, + }) + + } +} + +func (checker *Checker) checkDefaultDestroyEventParam( + param Parameter, + eventDeclaration ast.CompositeLikeDeclaration, + astParam *ast.Parameter, + containerType EntitlementSupportingType, + containerDeclaration ast.Declaration, +) { + paramType := param.TypeAnnotation.Type + paramDefaultArgument := astParam.DefaultArgument + + // make `self` and `base` available when checking default arguments so the fields of the composite are available + // as this event is emitted when the resource is destroyed, these values should be fully entitled + fullyEntitledAccess := containerType.SupportedEntitlements().Access() + + checker.declareSelfValue( + fullyEntitledAccess, + containerType, + containerDeclaration.DeclarationDocString(), + ) + + if compositeContainer, isComposite := containerType.(*CompositeType); isComposite && + compositeContainer.Kind == common.CompositeKindAttachment { + + checker.declareBaseValue( + fullyEntitledAccess, + compositeContainer.baseType, + compositeContainer, + compositeContainer.baseTypeDocString) + } + + param.DefaultArgument = checker.VisitExpression(paramDefaultArgument, eventDeclaration, paramType) + + // default events must have default arguments for all their parameters; this is enforced in the parser + // we want to check that these arguments are all either literals or field accesses, and have primitive types + if !paramType.IsPrimitiveType() { + checker.report(&DefaultDestroyInvalidParameterError{ + ParamType: paramType, + Range: ast.NewRangeFromPositioned(checker.memoryGauge, astParam), + }) + } + + checker.checkDefaultDestroyParamExpressionKind(paramDefaultArgument, containerDeclaration.DeclarationKind()) +} + +func (checker *Checker) checkDefaultDestroyEvent( + eventType *CompositeType, + eventDeclaration ast.CompositeLikeDeclaration, + containerType EntitlementSupportingType, + containerDeclaration ast.Declaration, +) { + + // an event definition always has one "constructor" function in its declaration list + members := eventDeclaration.DeclarationMembers() + functions := members.Initializers() + constructorFunctionParameters := functions[0].FunctionDeclaration.ParameterList.Parameters + + checker.enterValueScope() + defer checker.leaveValueScope(eventDeclaration.EndPosition, true) + + for index, param := range eventType.ConstructorParameters { + checker.checkDefaultDestroyEventParam( + param, + eventDeclaration, + constructorFunctionParameters[index], + containerType, + containerDeclaration, + ) + } +} + func (checker *Checker) checkInitializers( initializers []*ast.SpecialFunctionDeclaration, fields []*ast.FieldDeclaration, @@ -2093,9 +2246,11 @@ func (checker *Checker) checkSpecialFunction( checker.enterValueScope() defer checker.leaveValueScope(specialFunction.EndPosition, checkResourceLoss) - fnAccess := checker.effectiveMemberAccess(checker.accessFromAstAccess(specialFunction.FunctionDeclaration.Access), containerKind) + // initializers and destructors are considered fully entitled to their container type + fnAccess := containerType.SupportedEntitlements().Access() + + checker.declareSelfValue(fnAccess, containerType, containerDocString) - checker.declareSelfValue(containerType, containerDocString) if containerType.GetCompositeKind() == common.CompositeKindAttachment { // attachments cannot be interfaces, so this cast must succeed attachmentType, ok := containerType.(*CompositeType) @@ -2103,6 +2258,7 @@ func (checker *Checker) checkSpecialFunction( panic(errors.NewUnreachableError()) } checker.declareBaseValue( + fnAccess, attachmentType.baseType, attachmentType, attachmentType.baseTypeDocString) @@ -2159,9 +2315,16 @@ func (checker *Checker) checkCompositeFunctions( checker.enterValueScope() defer checker.leaveValueScope(function.EndPosition, true) - checker.declareSelfValue(selfType, selfDocString) + fnAccess := checker.effectiveMemberAccess(checker.accessFromAstAccess(function.Access), ContainerKindComposite) + // all non-entitlement functions produce unauthorized references in attachments + if fnAccess.IsPrimitiveAccess() { + fnAccess = UnauthorizedAccess + } + + checker.declareSelfValue(fnAccess, selfType, selfDocString) if selfType.GetCompositeKind() == common.CompositeKindAttachment { checker.declareBaseValue( + fnAccess, selfType.baseType, selfType, selfType.baseTypeDocString, @@ -2218,45 +2381,24 @@ func (checker *Checker) declareLowerScopedValue( } } -func (checker *Checker) declareSelfValue(selfType Type, selfDocString string) { +func (checker *Checker) declareSelfValue(fnAccess Access, selfType Type, selfDocString string) { // inside of an attachment, self is a reference to the attachment's type, because // attachments are never first class values, they must always exist inside references if typedSelfType, ok := selfType.(*CompositeType); ok && typedSelfType.Kind == common.CompositeKindAttachment { - // the `self` value in an attachment is considered fully-entitled to that attachment, or - // equivalently the entire codomain of the attachment's map - var selfAccess Access = UnauthorizedAccess - if typedSelfType.AttachmentEntitlementAccess != nil { - selfAccess = typedSelfType.AttachmentEntitlementAccess.Codomain() - } - selfType = NewReferenceType(checker.memoryGauge, selfAccess, typedSelfType) + // the `self` value in an attachment is entitled to the same entitlements required by the containing function + selfType = NewReferenceType(checker.memoryGauge, fnAccess, typedSelfType) } checker.declareLowerScopedValue(selfType, selfDocString, SelfIdentifier, common.DeclarationKindSelf) } -func (checker *Checker) declareBaseValue(baseType Type, attachmentType *CompositeType, superDocString string) { +func (checker *Checker) declareBaseValue(fnAccess Access, baseType Type, attachmentType *CompositeType, superDocString string) { if typedBaseType, ok := baseType.(*InterfaceType); ok { // we can't actually have a value of an interface type I, so instead we create a value of {I} // to be referenced by `base` - baseType = NewIntersectionType(checker.memoryGauge, []*InterfaceType{typedBaseType}) - } - // the `base` value in an attachment function has the set of entitlements defined by the required entitlements specified in the attachment's declaration - // ------------------------------- - // entitlement E - // entitlement F - // access(all) attachment A for R { - // require entitlement E - // access(all) fun foo() { ... } - // } - // ------------------------------- - // within the body of `foo`, the `base` value will be entitled to `E` but not `F`, because only `E` was required in the attachment's declaration - var baseAccess Access = UnauthorizedAccess - if attachmentType.RequiredEntitlements.Len() > 0 { - baseAccess = EntitlementSetAccess{ - Entitlements: attachmentType.RequiredEntitlements, - SetKind: Conjunction, - } - } - base := NewReferenceType(checker.memoryGauge, baseAccess, baseType) + baseType = NewIntersectionType(checker.memoryGauge, nil, []*InterfaceType{typedBaseType}) + } + // the `base` value in an attachment is entitled to the same entitlements required by the containing function + base := NewReferenceType(checker.memoryGauge, fnAccess, baseType) checker.declareLowerScopedValue(base, superDocString, BaseIdentifier, common.DeclarationKindBase) } @@ -2297,8 +2439,7 @@ func (checker *Checker) checkNestedIdentifier( // TODO: provide a more helpful error switch name { - case common.DeclarationKindInitializer.Keywords(), - common.DeclarationKindDestructor.Keywords(): + case common.DeclarationKindInitializer.Keywords(): checker.report( &InvalidNameError{ @@ -2339,7 +2480,7 @@ func (checker *Checker) VisitEnumCaseDeclaration(_ *ast.EnumCaseDeclaration) str func (checker *Checker) checkUnknownSpecialFunctions(functions []*ast.SpecialFunctionDeclaration) { for _, function := range functions { switch function.Kind { - case common.DeclarationKindInitializer, common.DeclarationKindDestructor: + case common.DeclarationKindInitializer: continue default: @@ -2368,141 +2509,6 @@ func (checker *Checker) checkSpecialFunctionDefaultImplementation(declaration as } } -func (checker *Checker) checkDestructors( - destructors []*ast.SpecialFunctionDeclaration, - fields map[string]*ast.FieldDeclaration, - members *StringMemberOrderedMap, - containerType CompositeKindedType, - containerDeclarationKind common.DeclarationKind, - containerDocString string, - containerKind ContainerKind, -) { - count := len(destructors) - - // only resource and resource interface declarations may - // declare a destructor - - if !containerType.IsResourceType() { - if count > 0 { - firstDestructor := destructors[0] - - checker.report( - &InvalidDestructorError{ - Range: ast.NewRangeFromPositioned( - checker.memoryGauge, - firstDestructor.FunctionDeclaration.Identifier, - ), - }, - ) - } - - return - } - - if count == 0 { - checker.checkNoDestructorNoResourceFields(members, fields, containerType, containerKind) - return - } - - firstDestructor := destructors[0] - checker.checkDestructor( - firstDestructor, - containerType, - containerDocString, - containerKind, - ) - - // destructor overloading is not supported - - if count > 1 { - secondDestructor := destructors[1] - - checker.report( - &UnsupportedOverloadingError{ - DeclarationKind: common.DeclarationKindDestructor, - Range: ast.NewRangeFromPositioned(checker.memoryGauge, secondDestructor), - }, - ) - } -} - -// checkNoDestructorNoResourceFields checks that if there is no destructor there are -// also no fields which have a resource type – otherwise those fields will be lost. -// In interfaces this is allowed. -func (checker *Checker) checkNoDestructorNoResourceFields( - members *StringMemberOrderedMap, - fields map[string]*ast.FieldDeclaration, - containerType Type, - containerKind ContainerKind, -) { - if containerKind == ContainerKindInterface { - return - } - - for pair := members.Oldest(); pair != nil; pair = pair.Next() { - member := pair.Value - memberName := pair.Key - - // NOTE: check type, not resource annotation: - // the field could have a wrong annotation - if !member.TypeAnnotation.Type.IsResourceType() { - continue - } - - checker.report( - &MissingDestructorError{ - ContainerType: containerType, - FirstFieldName: memberName, - FirstFieldPos: fields[memberName].Identifier.Pos, - }, - ) - - // only report for first member - return - } -} - -func (checker *Checker) checkDestructor( - destructor *ast.SpecialFunctionDeclaration, - containerType CompositeKindedType, - containerDocString string, - containerKind ContainerKind, -) { - - if len(destructor.FunctionDeclaration.ParameterList.Parameters) != 0 { - checker.report( - &InvalidDestructorParametersError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, destructor.FunctionDeclaration.ParameterList), - }, - ) - } - - parameters := checker.parameters(destructor.FunctionDeclaration.ParameterList) - - checker.checkSpecialFunction( - destructor, - containerType, - containerDocString, - FunctionPurityImpure, - parameters, - containerKind, - nil, - ) - - checker.checkCompositeResourceInvalidated(containerType) -} - -// checkCompositeResourceInvalidated checks that if the container is a resource, -// that all resource fields are invalidated (moved or destroyed) -func (checker *Checker) checkCompositeResourceInvalidated(containerType Type) { - compositeType, isComposite := containerType.(*CompositeType) - if !isComposite || compositeType.Kind != common.CompositeKindResource { - return - } - - checker.checkResourceFieldsInvalidated(containerType, compositeType.Members) -} - // checkResourceFieldsInvalidated checks that all resource fields for a container // type are invalidated. func (checker *Checker) checkResourceFieldsInvalidated( diff --git a/runtime/sema/check_conditional.go b/runtime/sema/check_conditional.go index d05229c51b..152c489e46 100644 --- a/runtime/sema/check_conditional.go +++ b/runtime/sema/check_conditional.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,7 @@ func (checker *Checker) VisitIfStatement(statement *ast.IfStatement) (_ struct{} switch test := statement.Test.(type) { case ast.Expression: - checker.VisitExpression(test, BoolType) + checker.VisitExpression(test, statement, BoolType) checker.checkConditionalBranches( func() Type { @@ -90,14 +90,14 @@ func (checker *Checker) VisitConditionalExpression(expression *ast.ConditionalEx expectedType := checker.expectedType - checker.VisitExpression(expression.Test, BoolType) + checker.VisitExpression(expression.Test, expression, BoolType) thenType, elseType := checker.checkConditionalBranches( func() Type { - return checker.VisitExpression(expression.Then, expectedType) + return checker.VisitExpression(expression.Then, expression, expectedType) }, func() Type { - return checker.VisitExpression(expression.Else, expectedType) + return checker.VisitExpression(expression.Else, expression, expectedType) }, ) diff --git a/runtime/sema/check_conditions.go b/runtime/sema/check_conditions.go index b17c45e1c3..c404a6585f 100644 --- a/runtime/sema/check_conditions.go +++ b/runtime/sema/check_conditions.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,11 +51,11 @@ func (checker *Checker) checkCondition(condition ast.Condition) { case *ast.TestCondition: // check test expression is boolean - checker.VisitExpression(condition.Test, BoolType) + checker.VisitExpression(condition.Test, condition, BoolType) // check message expression results in a string if condition.Message != nil { - checker.VisitExpression(condition.Message, StringType) + checker.VisitExpression(condition.Message, condition, StringType) } case *ast.EmitCondition: diff --git a/runtime/sema/check_create_expression.go b/runtime/sema/check_create_expression.go index 298ec57a30..2704232c75 100644 --- a/runtime/sema/check_create_expression.go +++ b/runtime/sema/check_create_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,7 +34,7 @@ func (checker *Checker) VisitCreateExpression(expression *ast.CreateExpression) invocation := expression.InvocationExpression - ty := checker.VisitExpression(invocation, nil) + ty := checker.VisitExpression(invocation, expression, nil) if ty.IsInvalidType() { return ty diff --git a/runtime/sema/check_destroy_expression.go b/runtime/sema/check_destroy_expression.go index 90cdaf9484..0bc2b6dfdc 100644 --- a/runtime/sema/check_destroy_expression.go +++ b/runtime/sema/check_destroy_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ import ( func (checker *Checker) VisitDestroyExpression(expression *ast.DestroyExpression) (resultType Type) { resultType = VoidType - valueType := checker.VisitExpression(expression.Expression, nil) + valueType := checker.VisitExpression(expression.Expression, expression, nil) checker.ObserveImpureOperation(expression) checker.recordResourceInvalidation( diff --git a/runtime/sema/check_dictionary_expression.go b/runtime/sema/check_dictionary_expression.go index ee2dc41962..94a4758913 100644 --- a/runtime/sema/check_dictionary_expression.go +++ b/runtime/sema/check_dictionary_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ package sema import ( "github.com/onflow/cadence/runtime/ast" - "github.com/onflow/cadence/runtime/common" ) func (checker *Checker) VisitDictionaryExpression(expression *ast.DictionaryExpression) Type { @@ -51,12 +50,10 @@ func (checker *Checker) VisitDictionaryExpression(expression *ast.DictionaryExpr // NOTE: important to check move after each type check, // not combined after both type checks! - entryKeyType := checker.VisitExpression(entry.Key, keyType) - checker.checkVariableMove(entry.Key) + entryKeyType := checker.VisitExpression(entry.Key, expression, keyType) checker.checkResourceMoveOperation(entry.Key, entryKeyType) - entryValueType := checker.VisitExpression(entry.Value, valueType) - checker.checkVariableMove(entry.Value) + entryValueType := checker.VisitExpression(entry.Value, expression, valueType) checker.checkResourceMoveOperation(entry.Value, entryValueType) entryTypes[i] = DictionaryEntryType{ @@ -88,7 +85,7 @@ func (checker *Checker) VisitDictionaryExpression(expression *ast.DictionaryExpr } } - if !IsValidDictionaryKeyType(keyType) { + if !IsSubType(keyType, HashableStructType) { checker.report( &InvalidDictionaryKeyTypeError{ Type: keyType, @@ -112,21 +109,3 @@ func (checker *Checker) VisitDictionaryExpression(expression *ast.DictionaryExpr return dictionaryType } - -func IsValidDictionaryKeyType(keyType Type) bool { - // TODO: implement support for more built-in types here and in interpreter - switch keyType := keyType.(type) { - case *AddressType: - return true - case *CompositeType: - return keyType.Kind == common.CompositeKindEnum - default: - switch keyType { - case NeverType, BoolType, CharacterType, StringType, MetaType: - return true - default: - return IsSameTypeKind(keyType, NumberType) || - IsSameTypeKind(keyType, PathType) - } - } -} diff --git a/runtime/sema/check_emit_statement.go b/runtime/sema/check_emit_statement.go index e93126b21c..f50a8af4c7 100644 --- a/runtime/sema/check_emit_statement.go +++ b/runtime/sema/check_emit_statement.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -45,6 +45,15 @@ func (checker *Checker) VisitEmitStatement(statement *ast.EmitStatement) (_ stru return } + if ast.IsResourceDestructionDefaultEvent(compositeType.Identifier) { + checker.report( + &EmitDefaultDestroyEventError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, statement.InvocationExpression), + }, + ) + return + } + checker.Elaboration.SetEmitStatementEventType(statement, compositeType) // Check that the emitted event is declared in the same location diff --git a/runtime/sema/check_event_declaration.go b/runtime/sema/check_event_declaration.go index 5250b94bf3..d568fa568f 100644 --- a/runtime/sema/check_event_declaration.go +++ b/runtime/sema/check_event_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/check_event_declaration_test.go b/runtime/sema/check_event_declaration_test.go index a07ebe0bbb..ba1b489f1e 100644 --- a/runtime/sema/check_event_declaration_test.go +++ b/runtime/sema/check_event_declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/check_expression.go b/runtime/sema/check_expression.go index cad1040e2b..876c540c05 100644 --- a/runtime/sema/check_expression.go +++ b/runtime/sema/check_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,9 +46,50 @@ func (checker *Checker) VisitIdentifierExpression(expression *ast.IdentifierExpr checker.Elaboration.SetIdentifierInInvocationType(expression, valueType) } + checker.checkVariableMove(expression, variable) + return valueType } +func (checker *Checker) checkVariableMove(identifierExpression *ast.IdentifierExpression, variable *Variable) { + + reportMaybeInvalidMove := func(declarationKind common.DeclarationKind) { + // If the parent is member-access or index-access, then it's OK. + // e.g: `v.foo`, `v.bar()`, `v[T]` are OK. + switch parent := checker.parent.(type) { + case *ast.MemberExpression: + // TODO: No need for below check? i.e: should always be true + if parent.Expression == identifierExpression { + return + } + case *ast.IndexExpression: + // Only `v[foo]` is OK, `foo[v]` is not. + if parent.TargetExpression == identifierExpression { + return + } + } + + checker.report( + &InvalidMoveError{ + Name: variable.Identifier, + DeclarationKind: declarationKind, + Pos: identifierExpression.StartPosition(), + }, + ) + } + + switch ty := variable.Type.(type) { + case *TransactionType: + reportMaybeInvalidMove(common.DeclarationKindTransaction) + + case CompositeKindedType: + kind := ty.GetCompositeKind() + if kind == common.CompositeKindContract { + reportMaybeInvalidMove(common.DeclarationKindContract) + } + } +} + func (checker *Checker) checkReferenceValidity(variable *Variable, hasPosition ast.HasPosition) { typ := UnwrapOptionalType(variable.Type) if _, ok := typ.(*ReferenceType); !ok { @@ -161,7 +202,7 @@ func (checker *Checker) checkResourceVariableCapturingInFunction(variable *Varia func (checker *Checker) VisitExpressionStatement(statement *ast.ExpressionStatement) (_ struct{}) { expression := statement.Expression - ty := checker.VisitExpression(expression, nil) + ty := checker.VisitExpression(expression, statement, nil) if ty.IsResourceType() { checker.report( @@ -270,7 +311,7 @@ func (checker *Checker) visitIndexExpression( ) Type { targetExpression := indexExpression.TargetExpression - targetType := checker.VisitExpression(targetExpression, nil) + targetType := checker.VisitExpression(targetExpression, indexExpression, nil) // NOTE: check indexed type first for UX reasons @@ -309,6 +350,7 @@ func (checker *Checker) visitIndexExpression( } indexingType := checker.VisitExpression( indexExpression.IndexingExpression, + indexExpression, valueIndexedType.IndexingType(), ) @@ -321,7 +363,7 @@ func (checker *Checker) visitIndexExpression( // 2) is container-typed, // then the element type should also be a reference. returnReference := false - if !isAssignment && shouldReturnReference(valueIndexedType, elementType) { + if shouldReturnReference(valueIndexedType, elementType, isAssignment) { // For index expressions, element are un-authorized. elementType = checker.getReferenceType(elementType, false, UnauthorizedAccess) @@ -354,13 +396,17 @@ func (checker *Checker) visitIndexExpression( ) return InvalidType } + elementType := checker.checkTypeIndexingExpression(typeIndexedType, indexExpression) if elementType == InvalidType { checker.report( &InvalidTypeIndexingError{ BaseType: typeIndexedType, IndexingExpression: indexExpression.IndexingExpression, - Range: ast.NewRangeFromPositioned(checker.memoryGauge, indexExpression.IndexingExpression), + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + indexExpression.IndexingExpression, + ), }, ) } @@ -372,10 +418,12 @@ func (checker *Checker) visitIndexExpression( } func (checker *Checker) checkTypeIndexingExpression( - base TypeIndexableType, + targetType TypeIndexableType, indexExpression *ast.IndexExpression, ) Type { + targetExpression := indexExpression.TargetExpression + if !checker.Config.AttachmentsEnabled { checker.report(&AttachmentsNotEnabledError{ Range: ast.NewRangeFromPositioned(checker.memoryGauge, indexExpression), @@ -386,21 +434,25 @@ func (checker *Checker) checkTypeIndexingExpression( if expressionType == nil { return InvalidType } + nominalTypeExpression, isNominalType := expressionType.(*ast.NominalType) if !isNominalType { return InvalidType } + nominalType := checker.convertNominalType(nominalTypeExpression) - if !base.IsValidIndexingType(nominalType) { + if !targetType.IsValidIndexingType(nominalType) { return InvalidType } checker.Elaboration.SetAttachmentAccessTypes(indexExpression, nominalType) + checker.checkUnusedExpressionResourceLoss(targetType, targetExpression) + // at this point, the base is known to be a struct/resource, // and the attachment is known to be a valid attachment for that base - indexedType, err := base.TypeIndexingElementType(nominalType, func() ast.Range { return ast.NewRangeFromPositioned(checker.memoryGauge, indexExpression) }) + indexedType, err := targetType.TypeIndexingElementType(nominalType, func() ast.Range { return ast.NewRangeFromPositioned(checker.memoryGauge, indexExpression) }) if err != nil { checker.report(err) return InvalidType diff --git a/runtime/sema/check_for.go b/runtime/sema/check_for.go index 6bb6b88083..dfc04057e4 100644 --- a/runtime/sema/check_for.go +++ b/runtime/sema/check_for.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,43 +41,19 @@ func (checker *Checker) VisitForStatement(statement *ast.ForStatement) (_ struct } } - valueType := checker.VisitExpression(valueExpression, expectedType) - - var elementType Type = InvalidType - - if !valueType.IsInvalidType() { - - // Only get the element type if the array is not a resource array. - // Otherwise, in addition to the `UnsupportedResourceForLoopError`, - // the loop variable will be declared with the resource-typed element type, - // leading to an additional `ResourceLossError`. - - if valueType.IsResourceType() { - checker.report( - &UnsupportedResourceForLoopError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, valueExpression), - }, - ) - } else if arrayType, ok := valueType.(ArrayType); ok { - elementType = arrayType.ElementType(false) - } else if valueType == StringType { - elementType = CharacterType - } else { - checker.report( - &TypeMismatchWithDescriptionError{ - ExpectedTypeDescription: "array", - ActualType: valueType, - Range: ast.NewRangeFromPositioned(checker.memoryGauge, valueExpression), - }, - ) - } - } + valueType := checker.VisitExpression(valueExpression, statement, expectedType) + + // Only get the element type if the array is not a resource array. + // Otherwise, in addition to the `UnsupportedResourceForLoopError`, + // the loop variable will be declared with the resource-typed element type, + // leading to an additional `ResourceLossError`. + loopVariableType := checker.loopVariableType(valueType, valueExpression) identifier := statement.Identifier.Identifier variable, err := checker.valueActivations.declare(variableDeclaration{ identifier: identifier, - ty: elementType, + ty: loopVariableType, kind: common.DeclarationKindConstant, pos: statement.Identifier.Pos, isConstant: true, @@ -90,11 +66,14 @@ func (checker *Checker) VisitForStatement(statement *ast.ForStatement) (_ struct checker.recordVariableDeclarationOccurrence(identifier, variable) } + var indexType Type + if statement.Index != nil { index := statement.Index.Identifier + indexType = IntType indexVariable, err := checker.valueActivations.declare(variableDeclaration{ identifier: index, - ty: IntType, + ty: indexType, kind: common.DeclarationKindConstant, pos: statement.Index.Pos, isConstant: true, @@ -108,6 +87,11 @@ func (checker *Checker) VisitForStatement(statement *ast.ForStatement) (_ struct } } + checker.Elaboration.SetForStatementType(statement, ForStatementTypes{ + IndexVariableType: indexType, + ValueVariableType: loopVariableType, + }) + // The body of the loop will maybe be evaluated. // That means that resource invalidations and // returns are not definite, but only potential. @@ -123,3 +107,71 @@ func (checker *Checker) VisitForStatement(statement *ast.ForStatement) (_ struct return } + +func (checker *Checker) loopVariableType(valueType Type, hasPosition ast.HasPosition) Type { + if valueType.IsInvalidType() { + return InvalidType + } + + // Resources cannot be looped. + if valueType.IsResourceType() { + checker.report( + &UnsupportedResourceForLoopError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, hasPosition), + }, + ) + return InvalidType + } + + // If it's a reference, check whether the referenced type is iterable. + // If yes, then determine the loop-var type depending on the + // element-type of the referenced type. + // If that element type is: + // a) A container type, then the loop-var is also a reference-type. + // b) A primitive type, then the loop-var is the concrete type itself. + + if referenceType, ok := valueType.(*ReferenceType); ok { + referencedType := referenceType.Type + referencedIterableElementType := checker.iterableElementType(referencedType, hasPosition) + + if referencedIterableElementType.IsInvalidType() { + return referencedIterableElementType + } + + // Case (a): Element type is a container type. + // Then the loop-var must also be a reference type. + if referencedIterableElementType.ContainFieldsOrElements() { + return checker.getReferenceType(referencedIterableElementType, false, UnauthorizedAccess) + } + + // Case (b): Element type is a primitive type. + // Then the loop-var must be the concrete type. + return referencedIterableElementType + } + + // If it's not a reference, then simply get the element type. + return checker.iterableElementType(valueType, hasPosition) +} + +func (checker *Checker) iterableElementType(valueType Type, hasPosition ast.HasPosition) Type { + switch valueType := valueType.(type) { + case ArrayType: + return valueType.ElementType(false) + case *InclusiveRangeType: + return valueType.MemberType + } + + if valueType == StringType { + return CharacterType + } + + checker.report( + &TypeMismatchWithDescriptionError{ + ExpectedTypeDescription: "array", + ActualType: valueType, + Range: ast.NewRangeFromPositioned(checker.memoryGauge, hasPosition), + }, + ) + + return InvalidType +} diff --git a/runtime/sema/check_force_expression.go b/runtime/sema/check_force_expression.go index bde55ea1e5..d8e7dc14b5 100644 --- a/runtime/sema/check_force_expression.go +++ b/runtime/sema/check_force_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ func (checker *Checker) VisitForceExpression(expression *ast.ForceExpression) Ty // i.e: if `x!` is `String`, then `x` is expected to be `String?`. expectedType := wrapWithOptionalIfNotNil(checker.expectedType) - valueType := checker.VisitExpression(expression.Expression, expectedType) + valueType := checker.VisitExpression(expression.Expression, expression, expectedType) if valueType.IsInvalidType() { return valueType diff --git a/runtime/sema/check_function.go b/runtime/sema/check_function.go index db4204b7fb..4a716a204a 100644 --- a/runtime/sema/check_function.go +++ b/runtime/sema/check_function.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -100,7 +100,15 @@ func (checker *Checker) visitFunctionDeclaration( access := checker.accessFromAstAccess(declaration.Access) if functionType == nil { - functionType = checker.functionType(declaration.Purity, access, declaration.ParameterList, declaration.ReturnTypeAnnotation) + + functionType = checker.functionType( + declaration.IsNative(), + declaration.Purity, + access, + declaration.TypeParameterList, + declaration.ParameterList, + declaration.ReturnTypeAnnotation, + ) if options.declareFunction { checker.declareFunctionDeclaration(declaration, functionType) @@ -202,19 +210,23 @@ func (checker *Checker) checkFunction( functionActivation.InitializationInfo = initializationInfo if functionBlock != nil { - if mappedAccess, isMappedAccess := access.(*EntitlementMapAccess); isMappedAccess { - checker.entitlementMappingInScope = mappedAccess.Type - } - - checker.InNewPurityScope(functionType.Purity == FunctionPurityView, func() { - checker.visitFunctionBlock( - functionBlock, - functionType.ReturnTypeAnnotation, - checkResourceLoss, - ) - }) + func() { + oldMappedAccess := checker.entitlementMappingInScope + if mappedAccess, isMappedAccess := access.(*EntitlementMapAccess); isMappedAccess { + checker.entitlementMappingInScope = mappedAccess.Type + } else { + checker.entitlementMappingInScope = nil + } + defer func() { checker.entitlementMappingInScope = oldMappedAccess }() - checker.entitlementMappingInScope = nil + checker.InNewPurityScope(functionType.Purity == FunctionPurityView, func() { + checker.visitFunctionBlock( + functionBlock, + functionType.ReturnTypeAnnotation, + checkResourceLoss, + ) + }) + }() if mustExit { returnType := functionType.ReturnTypeAnnotation.Type @@ -385,13 +397,13 @@ func (checker *Checker) visitWithPostConditions(postConditions *ast.Conditions, var resultType Type if returnType.IsResourceType() { - var innerType Type = returnType + innerType := returnType optType, isOptional := returnType.(*OptionalType) if isOptional { innerType = optType.Type } - var auth Access = UnauthorizedAccess + auth := UnauthorizedAccess // reference is authorized to the entire resource, since it is only accessible in a function where a resource value is owned. // To create a "fully authorized" reference, we scan the resource type and produce a conjunction of all the entitlements mentioned within. // So, for example, @@ -411,12 +423,7 @@ func (checker *Checker) visitWithPostConditions(postConditions *ast.Conditions, // here the `result` value in the `post` block will have type `auth(E, X, Y) &R` if entitlementSupportingType, ok := innerType.(EntitlementSupportingType); ok { supportedEntitlements := entitlementSupportingType.SupportedEntitlements() - if supportedEntitlements.Len() > 0 { - auth = EntitlementSetAccess{ - SetKind: Conjunction, - Entitlements: supportedEntitlements, - } - } + auth = supportedEntitlements.Access() } resultType = &ReferenceType{ @@ -489,8 +496,10 @@ func (checker *Checker) VisitFunctionExpression(expression *ast.FunctionExpressi // TODO: infer functionType := checker.functionType( + false, expression.Purity, UnauthorizedAccess, + nil, expression.ParameterList, expression.ReturnTypeAnnotation, ) diff --git a/runtime/sema/check_import_declaration.go b/runtime/sema/check_import_declaration.go index b237f951e0..5a3df7bc5e 100644 --- a/runtime/sema/check_import_declaration.go +++ b/runtime/sema/check_import_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -178,6 +178,7 @@ func (checker *Checker) importResolvedLocation(resolvedLocation ResolvedLocation checker.valueActivations, resolvedLocation.Identifiers, allValueElements, + true, ) // Attempt to import the requested type declarations @@ -187,6 +188,7 @@ func (checker *Checker) importResolvedLocation(resolvedLocation ResolvedLocation checker.typeActivations, resolvedLocation.Identifiers, allTypeElements, + false, ) // For each identifier, report if the import is invalid due to @@ -300,6 +302,7 @@ func (checker *Checker) importElements( valueActivations *VariableActivations, requestedIdentifiers []ast.Identifier, availableElements *StringImportElementOrderedMap, + importValues bool, ) ( found map[ast.Identifier]bool, invalidAccessed map[ast.Identifier]ImportElement, @@ -351,9 +354,19 @@ func (checker *Checker) importElements( } } + elementType := element.Type + + if importValues { + // Imported contract values must be imported as a reference. + compositeType, ok := elementType.(*CompositeType) + if ok && compositeType.Kind == common.CompositeKindContract { + elementType = NewReferenceType(checker.memoryGauge, UnauthorizedAccess, compositeType) + } + } + _, err := valueActivations.declare(variableDeclaration{ identifier: name, - ty: element.Type, + ty: elementType, // TODO: implies that type is "re-exported" access: access, kind: element.DeclarationKind, diff --git a/runtime/sema/check_interface_declaration.go b/runtime/sema/check_interface_declaration.go index 45934ed77a..bfef6c7420 100644 --- a/runtime/sema/check_interface_declaration.go +++ b/runtime/sema/check_interface_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,6 +33,12 @@ import ( // through `declareInterfaceMembers`. func (checker *Checker) VisitInterfaceDeclaration(declaration *ast.InterfaceDeclaration) (_ struct{}) { + wasInInterface := checker.inInterface + checker.inInterface = true + defer func() { + checker.inInterface = wasInInterface + }() + const kind = ContainerKindInterface interfaceType := checker.Elaboration.InterfaceDeclarationType(declaration) if interfaceType == nil { @@ -134,15 +140,12 @@ func (checker *Checker) VisitInterfaceDeclaration(declaration *ast.InterfaceDecl fieldPositionGetter, ) - checker.checkDestructors( - declaration.Members.Destructors(), - declaration.Members.FieldsByIdentifier(), - interfaceType.Members, - interfaceType, - declaration.DeclarationKind(), - declaration.DeclarationDocString(), - kind, - ) + if !interfaceType.IsResourceType() && interfaceType.DefaultDestroyEvent != nil { + checker.report(&DefaultDestroyEventInNonResourceError{ + Kind: declaration.DeclarationKind().Name(), + Range: ast.NewRangeFromPositioned(checker.memoryGauge, declaration), + }) + } // NOTE: visit entitlements, then interfaces, then composites // DON'T use `nestedDeclarations`, because of non-deterministic order @@ -161,6 +164,9 @@ func (checker *Checker) VisitInterfaceDeclaration(declaration *ast.InterfaceDecl if nestedComposite.Kind() == common.CompositeKindEvent { checker.visitCompositeLikeDeclaration(nestedComposite) } + if interfaceType.DefaultDestroyEvent != nil { + checker.checkDefaultDestroyEvent(interfaceType.DefaultDestroyEvent, nestedComposite, interfaceType, declaration) + } } return @@ -218,7 +224,9 @@ func (checker *Checker) checkInterfaceFunctions( checker.enterValueScope() defer checker.leaveValueScope(function.EndPosition, false) - checker.declareSelfValue(selfType, selfDocString) + fnAccess := checker.effectiveMemberAccess(checker.accessFromAstAccess(function.Access), ContainerKindInterface) + + checker.declareSelfValue(fnAccess, selfType, selfDocString) mustExit := false checkResourceLoss := false @@ -390,7 +398,9 @@ func (checker *Checker) declareInterfaceMembersAndValue(declaration *ast.Interfa compositeKind := declaration.Kind() - eventMembers := orderedmap.New[StringMemberOrderedMap](len(declaration.Members.Composites())) + declarationMembers := declaration.Members + + eventMembers := orderedmap.New[StringMemberOrderedMap](len(declarationMembers.Composites())) (func() { // Activate new scope for nested declarations @@ -404,10 +414,18 @@ func (checker *Checker) declareInterfaceMembersAndValue(declaration *ast.Interfa checker.declareInterfaceNestedTypes(declaration) + // Declare nested types' explicit conformances + for _, nestedInterfaceDeclaration := range declarationMembers.Interfaces() { + // resolve conformances + nestedInterfaceType := checker.Elaboration.InterfaceDeclarationType(nestedInterfaceDeclaration) + nestedInterfaceType.ExplicitInterfaceConformances = + checker.explicitInterfaceConformances(nestedInterfaceDeclaration, nestedInterfaceType) + } + // Declare members members, fields, origins := checker.defaultMembersAndOrigins( - declaration.Members, + declarationMembers, interfaceType, ContainerKindInterface, declaration.DeclarationKind(), @@ -426,23 +444,32 @@ func (checker *Checker) declareInterfaceMembersAndValue(declaration *ast.Interfa // NOTE: determine initializer parameter types while nested types are in scope, // and after declaring nested types as the initializer may use nested type in parameters - initializers := declaration.Members.Initializers() + initializers := declarationMembers.Initializers() interfaceType.InitializerParameters = checker.initializerParameters(initializers) interfaceType.InitializerPurity = checker.initializerPurity(compositeKind, initializers) // Declare nested declarations' members - for _, nestedInterfaceDeclaration := range declaration.Members.Interfaces() { - // resolve conformances - nestedInterfaceType := checker.Elaboration.InterfaceDeclarationType(nestedInterfaceDeclaration) - nestedInterfaceType.ExplicitInterfaceConformances = - checker.explicitInterfaceConformances(nestedInterfaceDeclaration, nestedInterfaceType) - + for _, nestedInterfaceDeclaration := range declarationMembers.Interfaces() { checker.declareInterfaceMembersAndValue(nestedInterfaceDeclaration) } - for _, nestedCompositeDeclaration := range declaration.Members.Composites() { + for _, nestedCompositeDeclaration := range declarationMembers.Composites() { if nestedCompositeDeclaration.Kind() == common.CompositeKindEvent { - checker.declareNestedEvent(nestedCompositeDeclaration, eventMembers, interfaceType) + if nestedCompositeDeclaration.IsResourceDestructionDefaultEvent() { + + checker.Elaboration.SetDefaultDestroyDeclaration(declaration, nestedCompositeDeclaration) + + // Find the value declaration + nestedEvent := + checker.typeActivations.Find(nestedCompositeDeclaration.Identifier.Identifier) + defaultEventComposite, ok := nestedEvent.Type.(*CompositeType) + if !ok { + panic(errors.NewUnreachableError()) + } + interfaceType.DefaultDestroyEvent = defaultEventComposite + } else { + checker.declareNestedEvent(nestedCompositeDeclaration, eventMembers, interfaceType) + } } } })() @@ -598,7 +625,7 @@ func (checker *Checker) checkInterfaceConformance( var isDuplicate bool - // Check if the members coming from other conformances have conflicts. + // Check if the members coming from other conformances (siblings) have conflicts. inheritedMembers, ok := inheritedMembersByName[name] if ok { for _, conflictingMember := range inheritedMembers { @@ -609,6 +636,7 @@ func (checker *Checker) checkInterfaceConformance( conflictingInterface, conflictingMember, interfaceDeclaration.Identifier, + false, // conflicting member is a sibling ) } } @@ -622,6 +650,7 @@ func (checker *Checker) checkInterfaceConformance( conformance, conformanceMember, declarationMember.Identifier, + true, // conflicting member is an inherited member ) } @@ -639,6 +668,7 @@ func (checker *Checker) checkDuplicateInterfaceMember( conflictingInterfaceType *InterfaceType, conflictingMember *Member, hasPosition ast.HasPosition, + isConflictingMemberInherited bool, ) (isDuplicate bool) { reportMemberConflictError := func() { @@ -672,24 +702,31 @@ func (checker *Checker) checkDuplicateInterfaceMember( // Having conflicting identical functions with: // - (1) and (1) - OK // - (1) and (2) - OK - // - (1) and (3) - Not OK + // - (1) and (3) - OK + // - (2) and (1) - OK // - (2) and (2) - OK // - (2) and (3) - OK + // - (3) and (1) - Not OK (order matters) + // - (3) and (2) - OK // - (3) and (3) - Not OK - if interfaceMember.HasImplementation { - if conflictingMember.HasImplementation || !conflictingMember.HasConditions { - reportMemberConflictError() - return - } + if interfaceMember.HasImplementation && conflictingMember.HasImplementation { + reportMemberConflictError() + return } - if conflictingMember.HasImplementation { - if !interfaceMember.HasConditions { - reportMemberConflictError() - return - } + // If the conflicting member is an inherited member, it is OK to override + // the inherited declaration, by a default implementation. + // However, a default implementation cannot be overridden by an empty declaration. + + if isConflictingMemberInherited && + conflictingMember.HasImplementation && !interfaceMember.HasConditions { + reportMemberConflictError() + return } + // If the conflicting member is not an inherited one, (i.e.a member from a sibling conformance) + // then default implementation takes the precedence. + return } diff --git a/runtime/sema/check_invocation_expression.go b/runtime/sema/check_invocation_expression.go index b5fdf4be02..dc8a2ac634 100644 --- a/runtime/sema/check_invocation_expression.go +++ b/runtime/sema/check_invocation_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,29 +26,51 @@ import ( func (checker *Checker) VisitInvocationExpression(invocationExpression *ast.InvocationExpression) Type { ty := checker.checkInvocationExpression(invocationExpression) - if compositeType, ok := ty.(*CompositeType); ok { + if !checker.checkInvokedExpression(ty, invocationExpression) { + return InvalidType + } + + return ty +} + +func (checker *Checker) checkInvokedExpression(ty Type, pos ast.HasPosition) bool { + + // Check if the invoked expression can be invoked. + // Composite types cannot be invoked directly, + // only through respective statements (emit, attach). + // + // If the invoked expression is an optional type, + // for example in the case of optional chaining, + // then check the wrapped type. + + maybeCompositeType := ty + if optionalType, ok := ty.(*OptionalType); ok { + maybeCompositeType = optionalType.Type + } + + if compositeType, ok := maybeCompositeType.(*CompositeType); ok { switch compositeType.Kind { // Events cannot be invoked without an emit statement case common.CompositeKindEvent: checker.report( &InvalidEventUsageError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, invocationExpression), + Range: ast.NewRangeFromPositioned(checker.memoryGauge, pos), }, ) - return InvalidType + return false // Attachments cannot be constructed without an attach statement case common.CompositeKindAttachment: checker.report( &InvalidAttachmentUsageError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, invocationExpression), + Range: ast.NewRangeFromPositioned(checker.memoryGauge, pos), }, ) - return InvalidType + return false } } - return ty + return true } func (checker *Checker) checkInvocationExpression(invocationExpression *ast.InvocationExpression) Type { @@ -67,7 +89,10 @@ func (checker *Checker) checkInvocationExpression(invocationExpression *ast.Invo // check the invoked expression can be invoked invokedExpression := invocationExpression.InvokedExpression - expressionType := checker.VisitExpression(invokedExpression, nil) + expressionType := checker.VisitExpression(invokedExpression, invocationExpression, nil) + + // `inInvocation` should be reset before visiting arguments + checker.inInvocation = false // Get the member from the invoked value // based on the use of optional chaining syntax @@ -106,7 +131,7 @@ func (checker *Checker) checkInvocationExpression(invocationExpression *ast.Invo argumentTypes = make([]Type, 0, argumentCount) for _, argument := range invocationExpression.Arguments { - argumentType := checker.VisitExpression(argument.Expression, nil) + argumentType := checker.VisitExpression(argument.Expression, invocationExpression, nil) argumentTypes = append(argumentTypes, argumentType) } @@ -299,7 +324,7 @@ func (checker *Checker) checkMemberInvocationArgumentLabels( invocationExpression *ast.InvocationExpression, memberExpression *ast.MemberExpression, ) { - _, _, member, _ := checker.visitMember(memberExpression) + _, _, member, _ := checker.visitMember(memberExpression, false) if member == nil || len(member.ArgumentLabels) == 0 { return @@ -444,7 +469,7 @@ func (checker *Checker) checkInvocation( parameterTypes[argumentIndex] = checker.checkInvocationRequiredArgument( - invocationExpression.Arguments, + invocationExpression, argumentIndex, functionType, argumentTypes, @@ -457,7 +482,7 @@ func (checker *Checker) checkInvocation( for i := minCount; i < argumentCount; i++ { argument := invocationExpression.Arguments[i] // TODO: pass the expected type to support type inferring for parameters - argumentTypes[i] = checker.VisitExpression(argument.Expression, nil) + argumentTypes[i] = checker.VisitExpression(argument.Expression, invocationExpression, nil) } } @@ -469,15 +494,10 @@ func (checker *Checker) checkInvocation( argumentExpressions[i] = argument.Expression } - invocationRange := ast.NewRangeFromPositioned( - checker.memoryGauge, - invocationExpression, - ) - functionType.ArgumentExpressionsCheck( checker, argumentExpressions, - invocationRange, + invocationExpression, ) } @@ -495,6 +515,18 @@ func (checker *Checker) checkInvocation( invocationExpression, ) + // The invokable type might have special checks for the type parameters. + + if functionType.TypeArgumentsCheck != nil { + functionType.TypeArgumentsCheck( + checker.memoryGauge, + typeArguments, + invocationExpression.TypeArguments, + invocationExpression, + checker.report, + ) + } + // Save types in the elaboration checker.Elaboration.SetInvocationExpressionTypes( @@ -539,7 +571,7 @@ func (checker *Checker) checkTypeParameterInference( } func (checker *Checker) checkInvocationRequiredArgument( - arguments ast.Arguments, + invocationExpression *ast.InvocationExpression, argumentIndex int, functionType *FunctionType, argumentTypes []Type, @@ -547,28 +579,100 @@ func (checker *Checker) checkInvocationRequiredArgument( ) ( parameterType Type, ) { - argument := arguments[argumentIndex] + argument := invocationExpression.Arguments[argumentIndex] parameter := functionType.Parameters[argumentIndex] parameterType = parameter.TypeAnnotation.Type var argumentType Type - if len(functionType.TypeParameters) == 0 { - // If the function doesn't use generic types, then the - // param types can be used to infer the types for arguments. - argumentType = checker.VisitExpression(argument.Expression, parameterType) + typeParameterCount := len(functionType.TypeParameters) + + // If all type parameters have been bound to a type, + // then resolve the parameter type with the type arguments, + // and propose the parameter type as the expected type for the argument. + if typeParameters.Len() == typeParameterCount { + + // Optimization: only resolve if there are type parameters. + // This avoids unnecessary work for non-generic functions. + if typeParameterCount > 0 { + parameterType = parameterType.Resolve(typeParameters) + // If the type parameter could not be resolved, use the invalid type. + if parameterType == nil { + parameterType = InvalidType + } + } + + // If the parameter type is or contains a reference type in particular, + // we do NOT use it as the expected type, + // to require an explicit type annotation in the invocation. + // + // This is done to avoid the following situation: + + // For arguments in invocations, the parameter type is not obvious at the call-site, + // which is potentially dangerous if the function is defined in a different location, + // and the parameter type potentially requires an authorization. + // + // For example, consider: + // + // // defined elsewhere, is going to mutate the passed array + // fun foo(ints: auth(Mutate) &[Int]) {} + // + // let ints = [1, 2, 3] + // // would implicitly allow mutation + // foo(&ints) + // + // A programmer should be able to look at a piece of code, + // and reason locally about whether a type will be inferred for a value + // based solely on how that value is used syntactically, + // not needing to worry about the actual or expected type of the value. + // + // Requiring an explicit type for *all* references, + // independent of if they require an authorization or not, + // is simple and allows the developer to see locally, and purely syntactically, + // that they are passing a reference and thus must annotate it. + + expectedType := parameterType + if parameterType.IsOrContainsReferenceType() { + expectedType = nil + } + + argumentType = checker.VisitExpression(argument.Expression, invocationExpression, expectedType) + + // If we did not pass an expected type, + // we must manually check that the argument type and the parameter type are compatible. + + if expectedType == nil { + // Check that the type of the argument matches the type of the parameter. + + checker.checkInvocationArgumentParameterTypeCompatibility( + argument.Expression, + argumentType, + parameterType, + ) + } + } else { - // TODO: pass the expected type to support for parameters - argumentType = checker.VisitExpression(argument.Expression, nil) + // If there are still type parameters that have not been bound to a type, + // then check the argument without an expected type. + // + // We will then have to manually check that the argument type is compatible + // with the parameter type (see below). + + argumentType = checker.VisitExpression(argument.Expression, invocationExpression, nil) // Try to unify the parameter type with the argument type. // If unification fails, fall back to the parameter type for now. - argumentRange := ast.NewRangeFromPositioned(checker.memoryGauge, argument.Expression) - - if parameterType.Unify(argumentType, typeParameters, checker.report, argumentRange) { + if parameterType.Unify( + argumentType, + typeParameters, + checker.report, + checker.memoryGauge, + argument.Expression, + ) { parameterType = parameterType.Resolve(typeParameters) + // If the type parameter could not be resolved, use the invalid type. if parameterType == nil { parameterType = InvalidType } @@ -576,7 +680,6 @@ func (checker *Checker) checkInvocationRequiredArgument( // Check that the type of the argument matches the type of the parameter. - // TODO: remove this once type inferring support for parameters is added checker.checkInvocationArgumentParameterTypeCompatibility( argument.Expression, argumentType, @@ -671,7 +774,7 @@ func (checker *Checker) checkAndBindGenericTypeParameterTypeArguments( // If the type parameter corresponding to the type argument has a type bound, // then check that the argument is a subtype of the type bound. - err := typeParameter.checkTypeBound(ty, ast.NewRangeFromPositioned(checker.memoryGauge, rawTypeArgument)) + err := typeParameter.checkTypeBound(ty, checker.memoryGauge, rawTypeArgument) checker.report(err) // Bind the type argument to the type parameter @@ -704,9 +807,6 @@ func (checker *Checker) checkInvocationArgumentParameterTypeCompatibility( } func (checker *Checker) checkInvocationArgumentMove(argument ast.Expression, argumentType Type) Type { - - checker.checkVariableMove(argument) checker.checkResourceMoveOperation(argument, argumentType) - return argumentType } diff --git a/runtime/sema/check_member_expression.go b/runtime/sema/check_member_expression.go index 4d1d044a0d..27f57d2ed1 100644 --- a/runtime/sema/check_member_expression.go +++ b/runtime/sema/check_member_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ import ( // NOTE: only called if the member expression is *not* an assignment func (checker *Checker) VisitMemberExpression(expression *ast.MemberExpression) Type { - accessedType, memberType, member, isOptional := checker.visitMember(expression) + accessedType, memberType, member, isOptional := checker.visitMember(expression, false) if !accessedType.IsInvalidType() { memberAccessType := accessedType @@ -111,21 +111,30 @@ func (checker *Checker) getReferenceType(typ Type, substituteAuthorization bool, return NewReferenceType(checker.memoryGauge, auth, typ) } -func shouldReturnReference(parentType, memberType Type) bool { - if _, isReference := referenceType(parentType); !isReference { +func shouldReturnReference(parentType, memberType Type, isAssignment bool) bool { + if isAssignment { + return false + } + + if _, isReference := MaybeReferenceType(parentType); !isReference { return false } return memberType.ContainFieldsOrElements() } -func referenceType(typ Type) (*ReferenceType, bool) { +func MaybeReferenceType(typ Type) (*ReferenceType, bool) { unwrappedType := UnwrapOptionalType(typ) refType, isReference := unwrappedType.(*ReferenceType) return refType, isReference } -func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedType Type, resultingType Type, member *Member, isOptional bool) { +func (checker *Checker) visitMember(expression *ast.MemberExpression, isAssignment bool) ( + accessedType Type, + resultingType Type, + member *Member, + isOptional bool, +) { memberInfo, ok := checker.Elaboration.MemberExpressionMemberAccessInfo(expression) if ok { return memberInfo.AccessedType, memberInfo.ResultingType, memberInfo.Member, memberInfo.IsOptional @@ -155,7 +164,12 @@ func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedT checker.currentMemberExpression = previousMemberExpression }() - accessedType = checker.VisitExpression(accessedExpression, nil) + // in an statement like `a.b.c = x`, the entire statement itself + // is an assignment, but the evaluation of the accessed exprssion itself (i.e. `a.b`) + // is not, so we temporarily clear the `inAssignment` status here before restoring it later. + accessedType = checker.withAssignment(false, func() Type { + return checker.VisitExpression(accessedExpression, expression, nil) + }) }() checker.checkUnusedExpressionResourceLoss(accessedType, accessedExpression) @@ -198,8 +212,12 @@ func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedT return } - targetRange := ast.NewRangeFromPositioned(checker.memoryGauge, expression.Expression) - member = resolver.Resolve(checker.memoryGauge, identifier, targetRange, checker.report) + member = resolver.Resolve( + checker.memoryGauge, + identifier, + expression.Expression, + checker.report, + ) resultingType = member.TypeAnnotation.Type } @@ -312,12 +330,6 @@ func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedT switch ty := resultingType.(type) { case *ReferenceType: return NewReferenceType(checker.memoryGauge, resultingAuthorization, ty.Type) - case *OptionalType: - switch innerTy := ty.Type.(type) { - case *ReferenceType: - return NewOptionalType(checker.memoryGauge, - NewReferenceType(checker.memoryGauge, resultingAuthorization, innerTy.Type)) - } } return resultingType } @@ -325,16 +337,7 @@ func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedT shouldSubstituteAuthorization := !member.Access.Equal(resultingAuthorization) if shouldSubstituteAuthorization { - switch ty := resultingType.(type) { - case *FunctionType: - resultingType = NewSimpleFunctionType( - ty.Purity, - ty.Parameters, - NewTypeAnnotation(substituteConcreteAuthorization(ty.ReturnTypeAnnotation.Type)), - ) - default: - resultingType = substituteConcreteAuthorization(resultingType) - } + resultingType = resultingType.Map(checker.memoryGauge, make(map[*TypeParameter]*TypeParameter), substituteConcreteAuthorization) } // Check that the member access is not to a function of resource type @@ -342,17 +345,21 @@ func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedT // // This would result in a bound method for a resource, which is invalid. - if !checker.inAssignment && - !checker.inInvocation && - member.DeclarationKind == common.DeclarationKindFunction && + if member.DeclarationKind == common.DeclarationKindFunction && !accessedType.IsInvalidType() && accessedType.IsResourceType() { - checker.report( - &ResourceMethodBindingError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, expression), - }, - ) + parent := checker.parent + parentInvocationExpr, parentIsInvocation := parent.(*ast.InvocationExpression) + + if !parentIsInvocation || + expression != parentInvocationExpr.InvokedExpression { + checker.report( + &ResourceMethodBindingError{ + Range: ast.NewRangeFromPositioned(checker.memoryGauge, expression), + }, + ) + } } // If the member, @@ -367,7 +374,7 @@ func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedT // i.e: `accessedSelfMember == nil` if accessedSelfMember == nil && - shouldReturnReference(accessedType, resultingType) && + shouldReturnReference(accessedType, resultingType, isAssignment) && member.DeclarationKind == common.DeclarationKindField { // Get a reference to the type @@ -382,7 +389,9 @@ func (checker *Checker) visitMember(expression *ast.MemberExpression) (accessedT // in the current location of the checker, along with the authorzation with which the result can be used func (checker *Checker) isReadableMember(accessedType Type, member *Member, resultingType Type, accessRange func() ast.Range) (bool, Access) { if checker.Config.AccessCheckMode.IsReadableAccess(member.Access) || - checker.containerTypes[member.ContainerType] { + // only allow references unrestricted access to members in their own container that are not entitled + // this prevents rights escalation attacks on entitlements + (member.Access.IsPrimitiveAccess() && checker.containerTypes[member.ContainerType]) { if mappedAccess, isMappedAccess := member.Access.(*EntitlementMapAccess); isMappedAccess { return checker.mapAccess(mappedAccess, accessedType, resultingType, accessRange) @@ -474,7 +483,12 @@ func (checker *Checker) mapAccess( // we could use this to then extract a `auth(Insert, Remove) &[T]` reference to that array by accessing `member` // on an owned copy of `S`. As such, when in an assignment, we return the full codomain here as the "granted authorization" // of the access expression, since the checker will later enforce that the incoming reference value is a subtype of that full codomain. + // However, if the map is or includes the `Identity` map, the theoretical codomain of that map is infinite, and so no reference can + // possibly be authorized enough to write to it if checker.inAssignment { + if mappedAccess.Type.IncludesIdentity { + return true, InaccessibleAccess + } return true, mappedAccess.Codomain() } return true, grantedAccess @@ -483,7 +497,10 @@ func (checker *Checker) mapAccess( return checker.mapAccess(mappedAccess, ty.Type, resultingType, accessRange) default: - if mappedAccess.Type == IdentityType { + if mappedAccess.Type.IncludesIdentity { + if checker.inAssignment { + return true, InaccessibleAccess + } access := AllSupportedEntitlements(resultingType) if access != nil { return true, access @@ -517,12 +534,8 @@ func allSupportedEntitlements(typ Type, isInnerType bool) Access { return allSupportedEntitlements(typ.ReturnTypeAnnotation.Type, true) } case EntitlementSupportingType: - supportedEntitlements := typ.SupportedEntitlements() - if supportedEntitlements != nil && supportedEntitlements.Len() > 0 { - access := EntitlementSetAccess{ - SetKind: Conjunction, - Entitlements: supportedEntitlements, - } + access := typ.SupportedEntitlements().Access() + if access != UnauthorizedAccess { return access } } diff --git a/runtime/sema/check_path_expression.go b/runtime/sema/check_path_expression.go index b58c96feb9..5accc8ef43 100644 --- a/runtime/sema/check_path_expression.go +++ b/runtime/sema/check_path_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,19 +23,17 @@ import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" ) func (checker *Checker) VisitPathExpression(expression *ast.PathExpression) Type { ty, err := CheckPathLiteral( + checker.memoryGauge, expression.Domain.Identifier, expression.Identifier.Identifier, - func() ast.Range { - return ast.NewRangeFromPositioned(checker.memoryGauge, expression.Domain) - }, - func() ast.Range { - return ast.NewRangeFromPositioned(checker.memoryGauge, expression.Identifier) - }, + expression.Domain, + expression.Identifier, ) checker.report(err) @@ -45,14 +43,20 @@ func (checker *Checker) VisitPathExpression(expression *ast.PathExpression) Type var isValidIdentifier = regexp.MustCompile(`^[A-Za-z_][A-Za-z0-9_]*$`).MatchString -func CheckPathLiteral(domainString, identifier string, domainRangeThunk, idRangeThunk func() ast.Range) (Type, error) { +func CheckPathLiteral( + gauge common.MemoryGauge, + domain string, + identifier string, + domainRange ast.HasPosition, + identifierRange ast.HasPosition, +) (Type, error) { // Check that the domain is valid - domain := common.PathDomainFromIdentifier(domainString) - if domain == common.PathDomainUnknown { + pathDomain := common.PathDomainFromIdentifier(domain) + if pathDomain == common.PathDomainUnknown { return PathType, &InvalidPathDomainError{ - ActualDomain: domainString, - Range: domainRangeThunk(), + ActualDomain: domain, + Range: ast.NewRangeFromPositioned(gauge, domainRange), } } @@ -60,11 +64,11 @@ func CheckPathLiteral(domainString, identifier string, domainRangeThunk, idRange if !isValidIdentifier(identifier) { return PathType, &InvalidPathIdentifierError{ ActualIdentifier: identifier, - Range: idRangeThunk(), + Range: ast.NewRangeFromPositioned(gauge, identifierRange), } } - switch domain { + switch pathDomain { case common.PathDomainStorage: return StoragePathType, nil case common.PathDomainPublic: @@ -72,6 +76,6 @@ func CheckPathLiteral(domainString, identifier string, domainRangeThunk, idRange case common.PathDomainPrivate: return PrivatePathType, nil default: - return PathType, nil + panic(errors.NewUnreachableError()) } } diff --git a/runtime/sema/check_path_expression_test.go b/runtime/sema/check_path_expression_test.go index 1c94aa370f..d771f27093 100644 --- a/runtime/sema/check_path_expression_test.go +++ b/runtime/sema/check_path_expression_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,62 +23,72 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - - "github.com/onflow/cadence/runtime/ast" ) func TestCheckPathLiteral(t *testing.T) { t.Parallel() - rangeThunk := func() ast.Range { - return ast.EmptyRange - } - t.Run("valid domain (storage), valid identifier", func(t *testing.T) { - ty, err := CheckPathLiteral("storage", "test", rangeThunk, rangeThunk) + t.Parallel() + + ty, err := CheckPathLiteral(nil, "storage", "test", nil, nil) require.NoError(t, err) assert.Equal(t, StoragePathType, ty) }) t.Run("valid domain (private), valid identifier", func(t *testing.T) { - ty, err := CheckPathLiteral("private", "test", rangeThunk, rangeThunk) + t.Parallel() + + ty, err := CheckPathLiteral(nil, "private", "test", nil, nil) require.NoError(t, err) assert.Equal(t, PrivatePathType, ty) }) t.Run("valid domain (public), valid identifier", func(t *testing.T) { - ty, err := CheckPathLiteral("public", "test", rangeThunk, rangeThunk) + t.Parallel() + + ty, err := CheckPathLiteral(nil, "public", "test", nil, nil) require.NoError(t, err) assert.Equal(t, PublicPathType, ty) }) t.Run("invalid domain (empty), valid identifier", func(t *testing.T) { - _, err := CheckPathLiteral("", "test", rangeThunk, rangeThunk) + t.Parallel() + + _, err := CheckPathLiteral(nil, "", "test", nil, nil) var invalidPathDomainError *InvalidPathDomainError require.ErrorAs(t, err, &invalidPathDomainError) }) t.Run("invalid domain (foo), valid identifier", func(t *testing.T) { - _, err := CheckPathLiteral("foo", "test", rangeThunk, rangeThunk) + t.Parallel() + + _, err := CheckPathLiteral(nil, "foo", "test", nil, nil) var invalidPathDomainError *InvalidPathDomainError require.ErrorAs(t, err, &invalidPathDomainError) }) t.Run("valid domain (public), invalid identifier (empty)", func(t *testing.T) { - _, err := CheckPathLiteral("public", "", rangeThunk, rangeThunk) + t.Parallel() + + _, err := CheckPathLiteral(nil, "public", "", nil, nil) var invalidPathIdentifierError *InvalidPathIdentifierError require.ErrorAs(t, err, &invalidPathIdentifierError) }) t.Run("valid domain (public), invalid identifier ($)", func(t *testing.T) { - _, err := CheckPathLiteral("public", "$", rangeThunk, rangeThunk) + t.Parallel() + + _, err := CheckPathLiteral(nil, "public", "$", nil, nil) var invalidPathIdentifierError *InvalidPathIdentifierError require.ErrorAs(t, err, &invalidPathIdentifierError) }) t.Run("valid domain (public), invalid identifier (0)", func(t *testing.T) { - _, err := CheckPathLiteral("public", "0", rangeThunk, rangeThunk) + t.Parallel() + + _, err := CheckPathLiteral(nil, "public", "0", nil, nil) var invalidPathIdentifierError *InvalidPathIdentifierError require.ErrorAs(t, err, &invalidPathIdentifierError) }) diff --git a/runtime/sema/check_pragma.go b/runtime/sema/check_pragma.go index 71e06e905c..2da88147c4 100644 --- a/runtime/sema/check_pragma.go +++ b/runtime/sema/check_pragma.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,47 +20,88 @@ package sema import "github.com/onflow/cadence/runtime/ast" +// VisitPragmaDeclaration checks that the pragma declaration is valid. +// It is valid if the root expression is an identifier or invocation. +// Invocations must func (checker *Checker) VisitPragmaDeclaration(declaration *ast.PragmaDeclaration) (_ struct{}) { switch expression := declaration.Expression.(type) { - case *ast.InvocationExpression: - // Type arguments are not supported for pragmas - if len(expression.TypeArguments) > 0 { - checker.report(&InvalidPragmaError{ - Message: "type arguments are not supported", - Range: ast.NewRangeFromPositioned( - checker.memoryGauge, - expression.TypeArguments[0], - ), - }) - } - - // Ensure arguments are string expressions - for _, arg := range expression.Arguments { - _, ok := arg.Expression.(*ast.StringExpression) - if !ok { - checker.report(&InvalidPragmaError{ - Message: "invalid non-string argument", - Range: ast.NewRangeFromPositioned( - checker.memoryGauge, - arg.Expression, - ), - }) - } - } - case *ast.IdentifierExpression: - // NO-OP + // valid, NO-OP + + case *ast.InvocationExpression: + checker.checkPragmaInvocationExpression(expression) default: checker.report(&InvalidPragmaError{ - Message: "pragma must be identifier or invocation expression", + Message: "expression must be literal, identifier, or invocation", Range: ast.NewRangeFromPositioned( checker.memoryGauge, - declaration, + expression, ), }) } return } + +func (checker *Checker) checkPragmaInvocationExpression(expression *ast.InvocationExpression) { + // Invoked expression must be an identifier + if _, ok := expression.InvokedExpression.(*ast.IdentifierExpression); !ok { + checker.report(&InvalidPragmaError{ + Message: "invoked expression must be an identifier", + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + expression.InvokedExpression, + ), + }) + } + + // Type arguments are not supported for pragmas + if len(expression.TypeArguments) > 0 { + checker.report(&InvalidPragmaError{ + Message: "type arguments are not supported", + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + expression.TypeArguments[0], + ), + }) + } + + // Ensure arguments are valid + for _, arg := range expression.Arguments { + checker.checkPragmaArgumentExpression(arg.Expression) + } +} + +func (checker *Checker) checkPragmaArgumentExpression(expression ast.Expression) { + switch expression := expression.(type) { + case *ast.InvocationExpression: + checker.checkPragmaInvocationExpression(expression) + return + + case *ast.StringExpression, + *ast.IntegerExpression, + *ast.FixedPointExpression, + *ast.ArrayExpression, + *ast.DictionaryExpression, + *ast.NilExpression, + *ast.BoolExpression, + *ast.PathExpression: + + return + + case *ast.UnaryExpression: + if expression.Operation == ast.OperationMinus { + return + } + } + + checker.report(&InvalidPragmaError{ + Message: "expression in invocation must be literal or invocation", + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + expression, + ), + }) +} diff --git a/runtime/sema/check_reference_expression.go b/runtime/sema/check_reference_expression.go index 16092129b5..f5d2681b9f 100644 --- a/runtime/sema/check_reference_expression.go +++ b/runtime/sema/check_reference_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,12 +37,10 @@ func (checker *Checker) VisitReferenceExpression(referenceExpression *ast.Refere } // Check the result type and ensure it is a reference type - var isOpt bool var referenceType *ReferenceType var expectedLeftType, returnType Type if !resultType.IsInvalidType() { - var ok bool // Reference expressions may reference a value which has an optional type. // For example, the result of indexing into a dictionary is an optional: // @@ -50,29 +48,9 @@ func (checker *Checker) VisitReferenceExpression(referenceExpression *ast.Refere // let ref: &T? = &ints[0] as &T? // read as (&T)? // // In this case the reference expression's type is an optional type. - // Unwrap it one level to get the actual reference type - var optType *OptionalType - optType, isOpt = resultType.(*OptionalType) - if isOpt { - resultType = optType.Type - } - - referenceType, ok = resultType.(*ReferenceType) - if !ok { - checker.report( - &NonReferenceTypeReferenceError{ - ActualType: resultType, - Range: ast.NewRangeFromPositioned(checker.memoryGauge, referenceExpression), - }, - ) - } else { - expectedLeftType = referenceType.Type - returnType = referenceType - if isOpt { - expectedLeftType = &OptionalType{Type: expectedLeftType} - returnType = &OptionalType{Type: returnType} - } - } + // Unwrap it (recursively) to get the actual reference type + expectedLeftType, returnType, referenceType = + checker.expectedTypeForReferencedExpr(resultType, referenceExpression) } // Type-check the referenced expression @@ -81,29 +59,32 @@ func (checker *Checker) VisitReferenceExpression(referenceExpression *ast.Refere beforeErrors := len(checker.errors) - referencedType, actualType := checker.visitExpression(referencedExpression, expectedLeftType) - - hasErrors := len(checker.errors) > beforeErrors - if !hasErrors { - // If the reference type was an optional type, - // we proposed an optional type to the referenced expression. - // - // Check that it actually has an optional type - - // If the reference type was a non-optional type, - // check that the referenced expression does not have an optional type + referencedType, actualType := checker.visitExpression(referencedExpression, referenceExpression, expectedLeftType) - // Do not report an error if the `expectedLeftType` is unknown - - if _, ok := actualType.(*OptionalType); ok != isOpt && expectedLeftType != nil { - checker.report(&TypeMismatchError{ - ExpectedType: expectedLeftType, - ActualType: actualType, - Expression: referencedExpression, - Range: checker.expressionRange(referenceExpression), + // check that the type of the referenced value is not itself a reference + var requireNoReferenceNesting func(actualType Type) + requireNoReferenceNesting = func(actualType Type) { + switch nestedReference := actualType.(type) { + case *ReferenceType: + checker.report(&NestedReferenceError{ + Type: nestedReference, + Range: checker.expressionRange(referenceExpression), }) + case *OptionalType: + requireNoReferenceNesting(nestedReference.Type) } } + requireNoReferenceNesting(actualType) + + hasErrors := len(checker.errors) > beforeErrors + if !hasErrors { + checker.checkOptionalityMatch( + expectedLeftType, + actualType, + referencedExpression, + referenceExpression, + ) + } if referenceType == nil { return InvalidType @@ -115,3 +96,92 @@ func (checker *Checker) VisitReferenceExpression(referenceExpression *ast.Refere return returnType } + +func (checker *Checker) expectedTypeForReferencedExpr( + expectedType Type, + hasPosition ast.HasPosition, +) (expectedLeftType, returnType Type, referenceType *ReferenceType) { + // Reference expressions may reference a value which has an optional type. + // For example, the result of indexing into a dictionary is an optional: + // + // let ints: {Int: String} = {0: "zero"} + // let ref: &T? = &ints[0] as &T? // read as (&T)? + // + // In this case the reference expression's type is an optional type. + // Unwrap it to get the actual reference type + + switch expectedType := expectedType.(type) { + case *OptionalType: + expectedLeftType, returnType, referenceType = + checker.expectedTypeForReferencedExpr(expectedType.Type, hasPosition) + + // Re-wrap with an optional + expectedLeftType = &OptionalType{Type: expectedLeftType} + returnType = &OptionalType{Type: returnType} + + case *ReferenceType: + referencedType := expectedType.Type + if referencedOptionalType, referenceToOptional := referencedType.(*OptionalType); referenceToOptional { + checker.report( + &ReferenceToAnOptionalError{ + ReferencedOptionalType: referencedOptionalType, + Range: ast.NewRangeFromPositioned(checker.memoryGauge, hasPosition), + }, + ) + } + + return expectedType.Type, expectedType, expectedType + + default: + checker.report( + &NonReferenceTypeReferenceError{ + ActualType: expectedType, + Range: ast.NewRangeFromPositioned(checker.memoryGauge, hasPosition), + }, + ) + } + + return +} + +func (checker *Checker) checkOptionalityMatch( + expectedType, actualType Type, + referencedExpression ast.Expression, + referenceExpression ast.Expression, +) { + + // Do not report an error if the `expectedType` is unknown + if expectedType == nil { + return + } + + // If the reference type was an optional type, + // we proposed an optional type to the referenced expression. + // + // Check that it actually has an optional type + + // If the reference type was a non-optional type, + // check that the referenced expression does not have an optional type + + expectedOptional, expectedIsOptional := expectedType.(*OptionalType) + actualOptional, actualIsOptional := actualType.(*OptionalType) + + if expectedIsOptional && actualIsOptional { + checker.checkOptionalityMatch( + expectedOptional.Type, + actualOptional.Type, + referencedExpression, + referenceExpression, + ) + return + } + + if expectedIsOptional != actualIsOptional { + checker.report(&TypeMismatchError{ + ExpectedType: expectedType, + ActualType: actualType, + Expression: referencedExpression, + Range: checker.expressionRange(referenceExpression), + }) + } +} diff --git a/runtime/sema/check_remove_statement.go b/runtime/sema/check_remove_statement.go index 00558a07f0..1e3ff17890 100644 --- a/runtime/sema/check_remove_statement.go +++ b/runtime/sema/check_remove_statement.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,7 +32,7 @@ func (checker *Checker) VisitRemoveStatement(statement *ast.RemoveStatement) (_ } nominalType := checker.convertNominalType(statement.Attachment) - base := checker.VisitExpression(statement.Value, nil) + base := checker.VisitExpression(statement.Value, statement, nil) checker.checkUnusedExpressionResourceLoss(base, statement.Value) if nominalType == InvalidType { @@ -85,6 +85,8 @@ func (checker *Checker) VisitRemoveStatement(statement *ast.RemoveStatement) (_ ) } + checker.enforceViewAssignment(statement, statement.Value) + checker.Elaboration.SetAttachmentRemoveTypes(statement, nominalType) return diff --git a/runtime/sema/check_return_statement.go b/runtime/sema/check_return_statement.go index bc7bac2e6c..43799f4e58 100644 --- a/runtime/sema/check_return_statement.go +++ b/runtime/sema/check_return_statement.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,7 +60,7 @@ func (checker *Checker) VisitReturnStatement(statement *ast.ReturnStatement) (_ // If the return statement has a return value, // check that the value's type matches the enclosing function's return type - valueType := checker.VisitExpression(statement.Expression, returnType) + valueType := checker.VisitExpression(statement.Expression, statement, returnType) checker.Elaboration.SetReturnStatementTypes( statement, @@ -74,7 +74,6 @@ func (checker *Checker) VisitReturnStatement(statement *ast.ReturnStatement) (_ return } - checker.checkVariableMove(statement.Expression) checker.checkResourceMoveOperation(statement.Expression, valueType) return diff --git a/runtime/sema/check_swap.go b/runtime/sema/check_swap.go index da30e6df50..2ae2125691 100644 --- a/runtime/sema/check_swap.go +++ b/runtime/sema/check_swap.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,8 +31,8 @@ func (checker *Checker) VisitSwapStatement(swap *ast.SwapStatement) (_ struct{}) // Then re-visit the same expressions, this time treat them as the value-expr of the assignment. // The 'expected type' of the two expression would be the types obtained from the previous visit, swapped. - leftValueType := checker.VisitExpression(swap.Left, rightTargetType) - rightValueType := checker.VisitExpression(swap.Right, leftTargetType) + leftValueType := checker.VisitExpression(swap.Left, swap, rightTargetType) + rightValueType := checker.VisitExpression(swap.Right, swap, leftTargetType) checker.Elaboration.SetSwapStatementTypes( swap, @@ -50,6 +50,34 @@ func (checker *Checker) VisitSwapStatement(swap *ast.SwapStatement) (_ struct{}) checker.elaborateNestedResourceMoveExpression(swap.Right) } + // If the left or right side is an index expression, + // and the indexed type (type of the target expression) is a resource type, + // then the target expression must be considered as a nested resource move expression. + // + // This is because the evaluation of the index expression + // should not be able to access/move the target resource. + // + // For example, if a side is `a.b[c()]`, then `a.b` is the target expression. + // If `a.b` is a resource, then `c()` should not be able to access/move it. + + for _, side := range []ast.Expression{swap.Left, swap.Right} { + if indexExpression, ok := side.(*ast.IndexExpression); ok { + indexExpressionTypes := checker.Elaboration.IndexExpressionTypes(indexExpression) + + // If the indexed type is a resource type, + // then the target expression must be considered as a nested resource move expression. + // + // The index expression might have been invalid, + // so the indexed type might be unavailable. + + indexedType := indexExpressionTypes.IndexedType + if indexedType != nil && indexedType.IsResourceType() { + targetExpression := indexExpression.TargetExpression + checker.elaborateNestedResourceMoveExpression(targetExpression) + } + } + } + return } diff --git a/runtime/sema/check_switch.go b/runtime/sema/check_switch.go index 2193d0f1fa..84d6670f25 100644 --- a/runtime/sema/check_switch.go +++ b/runtime/sema/check_switch.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,7 @@ import ( func (checker *Checker) VisitSwitchStatement(statement *ast.SwitchStatement) (_ struct{}) { - testType := checker.VisitExpression(statement.Expression, nil) + testType := checker.VisitExpression(statement.Expression, statement, nil) testTypeIsValid := !testType.IsInvalidType() @@ -41,47 +41,20 @@ func (checker *Checker) VisitSwitchStatement(statement *ast.SwitchStatement) (_ // Check all cases - caseCount := len(statement.Cases) - - for i, switchCase := range statement.Cases { - // Only one default case is allowed, as the last case - defaultAllowed := i == caseCount-1 - checker.visitSwitchCase(switchCase, defaultAllowed, testType, testTypeIsValid) - } - checker.functionActivations.Current().WithSwitch(func() { - checker.checkSwitchCasesStatements(statement.Cases) + checker.checkSwitchCasesStatements( + statement, + statement.Cases, + testType, + testTypeIsValid, + ) }) return } -func (checker *Checker) visitSwitchCase( - switchCase *ast.SwitchCase, - defaultAllowed bool, - testType Type, - testTypeIsValid bool, -) { - caseExpression := switchCase.Expression - - // If the case has no expression, it is a default case - - if caseExpression == nil { - - // Only one default case is allowed, as the last case - if !defaultAllowed { - checker.report( - &SwitchDefaultPositionError{ - Range: switchCase.Range, - }, - ) - } - } else { - checker.checkSwitchCaseExpression(caseExpression, testType, testTypeIsValid) - } -} - func (checker *Checker) checkSwitchCaseExpression( + statement *ast.SwitchStatement, caseExpression ast.Expression, testType Type, testTypeIsValid bool, @@ -92,7 +65,7 @@ func (checker *Checker) checkSwitchCaseExpression( caseExprExpectedType = testType } - caseType := checker.VisitExpression(caseExpression, caseExprExpectedType) + caseType := checker.VisitExpression(caseExpression, statement, caseExprExpectedType) if caseType.IsInvalidType() { return @@ -116,9 +89,14 @@ func (checker *Checker) checkSwitchCaseExpression( } } -func (checker *Checker) checkSwitchCasesStatements(cases []*ast.SwitchCase) { - caseCount := len(cases) - if caseCount == 0 { +func (checker *Checker) checkSwitchCasesStatements( + statement *ast.SwitchStatement, + remainingCases []*ast.SwitchCase, + testType Type, + testTypeIsValid bool, +) { + remainingCaseCount := len(remainingCases) + if remainingCaseCount == 0 { return } @@ -129,24 +107,55 @@ func (checker *Checker) checkSwitchCasesStatements(cases []*ast.SwitchCase) { // because if a default case exists, the whole switch statement // will definitely have one case which will be taken. - switchCase := cases[0] + switchCase := remainingCases[0] + + caseExpression := switchCase.Expression + + // If the case has no expression, it is a default case + if caseExpression == nil { + + // Only one default case is allowed, as the last case + defaultAllowed := remainingCaseCount == 1 + if !defaultAllowed { + checker.report( + &SwitchDefaultPositionError{ + Range: switchCase.Range, + }, + ) + } - if caseCount == 1 && switchCase.Expression == nil { currentFunctionActivation.ReturnInfo.WithNewJumpTarget(func() { checker.checkSwitchCaseStatements(switchCase) }) return } + checker.checkSwitchCaseExpression( + statement, + caseExpression, + testType, + testTypeIsValid, + ) + _, _ = checker.checkConditionalBranches( func() Type { + currentFunctionActivation.ReturnInfo.WithNewJumpTarget(func() { checker.checkSwitchCaseStatements(switchCase) }) + + // ignored return nil }, func() Type { - checker.checkSwitchCasesStatements(cases[1:]) + checker.checkSwitchCasesStatements( + statement, + remainingCases[1:], + testType, + testTypeIsValid, + ) + + // ignored return nil }, ) diff --git a/runtime/sema/check_transaction_declaration.go b/runtime/sema/check_transaction_declaration.go index f6be79dabe..bc86ffc347 100644 --- a/runtime/sema/check_transaction_declaration.go +++ b/runtime/sema/check_transaction_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,7 +57,7 @@ func (checker *Checker) VisitTransactionDeclaration(declaration *ast.Transaction checker.enterValueScope() defer checker.leaveValueScope(declaration.EndPosition, true) - checker.declareSelfValue(transactionType, "") + checker.declareSelfValue(UnauthorizedAccess, transactionType, "") if declaration.ParameterList != nil { checker.checkTransactionParameters(declaration, transactionType.Parameters) diff --git a/runtime/sema/check_unary_expression.go b/runtime/sema/check_unary_expression.go index effb52c093..cf1b01af69 100644 --- a/runtime/sema/check_unary_expression.go +++ b/runtime/sema/check_unary_expression.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,12 @@ func (checker *Checker) VisitUnaryExpression(expression *ast.UnaryExpression) Ty expectedType = checker.expectedType } - valueType := checker.VisitExpressionWithForceType(expression.Expression, expectedType, false) + valueType := checker.VisitExpressionWithForceType( + expression.Expression, + expression, + expectedType, + false, + ) reportInvalidUnaryOperator := func(expectedType Type) { checker.report( @@ -61,6 +66,56 @@ func (checker *Checker) VisitUnaryExpression(expression *ast.UnaryExpression) Ty case ast.OperationMinus: return checkExpectedType(valueType, SignedNumberType) + case ast.OperationMul: + + var isOptional bool + if optionalType, ok := valueType.(*OptionalType); ok { + isOptional = true + valueType = optionalType.Type + } + + referenceType, ok := valueType.(*ReferenceType) + if !ok { + if !valueType.IsInvalidType() { + checker.report( + &InvalidUnaryOperandError{ + Operation: expression.Operation, + ExpectedTypeDescription: "reference type", + ActualType: valueType, + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + expression.Expression, + ), + }, + ) + } + return InvalidType + } + + innerType := referenceType.Type + + if !IsPrimitiveOrContainerOfPrimitive(innerType) { + checker.report( + &InvalidUnaryOperandError{ + Operation: expression.Operation, + ExpectedTypeDescription: "primitive or container of primitives", + ActualType: innerType, + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + expression.Expression, + ), + }, + ) + } + + if isOptional { + return &OptionalType{ + Type: innerType, + } + } else { + return innerType + } + case ast.OperationMove: if !valueType.IsInvalidType() && !valueType.IsResourceType() { diff --git a/runtime/sema/check_variable_declaration.go b/runtime/sema/check_variable_declaration.go index 971abbbe5d..b451416262 100644 --- a/runtime/sema/check_variable_declaration.go +++ b/runtime/sema/check_variable_declaration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,7 +54,7 @@ func (checker *Checker) visitVariableDeclarationValues(declaration *ast.Variable } } - valueType := checker.VisitExpression(declaration.Value, expectedValueType) + valueType := checker.VisitExpression(declaration.Value, declaration, expectedValueType) if isOptionalBinding { optionalType, isOptional := valueType.(*OptionalType) @@ -100,13 +100,19 @@ func (checker *Checker) visitVariableDeclarationValues(declaration *ast.Variable var secondValueType Type + // The value transfer need to be marked as a resource move (when applicable), + // even if there is no second value, because in destructors, + // nested resource moves are allowed. + valueIsResource := valueType != nil && valueType.IsResourceType() + if valueIsResource { + checker.elaborateNestedResourceMoveExpression(declaration.Value) + } + if declaration.SecondTransfer == nil { if declaration.SecondValue != nil { panic(errors.NewUnreachableError()) } - checker.checkVariableMove(declaration.Value) - // If only one value expression is provided, it is invalidated (if it has a resource type) checker.recordResourceInvalidation( @@ -136,8 +142,6 @@ func (checker *Checker) visitVariableDeclarationValues(declaration *ast.Variable // so that second value types that are standalone not considered resource typed // are still admitted if they are type compatible (e.g. `nil`). - valueIsResource := valueType != nil && valueType.IsResourceType() - if valueType != nil && !valueType.IsInvalidType() && !valueIsResource { @@ -150,6 +154,32 @@ func (checker *Checker) visitVariableDeclarationValues(declaration *ast.Variable ) } + // Given a variable declaration with a second value transfer of the form + // `let x <- e1 <- e2` + // + // the interpreter will evaluate this in the following order: + // - evaluating `e1` to some value `v1` (which is necessarily either a variable, an index expression, or a member expression) + // - moving the value stored in `v1` into the newly declared variable `x` + // - evaluating `e2` to some value `v2` + // - evaluate `e1` again to some value `v1'` (as `e1` may produce a different value after `e2`'s execution) + // - lastly moving the value `v2` into the "variable" denoted by `v1'` + // + // This means that while at the end of the execution of the entire statement, + // `v1` is still a valid resource (having had the result of `e2` moved into it), + // specifically during the execution of `e2` it is invalid. + // In order to reflect this, we temporarily invalidate `v1` before evaluating `e2` and checking the assignment, + // and then re-validate `v1` afterwards. + // We also re-check `e1` again as well, since it is evaluated a second time by the interpreter. + // Note that while typechecking the same expression twice is not safe in general, + // in this case it is permissible for a specific reason: + // `e1` is necessarily an identifier, index or member expression, which may not have side effects + + recordedResourceInvalidation := checker.recordResourceInvalidation( + declaration.Value, + declarationType, + ResourceInvalidationKindMoveTemporary, + ) + // Check the assignment of the second value to the first expression // The check of the assignment of the second value to the first also: @@ -168,9 +198,10 @@ func (checker *Checker) visitVariableDeclarationValues(declaration *ast.Variable true, ) - if valueIsResource { - checker.elaborateNestedResourceMoveExpression(declaration.Value) + if recordedResourceInvalidation != nil { + checker.resources.RemoveTemporaryMoveInvalidation(recordedResourceInvalidation.resource, recordedResourceInvalidation.invalidation) } + checker.VisitExpression(declaration.Value, declaration, expectedValueType) } } @@ -264,7 +295,7 @@ func (checker *Checker) recordReference(targetVariable *Variable, expr ast.Expre return } - if _, isReference := referenceType(targetVariable.Type); !isReference { + if _, isReference := MaybeReferenceType(targetVariable.Type); !isReference { return } diff --git a/runtime/sema/check_while.go b/runtime/sema/check_while.go index 9a60294b04..f874e6b267 100644 --- a/runtime/sema/check_while.go +++ b/runtime/sema/check_while.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ import ( func (checker *Checker) VisitWhileStatement(statement *ast.WhileStatement) (_ struct{}) { - checker.VisitExpression(statement.Test, BoolType) + checker.VisitExpression(statement.Test, statement, BoolType) // The body of the loop will maybe be evaluated. // That means that resource invalidations and diff --git a/runtime/sema/checker.go b/runtime/sema/checker.go index d206d15469..e44c8c5603 100644 --- a/runtime/sema/checker.go +++ b/runtime/sema/checker.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -67,7 +67,9 @@ var beforeType = func() *FunctionType { } }() -type ValidTopLevelDeclarationsHandlerFunc = func(common.Location) common.DeclarationKindSet +type ValidTopLevelDeclarationsHandlerFunc func(common.Location) common.DeclarationKindSet + +type ActivationHandlerFunc func(common.Location) *VariableActivation type CheckHandlerFunc func(checker *Checker, check func()) @@ -117,11 +119,13 @@ type Checker struct { purityCheckScopes []PurityCheckScope entitlementMappingInScope *EntitlementMapType inCondition bool + inInterface bool allowSelfResourceFieldInvalidation bool - inAssignment bool inInvocation bool inCreate bool isChecked bool + inAssignment bool + parent ast.Element } var _ ast.DeclarationVisitor[struct{}] = &Checker{} @@ -134,6 +138,21 @@ var baseFunctionType = NewSimpleFunctionType( VoidTypeAnnotation, ) +func NewVariableActivationsFromHandler( + handler ActivationHandlerFunc, + location common.Location, + defaultActivation *VariableActivation, +) *VariableActivations { + var activation *VariableActivation + if handler != nil { + activation = handler(location) + } + if activation == nil { + activation = defaultActivation + } + return NewVariableActivations(activation) +} + func NewChecker( program *ast.Program, location common.Location, @@ -174,19 +193,19 @@ func NewChecker( // Initialize value activations - baseValueActivation := config.BaseValueActivation - if baseValueActivation == nil { - baseValueActivation = BaseValueActivation - } - checker.valueActivations = NewVariableActivations(baseValueActivation) + checker.valueActivations = NewVariableActivationsFromHandler( + config.BaseValueActivationHandler, + location, + BaseValueActivation, + ) // Initialize type activations - baseTypeActivation := config.BaseTypeActivation - if baseTypeActivation == nil { - baseTypeActivation = BaseTypeActivation - } - checker.typeActivations = NewVariableActivations(baseTypeActivation) + checker.typeActivations = NewVariableActivationsFromHandler( + config.BaseTypeActivationHandler, + location, + BaseTypeActivation, + ) // Initialize position info, if enabled if checker.Config.PositionInfoEnabled { @@ -492,8 +511,10 @@ func (checker *Checker) checkTopLevelDeclarationValidity( func (checker *Checker) declareGlobalFunctionDeclaration(declaration *ast.FunctionDeclaration) { functionType := checker.functionType( + declaration.IsNative(), declaration.Purity, UnauthorizedAccess, + declaration.TypeParameterList, declaration.ParameterList, declaration.ReturnTypeAnnotation, ) @@ -917,40 +938,45 @@ func CheckIntersectionType( // The intersections may not have clashing members - // TODO: also include interface conformances' members - // once interfaces can have conformances + checkClashingMember := func(interfaceType *InterfaceType) { + interfaceType.Members.Foreach(func(name string, member *Member) { - interfaceType.Members.Foreach(func(name string, member *Member) { - if previousDeclaringInterfaceType, ok := memberSet[name]; ok { + if previousDeclaringInterfaceType, ok := memberSet[name]; ok { - // If there is an overlap in members, ensure the members have the same type + // If there is an overlap in members, ensure the members have the same type - memberType := member.TypeAnnotation.Type + memberType := member.TypeAnnotation.Type - prevMemberType, ok := previousDeclaringInterfaceType.Members.Get(name) - if !ok { - panic(errors.NewUnreachableError()) - } + prevMemberType, ok := previousDeclaringInterfaceType.Members.Get(name) + if !ok { + panic(errors.NewUnreachableError()) + } - previousMemberType := prevMemberType.TypeAnnotation.Type + previousMemberType := prevMemberType.TypeAnnotation.Type - if !memberType.IsInvalidType() && - !previousMemberType.IsInvalidType() && - !memberType.Equal(previousMemberType) { + if !memberType.IsInvalidType() && + !previousMemberType.IsInvalidType() && + !memberType.Equal(previousMemberType) { - report(func(t *ast.IntersectionType) error { - return &IntersectionMemberClashError{ - Name: name, - RedeclaringType: interfaceType, - OriginalDeclaringType: previousDeclaringInterfaceType, - Range: ast.NewRangeFromPositioned(memoryGauge, t.Types[i]), - } - }) + report(func(t *ast.IntersectionType) error { + return &IntersectionMemberClashError{ + Name: name, + RedeclaringType: interfaceType, + OriginalDeclaringType: previousDeclaringInterfaceType, + Range: ast.NewRangeFromPositioned(memoryGauge, t.Types[i]), + } + }) + } + } else { + memberSet[name] = interfaceType } - } else { - memberSet[name] = interfaceType - } - }) + }) + } + + checkClashingMember(interfaceType) + + interfaceType.EffectiveInterfaceConformanceSet(). + ForEach(checkClashingMember) } // If no intersection type is given, infer `AnyResource`/`AnyStruct` @@ -962,18 +988,22 @@ func CheckIntersectionType( // the type is ambiguous. report(func(t *ast.IntersectionType) error { - return &AmbiguousIntersectionTypeError{Range: ast.NewRangeFromPositioned(memoryGauge, t)} + return &AmbiguousIntersectionTypeError{ + Range: ast.NewRangeFromPositioned(memoryGauge, t), + } }) return InvalidType - case common.CompositeKindResource, common.CompositeKindStructure: + case common.CompositeKindResource, + common.CompositeKindStructure, + common.CompositeKindContract: break default: panic(errors.NewUnreachableError()) } - return NewIntersectionType(memoryGauge, types) + return NewIntersectionType(memoryGauge, nil, types) } func (checker *Checker) convertIntersectionType(t *ast.IntersectionType) Type { @@ -991,8 +1021,7 @@ func (checker *Checker) convertIntersectionType(t *ast.IntersectionType) Type { if ok { intersectedCompositeKind = intersectedInterfaceType.CompositeKind } - if !ok || (intersectedCompositeKind != common.CompositeKindResource && - intersectedCompositeKind != common.CompositeKindStructure) { + if !ok || !intersectedCompositeKind.SupportsInterfaces() { if !intersectedResult.IsInvalidType() { checker.report(&InvalidIntersectedTypeError{ @@ -1026,9 +1055,14 @@ func (checker *Checker) convertReferenceType(t *ast.ReferenceType) Type { var ty Type if t.Authorization != nil { - access = checker.accessFromAstAccess(ast.EntitlementAccess{EntitlementSet: t.Authorization.EntitlementSet}) - switch mapAccess := access.(type) { - case *EntitlementMapAccess: + switch auth := t.Authorization.(type) { + case ast.EntitlementSet: + access = checker.accessFromAstAccess(ast.EntitlementAccess{EntitlementSet: auth}) + case *ast.MappedAccess: + access = checker.accessFromAstAccess(auth) + } + + if mapAccess, isMapAccess := access.(*EntitlementMapAccess); isMapAccess { // mapped auth types are only allowed in the annotations of composite fields and accessor functions if checker.entitlementMappingInScope == nil || !checker.entitlementMappingInScope.Equal(mapAccess.Type) { checker.report(&InvalidMappedAuthorizationOutsideOfFieldError{ @@ -1052,7 +1086,7 @@ func (checker *Checker) convertDictionaryType(t *ast.DictionaryType) Type { keyType := checker.ConvertType(t.KeyType) valueType := checker.ConvertType(t.ValueType) - if !IsValidDictionaryKeyType(keyType) { + if !IsSubType(keyType, HashableStructType) { checker.report( &InvalidDictionaryKeyTypeError{ Type: keyType, @@ -1251,33 +1285,117 @@ func (checker *Checker) ConvertTypeAnnotation(typeAnnotation *ast.TypeAnnotation } func (checker *Checker) functionType( + isNative bool, purity ast.FunctionPurity, access Access, + typeParameterList *ast.TypeParameterList, parameterList *ast.ParameterList, returnTypeAnnotation *ast.TypeAnnotation, ) *FunctionType { + + oldMappedAccess := checker.entitlementMappingInScope + if mapAccess, isMapAccess := access.(*EntitlementMapAccess); isMapAccess { + checker.entitlementMappingInScope = mapAccess.Type + } else { + checker.entitlementMappingInScope = nil + } + defer func() { checker.entitlementMappingInScope = oldMappedAccess }() + + // Convert type parameters (if any) + + var convertedTypeParameters []*TypeParameter + if typeParameterList != nil { + + // Only native functions may have type parameters at the moment + if !isNative && !typeParameterList.IsEmpty() { + checker.report(&InvalidTypeParameterizedNonNativeFunctionError{ + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + typeParameterList, + ), + }) + } + + checker.typeActivations.Enter() + defer checker.typeActivations.Leave(func(gauge common.MemoryGauge) ast.Position { + if returnTypeAnnotation != nil { + return returnTypeAnnotation.EndPosition(gauge) + } else { + return parameterList.EndPos + } + }) + + // All type parameters are converted at once, + // so type bounds may currently not refer to previous type parameters + + convertedTypeParameters = checker.typeParameters(typeParameterList) + + for typeParameterIndex, typeParameter := range typeParameterList.TypeParameters { + convertedTypeParameter := convertedTypeParameters[typeParameterIndex] + + genericType := &GenericType{ + TypeParameter: convertedTypeParameter, + } + + _, err := checker.typeActivations.declareType(typeDeclaration{ + identifier: typeParameter.Identifier, + ty: genericType, + declarationKind: common.DeclarationKindTypeParameter, + allowOuterScopeShadowing: false, + }) + checker.report(err) + + } + } + + // Convert parameters + convertedParameters := checker.parameters(parameterList) + // Convert return type + convertedReturnTypeAnnotation := VoidTypeAnnotation if returnTypeAnnotation != nil { - // to allow entitlement mapping types to be used in the return annotation only of - // a mapped accessor function, we introduce a "variable" into the typing scope while - // checking the return - if mapAccess, isMapAccess := access.(*EntitlementMapAccess); isMapAccess { - checker.entitlementMappingInScope = mapAccess.Type - } convertedReturnTypeAnnotation = checker.ConvertTypeAnnotation(returnTypeAnnotation) - checker.entitlementMappingInScope = nil } return &FunctionType{ Purity: PurityFromAnnotation(purity), + TypeParameters: convertedTypeParameters, Parameters: convertedParameters, ReturnTypeAnnotation: convertedReturnTypeAnnotation, } } +func (checker *Checker) typeParameters(typeParameterList *ast.TypeParameterList) []*TypeParameter { + + var typeParameters []*TypeParameter + + typeParameterCount := len(typeParameterList.TypeParameters) + if typeParameterCount > 0 { + typeParameters = make([]*TypeParameter, typeParameterCount) + + for i, typeParameter := range typeParameterList.TypeParameters { + + typeBoundAnnotation := typeParameter.TypeBound + var convertedTypeBound Type + if typeBoundAnnotation != nil { + convertedTypeBoundAnnotation := checker.ConvertTypeAnnotation(typeBoundAnnotation) + checker.checkTypeAnnotation(convertedTypeBoundAnnotation, typeBoundAnnotation) + convertedTypeBound = convertedTypeBoundAnnotation.Type + } + + typeParameters[i] = &TypeParameter{ + Name: typeParameter.Identifier.Identifier, + TypeBound: convertedTypeBound, + } + } + } + + return typeParameters +} + func (checker *Checker) parameters(parameterList *ast.ParameterList) []Parameter { // TODO: required for initializer conformance checking at the moment, optimize/refactor @@ -1412,6 +1530,20 @@ func (checker *Checker) recordResourceInvalidation( return nil } + // Invalidations in interface functions are not allowed, + // except for temporary moves + if invalidationKind != ResourceInvalidationKindMoveTemporary && + checker.inCondition && + checker.inInterface { + + checker.report(&InvalidInterfaceConditionResourceInvalidationError{ + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + expression, + ), + }) + } + reportInvalidNestedMove := func() { checker.report( &InvalidNestedResourceMoveError{ @@ -1425,19 +1557,27 @@ func (checker *Checker) recordResourceInvalidation( accessedSelfMember := checker.accessedSelfMember(expression) + // Normally a field members cannot be invalidated, + // and this check typically prevents invalidations of this kind. + // However, during second value transfers we would like to be able to invalidate member and index + // expressions purely for the duration of checking the second value expression in the transfer. + // To enable this, nested move errors are not reported when the move kind of the invalidation is `Temporary`. switch expression.(type) { case *ast.MemberExpression: - if accessedSelfMember == nil || - !checker.allowSelfResourceFieldInvalidation { + if (accessedSelfMember == nil || + !checker.allowSelfResourceFieldInvalidation) && + invalidationKind != ResourceInvalidationKindMoveTemporary { reportInvalidNestedMove() return nil } case *ast.IndexExpression: - reportInvalidNestedMove() - return nil + if invalidationKind != ResourceInvalidationKindMoveTemporary { + reportInvalidNestedMove() + return nil + } } invalidation := ResourceInvalidation{ @@ -1792,12 +1932,7 @@ func (checker *Checker) checkEntitlementMapAccess( containerKind *common.CompositeKind, startPos ast.Position, ) { - // attachments may be declared with an entitlement map access - if declarationKind == common.DeclarationKindAttachment { - return - } - - // otherwise, mapped entitlements may only be used in structs, resources and attachments + // mapped entitlements may only be used in structs, resources and attachments if containerKind == nil || (*containerKind != common.CompositeKindResource && *containerKind != common.CompositeKindStructure && @@ -1810,7 +1945,17 @@ func (checker *Checker) checkEntitlementMapAccess( return } - // mapped entitlement fields must be, one of: + // due to potential security issues, entitlement mappings are disabled on attachments for now + if *containerKind == common.CompositeKindAttachment { + checker.report( + &InvalidAttachmentMappedEntitlementMemberError{ + Pos: startPos, + }, + ) + return + } + + // mapped entitlement fields must be one of: // 1) An [optional] reference that is authorized to the same mapped entitlement. // 2) A function that return an [optional] reference authorized to the same mapped entitlement. // 3) A container - So if the parent is a reference, entitlements can be granted to the resulting field reference. @@ -1932,6 +2077,31 @@ func (checker *Checker) accessFromAstAccess(access ast.Access) (result Access) { case ast.PrimitiveAccess: return PrimitiveAccess(access) + case *ast.MappedAccess: + semaAccess, hasAccess := checker.Elaboration.GetSemanticAccess(access) + if hasAccess { + return semaAccess + } + defer func() { + checker.Elaboration.SetSemanticAccess(access, result) + }() + + switch nominalType := checker.convertNominalType(access.EntitlementMap).(type) { + case *EntitlementMapType: + result = NewEntitlementMapAccess(nominalType) + default: + if nominalType != InvalidType { + checker.report( + &InvalidEntitlementMappingTypeError{ + Type: nominalType, + Pos: access.EntitlementMap.Identifier.Pos, + }, + ) + } + result = PrimitiveAccess(ast.AccessNotSpecified) + } + return + case ast.EntitlementAccess: semaAccess, hasAccess := checker.Elaboration.GetSemanticAccess(access) if hasAccess { @@ -1942,62 +2112,44 @@ func (checker *Checker) accessFromAstAccess(access ast.Access) (result Access) { }() astEntitlements := access.EntitlementSet.Entitlements() - nominalType := checker.convertNominalType(astEntitlements[0]) - switch nominalType := nominalType.(type) { - case *EntitlementType: - semanticEntitlements := make([]*EntitlementType, 0, len(astEntitlements)) - semanticEntitlements = append(semanticEntitlements, nominalType) - - for _, entitlement := range astEntitlements[1:] { - nominalType := checker.convertNominalType(entitlement) - entitlementType, ok := nominalType.(*EntitlementType) - if !ok { - // don't duplicate errors when the type here is invalid, as this will have triggered an error before - if nominalType != InvalidType { + semanticEntitlements := make([]*EntitlementType, 0, len(astEntitlements)) + + for _, entitlement := range astEntitlements { + nominalType := checker.convertNominalType(entitlement) + entitlementType, ok := nominalType.(*EntitlementType) + if !ok { + // don't duplicate errors when the type here is invalid, as this will have triggered an error before + if nominalType != InvalidType { + if _, isMap := nominalType.(*EntitlementMapType); isMap { + checker.report( + &MappingAccessMissingKeywordError{ + Type: nominalType, + Range: ast.NewRangeFromPositioned(checker.memoryGauge, entitlement), + }, + ) + } else { checker.report( &InvalidNonEntitlementAccessError{ Range: ast.NewRangeFromPositioned(checker.memoryGauge, entitlement), }, ) } - result = PrimitiveAccess(ast.AccessNotSpecified) - return } - semanticEntitlements = append(semanticEntitlements, entitlementType) - } - if access.EntitlementSet.Separator() == ast.Conjunction { - result = NewEntitlementSetAccess(semanticEntitlements, Conjunction) - return - } - result = NewEntitlementSetAccess(semanticEntitlements, Disjunction) - return - case *EntitlementMapType: - // 0-length entitlement lists are rejected by the parser - if len(astEntitlements) != 1 { - checker.report( - &InvalidMultipleMappedEntitlementError{ - Pos: astEntitlements[1].Identifier.Pos, - }, - ) - result = PrimitiveAccess(ast.AccessNotSpecified) - return + // construct a new "entitlement" type from the nominal type in the AST, but mark it as invalid for better error messages + entitlementType = NewEntitlementType(checker.memoryGauge, checker.Location, entitlement.Identifier.Identifier) + entitlementType.isInvalid = true } - result = NewEntitlementMapAccess(nominalType) - return - default: - // don't duplicate errors when the type here is invalid, as this will have triggered an error before - if nominalType != InvalidType { - checker.report( - &InvalidNonEntitlementAccessError{ - Range: ast.NewRangeFromPositioned(checker.memoryGauge, astEntitlements[0]), - }, - ) - } - result = PrimitiveAccess(ast.AccessNotSpecified) + semanticEntitlements = append(semanticEntitlements, entitlementType) + } + if access.EntitlementSet.Separator() == ast.Conjunction { + result = NewEntitlementSetAccess(semanticEntitlements, Conjunction) return } + result = NewEntitlementSetAccess(semanticEntitlements, Disjunction) + return } + panic(errors.NewUnreachableError()) } @@ -2148,40 +2300,6 @@ func (checker *Checker) predeclaredMembers(containerType Type) []*Member { return predeclaredMembers } -func (checker *Checker) checkVariableMove(expression ast.Expression) { - - identifierExpression, ok := expression.(*ast.IdentifierExpression) - if !ok { - return - } - - variable := checker.valueActivations.Find(identifierExpression.Identifier.Identifier) - if variable == nil { - return - } - - reportInvalidMove := func(declarationKind common.DeclarationKind) { - checker.report( - &InvalidMoveError{ - Name: variable.Identifier, - DeclarationKind: declarationKind, - Pos: identifierExpression.StartPosition(), - }, - ) - } - - switch ty := variable.Type.(type) { - case *TransactionType: - reportInvalidMove(common.DeclarationKindTransaction) - - case CompositeKindedType: - kind := ty.GetCompositeKind() - if kind == common.CompositeKindContract { - reportInvalidMove(common.DeclarationKindContract) - } - } -} - func (checker *Checker) checkTypeAnnotation(typeAnnotation TypeAnnotation, pos ast.HasPosition) { switch typeAnnotation.TypeAnnotationState() { @@ -2216,6 +2334,7 @@ func (checker *Checker) checkTypeAnnotation(typeAnnotation TypeAnnotation, pos a } checker.checkInvalidInterfaceAsType(typeAnnotation.Type, pos) + typeAnnotation.Type.CheckInstantiated(pos, checker.memoryGauge, checker.report) } func (checker *Checker) checkInvalidInterfaceAsType(ty Type, pos ast.HasPosition) { @@ -2246,7 +2365,7 @@ func (checker *Checker) TypeActivationDepth() int { func (checker *Checker) effectiveMemberAccess(access Access, containerKind ContainerKind) Access { switch containerKind { case ContainerKindComposite: - return checker.effectiveCompositeMemberAccess(access) + return checker.EffectiveCompositeMemberAccess(access) case ContainerKindInterface: return checker.effectiveInterfaceMemberAccess(access) default: @@ -2262,7 +2381,7 @@ func (checker *Checker) effectiveInterfaceMemberAccess(access Access) Access { } } -func (checker *Checker) effectiveCompositeMemberAccess(access Access) Access { +func (checker *Checker) EffectiveCompositeMemberAccess(access Access) Access { if !access.Equal(PrimitiveAccess(ast.AccessNotSpecified)) { return access } @@ -2340,7 +2459,8 @@ func (checker *Checker) convertInstantiationType(t *ast.InstantiationType) Type err := typeParameter.checkTypeBound( typeArgument, - ast.NewRangeFromPositioned(checker.memoryGauge, rawTypeArgument), + checker.memoryGauge, + rawTypeArgument, ) checker.report(err) } @@ -2368,24 +2488,88 @@ func (checker *Checker) convertInstantiationType(t *ast.InstantiationType) Type return ty } - return parameterizedType.Instantiate(typeArguments, checker.report) + return parameterizedType.Instantiate( + checker.memoryGauge, + typeArguments, + t.TypeArguments, + checker.report, + ) } -func (checker *Checker) VisitExpression(expr ast.Expression, expectedType Type) Type { +func (checker *Checker) VisitExpression(expr ast.Expression, parent ast.Element, expectedType Type) Type { // Always return 'visibleType' as the type of the expression, // to avoid bubbling up type-errors of inner expressions. - visibleType, _ := checker.visitExpression(expr, expectedType) + visibleType, _ := checker.visitExpression(expr, parent, expectedType) return visibleType } -func (checker *Checker) visitExpression(expr ast.Expression, expectedType Type) (visibleType Type, actualType Type) { - return checker.visitExpressionWithForceType(expr, expectedType, true) +func (checker *Checker) visitExpression(expr ast.Expression, parent ast.Element, expectedType Type) (visibleType Type, actualType Type) { + return checker.visitExpressionWithForceType(expr, parent, expectedType, true) } -func (checker *Checker) VisitExpressionWithForceType(expr ast.Expression, expectedType Type, forceType bool) Type { +func (checker *Checker) VisitExpressionWithForceType(expr ast.Expression, parent ast.Element, expectedType Type, forceType bool) Type { // Always return 'visibleType' as the type of the expression, // to avoid bubbling up type-errors of inner expressions. - visibleType, _ := checker.visitExpressionWithForceType(expr, expectedType, forceType) + visibleType, _ := checker.visitExpressionWithForceType(expr, parent, expectedType, forceType) + return visibleType +} + +func (checker *Checker) VisitExpressionWithReferenceCheck(expr ast.Expression, parent ast.Element, targetType Type) Type { + + // If the target type is or contains a reference type in particular, + // we do NOT use it as the expected type, + // to require an explicit type annotation and not infer it. + // + // This is done to avoid the following situation: + // + // For arguments in invocations, and for values of assignments, + // the target type is not obvious, which is potentially dangerous + // if the invoked function or assigned field is defined in a different location, + // and the target type potentially requires an authorization. + // + // For example, consider: + // + // // defined elsewhere, is going to mutate the passed array + // fun foo(ints: auth(Mutate) &[Int]) {} + // + // let ints = [1, 2, 3] + // // would implicitly allow mutation + // foo(&ints) + // + // A programmer should be able to look at a piece of code, + // and reason locally about whether a type will be inferred for a value + // based solely on how that value is used syntactically, + // not needing to worry about the actual or expected type of the value. + // + // Requiring an explicit type for *all* references, + // independent of if they require an authorization or not, + // is simple and allows the developer to see locally, and purely syntactically, + // that they are passing a reference and thus must annotate it. + + expectedType := targetType + if expectedType.IsOrContainsReferenceType() { + expectedType = nil + } + + visibleType := checker.VisitExpression(expr, parent, expectedType) + + // If we did not pass an expected type, + // we must manually check that the argument type and the parameter type are compatible. + + if expectedType == nil && + !visibleType.IsInvalidType() && + !IsSubType(visibleType, targetType) { + + checker.report( + &TypeMismatchError{ + ExpectedType: targetType, + ActualType: visibleType, + Expression: expr, + Range: checker.expressionRange(expr), + }, + ) + } + return visibleType } @@ -2406,6 +2590,7 @@ func (checker *Checker) VisitExpressionWithForceType(expr ast.Expression, expect // actualType - The actual type of the expression. func (checker *Checker) visitExpressionWithForceType( expr ast.Expression, + parent ast.Element, expectedType Type, forceType bool, ) (visibleType Type, actualType Type) { @@ -2413,11 +2598,15 @@ func (checker *Checker) visitExpressionWithForceType( // Cache the current contextually expected type, and set the `expectedType` // as the new contextually expected type. prevExpectedType := checker.expectedType + prevParent := checker.parent + checker.parent = parent checker.expectedType = expectedType defer func() { // Restore the prev contextually expected type checker.expectedType = prevExpectedType + // Restore the prev parent + checker.parent = prevParent }() actualType = ast.AcceptExpression[Type](expr, checker) diff --git a/runtime/sema/checker_test.go b/runtime/sema/checker_test.go index 5c88403d65..5824f4010d 100644 --- a/runtime/sema/checker_test.go +++ b/runtime/sema/checker_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,6 +57,15 @@ func TestOptionalSubtyping(t *testing.T) { ), ) }) + + t.Run("UInt8? <: FixedSizedUnsignedInteger?", func(t *testing.T) { + assert.True(t, + IsSubType( + &OptionalType{Type: UInt8Type}, + &OptionalType{Type: FixedSizeUnsignedIntegerType}, + ), + ) + }) } func TestCompositeType_ID(t *testing.T) { diff --git a/runtime/sema/config.go b/runtime/sema/config.go index 7221f8cad3..06f6e9ce95 100644 --- a/runtime/sema/config.go +++ b/runtime/sema/config.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,16 +26,16 @@ type Config struct { // ValidTopLevelDeclarationsHandler is used to determine the kinds of declarations // which are valid at the top-level for a given location ValidTopLevelDeclarationsHandler ValidTopLevelDeclarationsHandlerFunc - BaseTypeActivation *VariableActivation + BaseTypeActivationHandler ActivationHandlerFunc + BaseValueActivationHandler ActivationHandlerFunc // ImportHandler is used to resolve unresolved imports - ImportHandler ImportHandlerFunc - BaseValueActivation *VariableActivation + ImportHandler ImportHandlerFunc // CheckHandler is the function which is used for the checking of a program CheckHandler CheckHandlerFunc // LocationHandler is used to resolve locations LocationHandler LocationHandlerFunc // AccessCheckMode is the mode for access control checks. - // It determines how access modifiers how existing and missing acess modifiers are treated + // It determines how access modifiers how existing and missing access modifiers are treated AccessCheckMode AccessCheckMode // ExtendedElaborationEnabled determines if extended elaboration information is generated ExtendedElaborationEnabled bool diff --git a/runtime/sema/containerkind.go b/runtime/sema/containerkind.go index ea93ff106f..b768fea2b2 100644 --- a/runtime/sema/containerkind.go +++ b/runtime/sema/containerkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/crypto_algorithm_types.go b/runtime/sema/crypto_algorithm_types.go index b74d326bff..1d34e85542 100644 --- a/runtime/sema/crypto_algorithm_types.go +++ b/runtime/sema/crypto_algorithm_types.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/crypto_algorithm_types_test.go b/runtime/sema/crypto_algorithm_types_test.go index d05f6f5202..bf0f054385 100644 --- a/runtime/sema/crypto_algorithm_types_test.go +++ b/runtime/sema/crypto_algorithm_types_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/declarations.go b/runtime/sema/declarations.go index 4fe1b474f9..1bd85266db 100644 --- a/runtime/sema/declarations.go +++ b/runtime/sema/declarations.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/deployedcontract.gen.go b/runtime/sema/deployedcontract.gen.go index 864c5dd718..7574a6588b 100644 --- a/runtime/sema/deployedcontract.gen.go +++ b/runtime/sema/deployedcontract.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -81,6 +81,7 @@ var DeployedContractType = &SimpleType{ TypeTag: DeployedContractTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/deployedcontract.go b/runtime/sema/deployedcontract.go index 2581d4298f..f4c0cb1b58 100644 --- a/runtime/sema/deployedcontract.go +++ b/runtime/sema/deployedcontract.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/deployment_result.gen.go b/runtime/sema/deployment_result.gen.go index 0829352a90..b3784a7108 100644 --- a/runtime/sema/deployment_result.gen.go +++ b/runtime/sema/deployment_result.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/deployment_result.go b/runtime/sema/deployment_result.go index d360f76a71..b8c8c0d7bd 100644 --- a/runtime/sema/deployment_result.go +++ b/runtime/sema/deployment_result.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/elaboration.go b/runtime/sema/elaboration.go index a64add82da..ecac487040 100644 --- a/runtime/sema/elaboration.go +++ b/runtime/sema/elaboration.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -111,6 +111,11 @@ type ExpressionTypes struct { ExpectedType Type } +type ForStatementTypes struct { + IndexVariableType Type + ValueVariableType Type +} + type Elaboration struct { interfaceTypesAndDeclarationsBiMap *bimap.BiMap[*InterfaceType, *ast.InterfaceDeclaration] entitlementTypesAndDeclarationsBiMap *bimap.BiMap[*EntitlementType, *ast.EntitlementDeclaration] @@ -118,6 +123,7 @@ type Elaboration struct { fixedPointExpressionTypes map[*ast.FixedPointExpression]Type swapStatementTypes map[*ast.SwapStatement]SwapStatementTypes + forStatementTypes map[*ast.ForStatement]ForStatementTypes assignmentStatementTypes map[*ast.AssignmentStatement]AssignmentStatementTypes compositeDeclarationTypes map[ast.CompositeLikeDeclaration]*CompositeType compositeTypeDeclarations map[*CompositeType]ast.CompositeLikeDeclaration @@ -142,6 +148,7 @@ type Elaboration struct { nestedResourceMoveExpressions map[ast.Expression]struct{} compositeNestedDeclarations map[ast.CompositeLikeDeclaration]map[string]ast.Declaration interfaceNestedDeclarations map[*ast.InterfaceDeclaration]map[string]ast.Declaration + defaultDestroyDeclarations map[ast.Declaration]ast.CompositeLikeDeclaration postConditionsRewrites map[*ast.Conditions]PostConditionsRewrite emitStatementEventTypes map[*ast.EmitStatement]*CompositeType compositeTypes map[TypeID]*CompositeType @@ -729,6 +736,23 @@ func (e *Elaboration) SetInterfaceNestedDeclarations( e.interfaceNestedDeclarations[declaration] = nestedDeclaration } +func (e *Elaboration) DefaultDestroyDeclaration(declaration ast.Declaration) ast.CompositeLikeDeclaration { + if e.defaultDestroyDeclarations == nil { + return nil + } + return e.defaultDestroyDeclarations[declaration] +} + +func (e *Elaboration) SetDefaultDestroyDeclaration( + declaration ast.Declaration, + eventDeclaration ast.CompositeLikeDeclaration, +) { + if e.defaultDestroyDeclarations == nil { + e.defaultDestroyDeclarations = map[ast.Declaration]ast.CompositeLikeDeclaration{} + } + e.defaultDestroyDeclarations[declaration] = eventDeclaration +} + func (e *Elaboration) PostConditionsRewrite(conditions *ast.Conditions) (rewrite PostConditionsRewrite) { if e.postConditionsRewrites == nil { return @@ -1032,3 +1056,17 @@ func (e *Elaboration) GetSemanticAccess(access ast.Access) (semaAccess Access, p semaAccess, present = e.semanticAccesses[access] return } + +func (e *Elaboration) SetForStatementType(statement *ast.ForStatement, types ForStatementTypes) { + if e.forStatementTypes == nil { + e.forStatementTypes = map[*ast.ForStatement]ForStatementTypes{} + } + e.forStatementTypes[statement] = types +} + +func (e *Elaboration) ForStatementType(statement *ast.ForStatement) (types ForStatementTypes) { + if e.forStatementTypes == nil { + return + } + return e.forStatementTypes[statement] +} diff --git a/runtime/sema/entitlements.gen.go b/runtime/sema/entitlements.gen.go index 5ae0d1b995..07431a2deb 100644 --- a/runtime/sema/entitlements.gen.go +++ b/runtime/sema/entitlements.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/entitlements.go b/runtime/sema/entitlements.go index 3870c6e5cf..57b262fbea 100644 --- a/runtime/sema/entitlements.go +++ b/runtime/sema/entitlements.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/entitlementset.go b/runtime/sema/entitlementset.go new file mode 100644 index 0000000000..5871021ef1 --- /dev/null +++ b/runtime/sema/entitlementset.go @@ -0,0 +1,227 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package sema + +import ( + "sort" + "strings" + + "github.com/onflow/cadence/runtime/common/orderedmap" +) + +func disjunctionKey(disjunction *EntitlementOrderedSet) string { + // Gather type IDs, sorted + var typeIDs []string + disjunction.Foreach(func(entitlementType *EntitlementType, _ struct{}) { + typeIDs = append(typeIDs, string(entitlementType.ID())) + }) + sort.Strings(typeIDs) + + // Join type IDs + var sb strings.Builder + for index, typeID := range typeIDs { + if index > 0 { + sb.WriteByte('|') + } + sb.WriteString(typeID) + } + return sb.String() +} + +// DisjunctionOrderedSet is a set of entitlement disjunctions, keyed by disjunctionKey +type DisjunctionOrderedSet = orderedmap.OrderedMap[string, *EntitlementOrderedSet] + +// EntitlementSet is a set (conjunction) of entitlements and entitlement disjunctions. +// e.g. {entitlements: A, B; disjunctions: (C ∨ D), (E ∨ F)} +// This is distinct from an EntitlementSetAccess in Cadence, which is a program-level +// (and possibly non-minimal) approximation of this abstract set +type EntitlementSet struct { + // Entitlements is a set of entitlements + Entitlements *EntitlementOrderedSet + // Disjunctions is a set of entitlement disjunctions, keyed by disjunctionKey + Disjunctions *DisjunctionOrderedSet + // Minimized tracks whether the set is minimized or not + minimized bool +} + +// Add adds an entitlement to the set. +// +// NOTE: The resulting set is potentially not minimal: +// If the set contains a disjunction that contains the entitlement, +// then the disjunction is NOT discarded. +// Call Minimize to obtain a minimal set. +func (s *EntitlementSet) Add(entitlementType *EntitlementType) { + if s.Entitlements == nil { + s.Entitlements = orderedmap.New[EntitlementOrderedSet](1) + } + s.Entitlements.Set(entitlementType, struct{}{}) + + s.minimized = false +} + +// AddDisjunction adds an entitlement disjunction to the set. +// If the set already contains an entitlement of the given disjunction, +// then the disjunction is discarded. +func (s *EntitlementSet) AddDisjunction(disjunction *EntitlementOrderedSet) { + // If this set already contains an entitlement of the given disjunction, + // there is no need to add the disjunction. + if s.Entitlements != nil && + disjunction.ForAnyKey(s.Entitlements.Contains) { + + return + } + + // If the disjunction already exists in the set, + // there is no need to add the disjunction. + key := disjunctionKey(disjunction) + if s.Disjunctions != nil && s.Disjunctions.Contains(key) { + return + } + + if s.Disjunctions == nil { + s.Disjunctions = orderedmap.New[DisjunctionOrderedSet](1) + } + s.Disjunctions.Set(key, disjunction) + + s.minimized = false +} + +// Merge merges the other entitlement set into this set. +// The result is the union of the entitlements and disjunctions of both sets. +// +// The result is not necessarily minimal: +// For example, if s contains a disjunction d, +// and other contains an entitlement e that is part of d, +// then the result will still contain d. +// See Add. +// Call Minimize to obtain a minimal set. +func (s *EntitlementSet) Merge(other *EntitlementSet) { + if other.Entitlements != nil { + other.Entitlements.Foreach(func(key *EntitlementType, _ struct{}) { + s.Add(key) + }) + } + + if other.Disjunctions != nil { + other.Disjunctions. + Foreach(func(_ string, disjunction *EntitlementOrderedSet) { + s.AddDisjunction(disjunction) + }) + } + + s.minimized = false +} + +// Minimize minimizes the entitlement set. +// It removes disjunctions that contain entitlements +// which are also in the entitlement set +func (s *EntitlementSet) Minimize() { + defer func() { s.minimized = true }() + + // If there are no entitlements or no disjunctions, + // there is nothing to minimize + if s.Entitlements == nil || s.Disjunctions == nil { + return + } + + // Remove disjunctions that contain entitlements that are also in the entitlement set + var keysToRemove []string + s.Disjunctions.Foreach(func(key string, disjunction *EntitlementOrderedSet) { + if disjunction.ForAnyKey(s.Entitlements.Contains) { + keysToRemove = append(keysToRemove, key) + } + }) + + for _, key := range keysToRemove { + s.Disjunctions.Delete(key) + } +} + +// Returns whether this entitlement set is minimally representable in Cadence. +// +// If true, this set can be exactly represented as a non-nested logical formula: i.e. either a single conjunction or a single disjunction +// If false, this set cannot be represented without nesting connective operators, and thus must be over-approximated when being +// represented in Cadence. +// As Cadence does not support nesting disjunctions and conjunctions in the same entitlement set, this function returns false +// when s.Entitlements and s.Disjunctions are both non-empty, or when s.Disjunctions has more than one element +func (s *EntitlementSet) IsMinimallyRepresentable() bool { + if s == nil { + return true + } + + if !s.minimized { + s.Minimize() + } + + return s.Disjunctions.Len() == 0 || (s.Entitlements.Len() == 0 && s.Disjunctions.Len() == 1) +} + +// Access returns the access represented by the entitlement set. +// The set is minimized before the access is computed. +// Note that this function may over-approximate the permissions +// required to represent this set of entitlements as an access modifier that Cadence can use, +// e.g. `(A ∨ B) ∧ C` cannot be represented in Cadence and will the produce an over-approximation of `(A, B, C)` +func (s *EntitlementSet) Access() Access { + if s == nil { + return UnauthorizedAccess + } + + if !s.minimized { + s.Minimize() + } + + var entitlements *EntitlementOrderedSet + if s.Entitlements != nil && s.Entitlements.Len() > 0 { + entitlements = orderedmap.New[EntitlementOrderedSet](s.Entitlements.Len()) + entitlements.SetAll(s.Entitlements) + } + + if s.Disjunctions != nil && s.Disjunctions.Len() > 0 { + if entitlements == nil { + // If there are no entitlements, and there is only one disjunction, + // then the access is the disjunction. + if s.Disjunctions.Len() == 1 { + onlyDisjunction := s.Disjunctions.Oldest().Value + return EntitlementSetAccess{ + Entitlements: onlyDisjunction, + SetKind: Disjunction, + } + } + + // There are no entitlements, but disjunctions. + // Allocate a new ordered map for all entitlements in the disjunctions + // (at minimum there are two entitlements in each disjunction). + entitlements = orderedmap.New[EntitlementOrderedSet](s.Disjunctions.Len() * 2) + } + + // Add all entitlements in the disjunctions to the entitlements + s.Disjunctions.Foreach(func(_ string, disjunction *EntitlementOrderedSet) { + entitlements.SetAll(disjunction) + }) + } + + if entitlements == nil { + return UnauthorizedAccess + } + + return EntitlementSetAccess{ + Entitlements: entitlements, + SetKind: Conjunction, + } +} diff --git a/runtime/sema/entitlementset_test.go b/runtime/sema/entitlementset_test.go new file mode 100644 index 0000000000..9ca36405cf --- /dev/null +++ b/runtime/sema/entitlementset_test.go @@ -0,0 +1,668 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package sema + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/onflow/cadence/runtime/common/orderedmap" +) + +func TestEntitlementSet_Add(t *testing.T) { + t.Parallel() + + t.Run("no existing disjunctions", func(t *testing.T) { + + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + set.Add(e1) + + assert.False(t, set.minimized) + assert.Equal(t, 1, set.Entitlements.Len()) + assert.Nil(t, set.Disjunctions) + + e2 := &EntitlementType{ + Identifier: "E2", + } + set.Add(e2) + + assert.False(t, set.minimized) + assert.Equal(t, 2, set.Entitlements.Len()) + assert.Nil(t, set.Disjunctions) + }) + + t.Run("with existing disjunctions", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set.AddDisjunction(e1e2) + + assert.False(t, set.minimized) + assert.Nil(t, set.Entitlements) + assert.Equal(t, 1, set.Disjunctions.Len()) + + // Add + + set.Add(e2) + + assert.False(t, set.minimized) + assert.Equal(t, 1, set.Entitlements.Len()) + // NOTE: the set is not minimal, + // the disjunction is not discarded + assert.Equal(t, 1, set.Disjunctions.Len()) + + }) +} + +func TestEntitlementSet_AddDisjunction(t *testing.T) { + t.Parallel() + + t.Run("no existing entitlements", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + // Add + + set.AddDisjunction(e1e2) + + assert.False(t, set.minimized) + assert.Nil(t, set.Entitlements) + assert.Equal(t, 1, set.Disjunctions.Len()) + + // Re-add same + + set.AddDisjunction(e1e2) + + assert.False(t, set.minimized) + assert.Nil(t, set.Entitlements) + assert.Equal(t, 1, set.Disjunctions.Len()) + + // Re-add equal with different order + + e2e1 := orderedmap.New[EntitlementOrderedSet](2) + e2e1.Set(e2, struct{}{}) + e2e1.Set(e1, struct{}{}) + + set.AddDisjunction(e2e1) + + assert.False(t, set.minimized) + assert.Nil(t, set.Entitlements) + assert.Equal(t, 1, set.Disjunctions.Len()) + + // Re-add different, with partial overlap + + e3 := &EntitlementType{ + Identifier: "E3", + } + + e2e3 := orderedmap.New[EntitlementOrderedSet](2) + e2e3.Set(e2, struct{}{}) + e2e3.Set(e3, struct{}{}) + + set.AddDisjunction(e2e3) + + assert.False(t, set.minimized) + assert.Nil(t, set.Entitlements) + assert.Equal(t, 2, set.Disjunctions.Len()) + }) + + t.Run("with existing entitlements", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + + set.Add(e1) + + assert.False(t, set.minimized) + assert.Equal(t, 1, set.Entitlements.Len()) + assert.Nil(t, set.Disjunctions) + + // Add disjunction with overlap + + e2 := &EntitlementType{ + Identifier: "E2", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set.AddDisjunction(e1e2) + + assert.False(t, set.minimized) + assert.Equal(t, 1, set.Entitlements.Len()) + assert.Nil(t, set.Disjunctions) + }) +} + +func TestEntitlementSet_Merge(t *testing.T) { + t.Parallel() + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + e3 := &EntitlementType{ + Identifier: "E3", + } + e4 := &EntitlementType{ + Identifier: "E4", + } + + e2e3 := orderedmap.New[EntitlementOrderedSet](2) + e2e3.Set(e2, struct{}{}) + e2e3.Set(e3, struct{}{}) + + e3e4 := orderedmap.New[EntitlementOrderedSet](2) + e3e4.Set(e3, struct{}{}) + e3e4.Set(e4, struct{}{}) + + // Prepare set 1 + + set1 := &EntitlementSet{} + set1.Add(e1) + set1.AddDisjunction(e2e3) + + assert.False(t, set1.minimized) + assert.Equal(t, 1, set1.Entitlements.Len()) + assert.Equal(t, 1, set1.Disjunctions.Len()) + + // Prepare set 2 + + set2 := &EntitlementSet{} + set2.Add(e2) + set2.AddDisjunction(e3e4) + + assert.False(t, set2.minimized) + assert.Equal(t, 1, set2.Entitlements.Len()) + assert.Equal(t, 1, set2.Disjunctions.Len()) + + // Merge + + set1.Merge(set2) + + assert.False(t, set1.minimized) + assert.Equal(t, 2, set1.Entitlements.Len()) + assert.True(t, set1.Entitlements.Contains(e1)) + assert.True(t, set1.Entitlements.Contains(e2)) + + // NOTE: the result is not minimal + assert.Equal(t, 2, set1.Disjunctions.Len()) + assert.True(t, set1.Disjunctions.Contains(disjunctionKey(e2e3))) + assert.True(t, set1.Disjunctions.Contains(disjunctionKey(e3e4))) +} + +func TestEntitlementSet_Minimize(t *testing.T) { + t.Parallel() + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set := &EntitlementSet{} + set.AddDisjunction(e1e2) + + assert.Nil(t, set.Entitlements) + assert.Equal(t, 1, set.Disjunctions.Len()) + + // Add entitlement + + set.Add(e1) + + // NOTE: the set is not minimal + assert.False(t, set.minimized) + assert.Equal(t, 1, set.Entitlements.Len()) + assert.Equal(t, 1, set.Disjunctions.Len()) + + // Minimize + + set.Minimize() + + assert.True(t, set.minimized) + assert.Equal(t, 1, set.Entitlements.Len()) + assert.Equal(t, 0, set.Disjunctions.Len()) +} + +func TestEntitlementSet_MinimallyRepresentable(t *testing.T) { + t.Parallel() + + t.Run("no entitlements, no disjunctions: {} = true", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + assert.True(t, set.IsMinimallyRepresentable()) + }) + + t.Run("one entitlement, no disjunctions: {E1} = true", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + set.Add(e1) + + assert.True(t, set.IsMinimallyRepresentable()) + }) + + t.Run("two entitlements, no disjunctions: {E1, E2} = true", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + set.Add(e1) + + e2 := &EntitlementType{ + Identifier: "E2", + } + set.Add(e2) + + assert.True(t, set.IsMinimallyRepresentable()) + }) + + t.Run("one entitlement, redundant disjunction: {E1, (E1 | E2)} = true", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + + e2 := &EntitlementType{ + Identifier: "E2", + } + + set.Add(e1) + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set.AddDisjunction(e1e2) + + assert.True(t, set.IsMinimallyRepresentable()) + }) + + t.Run("two entitlements, two redundant disjunctions: {E1, E3, (E1 | E2), (E3 | E4)} = true", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + + e2 := &EntitlementType{ + Identifier: "E2", + } + + e3 := &EntitlementType{ + Identifier: "E1", + } + + e4 := &EntitlementType{ + Identifier: "E2", + } + + set.Add(e1) + set.Add(e3) + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set.AddDisjunction(e1e2) + + e3e4 := orderedmap.New[EntitlementOrderedSet](2) + e3e4.Set(e3, struct{}{}) + e3e4.Set(e4, struct{}{}) + + set.AddDisjunction(e3e4) + + assert.True(t, set.IsMinimallyRepresentable()) + }) + + t.Run("one entitlement, non-redundant disjunction: {E1, (E3 | E2)} = false", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + + e2 := &EntitlementType{ + Identifier: "E2", + } + + e3 := &EntitlementType{ + Identifier: "E3", + } + + set.Add(e1) + + e3e2 := orderedmap.New[EntitlementOrderedSet](2) + e3e2.Set(e3, struct{}{}) + e3e2.Set(e2, struct{}{}) + + set.AddDisjunction(e3e2) + + assert.False(t, set.IsMinimallyRepresentable()) + }) + + t.Run("two disjunctions: {(E1 | E2), (E2 | E3)} = false", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + + e2 := &EntitlementType{ + Identifier: "E2", + } + + e3 := &EntitlementType{ + Identifier: "E3", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set.AddDisjunction(e1e2) + + e3e2 := orderedmap.New[EntitlementOrderedSet](2) + e3e2.Set(e3, struct{}{}) + e3e2.Set(e2, struct{}{}) + + set.AddDisjunction(e3e2) + + assert.False(t, set.IsMinimallyRepresentable()) + }) +} + +func TestEntitlementSet_Access(t *testing.T) { + t.Parallel() + + t.Run("no entitlements, no disjunctions: {} = unauthorized", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + access := set.Access() + + assert.True(t, set.minimized) + assert.Equal(t, UnauthorizedAccess, access) + }) + + t.Run("entitlements, no disjunctions: {E1, E2} = auth(E1, E2)", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + set.Add(e1) + + e2 := &EntitlementType{ + Identifier: "E2", + } + set.Add(e2) + + assert.False(t, set.minimized) + access := set.Access() + assert.True(t, set.minimized) + + expectedEntitlements := orderedmap.New[EntitlementOrderedSet](2) + expectedEntitlements.Set(e1, struct{}{}) + expectedEntitlements.Set(e2, struct{}{}) + + assert.Equal(t, + EntitlementSetAccess{ + Entitlements: expectedEntitlements, + SetKind: Conjunction, + }, + access, + ) + }) + + t.Run("no entitlements, one disjunction: {(E1 | E2)} = auth(E1 | E2)", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set.AddDisjunction(e1e2) + + assert.False(t, set.minimized) + access := set.Access() + assert.True(t, set.minimized) + + assert.Equal(t, + EntitlementSetAccess{ + Entitlements: e1e2, + SetKind: Disjunction, + }, + access, + ) + }) + + t.Run("no entitlements, two disjunctions: {(E1 | E2), (E2 | E3)} = auth(E1, E2, E3)", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + e3 := &EntitlementType{ + Identifier: "E3", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + e2e3 := orderedmap.New[EntitlementOrderedSet](2) + e2e3.Set(e2, struct{}{}) + e2e3.Set(e3, struct{}{}) + + set.AddDisjunction(e1e2) + + assert.False(t, set.minimized) + set.Minimize() + assert.True(t, set.minimized) + + set.AddDisjunction(e2e3) + assert.False(t, set.minimized) + + access := set.Access() + assert.True(t, set.minimized) + + // Cannot express (E1 | E2), (E2 | E3) in an access/auth, + // so the result is the conjunction of all entitlements + assert.False(t, set.IsMinimallyRepresentable()) + + expectedEntitlements := orderedmap.New[EntitlementOrderedSet](3) + expectedEntitlements.Set(e1, struct{}{}) + expectedEntitlements.Set(e2, struct{}{}) + expectedEntitlements.Set(e3, struct{}{}) + + assert.Equal(t, + EntitlementSetAccess{ + Entitlements: expectedEntitlements, + SetKind: Conjunction, + }, + access, + ) + }) + + t.Run("entitlement, one disjunction, not minimal: {E1, (E2 | E3)} = auth(E1, E2, E3)", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + e3 := &EntitlementType{ + Identifier: "E3", + } + + set.Add(e1) + + e2e3 := orderedmap.New[EntitlementOrderedSet](2) + e2e3.Set(e2, struct{}{}) + e2e3.Set(e3, struct{}{}) + + set.AddDisjunction(e2e3) + assert.False(t, set.minimized) + + access := set.Access() + assert.True(t, set.minimized) + + // Cannot express E1, (E2 | E3) in an access/auth, + // so the result is the conjunction of all entitlements + assert.False(t, set.IsMinimallyRepresentable()) + + expectedEntitlements := orderedmap.New[EntitlementOrderedSet](3) + expectedEntitlements.Set(e1, struct{}{}) + expectedEntitlements.Set(e2, struct{}{}) + expectedEntitlements.Set(e3, struct{}{}) + + assert.Equal(t, + EntitlementSetAccess{ + Entitlements: expectedEntitlements, + SetKind: Conjunction, + }, + access, + ) + }) + + t.Run("entitlement, one disjunction, minimal: {(E1 | E2), E1} = auth(E1)", func(t *testing.T) { + t.Parallel() + + set := &EntitlementSet{} + + e1 := &EntitlementType{ + Identifier: "E1", + } + e2 := &EntitlementType{ + Identifier: "E2", + } + + e1e2 := orderedmap.New[EntitlementOrderedSet](2) + e1e2.Set(e1, struct{}{}) + e1e2.Set(e2, struct{}{}) + + set.AddDisjunction(e1e2) + assert.False(t, set.minimized) + + set.Minimize() + assert.True(t, set.minimized) + + set.Add(e1) + assert.False(t, set.minimized) + + access := set.Access() + assert.True(t, set.minimized) + + // NOTE: disjunction got removed during minimization + assert.True(t, set.IsMinimallyRepresentable()) + + expectedEntitlements := orderedmap.New[EntitlementOrderedSet](1) + expectedEntitlements.Set(e1, struct{}{}) + + assert.Equal(t, + EntitlementSetAccess{ + Entitlements: expectedEntitlements, + SetKind: Conjunction, + }, + access, + ) + }) +} diff --git a/runtime/sema/entrypoint.go b/runtime/sema/entrypoint.go index f8d081e95f..362bfba470 100644 --- a/runtime/sema/entrypoint.go +++ b/runtime/sema/entrypoint.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/errors.go b/runtime/sema/errors.go index 5d31b1d552..29bbd1e412 100644 --- a/runtime/sema/errors.go +++ b/runtime/sema/errors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -132,6 +132,10 @@ func (e CheckerError) ChildErrors() []error { return e.Errors } +func (e CheckerError) Unwrap() []error { + return e.Errors +} + func (e CheckerError) ImportLocation() common.Location { return e.Location } @@ -589,8 +593,9 @@ func (e *IncorrectArgumentLabelError) SuggestFixes(code string) []errors.Suggest // InvalidUnaryOperandError type InvalidUnaryOperandError struct { - ExpectedType Type - ActualType Type + ExpectedType Type + ExpectedTypeDescription string + ActualType Type ast.Range Operation ast.Operation } @@ -611,16 +616,25 @@ func (e *InvalidUnaryOperandError) Error() string { } func (e *InvalidUnaryOperandError) SecondaryError() string { - expected, actual := ErrorMessageExpectedActualTypes( - e.ExpectedType, - e.ActualType, - ) + expectedType := e.ExpectedType + if expectedType != nil { + expected, actual := ErrorMessageExpectedActualTypes( + e.ExpectedType, + e.ActualType, + ) - return fmt.Sprintf( - "expected `%s`, got `%s`", - expected, - actual, - ) + return fmt.Sprintf( + "expected `%s`, got `%s`", + expected, + actual, + ) + } else { + return fmt.Sprintf( + "expected %s, got `%s`", + e.ExpectedTypeDescription, + e.ActualType.QualifiedString(), + ) + } } // InvalidBinaryOperandError @@ -920,7 +934,7 @@ func (*UnknownSpecialFunctionError) isSemanticError() {} func (*UnknownSpecialFunctionError) IsUserError() {} func (e *UnknownSpecialFunctionError) Error() string { - return "unknown special function. did you mean `init`, `destroy`, or forget the `fun` keyword?" + return "unknown special function. did you mean `init` or forget the `fun` keyword?" } func (e *UnknownSpecialFunctionError) StartPosition() ast.Position { @@ -1645,29 +1659,6 @@ func (e *SpecialFunctionDefaultImplementationError) EndPosition(memoryGauge comm return e.Identifier.EndPosition(memoryGauge) } -// DefaultFunctionConflictError -type DefaultFunctionConflictError struct { - CompositeKindedType CompositeKindedType - Member *Member - ast.Range -} - -var _ SemanticError = &DefaultFunctionConflictError{} -var _ errors.UserError = &DefaultFunctionConflictError{} - -func (*DefaultFunctionConflictError) isSemanticError() {} - -func (*DefaultFunctionConflictError) IsUserError() {} - -func (e *DefaultFunctionConflictError) Error() string { - return fmt.Sprintf( - "%s `%s` has conflicting requirements for function `%s`", - e.CompositeKindedType.GetCompositeKind().Name(), - e.CompositeKindedType.QualifiedString(), - e.Member.Identifier.Identifier, - ) -} - // InterfaceMemberConflictError type InterfaceMemberConflictError struct { InterfaceType *InterfaceType @@ -2093,6 +2084,23 @@ func (e *InvalidNestedResourceMoveError) Error() string { return "cannot move nested resource" } +// InvalidInterfaceConditionResourceInvalidationError + +type InvalidInterfaceConditionResourceInvalidationError struct { + ast.Range +} + +var _ SemanticError = &InvalidInterfaceConditionResourceInvalidationError{} +var _ errors.UserError = &InvalidInterfaceConditionResourceInvalidationError{} + +func (*InvalidInterfaceConditionResourceInvalidationError) isSemanticError() {} + +func (*InvalidInterfaceConditionResourceInvalidationError) IsUserError() {} + +func (e *InvalidInterfaceConditionResourceInvalidationError) Error() string { + return "cannot invalidate resource in interface condition" +} + // InvalidResourceAnnotationError type InvalidResourceAnnotationError struct { @@ -2513,6 +2521,23 @@ func (e *EmitNonEventError) Error() string { ) } +// EmitDefaultDestroyEventError + +type EmitDefaultDestroyEventError struct { + ast.Range +} + +var _ SemanticError = &EmitDefaultDestroyEventError{} +var _ errors.UserError = &EmitDefaultDestroyEventError{} + +func (*EmitDefaultDestroyEventError) isSemanticError() {} + +func (*EmitDefaultDestroyEventError) IsUserError() {} + +func (e *EmitDefaultDestroyEventError) Error() string { + return "default destruction events may not be explicitly emitted" +} + // EmitImportedEventError type EmitImportedEventError struct { @@ -2556,76 +2581,6 @@ func (e *InvalidResourceAssignmentError) SecondaryError() string { return "consider force assigning (<-!) or swapping (<->)" } -// InvalidDestructorError - -type InvalidDestructorError struct { - ast.Range -} - -var _ SemanticError = &InvalidDestructorError{} -var _ errors.UserError = &InvalidDestructorError{} - -func (*InvalidDestructorError) isSemanticError() {} - -func (*InvalidDestructorError) IsUserError() {} - -func (e *InvalidDestructorError) Error() string { - return "cannot declare destructor for non-resource" -} - -// MissingDestructorError - -type MissingDestructorError struct { - ContainerType Type - FirstFieldName string - FirstFieldPos ast.Position -} - -var _ SemanticError = &MissingDestructorError{} -var _ errors.UserError = &MissingDestructorError{} - -func (*MissingDestructorError) isSemanticError() {} - -func (*MissingDestructorError) IsUserError() {} - -func (e *MissingDestructorError) Error() string { - return fmt.Sprintf( - "missing destructor for resource field `%s` in type `%s`", - e.FirstFieldName, - e.ContainerType.QualifiedString(), - ) -} - -func (e *MissingDestructorError) StartPosition() ast.Position { - return e.FirstFieldPos -} - -func (e *MissingDestructorError) EndPosition(memoryGauge common.MemoryGauge) ast.Position { - return e.FirstFieldPos.Shifted(memoryGauge, len(e.FirstFieldName)-1) -} - -// InvalidDestructorParametersError - -type InvalidDestructorParametersError struct { - ast.Range -} - -var _ SemanticError = &InvalidDestructorParametersError{} -var _ errors.UserError = &InvalidDestructorParametersError{} -var _ errors.SecondaryError = &InvalidDestructorParametersError{} - -func (*InvalidDestructorParametersError) isSemanticError() {} - -func (*InvalidDestructorParametersError) IsUserError() {} - -func (e *InvalidDestructorParametersError) Error() string { - return "invalid parameters for destructor" -} - -func (e *InvalidDestructorParametersError) SecondaryError() string { - return "consider removing these parameters" -} - // ResourceFieldNotInvalidatedError type ResourceFieldNotInvalidatedError struct { @@ -2840,6 +2795,42 @@ func (e *NonReferenceTypeReferenceError) SecondaryError() string { ) } +// ReferenceToAnOptionalError + +type ReferenceToAnOptionalError struct { + ReferencedOptionalType *OptionalType + ast.Range +} + +var _ SemanticError = &ReferenceToAnOptionalError{} +var _ errors.UserError = &ReferenceToAnOptionalError{} +var _ errors.SecondaryError = &ReferenceToAnOptionalError{} + +func (*ReferenceToAnOptionalError) isSemanticError() {} + +func (*ReferenceToAnOptionalError) IsUserError() {} + +func (e *ReferenceToAnOptionalError) Error() string { + return "cannot create reference" +} + +func (e *ReferenceToAnOptionalError) SecondaryError() string { + return fmt.Sprintf( + "expected non-optional type, got `%s`. Consider taking a reference with type `%s`", + e.ReferencedOptionalType.QualifiedString(), + + // Suggest taking the optional out of the reference type. + NewOptionalType( + nil, + NewReferenceType( + nil, + UnauthorizedAccess, + e.ReferencedOptionalType.Type, + ), + ), + ) +} + // InvalidResourceCreationError type InvalidResourceCreationError struct { @@ -3080,6 +3071,7 @@ func (e *InvalidAccessError) SecondaryError() string { fmt.Fprint(&sb, "reference needs all of entitlements ") missingEntitlements.ForeachWithIndex(enumerateEntitlements(missingLen, "and")) } + case Disjunction: // when both `required` is a disjunction, we know `possessed` has none of the entitlements in it: // suggest adding one of those entitlements @@ -3088,6 +3080,9 @@ func (e *InvalidAccessError) SecondaryError() string { requiredLen := requiredEntitlementsSet.Len() // singleton-1 sets are always conjunctions requiredEntitlementsSet.ForeachWithIndex(enumerateEntitlements(requiredLen, "or")) + + default: + panic(errors.NewUnreachableError()) } return sb.String() @@ -3661,7 +3656,7 @@ func (*InvalidIntersectedTypeError) IsUserError() {} func (e *InvalidIntersectedTypeError) Error() string { return fmt.Sprintf( - "cannot restrict using non-resource/structure interface type: `%s`", + "cannot restrict using non-resource/structure/contract interface type: `%s`", e.Type.QualifiedString(), ) } @@ -3710,27 +3705,6 @@ func (e *InvalidIntersectionTypeDuplicateError) Error() string { ) } -// InvalidNonConformanceIntersectionError - -type InvalidNonConformanceIntersectionError struct { - Type *InterfaceType - ast.Range -} - -var _ SemanticError = &InvalidNonConformanceIntersectionError{} -var _ errors.UserError = &InvalidNonConformanceIntersectionError{} - -func (*InvalidNonConformanceIntersectionError) isSemanticError() {} - -func (*InvalidNonConformanceIntersectionError) IsUserError() {} - -func (e *InvalidNonConformanceIntersectionError) Error() string { - return fmt.Sprintf( - "intersection type does not conform to restricting type: `%s`", - e.Type.QualifiedString(), - ) -} - // IntersectionMemberClashError type IntersectionMemberClashError struct { @@ -3846,6 +3820,47 @@ func (e *InvalidTypeArgumentCountError) SecondaryError() string { ) } +// MissingTypeArgumentError + +type MissingTypeArgumentError struct { + TypeArgumentName string + ast.Range +} + +var _ SemanticError = &MissingTypeArgumentError{} +var _ errors.UserError = &MissingTypeArgumentError{} + +func (e *MissingTypeArgumentError) isSemanticError() {} + +func (*MissingTypeArgumentError) IsUserError() {} + +func (e *MissingTypeArgumentError) Error() string { + return fmt.Sprintf("non-optional type argument %s missing", e.TypeArgumentName) +} + +// InvalidTypeArgumentError + +type InvalidTypeArgumentError struct { + TypeArgumentName string + Details string + ast.Range +} + +var _ SemanticError = &InvalidTypeArgumentError{} +var _ errors.UserError = &InvalidTypeArgumentError{} + +func (*InvalidTypeArgumentError) isSemanticError() {} + +func (*InvalidTypeArgumentError) IsUserError() {} + +func (e *InvalidTypeArgumentError) Error() string { + return fmt.Sprintf("type argument %s invalid", e.TypeArgumentName) +} + +func (e *InvalidTypeArgumentError) SecondaryError() string { + return e.Details +} + // TypeParameterTypeInferenceError type TypeParameterTypeInferenceError struct { @@ -4190,27 +4205,32 @@ func (e *InvalidEntitlementAccessError) EndPosition(common.MemoryGauge) ast.Posi return e.Pos } -// InvalidMultipleMappedEntitlementError -type InvalidMultipleMappedEntitlementError struct { - Pos ast.Position +// InvalidEntitlementMappingTypeError +type InvalidEntitlementMappingTypeError struct { + Type Type + Pos ast.Position } -var _ SemanticError = &InvalidMultipleMappedEntitlementError{} -var _ errors.UserError = &InvalidMultipleMappedEntitlementError{} +var _ SemanticError = &InvalidEntitlementMappingTypeError{} +var _ errors.UserError = &InvalidEntitlementMappingTypeError{} -func (*InvalidMultipleMappedEntitlementError) isSemanticError() {} +func (*InvalidEntitlementMappingTypeError) isSemanticError() {} -func (*InvalidMultipleMappedEntitlementError) IsUserError() {} +func (*InvalidEntitlementMappingTypeError) IsUserError() {} -func (e *InvalidMultipleMappedEntitlementError) Error() string { - return "entitlement mappings cannot be used as part of an entitlement set" +func (e *InvalidEntitlementMappingTypeError) Error() string { + return fmt.Sprintf("`%s` is not an entitlement map type", e.Type.QualifiedString()) } -func (e *InvalidMultipleMappedEntitlementError) StartPosition() ast.Position { +func (e *InvalidEntitlementMappingTypeError) SecondaryError() string { + return "consider removing the `mapping` keyword" +} + +func (e *InvalidEntitlementMappingTypeError) StartPosition() ast.Position { return e.Pos } -func (e *InvalidMultipleMappedEntitlementError) EndPosition(common.MemoryGauge) ast.Position { +func (e *InvalidEntitlementMappingTypeError) EndPosition(common.MemoryGauge) ast.Position { return e.Pos } @@ -4263,6 +4283,30 @@ func (e *InvalidMappedEntitlementMemberError) EndPosition(common.MemoryGauge) as return e.Pos } +// InvalidAttachmentMappedEntitlementMemberError +type InvalidAttachmentMappedEntitlementMemberError struct { + Pos ast.Position +} + +var _ SemanticError = &InvalidAttachmentMappedEntitlementMemberError{} +var _ errors.UserError = &InvalidAttachmentMappedEntitlementMemberError{} + +func (*InvalidAttachmentMappedEntitlementMemberError) isSemanticError() {} + +func (*InvalidAttachmentMappedEntitlementMemberError) IsUserError() {} + +func (e *InvalidAttachmentMappedEntitlementMemberError) Error() string { + return "entitlement mapped members are not yet supported on attachments" +} + +func (e *InvalidAttachmentMappedEntitlementMemberError) StartPosition() ast.Position { + return e.Pos +} + +func (e *InvalidAttachmentMappedEntitlementMemberError) EndPosition(common.MemoryGauge) ast.Position { + return e.Pos +} + // InvalidNonEntitlementAccessError type InvalidNonEntitlementAccessError struct { ast.Range @@ -4279,6 +4323,27 @@ func (e *InvalidNonEntitlementAccessError) Error() string { return "only entitlements may be used in access modifiers" } +// MappingAccessMissingKeywordError +type MappingAccessMissingKeywordError struct { + Type Type + ast.Range +} + +var _ SemanticError = &MappingAccessMissingKeywordError{} +var _ errors.UserError = &MappingAccessMissingKeywordError{} + +func (*MappingAccessMissingKeywordError) isSemanticError() {} + +func (*MappingAccessMissingKeywordError) IsUserError() {} + +func (e *MappingAccessMissingKeywordError) Error() string { + return "entitlement mapping access modifiers require the `mapping` keyword preceding the name of the map" +} + +func (e *MappingAccessMissingKeywordError) SecondaryError() string { + return fmt.Sprintf("replace `%s` with `mapping %s`", e.Type.QualifiedString(), e.Type.QualifiedString()) +} + // DirectEntitlementAnnotationError type DirectEntitlementAnnotationError struct { ast.Range @@ -4426,94 +4491,6 @@ func (e *CyclicEntitlementMappingError) Error() string { ) } -type DuplicateEntitlementRequirementError struct { - Entitlement *EntitlementType - ast.Range -} - -var _ SemanticError = &DuplicateEntitlementRequirementError{} -var _ errors.UserError = &DuplicateEntitlementRequirementError{} - -func (*DuplicateEntitlementRequirementError) isSemanticError() {} - -func (*DuplicateEntitlementRequirementError) IsUserError() {} - -func (e *DuplicateEntitlementRequirementError) Error() string { - return fmt.Sprintf("entitlement %s is already required by this attachment", e.Entitlement.QualifiedString()) -} - -type DuplicateEntitlementProvidedError struct { - Entitlement *EntitlementType - ast.Range -} - -var _ SemanticError = &DuplicateEntitlementProvidedError{} -var _ errors.UserError = &DuplicateEntitlementProvidedError{} - -func (*DuplicateEntitlementProvidedError) isSemanticError() {} - -func (*DuplicateEntitlementProvidedError) IsUserError() {} - -func (e *DuplicateEntitlementProvidedError) Error() string { - return fmt.Sprintf("entitlement %s is already provided to this attachment", e.Entitlement.QualifiedString()) -} - -// InvalidNonEntitlementRequirement -type InvalidNonEntitlementRequirement struct { - InvalidType Type - ast.Range -} - -var _ SemanticError = &InvalidNonEntitlementRequirement{} -var _ errors.UserError = &InvalidNonEntitlementRequirement{} - -func (*InvalidNonEntitlementRequirement) isSemanticError() {} - -func (*InvalidNonEntitlementRequirement) IsUserError() {} - -func (e *InvalidNonEntitlementRequirement) Error() string { - return fmt.Sprintf("cannot use %s as an entitlement requirement", e.InvalidType.QualifiedString()) -} - -// InvalidNonEntitlementRequirement -type InvalidNonEntitlementProvidedError struct { - InvalidType Type - ast.Range -} - -var _ SemanticError = &InvalidNonEntitlementProvidedError{} -var _ errors.UserError = &InvalidNonEntitlementProvidedError{} - -func (*InvalidNonEntitlementProvidedError) isSemanticError() {} - -func (*InvalidNonEntitlementProvidedError) IsUserError() {} - -func (e *InvalidNonEntitlementProvidedError) Error() string { - return fmt.Sprintf("cannot provide %s as an entitlement to this attachment", e.InvalidType.QualifiedString()) -} - -// InvalidNonEntitlementRequirement -type RequiredEntitlementNotProvidedError struct { - RequiredEntitlement *EntitlementType - AttachmentType *CompositeType - ast.Range -} - -var _ SemanticError = &RequiredEntitlementNotProvidedError{} -var _ errors.UserError = &RequiredEntitlementNotProvidedError{} - -func (*RequiredEntitlementNotProvidedError) isSemanticError() {} - -func (*RequiredEntitlementNotProvidedError) IsUserError() {} - -func (e *RequiredEntitlementNotProvidedError) Error() string { - return fmt.Sprintf( - "attachment type `%s` requires entitlement `%s` to be provided when attaching", - e.AttachmentType.QualifiedString(), - e.RequiredEntitlement.QualifiedString(), - ) -} - // InvalidBaseTypeError type InvalidBaseTypeError struct { @@ -4680,10 +4657,10 @@ func (e *AttachmentsNotEnabledError) Error() string { // InvalidAttachmentEntitlementError type InvalidAttachmentEntitlementError struct { - Attachment *CompositeType - AttachmentAccessModifier Access - InvalidEntitlement *EntitlementType - Pos ast.Position + Attachment *CompositeType + BaseType Type + InvalidEntitlement *EntitlementType + Pos ast.Position } var _ SemanticError = &InvalidAttachmentEntitlementError{} @@ -4705,15 +4682,10 @@ func (e *InvalidAttachmentEntitlementError) Error() string { } func (e *InvalidAttachmentEntitlementError) SecondaryError() string { - switch access := e.AttachmentAccessModifier.(type) { - case PrimitiveAccess: - return "attachments declared with `access(all)` access do not support entitlements on their members" - case *EntitlementMapAccess: - return fmt.Sprintf("`%s` must appear in the output of the entitlement mapping `%s`", - e.InvalidEntitlement.QualifiedIdentifier(), - access.Type.QualifiedIdentifier()) - } - return "" + return fmt.Sprintf("`%s` must appear in the base type `%s`", + e.InvalidEntitlement.QualifiedIdentifier(), + e.BaseType.String(), + ) } func (e *InvalidAttachmentEntitlementError) StartPosition() ast.Position { @@ -4723,3 +4695,117 @@ func (e *InvalidAttachmentEntitlementError) StartPosition() ast.Position { func (e *InvalidAttachmentEntitlementError) EndPosition(common.MemoryGauge) ast.Position { return e.Pos } + +// DefaultDestroyEventInNonResourceError + +type DefaultDestroyEventInNonResourceError struct { + Kind string + ast.Range +} + +var _ SemanticError = &DefaultDestroyEventInNonResourceError{} +var _ errors.UserError = &DefaultDestroyEventInNonResourceError{} + +func (*DefaultDestroyEventInNonResourceError) isSemanticError() {} + +func (*DefaultDestroyEventInNonResourceError) IsUserError() {} + +func (e *DefaultDestroyEventInNonResourceError) Error() string { + return fmt.Sprintf( + "cannot declare default destruction event in %s", + e.Kind, + ) +} + +type DefaultDestroyInvalidArgumentKind int + +const ( + NonDictionaryIndexExpression DefaultDestroyInvalidArgumentKind = iota + ReferenceTypedMemberAccess + InvalidIdentifier + InvalidExpression +) + +// DefaultDestroyInvalidArgumentError + +type DefaultDestroyInvalidArgumentError struct { + ast.Range + Kind DefaultDestroyInvalidArgumentKind +} + +var _ SemanticError = &DefaultDestroyInvalidArgumentError{} +var _ errors.UserError = &DefaultDestroyInvalidArgumentError{} + +func (*DefaultDestroyInvalidArgumentError) isSemanticError() {} + +func (*DefaultDestroyInvalidArgumentError) IsUserError() {} + +func (e *DefaultDestroyInvalidArgumentError) Error() string { + return "Invalid default destroy event argument" +} + +func (e *DefaultDestroyInvalidArgumentError) SecondaryError() string { + switch e.Kind { + case NonDictionaryIndexExpression: + return "Indexed accesses may only be performed on dictionaries" + case ReferenceTypedMemberAccess: + return "Member accesses in arguments may not contain reference types" + case InvalidIdentifier: + return "Identifiers other than `self` or `base` may not appear in arguments" + case InvalidExpression: + return "Arguments must be literals, member access expressions on `self` or `base`, indexed access expressions on dictionaries, or attachment accesses" + } + return "" +} + +// DefaultDestroyInvalidParameterError + +type DefaultDestroyInvalidParameterError struct { + ParamType Type + ast.Range +} + +var _ SemanticError = &DefaultDestroyInvalidParameterError{} +var _ errors.UserError = &DefaultDestroyInvalidParameterError{} + +func (*DefaultDestroyInvalidParameterError) isSemanticError() {} + +func (*DefaultDestroyInvalidParameterError) IsUserError() {} + +func (e *DefaultDestroyInvalidParameterError) Error() string { + return fmt.Sprintf("`%s` is not a valid parameter type for a default destroy event", e.ParamType.QualifiedString()) +} + +// InvalidTypeParameterizedNonNativeFunctionError + +type InvalidTypeParameterizedNonNativeFunctionError struct { + ast.Range +} + +var _ SemanticError = &InvalidTypeParameterizedNonNativeFunctionError{} +var _ errors.UserError = &InvalidTypeParameterizedNonNativeFunctionError{} + +func (*InvalidTypeParameterizedNonNativeFunctionError) isSemanticError() {} + +func (*InvalidTypeParameterizedNonNativeFunctionError) IsUserError() {} + +func (e *InvalidTypeParameterizedNonNativeFunctionError) Error() string { + return "invalid type parameters in non-native function" +} + +// NestedReferenceError +type NestedReferenceError struct { + Type *ReferenceType + ast.Range +} + +var _ SemanticError = &NestedReferenceError{} +var _ errors.UserError = &NestedReferenceError{} + +func (*NestedReferenceError) isSemanticError() {} + +func (*NestedReferenceError) IsUserError() {} + +func (e *NestedReferenceError) Error() string { + return fmt.Sprintf("cannot create a nested reference to value of type %s", e.Type.QualifiedString()) +} diff --git a/runtime/sema/errors_test.go b/runtime/sema/errors_test.go index e3a21312a4..d30d99e9a0 100644 --- a/runtime/sema/errors_test.go +++ b/runtime/sema/errors_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,13 @@ package sema import ( + "errors" + "fmt" "testing" "github.com/stretchr/testify/assert" + + "github.com/onflow/cadence/runtime/parser" ) func TestErrorMessageExpectedActualTypes(t *testing.T) { @@ -67,3 +71,59 @@ func TestErrorMessageExpectedActualTypes(t *testing.T) { }) } + +func TestUnwrappingCheckerError(t *testing.T) { + t.Parallel() + + targetErr := fmt.Errorf("target error") + + t.Run("unwrap matches child", func(t *testing.T) { + t.Parallel() + + err := CheckerError{ + Errors: []error{ + fmt.Errorf("first error"), + targetErr, + }, + } + + assert.True(t, errors.Is(err, targetErr)) + }) + + t.Run("unwrap matches wrapped child", func(t *testing.T) { + t.Parallel() + + err := CheckerError{ + Errors: []error{ + fmt.Errorf("first error"), + fmt.Errorf("wrapped error: %w", &InvalidPragmaError{}), + }, + } + + var pragmaErr *InvalidPragmaError + assert.True(t, errors.As(err, &pragmaErr)) + }) + + t.Run("unwrap finds wrapped grandchild", func(t *testing.T) { + t.Parallel() + + err := CheckerError{ + Errors: []error{ + fmt.Errorf("first error"), + fmt.Errorf("wrapped error: %w", &parser.Error{ + Errors: []error{ + fmt.Errorf("first parser error"), + targetErr, + }, + }), + }, + } + + var parserErr *parser.Error + assert.True(t, errors.As(err, &parserErr)) + assert.True(t, errors.Is(err, targetErr)) + + var pragmaErr *InvalidPragmaError + assert.False(t, errors.As(err, &pragmaErr)) + }) +} diff --git a/runtime/sema/function_activations.go b/runtime/sema/function_activations.go index 473007147a..f052cda4b2 100644 --- a/runtime/sema/function_activations.go +++ b/runtime/sema/function_activations.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/function_invocations.go b/runtime/sema/function_invocations.go index 72ae913655..1336344c82 100644 --- a/runtime/sema/function_invocations.go +++ b/runtime/sema/function_invocations.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/golden_test.go b/runtime/sema/gen/golden_test.go index 6eccdc779d..298004b3c4 100644 --- a/runtime/sema/gen/golden_test.go +++ b/runtime/sema/gen/golden_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -63,7 +63,9 @@ func TestConstructor(t *testing.T) { `, checker.ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -87,7 +89,9 @@ func TestContract(t *testing.T) { `, checker.ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/sema/gen/main.go b/runtime/sema/gen/main.go index b7778b0a97..d06e081257 100644 --- a/runtime/sema/gen/main.go +++ b/runtime/sema/gen/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ const headerTemplate = `// Code generated from {{ . }}. DO NOT EDIT. /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -155,6 +155,7 @@ type typeDecl struct { fullTypeName string compositeKind common.CompositeKind storable bool + primitive bool equatable bool exportable bool comparable bool @@ -524,6 +525,15 @@ func (g *generator) VisitCompositeDeclaration(decl *ast.CompositeDeclaration) (_ } typeDecl.storable = true + case "Primitive": + if !generateSimpleType { + panic(fmt.Errorf( + "composite types cannot be explicitly marked as primitive: %s", + g.currentTypeID(), + )) + } + typeDecl.primitive = true + case "Equatable": if !generateSimpleType { panic(fmt.Errorf( @@ -1576,6 +1586,7 @@ func simpleTypeLiteral(ty *typeDecl) dst.Expr { // tag: TestTypeTag, // IsResource: true, // Storable: false, + // Primitive: false, // Equatable: false, // Comparable: false, // Exportable: false, @@ -1590,6 +1601,7 @@ func simpleTypeLiteral(ty *typeDecl) dst.Expr { goKeyValue("TypeTag", typeTagVarIdent(ty.fullTypeName)), goKeyValue("IsResource", goBoolLit(isResource)), goKeyValue("Storable", goBoolLit(ty.storable)), + goKeyValue("Primitive", goBoolLit(ty.primitive)), goKeyValue("Equatable", goBoolLit(ty.equatable)), goKeyValue("Comparable", goBoolLit(ty.comparable)), goKeyValue("Exportable", goBoolLit(ty.exportable)), diff --git a/runtime/sema/gen/main_test.go b/runtime/sema/gen/main_test.go index e1862abb96..8e391a07a6 100644 --- a/runtime/sema/gen/main_test.go +++ b/runtime/sema/gen/main_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/comparable/helper.go b/runtime/sema/gen/testdata/comparable/helper.go index efc83f3b98..0051a97d30 100644 --- a/runtime/sema/gen/testdata/comparable/helper.go +++ b/runtime/sema/gen/testdata/comparable/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/comparable/test.golden.go b/runtime/sema/gen/testdata/comparable/test.golden.go index c088f5d175..dbdf47ffaa 100644 --- a/runtime/sema/gen/testdata/comparable/test.golden.go +++ b/runtime/sema/gen/testdata/comparable/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: true, Exportable: false, diff --git a/runtime/sema/gen/testdata/composite_type_pragma/test.golden.go b/runtime/sema/gen/testdata/composite_type_pragma/test.golden.go index 0ce3c47a03..3188c90e8b 100644 --- a/runtime/sema/gen/testdata/composite_type_pragma/test.golden.go +++ b/runtime/sema/gen/testdata/composite_type_pragma/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/constructor/test.golden.go b/runtime/sema/gen/testdata/constructor/test.golden.go index 3b2809675a..724875e182 100644 --- a/runtime/sema/gen/testdata/constructor/test.golden.go +++ b/runtime/sema/gen/testdata/constructor/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/contract/test.golden.go b/runtime/sema/gen/testdata/contract/test.golden.go index 1efdaeff66..03994b48cb 100644 --- a/runtime/sema/gen/testdata/contract/test.golden.go +++ b/runtime/sema/gen/testdata/contract/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/docstrings/helper.go b/runtime/sema/gen/testdata/docstrings/helper.go index 89877cfac0..81cec52907 100644 --- a/runtime/sema/gen/testdata/docstrings/helper.go +++ b/runtime/sema/gen/testdata/docstrings/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/docstrings/test.golden.go b/runtime/sema/gen/testdata/docstrings/test.golden.go index a35767c913..9ba25de09b 100644 --- a/runtime/sema/gen/testdata/docstrings/test.golden.go +++ b/runtime/sema/gen/testdata/docstrings/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -113,6 +113,7 @@ var DocstringsType = &sema.SimpleType{ TypeTag: DocstringsTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/entitlement/test.golden.go b/runtime/sema/gen/testdata/entitlement/test.golden.go index 1d44250ceb..0b82fc1e2e 100644 --- a/runtime/sema/gen/testdata/entitlement/test.golden.go +++ b/runtime/sema/gen/testdata/entitlement/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/equatable/helper.go b/runtime/sema/gen/testdata/equatable/helper.go index 1fe9bc6a2a..324b4d7f7a 100644 --- a/runtime/sema/gen/testdata/equatable/helper.go +++ b/runtime/sema/gen/testdata/equatable/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/equatable/test.golden.go b/runtime/sema/gen/testdata/equatable/test.golden.go index e102e7e6de..cd7da729a4 100644 --- a/runtime/sema/gen/testdata/equatable/test.golden.go +++ b/runtime/sema/gen/testdata/equatable/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: true, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/exportable/helper.go b/runtime/sema/gen/testdata/exportable/helper.go index 92baaf371c..992c0d97df 100644 --- a/runtime/sema/gen/testdata/exportable/helper.go +++ b/runtime/sema/gen/testdata/exportable/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/exportable/test.golden.go b/runtime/sema/gen/testdata/exportable/test.golden.go index 3124209d4a..60f7c0da47 100644 --- a/runtime/sema/gen/testdata/exportable/test.golden.go +++ b/runtime/sema/gen/testdata/exportable/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: true, diff --git a/runtime/sema/gen/testdata/fields/helper.go b/runtime/sema/gen/testdata/fields/helper.go index 0fbaa3f0f8..999ab93580 100644 --- a/runtime/sema/gen/testdata/fields/helper.go +++ b/runtime/sema/gen/testdata/fields/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/fields/test.golden.go b/runtime/sema/gen/testdata/fields/test.golden.go index 950c618e93..8902339801 100644 --- a/runtime/sema/gen/testdata/fields/test.golden.go +++ b/runtime/sema/gen/testdata/fields/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -150,6 +150,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/functions/helper.go b/runtime/sema/gen/testdata/functions/helper.go index eb10cbad92..b7804656e2 100644 --- a/runtime/sema/gen/testdata/functions/helper.go +++ b/runtime/sema/gen/testdata/functions/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/functions/test.golden.go b/runtime/sema/gen/testdata/functions/test.golden.go index 2c22638b28..ed97a62f6f 100644 --- a/runtime/sema/gen/testdata/functions/test.golden.go +++ b/runtime/sema/gen/testdata/functions/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -185,6 +185,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/importable/helper.go b/runtime/sema/gen/testdata/importable/helper.go index 6a02e2c7c5..cd13b57d0a 100644 --- a/runtime/sema/gen/testdata/importable/helper.go +++ b/runtime/sema/gen/testdata/importable/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/importable/test.golden.go b/runtime/sema/gen/testdata/importable/test.golden.go index 243be9b153..f3b73527c3 100644 --- a/runtime/sema/gen/testdata/importable/test.golden.go +++ b/runtime/sema/gen/testdata/importable/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/member_accessible/helper.go b/runtime/sema/gen/testdata/member_accessible/helper.go index 2632d04b5c..7c8486cdb8 100644 --- a/runtime/sema/gen/testdata/member_accessible/helper.go +++ b/runtime/sema/gen/testdata/member_accessible/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/member_accessible/test.golden.go b/runtime/sema/gen/testdata/member_accessible/test.golden.go index ec49013df0..15cee9f5cf 100644 --- a/runtime/sema/gen/testdata/member_accessible/test.golden.go +++ b/runtime/sema/gen/testdata/member_accessible/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/nested/test.golden.go b/runtime/sema/gen/testdata/nested/test.golden.go index d5a1058aa0..5b43f3d347 100644 --- a/runtime/sema/gen/testdata/nested/test.golden.go +++ b/runtime/sema/gen/testdata/nested/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/primitive/helper.go b/runtime/sema/gen/testdata/primitive/helper.go new file mode 100644 index 0000000000..cb064c8164 --- /dev/null +++ b/runtime/sema/gen/testdata/primitive/helper.go @@ -0,0 +1,23 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package primitive + +import "github.com/onflow/cadence/runtime/sema" + +var TestTypeTag sema.TypeTag diff --git a/runtime/sema/gen/testdata/primitive/test.cdc b/runtime/sema/gen/testdata/primitive/test.cdc new file mode 100644 index 0000000000..a1d0834ec7 --- /dev/null +++ b/runtime/sema/gen/testdata/primitive/test.cdc @@ -0,0 +1 @@ +access(all) struct Test: Primitive {} diff --git a/runtime/sema/gen/testdata/primitive/test.golden.go b/runtime/sema/gen/testdata/primitive/test.golden.go new file mode 100644 index 0000000000..1d24d81299 --- /dev/null +++ b/runtime/sema/gen/testdata/primitive/test.golden.go @@ -0,0 +1,39 @@ +// Code generated from testdata/primitive/test.cdc. DO NOT EDIT. +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package primitive + +import "github.com/onflow/cadence/runtime/sema" + +const TestTypeName = "Test" + +var TestType = &sema.SimpleType{ + Name: TestTypeName, + QualifiedName: TestTypeName, + TypeID: TestTypeName, + TypeTag: TestTypeTag, + IsResource: false, + Storable: false, + Primitive: true, + Equatable: false, + Comparable: false, + Exportable: false, + Importable: false, + ContainFields: false, +} diff --git a/runtime/sema/gen/testdata/simple_resource/helper.go b/runtime/sema/gen/testdata/simple_resource/helper.go index 16de616169..a86804e5d1 100644 --- a/runtime/sema/gen/testdata/simple_resource/helper.go +++ b/runtime/sema/gen/testdata/simple_resource/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/simple_resource/test.golden.go b/runtime/sema/gen/testdata/simple_resource/test.golden.go index a6876b92ce..551f26428f 100644 --- a/runtime/sema/gen/testdata/simple_resource/test.golden.go +++ b/runtime/sema/gen/testdata/simple_resource/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: true, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/simple_struct/helper.go b/runtime/sema/gen/testdata/simple_struct/helper.go index b9cf6dd4da..efead53986 100644 --- a/runtime/sema/gen/testdata/simple_struct/helper.go +++ b/runtime/sema/gen/testdata/simple_struct/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/simple_struct/test.golden.go b/runtime/sema/gen/testdata/simple_struct/test.golden.go index 4606268f1d..5631f80ade 100644 --- a/runtime/sema/gen/testdata/simple_struct/test.golden.go +++ b/runtime/sema/gen/testdata/simple_struct/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/gen/testdata/storable/helper.go b/runtime/sema/gen/testdata/storable/helper.go index cd8334e96c..72235b3b8f 100644 --- a/runtime/sema/gen/testdata/storable/helper.go +++ b/runtime/sema/gen/testdata/storable/helper.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/gen/testdata/storable/test.golden.go b/runtime/sema/gen/testdata/storable/test.golden.go index 5a01604df9..a7602e4047 100644 --- a/runtime/sema/gen/testdata/storable/test.golden.go +++ b/runtime/sema/gen/testdata/storable/test.golden.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ var TestType = &sema.SimpleType{ TypeTag: TestTypeTag, IsResource: false, Storable: true, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/hashable_struct.cdc b/runtime/sema/hashable_struct.cdc new file mode 100644 index 0000000000..2e8e966fda --- /dev/null +++ b/runtime/sema/hashable_struct.cdc @@ -0,0 +1,4 @@ + +/// HashableStructType represents the type that can be used as a Dictionary key type. +access(all) struct HashableStruct: Storable, Exportable, Importable { +} diff --git a/runtime/sema/hashable_struct.gen.go b/runtime/sema/hashable_struct.gen.go new file mode 100644 index 0000000000..4570d25e48 --- /dev/null +++ b/runtime/sema/hashable_struct.gen.go @@ -0,0 +1,37 @@ +// Code generated from hashable_struct.cdc. DO NOT EDIT. +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package sema + +const HashableStructTypeName = "HashableStruct" + +var HashableStructType = &SimpleType{ + Name: HashableStructTypeName, + QualifiedName: HashableStructTypeName, + TypeID: HashableStructTypeName, + TypeTag: HashableStructTypeTag, + IsResource: false, + Storable: true, + Primitive: false, + Equatable: false, + Comparable: false, + Exportable: true, + Importable: true, + ContainFields: false, +} diff --git a/runtime/sema/hashable_struct.go b/runtime/sema/hashable_struct.go new file mode 100644 index 0000000000..e923da1d65 --- /dev/null +++ b/runtime/sema/hashable_struct.go @@ -0,0 +1,21 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package sema + +//go:generate go run ./gen hashable_struct.cdc hashable_struct.gen.go diff --git a/runtime/sema/import.go b/runtime/sema/import.go index 8757c7e6c9..d43d478fc6 100644 --- a/runtime/sema/import.go +++ b/runtime/sema/import.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/initialization_info.go b/runtime/sema/initialization_info.go index 31146ad31a..06002ce980 100644 --- a/runtime/sema/initialization_info.go +++ b/runtime/sema/initialization_info.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/interfaceset.go b/runtime/sema/interfaceset.go index 5bd8bd7ccf..2013659151 100644 --- a/runtime/sema/interfaceset.go +++ b/runtime/sema/interfaceset.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/invalid_type.go b/runtime/sema/invalid_type.go index 409d50f5ab..e314bc207a 100644 --- a/runtime/sema/invalid_type.go +++ b/runtime/sema/invalid_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ var InvalidType = &SimpleType{ TypeTag: InvalidTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/member_accesses.go b/runtime/sema/member_accesses.go index 4dfbd3a17c..07fc6d378e 100644 --- a/runtime/sema/member_accesses.go +++ b/runtime/sema/member_accesses.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/meta_type.go b/runtime/sema/meta_type.go index 6ee455c1ab..87f5831a93 100644 --- a/runtime/sema/meta_type.go +++ b/runtime/sema/meta_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,6 +40,7 @@ var MetaType = &SimpleType{ TypeTag: MetaTypeTag, IsResource: false, Storable: true, + Primitive: false, Equatable: true, Comparable: false, Exportable: true, diff --git a/runtime/sema/never_type.go b/runtime/sema/never_type.go index 0d3fe642f5..22e8bc35e3 100644 --- a/runtime/sema/never_type.go +++ b/runtime/sema/never_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ var NeverType = &SimpleType{ TypeTag: NeverTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/occurrences.go b/runtime/sema/occurrences.go index a7ecbde505..f1d3a134e2 100644 --- a/runtime/sema/occurrences.go +++ b/runtime/sema/occurrences.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/orderdmaps.go b/runtime/sema/orderdmaps.go index ab80a7412f..cc4ac852e9 100644 --- a/runtime/sema/orderdmaps.go +++ b/runtime/sema/orderdmaps.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/path_type.go b/runtime/sema/path_type.go index fa443cd17f..4334054f60 100644 --- a/runtime/sema/path_type.go +++ b/runtime/sema/path_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,14 +26,11 @@ var PathType = &SimpleType{ TypeTag: PathTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: false, Exportable: true, Importable: true, - IsSuperTypeOf: func(subType Type) bool { - return IsSubType(subType, StoragePathType) || - IsSubType(subType, CapabilityPathType) - }, } var PathTypeAnnotation = NewTypeAnnotation(PathType) @@ -46,6 +43,7 @@ var StoragePathType = &SimpleType{ TypeTag: StoragePathTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: false, Exportable: true, @@ -62,14 +60,11 @@ var CapabilityPathType = &SimpleType{ TypeTag: CapabilityPathTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: false, Exportable: true, Importable: true, - IsSuperTypeOf: func(subType Type) bool { - return IsSubType(subType, PrivatePathType) || - IsSubType(subType, PublicPathType) - }, } var CapabilityPathTypeAnnotation = NewTypeAnnotation(CapabilityPathType) @@ -82,6 +77,7 @@ var PublicPathType = &SimpleType{ TypeTag: PublicPathTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: false, Exportable: true, @@ -98,6 +94,7 @@ var PrivatePathType = &SimpleType{ TypeTag: PrivatePathTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: false, Exportable: true, diff --git a/runtime/sema/positioninfo.go b/runtime/sema/positioninfo.go index eea7b2d760..8c4b19dc5e 100644 --- a/runtime/sema/positioninfo.go +++ b/runtime/sema/positioninfo.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/post_conditions_rewrite.go b/runtime/sema/post_conditions_rewrite.go index 922a0e5384..963d2dd99f 100644 --- a/runtime/sema/post_conditions_rewrite.go +++ b/runtime/sema/post_conditions_rewrite.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/ranges.go b/runtime/sema/ranges.go index a970552a12..232ccbf5b9 100644 --- a/runtime/sema/ranges.go +++ b/runtime/sema/ranges.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/resolve.go b/runtime/sema/resolve.go index 24cf1f8165..4c35f91500 100644 --- a/runtime/sema/resolve.go +++ b/runtime/sema/resolve.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/resource_invalidation.go b/runtime/sema/resource_invalidation.go index e49661ba4d..48bcc697ff 100644 --- a/runtime/sema/resource_invalidation.go +++ b/runtime/sema/resource_invalidation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/resourceinfo.go b/runtime/sema/resourceinfo.go index c88a2cdbe6..d6fec762bd 100644 --- a/runtime/sema/resourceinfo.go +++ b/runtime/sema/resourceinfo.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/resourceinvalidationkind.go b/runtime/sema/resourceinvalidationkind.go index 982eaab6a5..40b0501ab3 100644 --- a/runtime/sema/resourceinvalidationkind.go +++ b/runtime/sema/resourceinvalidationkind.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/resources.go b/runtime/sema/resources.go index 5c28541dc3..5d9ff04e8f 100644 --- a/runtime/sema/resources.go +++ b/runtime/sema/resources.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/resources_test.go b/runtime/sema/resources_test.go index 747f5a2da1..68a7ea8e84 100644 --- a/runtime/sema/resources_test.go +++ b/runtime/sema/resources_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/return_info.go b/runtime/sema/return_info.go index 9622df0411..df76324836 100644 --- a/runtime/sema/return_info.go +++ b/runtime/sema/return_info.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/runtime_type_constructors.go b/runtime/sema/runtime_type_constructors.go index 86bec84979..c52ab0ccb4 100644 --- a/runtime/sema/runtime_type_constructors.go +++ b/runtime/sema/runtime_type_constructors.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -110,20 +110,6 @@ var CompositeTypeFunctionType = NewSimpleFunctionType( OptionalMetaTypeAnnotation, ) -const InterfaceTypeFunctionName = "InterfaceType" - -var InterfaceTypeFunctionType = NewSimpleFunctionType( - FunctionPurityView, - []Parameter{ - { - Label: ArgumentLabelNotRequired, - Identifier: "identifier", - TypeAnnotation: StringTypeAnnotation, - }, - }, - OptionalMetaTypeAnnotation, -) - const FunctionTypeFunctionName = "FunctionType" var FunctionTypeFunctionType = NewSimpleFunctionType( @@ -197,6 +183,20 @@ var CapabilityTypeFunctionType = NewSimpleFunctionType( OptionalMetaTypeAnnotation, ) +const InclusiveRangeTypeFunctionName = "InclusiveRangeType" + +var InclusiveRangeTypeFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "type", + TypeAnnotation: MetaTypeAnnotation, + }, + }, + OptionalMetaTypeAnnotation, +) + var runtimeTypeConstructors = []*RuntimeTypeConstructor{ { Name: OptionalTypeFunctionName, @@ -230,13 +230,6 @@ var runtimeTypeConstructors = []*RuntimeTypeConstructor{ Returns nil if the identifier does not correspond to any composite type.`, }, - { - Name: InterfaceTypeFunctionName, - Value: InterfaceTypeFunctionType, - DocString: `Creates a run-time type representing the interface type associated with the given type identifier. - Returns nil if the identifier does not correspond to any interface type.`, - }, - { Name: FunctionTypeFunctionName, Value: FunctionTypeFunctionType, @@ -268,4 +261,11 @@ var runtimeTypeConstructors = []*RuntimeTypeConstructor{ Value: CapabilityTypeFunctionType, DocString: "Creates a run-time type representing a capability type of the given reference type. Returns nil if the type is not a reference.", }, + + { + Name: InclusiveRangeTypeFunctionName, + Value: InclusiveRangeTypeFunctionType, + DocString: `Creates a run-time type representing an inclusive range type of the given run-time member type. + Returns nil if the member type is not a valid inclusive range member type.`, + }, } diff --git a/runtime/sema/simple_type.go b/runtime/sema/simple_type.go index 7e6affd690..7f2d7e362a 100644 --- a/runtime/sema/simple_type.go +++ b/runtime/sema/simple_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,7 +35,6 @@ type ValueIndexingInfo struct { // SimpleType represents a simple nominal type. type SimpleType struct { ValueIndexingInfo ValueIndexingInfo - IsSuperTypeOf func(subType Type) bool NestedTypes *StringTypeOrderedMap memberResolvers map[string]MemberResolver Members func(*SimpleType) map[string]MemberResolver @@ -49,6 +48,7 @@ type SimpleType struct { Equatable bool Comparable bool Storable bool + Primitive bool IsResource bool ContainFields bool } @@ -83,10 +83,18 @@ func (t *SimpleType) IsResourceType() bool { return t.IsResource } +func (t *SimpleType) IsPrimitiveType() bool { + return t.Primitive +} + func (t *SimpleType) IsInvalidType() bool { return t == InvalidType } +func (*SimpleType) IsOrContainsReferenceType() bool { + return false +} + func (t *SimpleType) IsStorable(_ map[*Member]bool) bool { return t.Storable } @@ -119,7 +127,13 @@ func (t *SimpleType) RewriteWithIntersectionTypes() (Type, bool) { return t, false } -func (*SimpleType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*SimpleType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { return false } @@ -177,3 +191,7 @@ func (t *SimpleType) CompositeKind() common.CompositeKind { return common.CompositeKindStructure } } + +func (t *SimpleType) CheckInstantiated(_ ast.HasPosition, _ common.MemoryGauge, _ func(err error)) { + // NO-OP +} diff --git a/runtime/sema/storable_type.go b/runtime/sema/storable_type.go index b3607b65a3..234653e9de 100644 --- a/runtime/sema/storable_type.go +++ b/runtime/sema/storable_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,12 +35,9 @@ var StorableType = &SimpleType{ // for e.g. parameters, return types, fields, etc. IsResource: false, Storable: true, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, Importable: false, - IsSuperTypeOf: func(subType Type) bool { - storableResults := map[*Member]bool{} - return subType.IsStorable(storableResults) - }, } diff --git a/runtime/sema/storage_capability_controller.gen.go b/runtime/sema/storage_capability_controller.gen.go index 9ef52376db..585b815dbf 100644 --- a/runtime/sema/storage_capability_controller.gen.go +++ b/runtime/sema/storage_capability_controller.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -137,6 +137,7 @@ var StorageCapabilityControllerType = &SimpleType{ TypeTag: StorageCapabilityControllerTypeTag, IsResource: false, Storable: false, + Primitive: false, Equatable: false, Comparable: false, Exportable: false, diff --git a/runtime/sema/storage_capability_controller.go b/runtime/sema/storage_capability_controller.go index 8123053a17..ab1b594461 100644 --- a/runtime/sema/storage_capability_controller.go +++ b/runtime/sema/storage_capability_controller.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/string_type.go b/runtime/sema/string_type.go index 74b9baaccf..70bb4122fd 100644 --- a/runtime/sema/string_type.go +++ b/runtime/sema/string_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,6 +55,7 @@ var StringType = &SimpleType{ TypeTag: StringTypeTag, IsResource: false, Storable: true, + Primitive: true, Equatable: true, Comparable: true, Exportable: true, @@ -116,6 +117,12 @@ func init() { StringTypeSplitFunctionType, StringTypeSplitFunctionDocString, ), + NewUnmeteredPublicFunctionMember( + t, + StringTypeReplaceAllFunctionName, + StringTypeReplaceAllFunctionType, + StringTypeReplaceAllFunctionDocString, + ), }) } } @@ -163,6 +170,13 @@ It does not modify the original string. If either of the parameters are out of the bounds of the string, or the indices are invalid (` + "`from > upTo`" + `), then the function will fail ` +const StringTypeReplaceAllFunctionName = "replaceAll" +const StringTypeReplaceAllFunctionDocString = ` +Returns a new string after replacing all the occurrences of parameter ` + "`of` with the parameter `with`" + `. + +If ` + "`with`" + ` is empty, it matches at the beginning of the string and after each UTF-8 sequence, yielding k+1 replacements for a string of length k. +` + // ByteArrayType represents the type [UInt8] var ByteArrayType = &VariableSizedType{ Type: UInt8Type, @@ -361,3 +375,18 @@ var StringTypeSplitFunctionType = NewSimpleFunctionType( }, ), ) + +var StringTypeReplaceAllFunctionType = NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Identifier: "of", + TypeAnnotation: StringTypeAnnotation, + }, + { + Identifier: "with", + TypeAnnotation: StringTypeAnnotation, + }, + }, + StringTypeAnnotation, +) diff --git a/runtime/sema/type.go b/runtime/sema/type.go index cf7be4bf8e..42d72439ae 100644 --- a/runtime/sema/type.go +++ b/runtime/sema/type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,6 @@ import ( "github.com/onflow/cadence/fixedpoint" "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" - "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/onflow/cadence/runtime/errors" ) @@ -105,6 +104,11 @@ type Type interface { QualifiedString() string Equal(other Type) bool + // IsPrimitiveType returns true if the type is itself a primitive, + // Note that the container of a primitive type (e.g. optionals, arrays, dictionaries, etc.) + // are not a primitive. + IsPrimitiveType() bool + // IsResourceType returns true if the type is itself a resource (a `CompositeType` with resource kind), // or it contains a resource type (e.g. for optionals, arrays, dictionaries, etc.) IsResourceType() bool @@ -113,6 +117,10 @@ type Type interface { // or it contains an invalid type (e.g. for optionals, arrays, dictionaries, etc.) IsInvalidType() bool + // IsOrContainsReferenceType returns true if the type is itself a reference type, + // or it contains a reference type (e.g. for optionals, arrays, dictionaries, etc.) + IsOrContainsReferenceType() bool + // IsStorable returns true if the type is allowed to be a stored, // e.g. in a field of a composite type. // @@ -186,7 +194,8 @@ type Type interface { other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool // Resolve returns a type that is free of generic types (see `GenericType`), @@ -203,6 +212,8 @@ type Type interface { // i.e. `[T]` would map to `f([f(T)])`, but the internals of composite types are not // inspected, as they appear simply as nominal types in annotations Map(memoryGauge common.MemoryGauge, typeParamMap map[*TypeParameter]*TypeParameter, f func(Type) Type) Type + + CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) } // ValueIndexableType is a type which can be indexed into using a value @@ -226,7 +237,7 @@ type MemberResolver struct { Resolve func( memoryGauge common.MemoryGauge, identifier string, - targetRange ast.Range, + targetRange ast.HasPosition, report func(error), ) *Member Kind common.DeclarationKind @@ -241,7 +252,7 @@ type NominalType interface { // entitlement supporting types type EntitlementSupportingType interface { Type - SupportedEntitlements() *EntitlementOrderedSet + SupportedEntitlements() *EntitlementSet } // ContainedType is a type which might have a container type @@ -304,6 +315,7 @@ func TypeActivationNestedType(typeActivation *VariableActivation, qualifiedIdent // CompositeKindedType is a type which has a composite kind type CompositeKindedType interface { Type + EntitlementSupportingType GetCompositeKind() common.CompositeKind } @@ -317,20 +329,55 @@ type LocatedType interface { type ParameterizedType interface { Type TypeParameters() []*TypeParameter - Instantiate(typeArguments []Type, report func(err error)) Type + Instantiate( + memoryGauge common.MemoryGauge, + typeArguments []Type, + astTypeArguments []*ast.TypeAnnotation, + report func(err error), + ) Type BaseType() Type TypeArguments() []Type } func MustInstantiate(t ParameterizedType, typeArguments ...Type) Type { return t.Instantiate( + nil, /* memoryGauge */ typeArguments, + nil, /* astTypeArguments */ func(err error) { panic(errors.NewUnexpectedErrorFromCause(err)) }, ) } +func CheckParameterizedTypeInstantiated( + t ParameterizedType, + pos ast.HasPosition, + memoryGauge common.MemoryGauge, + report func(err error), +) { + typeArgs := t.TypeArguments() + typeParameters := t.TypeParameters() + + // The check for the argument and parameter count already happens in the checker, so we skip that here. + + // Ensure that each non-optional typeparameter is non-nil. + for index, typeParam := range typeParameters { + if !typeParam.Optional && typeArgs[index] == nil { + report( + &MissingTypeArgumentError{ + TypeArgumentName: typeParam.Name, + Range: ast.NewRange( + memoryGauge, + pos.StartPosition(), + pos.EndPosition(memoryGauge), + ), + }, + ) + } + } +} + // TypeAnnotation type TypeAnnotation struct { @@ -544,7 +591,7 @@ func withBuiltinMembers(ty Type, members map[string]MemberResolver) map[string]M members[IsInstanceFunctionName] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.HasPosition, _ func(error)) *Member { return NewPublicFunctionMember( memoryGauge, ty, @@ -559,7 +606,7 @@ func withBuiltinMembers(ty Type, members map[string]MemberResolver) map[string]M members[GetTypeFunctionName] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.HasPosition, _ func(error)) *Member { return NewPublicFunctionMember( memoryGauge, ty, @@ -576,7 +623,7 @@ func withBuiltinMembers(ty Type, members map[string]MemberResolver) map[string]M members[ToStringFunctionName] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.HasPosition, _ func(error)) *Member { return NewPublicFunctionMember( memoryGauge, ty, @@ -594,7 +641,7 @@ func withBuiltinMembers(ty Type, members map[string]MemberResolver) map[string]M members[ToBigEndianBytesFunctionName] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.HasPosition, _ func(error)) *Member { return NewPublicFunctionMember( memoryGauge, ty, @@ -650,7 +697,7 @@ func (t *OptionalType) QualifiedString() string { } func FormatOptionalTypeID[T ~string](elementTypeID T) T { - return T(fmt.Sprintf("%s?", elementTypeID)) + return T(fmt.Sprintf("(%s)?", elementTypeID)) } func (t *OptionalType) ID() TypeID { @@ -669,10 +716,18 @@ func (t *OptionalType) IsResourceType() bool { return t.Type.IsResourceType() } +func (t *OptionalType) IsPrimitiveType() bool { + return t.Type.IsPrimitiveType() +} + func (t *OptionalType) IsInvalidType() bool { return t.Type.IsInvalidType() } +func (t *OptionalType) IsOrContainsReferenceType() bool { + return t.Type.IsOrContainsReferenceType() +} + func (t *OptionalType) IsStorable(results map[*Member]bool) bool { return t.Type.IsStorable(results) } @@ -716,7 +771,8 @@ func (t *OptionalType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool { otherOptional, ok := other.(*OptionalType) @@ -724,7 +780,13 @@ func (t *OptionalType) Unify( return false } - return t.Type.Unify(otherOptional.Type, typeParameters, report, outerRange) + return t.Type.Unify( + otherOptional.Type, + typeParameters, + report, + memoryGauge, + outerRange, + ) } func (t *OptionalType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type { @@ -739,13 +801,17 @@ func (t *OptionalType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type } } -func (t *OptionalType) SupportedEntitlements() *EntitlementOrderedSet { +func (t *OptionalType) SupportedEntitlements() *EntitlementSet { if entitlementSupportingType, ok := t.Type.(EntitlementSupportingType); ok { return entitlementSupportingType.SupportedEntitlements() } return nil } +func (t *OptionalType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + t.Type.CheckInstantiated(pos, memoryGauge, report) +} + const optionalTypeMapFunctionDocString = ` Returns an optional of the result of calling the given function with the value of this optional when it is not nil. @@ -766,33 +832,41 @@ func (t *OptionalType) GetMembers() map[string]MemberResolver { func (t *OptionalType) initializeMembers() { t.memberResolversOnce.Do(func() { - t.memberResolvers = withBuiltinMembers(t, map[string]MemberResolver{ - OptionalTypeMapFunctionName: { - Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { - - // It's invalid for an optional of a resource to have a `map` function + t.memberResolvers = withBuiltinMembers( + t, + map[string]MemberResolver{ + OptionalTypeMapFunctionName: { + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + + // It's invalid for an optional of a resource to have a `map` function + + if t.Type.IsResourceType() { + report( + &InvalidResourceOptionalMemberError{ + Name: identifier, + DeclarationKind: common.DeclarationKindFunction, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), + }, + ) + } - if t.Type.IsResourceType() { - report( - &InvalidResourceOptionalMemberError{ - Name: identifier, - DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, - }, + return NewPublicFunctionMember( + memoryGauge, + t, + identifier, + OptionalTypeMapFunctionType(t.Type), + optionalTypeMapFunctionDocString, ) - } - - return NewPublicFunctionMember( - memoryGauge, - t, - identifier, - OptionalTypeMapFunctionType(t.Type), - optionalTypeMapFunctionDocString, - ) + }, }, }, - }) + ) }) } @@ -878,10 +952,18 @@ func (*GenericType) IsResourceType() bool { return false } +func (*GenericType) IsPrimitiveType() bool { + return false +} + func (*GenericType) IsInvalidType() bool { return false } +func (*GenericType) IsOrContainsReferenceType() bool { + return false +} + func (*GenericType) IsStorable(_ map[*Member]bool) bool { return false } @@ -918,7 +1000,8 @@ func (t *GenericType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool { if unifiedType, ok := typeParameters.Get(t.TypeParameter); ok { @@ -933,7 +1016,7 @@ func (t *GenericType) Unify( TypeParameter: t.TypeParameter, ExpectedType: unifiedType, ActualType: other, - Range: outerRange, + Range: ast.NewRangeFromPositioned(memoryGauge, outerRange), }, ) } @@ -946,7 +1029,7 @@ func (t *GenericType) Unify( // If the type parameter corresponding to the type argument has a type bound, // then check that the argument's type is a subtype of the type bound. - err := t.TypeParameter.checkTypeBound(other, outerRange) + err := t.TypeParameter.checkTypeBound(other, memoryGauge, outerRange) if err != nil { report(err) } @@ -963,7 +1046,7 @@ func (t *GenericType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type { return ty } -func (t *GenericType) Map(gauge common.MemoryGauge, typeParamMap map[*TypeParameter]*TypeParameter, f func(Type) Type) Type { +func (t *GenericType) Map(_ common.MemoryGauge, typeParamMap map[*TypeParameter]*TypeParameter, f func(Type) Type) Type { if param, ok := typeParamMap[t.TypeParameter]; ok { return f(&GenericType{ TypeParameter: param, @@ -976,6 +1059,12 @@ func (t *GenericType) GetMembers() map[string]MemberResolver { return withBuiltinMembers(t, nil) } +func (t *GenericType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + if t.TypeParameter.TypeBound != nil { + t.TypeParameter.TypeBound.CheckInstantiated(pos, memoryGauge, report) + } +} + // IntegerRangedType type IntegerRangedType interface { @@ -1041,7 +1130,7 @@ func addSaturatingArithmeticFunctions(t SaturatingArithmeticType, members map[st addArithmeticFunction := func(name string, docString string) { members[name] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, _ string, _ ast.Range, _ func(error)) *Member { + Resolve: func(memoryGauge common.MemoryGauge, _ string, _ ast.HasPosition, _ func(error)) *Member { return NewPublicFunctionMember( memoryGauge, t, @@ -1094,6 +1183,7 @@ type SaturatingArithmeticSupport struct { type NumericType struct { minInt *big.Int maxInt *big.Int + byteSize int memberResolvers map[string]MemberResolver name string tag TypeTag @@ -1125,6 +1215,11 @@ func (t *NumericType) WithIntRange(min *big.Int, max *big.Int) *NumericType { return t } +func (t *NumericType) WithByteSize(size int) *NumericType { + t.byteSize = size + return t +} + func (t *NumericType) WithSaturatingFunctions(saturatingArithmetic SaturatingArithmeticSupport) *NumericType { t.saturatingArithmetic = saturatingArithmetic @@ -1178,10 +1273,18 @@ func (*NumericType) IsResourceType() bool { return false } +func (*NumericType) IsPrimitiveType() bool { + return true +} + func (*NumericType) IsInvalidType() bool { return false } +func (*NumericType) IsOrContainsReferenceType() bool { + return false +} + func (*NumericType) IsStorable(_ map[*Member]bool) bool { return true } @@ -1222,7 +1325,17 @@ func (t *NumericType) MaxInt() *big.Int { return t.maxInt } -func (*NumericType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (t *NumericType) ByteSize() int { + return t.byteSize +} + +func (*NumericType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { return false } @@ -1258,6 +1371,10 @@ func (t *NumericType) IsSuperType() bool { return t.isSuperType } +func (*NumericType) CheckInstantiated(_ ast.HasPosition, _ common.MemoryGauge, _ func(err error)) { + // NO-OP +} + // FixedPointNumericType represents all the types in the fixed-point range. type FixedPointNumericType struct { maxFractional *big.Int @@ -1367,10 +1484,18 @@ func (*FixedPointNumericType) IsResourceType() bool { return false } +func (*FixedPointNumericType) IsPrimitiveType() bool { + return true +} + func (*FixedPointNumericType) IsInvalidType() bool { return false } +func (*FixedPointNumericType) IsOrContainsReferenceType() bool { + return false +} + func (*FixedPointNumericType) IsStorable(_ map[*Member]bool) bool { return true } @@ -1423,7 +1548,13 @@ func (t *FixedPointNumericType) Scale() uint { return t.scale } -func (*FixedPointNumericType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*FixedPointNumericType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { return false } @@ -1459,6 +1590,10 @@ func (t *FixedPointNumericType) IsSuperType() bool { return t.isSuperType } +func (*FixedPointNumericType) CheckInstantiated(_ ast.HasPosition, _ common.MemoryGauge, _ func(err error)) { + // NO-OP +} + // Numeric types var ( @@ -1491,6 +1626,11 @@ var ( SignedIntegerTypeAnnotation = NewTypeAnnotation(SignedIntegerType) + // FixedSizeUnsignedIntegerType represents the super-type of all unsigned integer types which have a fixed size. + FixedSizeUnsignedIntegerType = NewNumericType(FixedSizeUnsignedIntegerTypeName). + WithTag(FixedSizeUnsignedIntegerTypeTag). + AsSuperType() + // IntType represents the arbitrary-precision integer type `Int` IntType = NewNumericType(IntTypeName). WithTag(IntTypeTag) @@ -1501,6 +1641,7 @@ var ( Int8Type = NewNumericType(Int8TypeName). WithTag(Int8TypeTag). WithIntRange(Int8TypeMinInt, Int8TypeMaxInt). + WithByteSize(1). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1514,6 +1655,7 @@ var ( Int16Type = NewNumericType(Int16TypeName). WithTag(Int16TypeTag). WithIntRange(Int16TypeMinInt, Int16TypeMaxInt). + WithByteSize(2). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1527,6 +1669,7 @@ var ( Int32Type = NewNumericType(Int32TypeName). WithTag(Int32TypeTag). WithIntRange(Int32TypeMinInt, Int32TypeMaxInt). + WithByteSize(4). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1540,6 +1683,7 @@ var ( Int64Type = NewNumericType(Int64TypeName). WithTag(Int64TypeTag). WithIntRange(Int64TypeMinInt, Int64TypeMaxInt). + WithByteSize(8). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1553,6 +1697,7 @@ var ( Int128Type = NewNumericType(Int128TypeName). WithTag(Int128TypeTag). WithIntRange(Int128TypeMinIntBig, Int128TypeMaxIntBig). + WithByteSize(16). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1566,6 +1711,7 @@ var ( Int256Type = NewNumericType(Int256TypeName). WithTag(Int256TypeTag). WithIntRange(Int256TypeMinIntBig, Int256TypeMaxIntBig). + WithByteSize(32). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1590,6 +1736,7 @@ var ( UInt8Type = NewNumericType(UInt8TypeName). WithTag(UInt8TypeTag). WithIntRange(UInt8TypeMinInt, UInt8TypeMaxInt). + WithByteSize(1). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1603,6 +1750,7 @@ var ( UInt16Type = NewNumericType(UInt16TypeName). WithTag(UInt16TypeTag). WithIntRange(UInt16TypeMinInt, UInt16TypeMaxInt). + WithByteSize(2). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1616,6 +1764,7 @@ var ( UInt32Type = NewNumericType(UInt32TypeName). WithTag(UInt32TypeTag). WithIntRange(UInt32TypeMinInt, UInt32TypeMaxInt). + WithByteSize(4). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1629,6 +1778,7 @@ var ( UInt64Type = NewNumericType(UInt64TypeName). WithTag(UInt64TypeTag). WithIntRange(UInt64TypeMinInt, UInt64TypeMaxInt). + WithByteSize(8). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1642,6 +1792,7 @@ var ( UInt128Type = NewNumericType(UInt128TypeName). WithTag(UInt128TypeTag). WithIntRange(UInt128TypeMinIntBig, UInt128TypeMaxIntBig). + WithByteSize(16). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1655,6 +1806,7 @@ var ( UInt256Type = NewNumericType(UInt256TypeName). WithTag(UInt256TypeTag). WithIntRange(UInt256TypeMinIntBig, UInt256TypeMaxIntBig). + WithByteSize(32). WithSaturatingFunctions(SaturatingArithmeticSupport{ Add: true, Subtract: true, @@ -1667,6 +1819,7 @@ var ( // which does NOT check for overflow and underflow Word8Type = NewNumericType(Word8TypeName). WithTag(Word8TypeTag). + WithByteSize(1). WithIntRange(Word8TypeMinInt, Word8TypeMaxInt) Word8TypeAnnotation = NewTypeAnnotation(Word8Type) @@ -1675,6 +1828,7 @@ var ( // which does NOT check for overflow and underflow Word16Type = NewNumericType(Word16TypeName). WithTag(Word16TypeTag). + WithByteSize(2). WithIntRange(Word16TypeMinInt, Word16TypeMaxInt) Word16TypeAnnotation = NewTypeAnnotation(Word16Type) @@ -1683,6 +1837,7 @@ var ( // which does NOT check for overflow and underflow Word32Type = NewNumericType(Word32TypeName). WithTag(Word32TypeTag). + WithByteSize(4). WithIntRange(Word32TypeMinInt, Word32TypeMaxInt) Word32TypeAnnotation = NewTypeAnnotation(Word32Type) @@ -1691,6 +1846,7 @@ var ( // which does NOT check for overflow and underflow Word64Type = NewNumericType(Word64TypeName). WithTag(Word64TypeTag). + WithByteSize(8). WithIntRange(Word64TypeMinInt, Word64TypeMaxInt) Word64TypeAnnotation = NewTypeAnnotation(Word64Type) @@ -1699,6 +1855,7 @@ var ( // which does NOT check for overflow and underflow Word128Type = NewNumericType(Word128TypeName). WithTag(Word128TypeTag). + WithByteSize(16). WithIntRange(Word128TypeMinIntBig, Word128TypeMaxIntBig) Word128TypeAnnotation = NewTypeAnnotation(Word128Type) @@ -1707,6 +1864,7 @@ var ( // which does NOT check for overflow and underflow Word256Type = NewNumericType(Word256TypeName). WithTag(Word256TypeTag). + WithByteSize(32). WithIntRange(Word256TypeMinIntBig, Word256TypeMaxIntBig) Word256TypeAnnotation = NewTypeAnnotation(Word256Type) @@ -1998,7 +2156,21 @@ Returns a new array with contents in the reversed order. Available if the array element type is not resource-kinded. ` -var insertableEntitledAccess = NewEntitlementSetAccess( +const ArrayTypeToVariableSizedFunctionName = "toVariableSized" + +const arrayTypeToVariableSizedFunctionDocString = ` +Returns a new variable-sized array with the copy of the contents of the given array. +Available if the array is constant sized and the element type is not resource-kinded. +` + +const ArrayTypeToConstantSizedFunctionName = "toConstantSized" + +const arrayTypeToConstantSizedFunctionDocString = ` +Returns a new constant-sized array with the copy of the contents of the given array. +Available if the array is variable-sized and the element type is not resource-kinded. +` + +var insertMutateEntitledAccess = NewEntitlementSetAccess( []*EntitlementType{ InsertType, MutateType, @@ -2006,7 +2178,7 @@ var insertableEntitledAccess = NewEntitlementSetAccess( Disjunction, ) -var removableEntitledAccess = NewEntitlementSetAccess( +var removeMutateEntitledAccess = NewEntitlementSetAccess( []*EntitlementType{ RemoveType, MutateType, @@ -2032,7 +2204,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members := map[string]MemberResolver{ "contains": { Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) @@ -2044,7 +2221,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2055,7 +2232,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { report( &NotEquatableTypeError{ Type: elementType, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2071,7 +2248,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { }, "length": { Kind: common.DeclarationKindField, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.HasPosition, _ func(error)) *Member { return NewPublicConstantFieldMember( memoryGauge, arrayType, @@ -2083,7 +2260,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { }, "firstIndex": { Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) @@ -2095,7 +2277,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2106,7 +2288,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { report( &NotEquatableTypeError{ Type: elementType, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2122,7 +2304,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { }, ArrayTypeReverseFunctionName: { Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) // It is impossible for a resource to be present in two arrays. @@ -2131,7 +2318,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2147,7 +2334,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { }, ArrayTypeFilterFunctionName: { Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) @@ -2156,7 +2348,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2172,7 +2364,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { }, ArrayTypeMapFunctionName: { Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) // TODO: maybe allow for resource element type as a reference. @@ -2181,7 +2378,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2203,12 +2400,17 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["append"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) return NewFunctionMember( memoryGauge, arrayType, - insertableEntitledAccess, + insertMutateEntitledAccess, identifier, ArrayAppendFunctionType(elementType), arrayTypeAppendFunctionDocString, @@ -2218,7 +2420,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["appendAll"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) @@ -2227,7 +2434,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2235,7 +2442,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { return NewFunctionMember( memoryGauge, arrayType, - insertableEntitledAccess, + insertMutateEntitledAccess, identifier, ArrayAppendAllFunctionType(arrayType), arrayTypeAppendAllFunctionDocString, @@ -2245,7 +2452,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["concat"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { // TODO: maybe allow for resource element type @@ -2256,7 +2468,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2273,7 +2485,12 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["slice"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { elementType := arrayType.ElementType(false) @@ -2282,7 +2499,7 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { &InvalidResourceArrayMemberError{ Name: identifier, DeclarationKind: common.DeclarationKindFunction, - Range: targetRange, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), }, ) } @@ -2299,14 +2516,19 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["insert"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { elementType := arrayType.ElementType(false) return NewFunctionMember( memoryGauge, arrayType, - insertableEntitledAccess, + insertMutateEntitledAccess, identifier, ArrayInsertFunctionType(elementType), arrayTypeInsertFunctionDocString, @@ -2316,14 +2538,19 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["remove"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { elementType := arrayType.ElementType(false) return NewFunctionMember( memoryGauge, arrayType, - removableEntitledAccess, + removeMutateEntitledAccess, identifier, ArrayRemoveFunctionType(elementType), arrayTypeRemoveFunctionDocString, @@ -2333,14 +2560,19 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["removeFirst"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { elementType := arrayType.ElementType(false) return NewFunctionMember( memoryGauge, arrayType, - removableEntitledAccess, + removeMutateEntitledAccess, identifier, ArrayRemoveFirstFunctionType(elementType), arrayTypeRemoveFirstFunctionDocString, @@ -2350,20 +2582,88 @@ func getArrayMembers(arrayType ArrayType) map[string]MemberResolver { members["removeLast"] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { elementType := arrayType.ElementType(false) return NewFunctionMember( memoryGauge, arrayType, - removableEntitledAccess, + removeMutateEntitledAccess, identifier, ArrayRemoveLastFunctionType(elementType), arrayTypeRemoveLastFunctionDocString, ) }, } + + members[ArrayTypeToConstantSizedFunctionName] = MemberResolver{ + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + elementType := arrayType.ElementType(false) + + if elementType.IsResourceType() { + report( + &InvalidResourceArrayMemberError{ + Name: identifier, + DeclarationKind: common.DeclarationKindFunction, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), + }, + ) + } + + return NewPublicFunctionMember( + memoryGauge, + arrayType, + identifier, + ArrayToConstantSizedFunctionType(elementType), + arrayTypeToConstantSizedFunctionDocString, + ) + }, + } + } + + if _, ok := arrayType.(*ConstantSizedType); ok { + + members[ArrayTypeToVariableSizedFunctionName] = MemberResolver{ + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + elementType := arrayType.ElementType(false) + + if elementType.IsResourceType() { + report( + &InvalidResourceArrayMemberError{ + Name: identifier, + DeclarationKind: common.DeclarationKindFunction, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), + }, + ) + } + + return NewPublicFunctionMember( + memoryGauge, + arrayType, + identifier, + ArrayToVariableSizedFunctionType(elementType), + arrayTypeToVariableSizedFunctionDocString, + ) + }, + } } return withBuiltinMembers(arrayType, members) @@ -2506,6 +2806,73 @@ func ArraySliceFunctionType(elementType Type) *FunctionType { ) } +func ArrayToVariableSizedFunctionType(elementType Type) *FunctionType { + return NewSimpleFunctionType( + FunctionPurityView, + []Parameter{}, + NewTypeAnnotation(&VariableSizedType{ + Type: elementType, + }), + ) +} + +func ArrayToConstantSizedFunctionType(elementType Type) *FunctionType { + // Ideally this should have a typebound of [T; _] but since we don't know + // the size of the ConstantSizedArray, we omit specifying the bound. + typeParameter := &TypeParameter{ + Name: "T", + } + + typeAnnotation := NewTypeAnnotation( + &GenericType{ + TypeParameter: typeParameter, + }, + ) + + return &FunctionType{ + Purity: FunctionPurityView, + TypeParameters: []*TypeParameter{ + typeParameter, + }, + ReturnTypeAnnotation: NewTypeAnnotation( + &OptionalType{ + Type: typeAnnotation.Type, + }, + ), + TypeArgumentsCheck: func( + memoryGauge common.MemoryGauge, + typeArguments *TypeParameterTypeOrderedMap, + astTypeArguments []*ast.TypeAnnotation, + invocationRange ast.HasPosition, + report func(error), + ) { + typeArg, ok := typeArguments.Get(typeParameter) + if !ok || typeArg == nil { + // Invalid, already reported by checker + return + } + + constArrayType, ok := typeArg.(*ConstantSizedType) + if !ok || constArrayType.Type != elementType { + errorRange := invocationRange + if len(astTypeArguments) > 0 { + errorRange = astTypeArguments[0] + } + + report(&InvalidTypeArgumentError{ + TypeArgumentName: typeParameter.Name, + Range: ast.NewRangeFromPositioned(memoryGauge, errorRange), + Details: fmt.Sprintf( + "Type argument for %s must be [%s; _]", + ArrayTypeToConstantSizedFunctionName, + elementType, + ), + }) + } + }, + } +} + func ArrayReverseFunctionType(arrayType ArrayType) *FunctionType { return &FunctionType{ Parameters: []Parameter{}, @@ -2662,10 +3029,18 @@ func (t *VariableSizedType) IsResourceType() bool { return t.Type.IsResourceType() } +func (t *VariableSizedType) IsPrimitiveType() bool { + return false +} + func (t *VariableSizedType) IsInvalidType() bool { return t.Type.IsInvalidType() } +func (t *VariableSizedType) IsOrContainsReferenceType() bool { + return t.Type.IsOrContainsReferenceType() +} + func (t *VariableSizedType) IsStorable(results map[*Member]bool) bool { return t.Type.IsStorable(results) } @@ -2725,7 +3100,8 @@ func (t *VariableSizedType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool { otherArray, ok := other.(*VariableSizedType) @@ -2733,7 +3109,13 @@ func (t *VariableSizedType) Unify( return false } - return t.Type.Unify(otherArray.Type, typeParameters, report, outerRange) + return t.Type.Unify( + otherArray.Type, + typeParameters, + report, + memoryGauge, + outerRange, + ) } func (t *VariableSizedType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type { @@ -2747,18 +3129,22 @@ func (t *VariableSizedType) Resolve(typeArguments *TypeParameterTypeOrderedMap) } } -func (t *VariableSizedType) SupportedEntitlements() *EntitlementOrderedSet { +func (t *VariableSizedType) SupportedEntitlements() *EntitlementSet { return arrayDictionaryEntitlements } -var arrayDictionaryEntitlements = func() *EntitlementOrderedSet { - set := orderedmap.New[EntitlementOrderedSet](3) - set.Set(MutateType, struct{}{}) - set.Set(InsertType, struct{}{}) - set.Set(RemoveType, struct{}{}) +var arrayDictionaryEntitlements = func() *EntitlementSet { + set := &EntitlementSet{} + set.Add(MutateType) + set.Add(InsertType) + set.Add(RemoveType) return set }() +func (t *VariableSizedType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + t.ElementType(false).CheckInstantiated(pos, memoryGauge, report) +} + // ConstantSizedType is a constant sized array type type ConstantSizedType struct { Type Type @@ -2833,10 +3219,18 @@ func (t *ConstantSizedType) IsResourceType() bool { return t.Type.IsResourceType() } +func (t *ConstantSizedType) IsPrimitiveType() bool { + return false +} + func (t *ConstantSizedType) IsInvalidType() bool { return t.Type.IsInvalidType() } +func (t *ConstantSizedType) IsOrContainsReferenceType() bool { + return t.Type.IsOrContainsReferenceType() +} + func (t *ConstantSizedType) IsStorable(results map[*Member]bool) bool { return t.Type.IsStorable(results) } @@ -2897,7 +3291,8 @@ func (t *ConstantSizedType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool { otherArray, ok := other.(*ConstantSizedType) @@ -2909,7 +3304,13 @@ func (t *ConstantSizedType) Unify( return false } - return t.Type.Unify(otherArray.Type, typeParameters, report, outerRange) + return t.Type.Unify( + otherArray.Type, + typeParameters, + report, + memoryGauge, + outerRange, + ) } func (t *ConstantSizedType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type { @@ -2924,10 +3325,14 @@ func (t *ConstantSizedType) Resolve(typeArguments *TypeParameterTypeOrderedMap) } } -func (t *ConstantSizedType) SupportedEntitlements() *EntitlementOrderedSet { +func (t *ConstantSizedType) SupportedEntitlements() *EntitlementSet { return arrayDictionaryEntitlements } +func (t *ConstantSizedType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + t.ElementType(false).CheckInstantiated(pos, memoryGauge, report) +} + // Parameter func formatParameter(spaces bool, label, identifier, typeAnnotation string) string { @@ -2954,9 +3359,10 @@ func formatParameter(spaces bool, label, identifier, typeAnnotation string) stri } type Parameter struct { - TypeAnnotation TypeAnnotation - Label string - Identifier string + TypeAnnotation TypeAnnotation + DefaultArgument Type + Label string + Identifier string } func (p Parameter) String() string { @@ -3038,7 +3444,7 @@ func (p TypeParameter) Equal(other *TypeParameter) bool { return p.Optional == other.Optional } -func (p TypeParameter) checkTypeBound(ty Type, typeRange ast.Range) error { +func (p TypeParameter) checkTypeBound(ty Type, memoryGauge common.MemoryGauge, typeRange ast.HasPosition) error { if p.TypeBound == nil || p.TypeBound.IsInvalidType() || ty.IsInvalidType() { @@ -3050,7 +3456,7 @@ func (p TypeParameter) checkTypeBound(ty Type, typeRange ast.Range) error { return &TypeMismatchError{ ExpectedType: p.TypeBound, ActualType: ty, - Range: typeRange, + Range: ast.NewRangeFromPositioned(memoryGauge, typeRange), } } @@ -3156,6 +3562,7 @@ type FunctionType struct { ReturnTypeAnnotation TypeAnnotation Arity *Arity ArgumentExpressionsCheck ArgumentExpressionsCheck + TypeArgumentsCheck TypeArgumentsCheck Members *StringMemberOrderedMap TypeParameters []*TypeParameter Parameters []Parameter @@ -3381,6 +3788,10 @@ func (*FunctionType) IsResourceType() bool { return false } +func (t *FunctionType) IsPrimitiveType() bool { + return false +} + func (t *FunctionType) IsInvalidType() bool { for _, typeParameter := range t.TypeParameters { @@ -3401,6 +3812,10 @@ func (t *FunctionType) IsInvalidType() bool { return t.ReturnTypeAnnotation.Type.IsInvalidType() } +func (*FunctionType) IsOrContainsReferenceType() bool { + return false +} + func (t *FunctionType) IsStorable(_ map[*Member]bool) bool { // Functions cannot be stored, as they cannot be serialized return false @@ -3555,7 +3970,8 @@ func (t *FunctionType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) ( result bool, ) { @@ -3585,6 +4001,7 @@ func (t *FunctionType) Unify( otherParameter.TypeAnnotation.Type, typeParameters, report, + memoryGauge, outerRange, ) result = result || parameterUnified @@ -3596,6 +4013,7 @@ func (t *FunctionType) Unify( otherFunction.ReturnTypeAnnotation.Type, typeParameters, report, + memoryGauge, outerRange, ) @@ -3716,10 +4134,30 @@ func (t *FunctionType) initializeMemberResolvers() { }) } +func (t *FunctionType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + for _, tyParam := range t.TypeParameters { + tyParam.TypeBound.CheckInstantiated(pos, memoryGauge, report) + } + + for _, param := range t.Parameters { + param.TypeAnnotation.Type.CheckInstantiated(pos, memoryGauge, report) + } + + t.ReturnTypeAnnotation.Type.CheckInstantiated(pos, memoryGauge, report) +} + type ArgumentExpressionsCheck func( checker *Checker, argumentExpressions []ast.Expression, - invocationRange ast.Range, + invocationRange ast.HasPosition, +) + +type TypeArgumentsCheck func( + memoryGauge common.MemoryGauge, + typeArguments *TypeParameterTypeOrderedMap, + astTypeArguments []*ast.TypeAnnotation, + invocationRange ast.HasPosition, + report func(err error), ) // BaseTypeActivation is the base activation that contains @@ -3758,6 +4196,8 @@ func init() { StorageCapabilityControllerType, AccountCapabilityControllerType, DeploymentResultType, + HashableStructType, + &InclusiveRangeType{}, }, ) @@ -3844,9 +4284,8 @@ var AllSignedIntegerTypes = []Type{ Int256Type, } -var AllUnsignedIntegerTypes = []Type{ +var AllFixedSizeUnsignedIntegerTypes = []Type{ // UInt* - UIntType, UInt8Type, UInt16Type, UInt32Type, @@ -3862,13 +4301,23 @@ var AllUnsignedIntegerTypes = []Type{ Word256Type, } +var AllUnsignedIntegerTypes = common.Concat( + AllFixedSizeUnsignedIntegerTypes, + []Type{ + UIntType, + }, +) + +var AllNonLeafIntegerTypes = []Type{ + IntegerType, + SignedIntegerType, + FixedSizeUnsignedIntegerType, +} + var AllIntegerTypes = common.Concat( AllUnsignedIntegerTypes, AllSignedIntegerTypes, - []Type{ - IntegerType, - SignedIntegerType, - }, + AllNonLeafIntegerTypes, ) var AllNumberTypes = common.Concat( @@ -3907,7 +4356,7 @@ func init() { switch numberType { case NumberType, SignedNumberType, - IntegerType, SignedIntegerType, + IntegerType, SignedIntegerType, FixedSizeUnsignedIntegerType, FixedPointType, SignedFixedPointType: continue @@ -4062,7 +4511,7 @@ var AddressConversionFunctionType = &FunctionType{ }, }, ReturnTypeAnnotation: AddressTypeAnnotation, - ArgumentExpressionsCheck: func(checker *Checker, argumentExpressions []ast.Expression, _ ast.Range) { + ArgumentExpressionsCheck: func(checker *Checker, argumentExpressions []ast.Expression, _ ast.HasPosition) { if len(argumentExpressions) < 1 { return } @@ -4149,7 +4598,7 @@ func init() { } func numberFunctionArgumentExpressionsChecker(targetType Type) ArgumentExpressionsCheck { - return func(checker *Checker, arguments []ast.Expression, invocationRange ast.Range) { + return func(checker *Checker, arguments []ast.Expression, invocationRange ast.HasPosition) { if len(arguments) < 1 { return } @@ -4163,8 +4612,11 @@ func numberFunctionArgumentExpressionsChecker(targetType Type) ArgumentExpressio checker.Elaboration.SetNumberConversionArgumentTypes( argument, NumberConversionArgumentTypes{ - Type: targetType, - Range: invocationRange, + Type: targetType, + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + invocationRange, + ), }, ) } @@ -4176,8 +4628,11 @@ func numberFunctionArgumentExpressionsChecker(targetType Type) ArgumentExpressio checker.Elaboration.SetNumberConversionArgumentTypes( argument, NumberConversionArgumentTypes{ - Type: targetType, - Range: invocationRange, + Type: targetType, + Range: ast.NewRangeFromPositioned( + checker.memoryGauge, + invocationRange, + ), }, ) } @@ -4291,10 +4746,10 @@ type CompositeType struct { // in a language with support for algebraic data types, // we would implement this as an argument to the CompositeKind type constructor. // Alas, this is Go, so for now these fields are only non-nil when Kind is CompositeKindAttachment - baseType Type - baseTypeDocString string - RequiredEntitlements *EntitlementOrderedSet - AttachmentEntitlementAccess *EntitlementMapAccess + baseType Type + baseTypeDocString string + + DefaultDestroyEvent *CompositeType cachedIdentifiers *struct { TypeID TypeID @@ -4317,8 +4772,9 @@ type CompositeType struct { ConstructorPurity FunctionPurity HasComputedMembers bool // Only applicable for native composite types - ImportableBuiltin bool - supportedEntitlements *EntitlementOrderedSet + ImportableBuiltin bool + supportedEntitlementsOnce sync.Once + supportedEntitlements *EntitlementSet } var _ Type = &CompositeType{} @@ -4426,6 +4882,23 @@ func isAttachmentType(t Type) bool { t == AnyStructAttachmentType } +func IsHashableStructType(t Type) bool { + switch typ := t.(type) { + case *AddressType: + return true + case *CompositeType: + return typ.Kind == common.CompositeKindEnum + default: + switch typ { + case NeverType, BoolType, CharacterType, StringType, MetaType, HashableStructType: + return true + default: + return IsSubType(typ, NumberType) || + IsSubType(typ, PathType) + } + } +} + func (t *CompositeType) GetBaseType() Type { return t.baseType } @@ -4488,29 +4961,79 @@ func (t *CompositeType) MemberMap() *StringMemberOrderedMap { return t.Members } -func (t *CompositeType) SupportedEntitlements() (set *EntitlementOrderedSet) { - supportedEntitlements := t.supportedEntitlements - if supportedEntitlements != nil { - return supportedEntitlements - } +func newCompositeOrInterfaceSupportedEntitlementSet( + members *StringMemberOrderedMap, + effectiveInterfaceConformanceSet *InterfaceSet, +) *EntitlementSet { + set := &EntitlementSet{} + + // We need to handle conjunctions and disjunctions separately, in two passes, + // as adding entitlements after disjunctions does not remove disjunctions from the set, + // whereas adding disjunctions after entitlements does. - set = orderedmap.New[EntitlementOrderedSet](t.Members.Len()) - t.Members.Foreach(func(_ string, member *Member) { + // First pass: Handle maps and conjunctions + members.Foreach(func(_ string, member *Member) { switch access := member.Access.(type) { case *EntitlementMapAccess: - set.SetAll(access.Domain().Entitlements) + // Domain is a conjunction, add all entitlements + domain := access.Domain() + if domain.SetKind != Conjunction { + panic(errors.NewUnreachableError()) + } + domain.Entitlements. + Foreach(func(entitlementType *EntitlementType, _ struct{}) { + set.Add(entitlementType) + }) + case EntitlementSetAccess: - set.SetAll(access.Entitlements) + // Disjunctions are handled in a second pass + if access.SetKind == Conjunction { + access.Entitlements.Foreach(func(entitlementType *EntitlementType, _ struct{}) { + set.Add(entitlementType) + }) + } } }) - t.EffectiveInterfaceConformanceSet().ForEach(func(it *InterfaceType) { - set.SetAll(it.SupportedEntitlements()) + + // Second pass: Handle disjunctions + for pair := members.Oldest(); pair != nil; pair = pair.Next() { + member := pair.Value + + if access, ok := member.Access.(EntitlementSetAccess); ok && + access.SetKind == Disjunction { + + set.AddDisjunction(access.Entitlements) + } + } + + effectiveInterfaceConformanceSet.ForEach(func(it *InterfaceType) { + set.Merge(it.SupportedEntitlements()) }) - t.supportedEntitlements = set return set } +func (t *CompositeType) SupportedEntitlements() *EntitlementSet { + t.supportedEntitlementsOnce.Do(func() { + + set := newCompositeOrInterfaceSupportedEntitlementSet( + t.Members, + t.EffectiveInterfaceConformanceSet(), + ) + + // attachments support at least the entitlements supported by their base, + // and we must ensure there is no recursive case + if entitlementSupportingBase, isEntitlementSupportingBase := + t.GetBaseType().(EntitlementSupportingType); isEntitlementSupportingBase && entitlementSupportingBase != t { + + set.Merge(entitlementSupportingBase.SupportedEntitlements()) + } + + t.supportedEntitlements = set + }) + return t.supportedEntitlements +} + func (t *CompositeType) IsResourceType() bool { return t.Kind == common.CompositeKindResource || // attachments are always the same kind as their base type @@ -4521,10 +5044,18 @@ func (t *CompositeType) IsResourceType() bool { t.baseType.IsResourceType()) } +func (t *CompositeType) IsPrimitiveType() bool { + return false +} + func (*CompositeType) IsInvalidType() bool { return false } +func (*CompositeType) IsOrContainsReferenceType() bool { + return false +} + func (t *CompositeType) IsStorable(results map[*Member]bool) bool { if t.HasComputedMembers { return false @@ -4624,8 +5155,8 @@ func (*CompositeType) IsComparable() bool { return false } -func (*CompositeType) ContainFieldsOrElements() bool { - return true +func (t *CompositeType) ContainFieldsOrElements() bool { + return t.Kind != common.CompositeKindEnum } func (t *CompositeType) TypeAnnotationState() TypeAnnotationState { @@ -4639,7 +5170,13 @@ func (t *CompositeType) RewriteWithIntersectionTypes() (result Type, rewritten b return t, false } -func (*CompositeType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*CompositeType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { // TODO: return false } @@ -4665,10 +5202,9 @@ func (t *CompositeType) TypeIndexingElementType(indexingType Type, _ func() ast. var access Access = UnauthorizedAccess switch attachment := indexingType.(type) { case *CompositeType: - attachmentEntitlementAccess := attachment.AttachmentEntitlementAccess - if attachmentEntitlementAccess != nil { - access = attachmentEntitlementAccess.Codomain() - } + // when accessed on an owned value, the produced attachment reference is entitled to all the + // entitlements it supports + access = attachment.SupportedEntitlements().Access() } return &OptionalType{ @@ -4761,7 +5297,12 @@ func (t *CompositeType) initializerMemberResolversFunc() func() { if t.Kind.SupportsAttachments() { memberResolvers[CompositeForEachAttachmentFunctionName] = MemberResolver{ Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { return NewPublicFunctionMember( memoryGauge, t, @@ -4839,6 +5380,20 @@ func (t *CompositeType) InitializerEffectiveArgumentLabels() []string { return argumentLabels } +func (t *CompositeType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + if t.EnumRawType != nil { + t.EnumRawType.CheckInstantiated(pos, memoryGauge, report) + } + + if t.baseType != nil { + t.baseType.CheckInstantiated(pos, memoryGauge, report) + } + + for _, typ := range t.ExplicitInterfaceConformances { + typ.CheckInstantiated(pos, memoryGauge, report) + } +} + // Member type Member struct { @@ -5151,7 +5706,10 @@ type InterfaceType struct { ExplicitInterfaceConformances []*InterfaceType effectiveInterfaceConformances []Conformance effectiveInterfaceConformanceSet *InterfaceSet - supportedEntitlements *EntitlementOrderedSet + supportedEntitlementsOnce sync.Once + supportedEntitlements *EntitlementSet + + DefaultDestroyEvent *CompositeType } var _ Type = &InterfaceType{} @@ -5258,29 +5816,14 @@ func (t *InterfaceType) MemberMap() *StringMemberOrderedMap { return t.Members } -func (t *InterfaceType) SupportedEntitlements() (set *EntitlementOrderedSet) { - supportedEntitlements := t.supportedEntitlements - if supportedEntitlements != nil { - return supportedEntitlements - } - - set = orderedmap.New[EntitlementOrderedSet](t.Members.Len()) - t.Members.Foreach(func(_ string, member *Member) { - switch access := member.Access.(type) { - case *EntitlementMapAccess: - access.Domain().Entitlements.Foreach(func(entitlement *EntitlementType, _ struct{}) { - set.Set(entitlement, struct{}{}) - }) - case EntitlementSetAccess: - access.Entitlements.Foreach(func(entitlement *EntitlementType, _ struct{}) { - set.Set(entitlement, struct{}{}) - }) - } +func (t *InterfaceType) SupportedEntitlements() *EntitlementSet { + t.supportedEntitlementsOnce.Do(func() { + t.supportedEntitlements = newCompositeOrInterfaceSupportedEntitlementSet( + t.Members, + t.EffectiveInterfaceConformanceSet(), + ) }) - // TODO: include inherited entitlements - - t.supportedEntitlements = set - return set + return t.supportedEntitlements } func (t *InterfaceType) Map(_ common.MemoryGauge, _ map[*TypeParameter]*TypeParameter, f func(Type) Type) Type { @@ -5314,7 +5857,15 @@ func (t *InterfaceType) IsResourceType() bool { return t.CompositeKind == common.CompositeKindResource } -func (t *InterfaceType) IsInvalidType() bool { +func (*InterfaceType) IsPrimitiveType() bool { + return false +} + +func (*InterfaceType) IsInvalidType() bool { + return false +} + +func (*InterfaceType) IsOrContainsReferenceType() bool { return false } @@ -5385,19 +5936,18 @@ func (*InterfaceType) TypeAnnotationState() TypeAnnotationState { } func (t *InterfaceType) RewriteWithIntersectionTypes() (Type, bool) { - switch t.CompositeKind { - case common.CompositeKindResource, common.CompositeKindStructure: - return &IntersectionType{ - Types: []*InterfaceType{t}, - }, true - - default: - return t, false - } - + return &IntersectionType{ + Types: []*InterfaceType{t}, + }, true } -func (*InterfaceType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*InterfaceType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { // TODO: return false } @@ -5494,6 +6044,12 @@ func distinctConformances( return collectedConformances } +func (t *InterfaceType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + for _, param := range t.InitializerParameters { + param.TypeAnnotation.Type.CheckInstantiated(pos, memoryGauge, report) + } +} + // DictionaryType consists of the key and value type // for all key-value pairs in the dictionary: // All keys have to be a subtype of the key type, @@ -5570,11 +6126,20 @@ func (t *DictionaryType) IsResourceType() bool { t.ValueType.IsResourceType() } +func (t *DictionaryType) IsPrimitiveType() bool { + return false +} + func (t *DictionaryType) IsInvalidType() bool { return t.KeyType.IsInvalidType() || t.ValueType.IsInvalidType() } +func (t *DictionaryType) IsOrContainsReferenceType() bool { + return t.KeyType.IsOrContainsReferenceType() || + t.ValueType.IsOrContainsReferenceType() +} + func (t *DictionaryType) IsStorable(results map[*Member]bool) bool { return t.KeyType.IsStorable(results) && t.ValueType.IsStorable(results) @@ -5631,6 +6196,11 @@ func (t *DictionaryType) RewriteWithIntersectionTypes() (Type, bool) { } } +func (t *DictionaryType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + t.KeyType.CheckInstantiated(pos, memoryGauge, report) + t.ValueType.CheckInstantiated(pos, memoryGauge, report) +} + const dictionaryTypeContainsKeyFunctionDocString = ` Returns true if the given key is in the dictionary ` @@ -5683,129 +6253,167 @@ func (t *DictionaryType) GetMembers() map[string]MemberResolver { func (t *DictionaryType) initializeMemberResolvers() { t.memberResolversOnce.Do(func() { - t.memberResolvers = withBuiltinMembers(t, map[string]MemberResolver{ - "containsKey": { - Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { - - return NewPublicFunctionMember( - memoryGauge, - t, - identifier, - DictionaryContainsKeyFunctionType(t), - dictionaryTypeContainsKeyFunctionDocString, - ) - }, - }, - "length": { - Kind: common.DeclarationKindField, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { - return NewPublicConstantFieldMember( - memoryGauge, - t, - identifier, - IntType, - dictionaryTypeLengthFieldDocString, - ) - }, - }, - "keys": { - Kind: common.DeclarationKindField, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { - // TODO: maybe allow for resource key type - - if t.KeyType.IsResourceType() { - report( - &InvalidResourceDictionaryMemberError{ - Name: identifier, - DeclarationKind: common.DeclarationKindField, - Range: targetRange, - }, + t.memberResolvers = withBuiltinMembers( + t, + map[string]MemberResolver{ + "containsKey": { + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + + return NewPublicFunctionMember( + memoryGauge, + t, + identifier, + DictionaryContainsKeyFunctionType(t), + dictionaryTypeContainsKeyFunctionDocString, ) - } - - return NewPublicConstantFieldMember( - memoryGauge, - t, - identifier, - &VariableSizedType{Type: t.KeyType}, - dictionaryTypeKeysFieldDocString, - ) + }, }, - }, - "values": { - Kind: common.DeclarationKindField, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { - // TODO: maybe allow for resource value type - - if t.ValueType.IsResourceType() { - report( - &InvalidResourceDictionaryMemberError{ - Name: identifier, - DeclarationKind: common.DeclarationKindField, - Range: targetRange, - }, + "length": { + Kind: common.DeclarationKindField, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { + return NewPublicConstantFieldMember( + memoryGauge, + t, + identifier, + IntType, + dictionaryTypeLengthFieldDocString, ) - } + }, + }, + "keys": { + Kind: common.DeclarationKindField, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + // TODO: maybe allow for resource key type + + if t.KeyType.IsResourceType() { + report( + &InvalidResourceDictionaryMemberError{ + Name: identifier, + DeclarationKind: common.DeclarationKindField, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), + }, + ) + } - return NewPublicConstantFieldMember( - memoryGauge, - t, - identifier, - &VariableSizedType{Type: t.ValueType}, - dictionaryTypeValuesFieldDocString, - ) + return NewPublicConstantFieldMember( + memoryGauge, + t, + identifier, + &VariableSizedType{Type: t.KeyType}, + dictionaryTypeKeysFieldDocString, + ) + }, }, - }, - "insert": { - Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { - return NewFunctionMember( - memoryGauge, - t, - insertableEntitledAccess, - identifier, - DictionaryInsertFunctionType(t), - dictionaryTypeInsertFunctionDocString, - ) + "values": { + Kind: common.DeclarationKindField, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + // TODO: maybe allow for resource value type + + if t.ValueType.IsResourceType() { + report( + &InvalidResourceDictionaryMemberError{ + Name: identifier, + DeclarationKind: common.DeclarationKindField, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), + }, + ) + } + + return NewPublicConstantFieldMember( + memoryGauge, + t, + identifier, + &VariableSizedType{Type: t.ValueType}, + dictionaryTypeValuesFieldDocString, + ) + }, }, - }, - "remove": { - Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, _ ast.Range, _ func(error)) *Member { - return NewFunctionMember( - memoryGauge, - t, - removableEntitledAccess, - identifier, - DictionaryRemoveFunctionType(t), - dictionaryTypeRemoveFunctionDocString, - ) + "insert": { + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { + return NewFunctionMember( + memoryGauge, + t, + insertMutateEntitledAccess, + identifier, + DictionaryInsertFunctionType(t), + dictionaryTypeInsertFunctionDocString, + ) + }, }, - }, - "forEachKey": { - Kind: common.DeclarationKindFunction, - Resolve: func(memoryGauge common.MemoryGauge, identifier string, targetRange ast.Range, report func(error)) *Member { - if t.KeyType.IsResourceType() { - report( - &InvalidResourceDictionaryMemberError{ - Name: identifier, - DeclarationKind: common.DeclarationKindField, - Range: targetRange, - }, + "remove": { + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { + return NewFunctionMember( + memoryGauge, + t, + removeMutateEntitledAccess, + identifier, + DictionaryRemoveFunctionType(t), + dictionaryTypeRemoveFunctionDocString, ) - } + }, + }, + "forEachKey": { + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + if t.KeyType.IsResourceType() { + report( + &InvalidResourceDictionaryMemberError{ + Name: identifier, + DeclarationKind: common.DeclarationKindField, + Range: ast.NewRangeFromPositioned(memoryGauge, targetRange), + }, + ) + } - return NewPublicFunctionMember( - memoryGauge, - t, - identifier, - DictionaryForEachKeyFunctionType(t), - dictionaryTypeForEachKeyFunctionDocString, - ) + return NewPublicFunctionMember( + memoryGauge, + t, + identifier, + DictionaryForEachKeyFunctionType(t), + dictionaryTypeForEachKeyFunctionDocString, + ) + }, }, }, - }) + ) }) } @@ -5916,7 +6524,8 @@ func (t *DictionaryType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool { otherDictionary, ok := other.(*DictionaryType) @@ -5924,8 +6533,22 @@ func (t *DictionaryType) Unify( return false } - keyUnified := t.KeyType.Unify(otherDictionary.KeyType, typeParameters, report, outerRange) - valueUnified := t.ValueType.Unify(otherDictionary.ValueType, typeParameters, report, outerRange) + keyUnified := t.KeyType.Unify( + otherDictionary.KeyType, + typeParameters, + report, + memoryGauge, + outerRange, + ) + + valueUnified := t.ValueType.Unify( + otherDictionary.ValueType, + typeParameters, + report, + memoryGauge, + outerRange, + ) + return keyUnified || valueUnified } @@ -5946,10 +6569,391 @@ func (t *DictionaryType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Typ } } -func (t *DictionaryType) SupportedEntitlements() *EntitlementOrderedSet { +func (t *DictionaryType) SupportedEntitlements() *EntitlementSet { return arrayDictionaryEntitlements } +// InclusiveRangeType + +type InclusiveRangeType struct { + MemberType Type + memberResolvers map[string]MemberResolver + memberResolversOnce sync.Once +} + +var _ Type = &InclusiveRangeType{} +var _ ParameterizedType = &InclusiveRangeType{} + +func NewInclusiveRangeType(memoryGauge common.MemoryGauge, elementType Type) *InclusiveRangeType { + common.UseMemory(memoryGauge, common.DictionarySemaTypeMemoryUsage) + return &InclusiveRangeType{ + MemberType: elementType, + } +} + +func (*InclusiveRangeType) IsType() {} + +func (*InclusiveRangeType) Tag() TypeTag { + return InclusiveRangeTypeTag +} + +func (t *InclusiveRangeType) String() string { + memberString := "" + if t.MemberType != nil { + memberString = fmt.Sprintf("<%s>", t.MemberType.String()) + } + return fmt.Sprintf( + "InclusiveRange%s", + memberString, + ) +} + +func (t *InclusiveRangeType) QualifiedString() string { + memberString := "" + if t.MemberType != nil { + memberString = fmt.Sprintf("<%s>", t.MemberType.QualifiedString()) + } + return fmt.Sprintf( + "InclusiveRange%s", + memberString, + ) +} + +func InclusiveRangeTypeID(memberTypeID string) TypeID { + if memberTypeID != "" { + memberTypeID = fmt.Sprintf("<%s>", memberTypeID) + } + return TypeID(fmt.Sprintf( + "InclusiveRange%s", + memberTypeID, + )) +} + +func (t *InclusiveRangeType) ID() TypeID { + var memberTypeID string + if t.MemberType != nil { + memberTypeID = string(t.MemberType.ID()) + } + return InclusiveRangeTypeID(memberTypeID) +} + +func (t *InclusiveRangeType) Equal(other Type) bool { + otherRange, ok := other.(*InclusiveRangeType) + if !ok { + return false + } + if otherRange.MemberType == nil { + return t.MemberType == nil + } + + return otherRange.MemberType.Equal(t.MemberType) +} + +func (*InclusiveRangeType) IsResourceType() bool { + return false +} +func (t *InclusiveRangeType) IsInvalidType() bool { + return t.MemberType != nil && t.MemberType.IsInvalidType() +} + +func (t *InclusiveRangeType) IsOrContainsReferenceType() bool { + return t.MemberType != nil && t.MemberType.IsOrContainsReferenceType() +} + +func (*InclusiveRangeType) IsStorable(_ map[*Member]bool) bool { + return false +} + +func (t *InclusiveRangeType) IsExportable(results map[*Member]bool) bool { + return t.MemberType.IsExportable(results) +} + +func (t *InclusiveRangeType) IsImportable(results map[*Member]bool) bool { + return t.MemberType.IsImportable(results) +} + +func (t *InclusiveRangeType) IsEquatable() bool { + return t.MemberType.IsEquatable() +} + +func (*InclusiveRangeType) IsComparable() bool { + return false +} + +func (t *InclusiveRangeType) TypeAnnotationState() TypeAnnotationState { + if t.MemberType == nil { + return TypeAnnotationStateValid + } + + return t.MemberType.TypeAnnotationState() +} + +func (t *InclusiveRangeType) RewriteWithIntersectionTypes() (Type, bool) { + if t.MemberType == nil { + return t, false + } + rewrittenMemberType, rewritten := t.MemberType.RewriteWithIntersectionTypes() + if rewritten { + return &InclusiveRangeType{ + MemberType: rewrittenMemberType, + }, true + } + return t, false +} + +func (t *InclusiveRangeType) BaseType() Type { + if t.MemberType == nil { + return nil + } + return &InclusiveRangeType{} +} + +func (t *InclusiveRangeType) Instantiate( + memoryGauge common.MemoryGauge, + typeArguments []Type, + astTypeArguments []*ast.TypeAnnotation, + report func(err error), +) Type { + + const typeParameterCount = 1 + + getRange := func() ast.Range { + if astTypeArguments == nil || len(astTypeArguments) != typeParameterCount { + return ast.EmptyRange + } + return ast.NewRangeFromPositioned(memoryGauge, astTypeArguments[0]) + } + + typeArgumentCount := len(typeArguments) + + var memberType Type + if typeArgumentCount == typeParameterCount { + memberType = typeArguments[0] + } else { + report(&InvalidTypeArgumentCountError{ + TypeParameterCount: typeParameterCount, + TypeArgumentCount: typeArgumentCount, + Range: getRange(), + }) + } + + // memberType must only be a leaf integer type. + for _, ty := range AllNonLeafIntegerTypes { + if memberType == ty { + report(&InvalidTypeArgumentError{ + TypeArgumentName: inclusiveRangeTypeParameter.Name, + Range: getRange(), + Details: fmt.Sprintf("Creation of InclusiveRange<%s> is disallowed", memberType), + }) + break + } + } + + return &InclusiveRangeType{ + MemberType: memberType, + } +} + +func (t *InclusiveRangeType) TypeArguments() []Type { + memberType := t.MemberType + return []Type{ + memberType, + } +} + +func (t *InclusiveRangeType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + CheckParameterizedTypeInstantiated(t, pos, memoryGauge, report) +} + +var inclusiveRangeTypeParameter = &TypeParameter{ + Name: "T", + TypeBound: IntegerType, +} + +func (*InclusiveRangeType) TypeParameters() []*TypeParameter { + return []*TypeParameter{ + inclusiveRangeTypeParameter, + } +} + +const InclusiveRangeTypeStartFieldName = "start" +const inclusiveRangeTypeStartFieldDocString = ` +The start of the InclusiveRange sequence +` +const InclusiveRangeTypeEndFieldName = "end" +const inclusiveRangeTypeEndFieldDocString = ` +The end of the InclusiveRange sequence +` + +const InclusiveRangeTypeStepFieldName = "step" +const inclusiveRangeTypeStepFieldDocString = ` +The step size of the InclusiveRange sequence +` + +var InclusiveRangeTypeFieldNames = []string{ + InclusiveRangeTypeStartFieldName, + InclusiveRangeTypeEndFieldName, + InclusiveRangeTypeStepFieldName, +} + +const InclusiveRangeTypeContainsFunctionName = "contains" + +const inclusiveRangeTypeContainsFunctionDocString = ` +Returns true if the given integer is in the InclusiveRange sequence +` + +func (t *InclusiveRangeType) GetMembers() map[string]MemberResolver { + t.initializeMemberResolvers() + return t.memberResolvers +} + +func InclusiveRangeContainsFunctionType(elementType Type) *FunctionType { + return NewSimpleFunctionType( + FunctionPurityView, + []Parameter{ + { + Label: ArgumentLabelNotRequired, + Identifier: "element", + TypeAnnotation: NewTypeAnnotation(elementType), + }, + }, + BoolTypeAnnotation, + ) +} + +func (t *InclusiveRangeType) initializeMemberResolvers() { + t.memberResolversOnce.Do(func() { + t.memberResolvers = withBuiltinMembers( + t, + map[string]MemberResolver{ + InclusiveRangeTypeStartFieldName: { + Kind: common.DeclarationKindField, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { + return NewPublicConstantFieldMember( + memoryGauge, + t, + identifier, + t.MemberType, + inclusiveRangeTypeStartFieldDocString, + ) + }, + }, + InclusiveRangeTypeEndFieldName: { + Kind: common.DeclarationKindField, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { + return NewPublicConstantFieldMember( + memoryGauge, + t, + identifier, + t.MemberType, + inclusiveRangeTypeEndFieldDocString, + ) + }, + }, + InclusiveRangeTypeStepFieldName: { + Kind: common.DeclarationKindField, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + _ ast.HasPosition, + _ func(error), + ) *Member { + return NewPublicConstantFieldMember( + memoryGauge, + t, + identifier, + t.MemberType, + inclusiveRangeTypeStepFieldDocString, + ) + }, + }, + InclusiveRangeTypeContainsFunctionName: { + Kind: common.DeclarationKindFunction, + Resolve: func( + memoryGauge common.MemoryGauge, + identifier string, + targetRange ast.HasPosition, + report func(error), + ) *Member { + elementType := t.MemberType + + return NewPublicFunctionMember( + memoryGauge, + t, + identifier, + InclusiveRangeContainsFunctionType(elementType), + inclusiveRangeTypeContainsFunctionDocString, + ) + }, + }, + }, + ) + }) +} + +func (*InclusiveRangeType) AllowsValueIndexingAssignment() bool { + return false +} + +func (t *InclusiveRangeType) Unify( + other Type, + typeParameters *TypeParameterTypeOrderedMap, + report func(err error), + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, +) bool { + otherRange, ok := other.(*InclusiveRangeType) + if !ok { + return false + } + + return t.MemberType.Unify( + otherRange.MemberType, + typeParameters, + report, + memoryGauge, + outerRange, + ) +} + +func (t *InclusiveRangeType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type { + memberType := t.MemberType.Resolve(typeArguments) + if memberType == nil { + return nil + } + + return &InclusiveRangeType{ + MemberType: memberType, + } +} + +func (t *InclusiveRangeType) IsPrimitiveType() bool { + return false +} + +func (t *InclusiveRangeType) ContainFieldsOrElements() bool { + return false +} + +func (t *InclusiveRangeType) Map( + gauge common.MemoryGauge, + typeParamMap map[*TypeParameter]*TypeParameter, + f func(Type) Type, +) Type { + mappedMemberType := t.MemberType.Map(gauge, typeParamMap, f) + return f(NewInclusiveRangeType(gauge, mappedMemberType)) +} + // ReferenceType represents the reference to a value type ReferenceType struct { Type Type @@ -5963,6 +6967,7 @@ var _ ValueIndexableType = &ReferenceType{} var _ TypeIndexableType = &ReferenceType{} var UnauthorizedAccess Access = PrimitiveAccess(ast.AccessAll) +var InaccessibleAccess Access = PrimitiveAccess(ast.AccessNone) func NewReferenceType( memoryGauge common.MemoryGauge, @@ -6011,6 +7016,9 @@ func (t *ReferenceType) String() string { if t.Authorization != UnauthorizedAccess { authorization = t.Authorization.String() } + if _, isMapping := t.Authorization.(*EntitlementMapAccess); isMapping { + authorization = "mapping " + authorization + } return formatReferenceType(" ", authorization, t.Type.String()) } @@ -6022,6 +7030,9 @@ func (t *ReferenceType) QualifiedString() string { if t.Authorization != UnauthorizedAccess { authorization = t.Authorization.QualifiedString() } + if _, isMapping := t.Authorization.(*EntitlementMapAccess); isMapping { + authorization = "mapping " + authorization + } return formatReferenceType(" ", authorization, t.Type.QualifiedString()) } @@ -6056,10 +7067,18 @@ func (t *ReferenceType) IsResourceType() bool { return false } +func (t *ReferenceType) IsPrimitiveType() bool { + return false +} + func (t *ReferenceType) IsInvalidType() bool { return t.Type.IsInvalidType() } +func (*ReferenceType) IsOrContainsReferenceType() bool { + return true +} + func (t *ReferenceType) IsStorable(_ map[*Member]bool) bool { return false } @@ -6125,22 +7144,18 @@ func (t *ReferenceType) isTypeIndexableType() bool { return ok && referencedType.isTypeIndexableType() } -func (t *ReferenceType) TypeIndexingElementType(indexingType Type, astRange func() ast.Range) (Type, error) { +func (t *ReferenceType) TypeIndexingElementType(indexingType Type, _ func() ast.Range) (Type, error) { _, ok := t.Type.(TypeIndexableType) if !ok { return nil, nil } var access Access = UnauthorizedAccess - switch attachment := indexingType.(type) { + switch indexingType.(type) { case *CompositeType: - if attachment.AttachmentEntitlementAccess != nil { - var err error - access, err = attachment.AttachmentEntitlementAccess.Image(t.Authorization, astRange) - if err != nil { - return nil, err - } - } + // attachment access on a composite reference yields a reference to the attachment entitled to the same + // entitlements as that reference + access = t.Authorization } return &OptionalType{ @@ -6192,14 +7207,21 @@ func (t *ReferenceType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool { otherReference, ok := other.(*ReferenceType) if !ok { return false } - return t.Type.Unify(otherReference.Type, typeParameters, report, outerRange) + return t.Type.Unify( + otherReference.Type, + typeParameters, + report, + memoryGauge, + outerRange, + ) } func (t *ReferenceType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type { @@ -6214,6 +7236,10 @@ func (t *ReferenceType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type } } +func (t *ReferenceType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + t.Type.CheckInstantiated(pos, memoryGauge, report) +} + const AddressTypeName = "Address" // AddressType represents the address type @@ -6255,10 +7281,18 @@ func (*AddressType) IsResourceType() bool { return false } +func (*AddressType) IsPrimitiveType() bool { + return true +} + func (*AddressType) IsInvalidType() bool { return false } +func (*AddressType) IsOrContainsReferenceType() bool { + return false +} + func (*AddressType) IsStorable(_ map[*Member]bool) bool { return true } @@ -6306,7 +7340,13 @@ func (*AddressType) IsSuperType() bool { return false } -func (*AddressType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*AddressType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { return false } @@ -6314,6 +7354,10 @@ func (t *AddressType) Resolve(_ *TypeParameterTypeOrderedMap) Type { return t } +func (*AddressType) CheckInstantiated(_ ast.HasPosition, _ common.MemoryGauge, _ func(err error)) { + // NO-OP +} + const AddressTypeToBytesFunctionName = `toBytes` var AddressTypeToBytesFunctionType = NewSimpleFunctionType( @@ -6349,6 +7393,23 @@ func (t *AddressType) initializeMemberResolvers() { }) } +func IsPrimitiveOrContainerOfPrimitive(referencedType Type) bool { + switch ty := referencedType.(type) { + case *VariableSizedType: + return IsPrimitiveOrContainerOfPrimitive(ty.Type) + + case *ConstantSizedType: + return IsPrimitiveOrContainerOfPrimitive(ty.Type) + + case *DictionaryType: + return IsPrimitiveOrContainerOfPrimitive(ty.KeyType) && + IsPrimitiveOrContainerOfPrimitive(ty.ValueType) + + default: + return ty.IsPrimitiveType() + } +} + // IsSubType determines if the given subtype is a subtype // of the given supertype. // @@ -6446,6 +7507,21 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { case AnyStructAttachmentType: return !subType.IsResourceType() && isAttachmentType(subType) + case HashableStructType: + return IsHashableStructType(subType) + + case PathType: + return IsSubType(subType, StoragePathType) || + IsSubType(subType, CapabilityPathType) + + case StorableType: + storableResults := map[*Member]bool{} + return subType.IsStorable(storableResults) + + case CapabilityPathType: + return IsSubType(subType, PrivatePathType) || + IsSubType(subType, PublicPathType) + case NumberType: switch subType { case NumberType, SignedNumberType: @@ -6465,15 +7541,13 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { case IntegerType: switch subType { - case IntegerType, SignedIntegerType, - UIntType, - UInt8Type, UInt16Type, UInt32Type, UInt64Type, UInt128Type, UInt256Type, - Word8Type, Word16Type, Word32Type, Word64Type, Word128Type, Word256Type: + case IntegerType, SignedIntegerType, FixedSizeUnsignedIntegerType, + UIntType: return true default: - return IsSubType(subType, SignedIntegerType) + return IsSubType(subType, SignedIntegerType) || IsSubType(subType, FixedSizeUnsignedIntegerType) } case SignedIntegerType: @@ -6488,6 +7562,17 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { return false } + case FixedSizeUnsignedIntegerType: + switch subType { + case UInt8Type, UInt16Type, UInt32Type, UInt64Type, UInt128Type, UInt256Type, + Word8Type, Word16Type, Word32Type, Word64Type, Word128Type, Word256Type: + + return true + + default: + return false + } + case FixedPointType: switch subType { case FixedPointType, SignedFixedPointType, @@ -6625,21 +7710,164 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { return true case *IntersectionType: - switch typedSubType := subType.(type) { - case *IntersectionType: - // A intersection type `{Us}` is a subtype of a intersection type `{Vs}` / `{Vs}` / `{Vs}`: - // when `Vs` is a subset of `Us`. + // TODO: replace with + // + //switch typedSubType := subType.(type) { + //case *IntersectionType: + // + // // An intersection type `{Us}` is a subtype of an intersection type `{Vs}` / `{Vs}` / `{Vs}`: + // // when `Vs` is a subset of `Us`. + // + // return typedSuperType.EffectiveIntersectionSet(). + // IsSubsetOf(typedSubType.EffectiveIntersectionSet()) + // + //case *CompositeType: + // // A type `T` is a subtype of an intersection type `{Us}` / `{Us}` / `{Us}`: + // // when `T` conforms to `Us`. + // + // return typedSuperType.EffectiveIntersectionSet(). + // IsSubsetOf(typedSubType.EffectiveInterfaceConformanceSet()) + //} + + intersectionSuperType := typedSuperType.LegacyType //nolint:staticcheck + + switch intersectionSuperType { + case nil, AnyResourceType, AnyStructType, AnyType: + + switch subType { + case AnyResourceType: + // `AnyResource` is a subtype of an intersection type + // - `AnyResource{Us}`: not statically; + // - `AnyStruct{Us}`: never. + // - `Any{Us}`: not statically; + + return false - return typedSuperType.EffectiveIntersectionSet(). - IsSubsetOf(typedSubType.EffectiveIntersectionSet()) + case AnyStructType: + // `AnyStruct` is a subtype of an intersection type + // - `AnyStruct{Us}`: not statically. + // - `AnyResource{Us}`: never; + // - `Any{Us}`: not statically. - case *CompositeType: - // A type `T` is a subtype of a intersection type `{Us}` / `{Us}` / `{Us}`: - // when `T` conforms to `Us`. + return false + + case AnyType: + // `Any` is a subtype of an intersection type + // - `Any{Us}: not statically.` + // - `AnyStruct{Us}`: never; + // - `AnyResource{Us}`: never; + + return false + } + + switch typedSubType := subType.(type) { + case *IntersectionType: + + // An intersection type `T{Us}` + // is a subtype of an intersection type `AnyResource{Vs}` / `AnyStruct{Vs}` / `Any{Vs}`: - return typedSuperType.EffectiveIntersectionSet(). - IsSubsetOf(typedSubType.EffectiveInterfaceConformanceSet()) + intersectionSubtype := typedSubType.LegacyType //nolint:staticcheck + switch intersectionSubtype { + case nil: + // An intersection type `{Us}` is a subtype of an intersection type `{Vs}` / `{Vs}` / `{Vs}`: + // when `Vs` is a subset of `Us`. + + return typedSuperType.EffectiveIntersectionSet(). + IsSubsetOf(typedSubType.EffectiveIntersectionSet()) + + case AnyResourceType, AnyStructType, AnyType: + // When `T == AnyResource || T == AnyStruct || T == Any`: + // if the intersection type of the subtype + // is a subtype of the intersection supertype, + // and `Vs` is a subset of `Us`. + + if intersectionSuperType != nil && + !IsSubType(intersectionSubtype, intersectionSuperType) { + + return false + } + + return typedSuperType.EffectiveIntersectionSet(). + IsSubsetOf(typedSubType.EffectiveIntersectionSet()) + } + + if intersectionSubtype, ok := intersectionSubtype.(*CompositeType); ok { + // When `T != AnyResource && T != AnyStruct && T != Any`: + // if the intersection type of the subtype + // is a subtype of the intersection supertype, + // and `T` conforms to `Vs`. + // `Us` and `Vs` do *not* have to be subsets. + + if intersectionSuperType != nil && + !IsSubType(intersectionSubtype, intersectionSuperType) { + + return false + } + + return typedSuperType.EffectiveIntersectionSet(). + IsSubsetOf(intersectionSubtype.EffectiveInterfaceConformanceSet()) + } + + case *CompositeType: + // A type `T` + // is a subtype of an intersection type `AnyResource{Us}` / `AnyStruct{Us}` / `Any{Us}`: + // if `T` is a subtype of the intersection supertype, + // and `T` conforms to `Us`. + + if intersectionSuperType != nil && + !IsSubType(typedSubType, intersectionSuperType) { + + return false + } + + return typedSuperType.EffectiveIntersectionSet(). + IsSubsetOf(typedSubType.EffectiveInterfaceConformanceSet()) + } + + default: + // Supertype (intersection) has a non-Any* legacy type + + switch typedSubType := subType.(type) { + case *IntersectionType: + + // An intersection type `T{Us}` + // is a subtype of an intersection type `V{Ws}`: + + intersectionSubType := typedSubType.LegacyType //nolint:staticcheck + switch intersectionSubType { + case nil, AnyResourceType, AnyStructType, AnyType: + // When `T == AnyResource || T == AnyStruct || T == Any`: + // not statically. + return false + } + + if intersectionSubType, ok := intersectionSubType.(*CompositeType); ok { + // When `T != AnyResource && T != AnyStructType && T != Any`: if `T == V`. + // + // `Us` and `Ws` do *not* have to be subsets: + // The owner may freely restrict and unrestrict. + + return intersectionSubType == intersectionSuperType + } + + case *CompositeType: + // A type `T` + // is a subtype of an intersection type `U{Vs}`: if `T <: U`. + // + // The owner may freely restrict. + + return IsSubType(typedSubType, intersectionSuperType) + } + + switch subType { + case AnyResourceType, AnyStructType, AnyType: + // A type `T` + // is a subtype of an intersection type `AnyResource{Vs}` / `AnyStruct{Vs}` / `Any{Vs}`: + // not statically. + + return false + } } case *CompositeType: @@ -6647,11 +7875,31 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { // NOTE: type equality case (composite type `T` is subtype of composite type `U`) // is already handled at beginning of function - switch subType.(type) { + switch typedSubType := subType.(type) { case *IntersectionType: - // A intersection type `{Us}` is never a subtype of a type `V`: - return false + // TODO: bring back once legacy type is removed + // An intersection type `{Us}` is never a subtype of a type `V`: + //return false + + // TODO: remove support for legacy type + // An intersection type `T{Us}` + // is a subtype of a type `V`: + + legacyType := typedSubType.LegacyType + switch legacyType { + case nil, AnyResourceType, AnyStructType, AnyType: + // When `T == AnyResource || T == AnyStruct || T == Any`: not statically. + return false + } + + if intersectionSubType, ok := legacyType.(*CompositeType); ok { + // When `T != AnyResource && T != AnyStruct`: if `T == V`. + // + // The owner may freely unrestrict. + + return intersectionSubType == typedSuperType + } case *CompositeType: // Non-equal composite types are never subtypes of each other @@ -6663,7 +7911,7 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { switch typedSubType := subType.(type) { case *CompositeType: - // A composite type `T` is a subtype of a interface type `V`: + // A composite type `T` is a subtype of an interface type `V`: // if `T` conforms to `V`, and `V` and `T` are of the same kind if typedSubType.Kind != typedSuperType.CompositeKind { @@ -6673,15 +7921,17 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { return typedSubType.EffectiveInterfaceConformanceSet(). Contains(typedSuperType) - // An interface type is a supertype of a intersection type if at least one value + // An interface type is a supertype of an intersection type if at least one value // in the intersection set is a subtype of the interface supertype. - - // This particular case comes up when checking attachment access; enabling the following expression to typechecking: - // resource interface I { /* ... */ } - // attachment A for I { /* ... */ } - - // let i : {I} = ... // some operation constructing `i` - // let a = i[A] // must here check that `i`'s type is a subtype of `A`'s base type, or that {I} <: I + // + // This particular case comes up when checking attachment access; + // enabling the following expression to type-checking: + // + // resource interface I { /* ... */ } + // attachment A for I { /* ... */ } + // + // let i : {I} = ... // some operation constructing `i` + // let a = i[A] // must here check that `i`'s type is a subtype of `A`'s base type, or that {I} <: I case *IntersectionType: return typedSubType.EffectiveIntersectionSet().Contains(typedSuperType) @@ -6721,12 +7971,6 @@ func checkSubTypeWithoutEquality(subType Type, superType Type) bool { } } } - - case *SimpleType: - if typedSuperType.IsSuperTypeOf == nil { - return false - } - return typedSuperType.IsSuperTypeOf(subType) } // TODO: enforce type arguments, remove this rule @@ -6857,10 +8101,18 @@ func (*TransactionType) IsResourceType() bool { return false } +func (*TransactionType) IsPrimitiveType() bool { + return false +} + func (*TransactionType) IsInvalidType() bool { return false } +func (*TransactionType) IsOrContainsReferenceType() bool { + return false +} + func (*TransactionType) IsStorable(_ map[*Member]bool) bool { return false } @@ -6912,7 +8164,13 @@ func (t *TransactionType) initializeMemberResolvers() { }) } -func (*TransactionType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*TransactionType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { return false } @@ -6920,6 +8178,16 @@ func (t *TransactionType) Resolve(_ *TypeParameterTypeOrderedMap) Type { return t } +func (t *TransactionType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + for _, param := range t.PrepareParameters { + param.TypeAnnotation.Type.CheckInstantiated(pos, memoryGauge, report) + } + + for _, param := range t.Parameters { + param.TypeAnnotation.Type.CheckInstantiated(pos, memoryGauge, report) + } +} + // IntersectionType type IntersectionType struct { @@ -6929,13 +8197,17 @@ type IntersectionType struct { effectiveIntersectionSetOnce sync.Once memberResolvers map[string]MemberResolver memberResolversOnce sync.Once - supportedEntitlements *EntitlementOrderedSet + supportedEntitlementsOnce sync.Once + supportedEntitlements *EntitlementSet + // Deprecated + LegacyType Type } var _ Type = &IntersectionType{} -func NewIntersectionType(memoryGauge common.MemoryGauge, types []*InterfaceType) *IntersectionType { - if len(types) == 0 { +// TODO: remove `legacyType` once all uses of it are removed +func NewIntersectionType(memoryGauge common.MemoryGauge, legacyType Type, types []*InterfaceType) *IntersectionType { + if len(types) == 0 && legacyType == nil { panic(errors.NewUnreachableError()) } @@ -6948,7 +8220,8 @@ func NewIntersectionType(memoryGauge common.MemoryGauge, types []*InterfaceType) common.UseMemory(memoryGauge, entriesUsage) return &IntersectionType{ - Types: types, + Types: types, + LegacyType: legacyType, //nolint:staticcheck } } @@ -7056,6 +8329,10 @@ func (t *IntersectionType) IsResourceType() bool { return t.Types[0].IsResourceType() } +func (*IntersectionType) IsPrimitiveType() bool { + return false +} + func (t *IntersectionType) IsInvalidType() bool { for _, typ := range t.Types { if typ.IsInvalidType() { @@ -7066,6 +8343,16 @@ func (t *IntersectionType) IsInvalidType() bool { return false } +func (t *IntersectionType) IsOrContainsReferenceType() bool { + for _, typ := range t.Types { + if typ.IsOrContainsReferenceType() { + return true + } + } + + return false +} + func (t *IntersectionType) IsStorable(results map[*Member]bool) bool { for _, typ := range t.Types { if !typ.IsStorable(results) { @@ -7135,6 +8422,7 @@ func (t *IntersectionType) Map(gauge common.MemoryGauge, typeParamMap map[*TypeP return f(NewIntersectionType( gauge, + t.LegacyType, //nolint:staticcheck intersectionTypes, )) } @@ -7149,8 +8437,8 @@ func (t *IntersectionType) initializeMemberResolvers() { memberResolvers := map[string]MemberResolver{} - // Return the members of all typs. - // The invariant that typs may not have overlapping members is not checked here, + // Return the members of all types. + // The invariant that types may not have overlapping members is not checked here, // but implicitly when the resource declaration's conformances are checked. for _, typ := range t.Types { @@ -7165,22 +8453,27 @@ func (t *IntersectionType) initializeMemberResolvers() { }) } -func (t *IntersectionType) SupportedEntitlements() (set *EntitlementOrderedSet) { - if t.supportedEntitlements != nil { - return t.supportedEntitlements - } - - // an intersection type supports all the entitlements of its interfaces - set = orderedmap.New[EntitlementOrderedSet](t.EffectiveIntersectionSet().Len()) - t.EffectiveIntersectionSet().ForEach(func(it *InterfaceType) { - set.SetAll(it.SupportedEntitlements()) +func (t *IntersectionType) SupportedEntitlements() *EntitlementSet { + t.supportedEntitlementsOnce.Do(func() { + // an intersection type supports all the entitlements of its interfaces + set := &EntitlementSet{} + t.EffectiveIntersectionSet(). + ForEach(func(interfaceType *InterfaceType) { + set.Merge(interfaceType.SupportedEntitlements()) + }) + t.supportedEntitlements = set }) - t.supportedEntitlements = set - return set + return t.supportedEntitlements } -func (*IntersectionType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*IntersectionType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { // TODO: how do we unify the intersection sets? return false } @@ -7190,11 +8483,14 @@ func (t *IntersectionType) Resolve(_ *TypeParameterTypeOrderedMap) Type { return t } -// intersection types must be type indexable, because this is how we handle access control for attachments. +// Intersection types must be type indexable, because this is how we handle access control for attachments. // Specifically, because in `v[A]`, `v` must be a subtype of `A`'s declared base, -// if `v` is a intersection type `{I}`, only attachments declared for `I` or a supertype can be accessed on `v`. +// if `v` is an intersection type `{I}`, only attachments declared for `I` or a supertype can be accessed on `v`. +// // Attachments declared for concrete types implementing `I` cannot be accessed. -// A good elucidating example here is that an attachment declared for `Vault` cannot be accessed on a value of type `&{Provider}` +// +// A good elucidating example here is that an attachment declared for `Vault` +// cannot be accessed on a value of type `&{Provider}` func (t *IntersectionType) isTypeIndexableType() bool { // resources and structs only can be indexed for attachments, but all intersection types // are necessarily structs and resources, we return true @@ -7205,9 +8501,9 @@ func (t *IntersectionType) TypeIndexingElementType(indexingType Type, _ func() a var access Access = UnauthorizedAccess switch attachment := indexingType.(type) { case *CompositeType: - if attachment.AttachmentEntitlementAccess != nil { - access = attachment.AttachmentEntitlementAccess.Codomain() - } + // when accessed on an owned value, the produced attachment reference is entitled to all the + // entitlements it supports + access = attachment.SupportedEntitlements().Access() } return &OptionalType{ @@ -7225,6 +8521,10 @@ func (t *IntersectionType) IsValidIndexingType(ty Type) bool { attachmentType.IsResourceType() == t.IsResourceType() } +func (t *IntersectionType) CheckInstantiated(_ ast.HasPosition, _ common.MemoryGauge, _ func(err error)) { + // No-OP +} + // CapabilityType type CapabilityType struct { @@ -7306,11 +8606,23 @@ func (*CapabilityType) IsResourceType() bool { return false } +func (*CapabilityType) IsPrimitiveType() bool { + return false +} + func (t *CapabilityType) IsInvalidType() bool { if t.BorrowType == nil { return false } return t.BorrowType.IsInvalidType() + +} + +func (t *CapabilityType) IsOrContainsReferenceType() bool { + if t.BorrowType == nil { + return false + } + return t.BorrowType.IsOrContainsReferenceType() } func (t *CapabilityType) TypeAnnotationState() TypeAnnotationState { @@ -7363,7 +8675,8 @@ func (t *CapabilityType) Unify( other Type, typeParameters *TypeParameterTypeOrderedMap, report func(err error), - outerRange ast.Range, + memoryGauge common.MemoryGauge, + outerRange ast.HasPosition, ) bool { otherCap, ok := other.(*CapabilityType) if !ok { @@ -7374,7 +8687,13 @@ func (t *CapabilityType) Unify( return false } - return t.BorrowType.Unify(otherCap.BorrowType, typeParameters, report, outerRange) + return t.BorrowType.Unify( + otherCap.BorrowType, + typeParameters, + report, + memoryGauge, + outerRange, + ) } func (t *CapabilityType) Resolve(typeArguments *TypeParameterTypeOrderedMap) Type { @@ -7402,7 +8721,12 @@ func (t *CapabilityType) TypeParameters() []*TypeParameter { } } -func (t *CapabilityType) Instantiate(typeArguments []Type, _ func(err error)) Type { +func (t *CapabilityType) Instantiate( + _ common.MemoryGauge, + typeArguments []Type, + _ []*ast.TypeAnnotation, + _ func(err error), +) Type { borrowType := typeArguments[0] return &CapabilityType{ BorrowType: borrowType, @@ -7429,6 +8753,10 @@ func (t *CapabilityType) TypeArguments() []Type { } } +func (t *CapabilityType) CheckInstantiated(pos ast.HasPosition, memoryGauge common.MemoryGauge, report func(err error)) { + CheckParameterizedTypeInstantiated(t, pos, memoryGauge, report) +} + func CapabilityTypeBorrowFunctionType(borrowType Type) *FunctionType { var typeParameters []*TypeParameter @@ -7767,7 +9095,7 @@ func MembersMapAsResolvers(members *StringMemberOrderedMap) map[string]MemberRes members.Foreach(func(name string, member *Member) { resolvers[name] = MemberResolver{ Kind: member.DeclarationKind, - Resolve: func(_ common.MemoryGauge, _ string, _ ast.Range, _ func(error)) *Member { + Resolve: func(_ common.MemoryGauge, _ string, _ ast.HasPosition, _ func(error)) *Member { return member }, } @@ -7783,7 +9111,7 @@ func MembersAsResolvers(members []*Member) map[string]MemberResolver { member := loopMember resolvers[member.Identifier.Identifier] = MemberResolver{ Kind: member.DeclarationKind, - Resolve: func(_ common.MemoryGauge, _ string, _ ast.Range, _ func(error)) *Member { + Resolve: func(_ common.MemoryGauge, _ string, _ ast.HasPosition, _ func(error)) *Member { return member }, } @@ -7805,6 +9133,7 @@ type EntitlementType struct { Location common.Location containerType Type Identifier string + isInvalid bool } var _ Type = &EntitlementType{} @@ -7870,19 +9199,27 @@ func (t *EntitlementType) GetMembers() map[string]MemberResolver { return withBuiltinMembers(t, nil) } +func (*EntitlementType) IsPrimitiveType() bool { + return false +} + func (t *EntitlementType) IsInvalidType() bool { + return t.isInvalid +} + +func (*EntitlementType) IsOrContainsReferenceType() bool { return false } -func (t *EntitlementType) IsStorable(_ map[*Member]bool) bool { +func (*EntitlementType) IsStorable(_ map[*Member]bool) bool { return false } -func (t *EntitlementType) IsExportable(_ map[*Member]bool) bool { +func (*EntitlementType) IsExportable(_ map[*Member]bool) bool { return false } -func (t *EntitlementType) IsImportable(_ map[*Member]bool) bool { +func (*EntitlementType) IsImportable(_ map[*Member]bool) bool { return false } @@ -7910,7 +9247,13 @@ func (t *EntitlementType) RewriteWithIntersectionTypes() (Type, bool) { return t, false } -func (*EntitlementType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*EntitlementType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { return false } @@ -7918,6 +9261,10 @@ func (t *EntitlementType) Resolve(_ *TypeParameterTypeOrderedMap) Type { return t } +func (t *EntitlementType) CheckInstantiated(_ ast.HasPosition, _ common.MemoryGauge, _ func(err error)) { + // No-OP +} + // EntitlementMapType type EntitlementRelation struct { @@ -7938,10 +9285,14 @@ func NewEntitlementRelation( } type EntitlementMapType struct { - Location common.Location - containerType Type - Identifier string - Relations []EntitlementRelation + Location common.Location + containerType Type + Identifier string + Relations []EntitlementRelation + + // Whether this map type includes the special identity relation, + // which maps every input to itself. The `Identity` mapping itself + // is defined as the empty map type that includes the identity relation IncludesIdentity bool resolveInclusions sync.Once } @@ -8013,19 +9364,27 @@ func (t *EntitlementMapType) GetMembers() map[string]MemberResolver { return withBuiltinMembers(t, nil) } -func (t *EntitlementMapType) IsInvalidType() bool { +func (*EntitlementMapType) IsPrimitiveType() bool { return false } -func (t *EntitlementMapType) IsStorable(_ map[*Member]bool) bool { +func (*EntitlementMapType) IsInvalidType() bool { return false } -func (t *EntitlementMapType) IsExportable(_ map[*Member]bool) bool { +func (*EntitlementMapType) IsOrContainsReferenceType() bool { return false } -func (t *EntitlementMapType) IsImportable(_ map[*Member]bool) bool { +func (*EntitlementMapType) IsStorable(_ map[*Member]bool) bool { + return false +} + +func (*EntitlementMapType) IsExportable(_ map[*Member]bool) bool { + return false +} + +func (*EntitlementMapType) IsImportable(_ map[*Member]bool) bool { return false } @@ -8053,7 +9412,13 @@ func (t *EntitlementMapType) RewriteWithIntersectionTypes() (Type, bool) { return t, false } -func (*EntitlementMapType) Unify(_ Type, _ *TypeParameterTypeOrderedMap, _ func(err error), _ ast.Range) bool { +func (*EntitlementMapType) Unify( + _ Type, + _ *TypeParameterTypeOrderedMap, + _ func(err error), + _ common.MemoryGauge, + _ ast.HasPosition, +) bool { return false } @@ -8101,7 +9466,7 @@ func (t *EntitlementMapType) resolveEntitlementMappingInclusions( }) continue } - if _, isCylical := visitedMaps[includedMapType]; isCylical { + if _, isCyclical := visitedMaps[includedMapType]; isCyclical { checker.report(&CyclicEntitlementMappingError{ Map: t, IncludedType: includedMapType, @@ -8130,6 +9495,10 @@ func (t *EntitlementMapType) resolveEntitlementMappingInclusions( }) } +func (t *EntitlementMapType) CheckInstantiated(_ ast.HasPosition, _ common.MemoryGauge, _ func(err error)) { + // NO-OP +} + var NativeCompositeTypes = map[string]*CompositeType{} func init() { diff --git a/runtime/sema/type_names.go b/runtime/sema/type_names.go index 7ac1ac7ca2..4acce459a9 100644 --- a/runtime/sema/type_names.go +++ b/runtime/sema/type_names.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,12 +19,13 @@ package sema const ( - NumberTypeName = "Number" - SignedNumberTypeName = "SignedNumber" - IntegerTypeName = "Integer" - SignedIntegerTypeName = "SignedInteger" - FixedPointTypeName = "FixedPoint" - SignedFixedPointTypeName = "SignedFixedPoint" + NumberTypeName = "Number" + SignedNumberTypeName = "SignedNumber" + IntegerTypeName = "Integer" + SignedIntegerTypeName = "SignedInteger" + FixedSizeUnsignedIntegerTypeName = "FixedSizeUnsignedInteger" + FixedPointTypeName = "FixedPoint" + SignedFixedPointTypeName = "SignedFixedPoint" IntTypeName = "Int" Int8TypeName = "Int8" diff --git a/runtime/sema/type_tags.go b/runtime/sema/type_tags.go index bef99a388e..1990b0b9c9 100644 --- a/runtime/sema/type_tags.go +++ b/runtime/sema/type_tags.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package sema import ( + "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/onflow/cadence/runtime/errors" ) @@ -221,8 +222,12 @@ const ( storageCapabilityControllerTypeMask accountCapabilityControllerTypeMask + fixedSizeUnsignedIntegerTypeMask + interfaceTypeMask functionTypeMask + hashableStructMask + inclusiveRangeTypeMask invalidTypeMask ) @@ -240,20 +245,23 @@ var ( Or(Int128TypeTag). Or(Int256TypeTag) + FixedSizeUnsignedIntegerTypeTag = newTypeTagFromUpperMask(fixedSizeUnsignedIntegerTypeMask). + Or(UInt8TypeTag). + Or(UInt16TypeTag). + Or(UInt32TypeTag). + Or(UInt64TypeTag). + Or(UInt128TypeTag). + Or(UInt256TypeTag). + Or(Word8TypeTag). + Or(Word16TypeTag). + Or(Word32TypeTag). + Or(Word64TypeTag). + Or(Word128TypeTag). + Or(Word256TypeTag) + UnsignedIntegerTypeTag = newTypeTagFromLowerMask(unsignedIntegerTypeMask). Or(UIntTypeTag). - Or(UInt8TypeTag). - Or(UInt16TypeTag). - Or(UInt32TypeTag). - Or(UInt64TypeTag). - Or(UInt128TypeTag). - Or(UInt256TypeTag). - Or(Word8TypeTag). - Or(Word16TypeTag). - Or(Word32TypeTag). - Or(Word64TypeTag). - Or(Word128TypeTag). - Or(Word256TypeTag) + Or(FixedSizeUnsignedIntegerTypeTag) IntegerTypeTag = newTypeTagFromLowerMask(integerTypeMask). Or(SignedIntegerTypeTag). @@ -338,6 +346,7 @@ var ( IntersectionTypeTag = newTypeTagFromUpperMask(intersectionTypeMask) CapabilityTypeTag = newTypeTagFromUpperMask(capabilityTypeMask) + InclusiveRangeTypeTag = newTypeTagFromUpperMask(inclusiveRangeTypeMask) InvalidTypeTag = newTypeTagFromUpperMask(invalidTypeMask) TransactionTypeTag = newTypeTagFromUpperMask(transactionTypeMask) AnyResourceAttachmentTypeTag = newTypeTagFromUpperMask(anyResourceAttachmentMask) @@ -345,6 +354,16 @@ var ( StorageCapabilityControllerTypeTag = newTypeTagFromUpperMask(storageCapabilityControllerTypeMask) AccountCapabilityControllerTypeTag = newTypeTagFromUpperMask(accountCapabilityControllerTypeMask) + HashableStructTypeTag = newTypeTagFromUpperMask(hashableStructMask). + Or(AddressTypeTag). + Or(NeverTypeTag). + Or(BoolTypeTag). + Or(CharacterTypeTag). + Or(StringTypeTag). + Or(MetaTypeTag). + Or(NumberTypeTag). + Or(PathTypeTag) + // AnyStructTypeTag only includes the types that are pre-known // to belong to AnyStruct type. This is more of an optimization. // Other types (derived types such as collections, etc.) are not possible @@ -368,7 +387,9 @@ var ( Or(CapabilityTypeTag). Or(FunctionTypeTag). Or(StorageCapabilityControllerTypeTag). - Or(AccountCapabilityControllerTypeTag) + Or(AccountCapabilityControllerTypeTag). + Or(HashableStructTypeTag). + Or(InclusiveRangeTypeTag) AnyResourceTypeTag = newTypeTagFromLowerMask(anyResourceTypeMask). Or(AnyResourceAttachmentTypeTag) @@ -489,6 +510,8 @@ func findCommonSuperType(joinedTypeTag TypeTag, types ...Type) Type { return InvalidType case joinedTypeTag.BelongsTo(SignedIntegerTypeTag): return SignedIntegerType + case joinedTypeTag.BelongsTo(FixedSizeUnsignedIntegerTypeTag): + return FixedSizeUnsignedIntegerType case joinedTypeTag.BelongsTo(IntegerTypeTag): return IntegerType case joinedTypeTag.BelongsTo(SignedFixedPointTypeTag): @@ -649,9 +672,9 @@ func findSuperTypeFromLowerMask(joinedTypeTag TypeTag, types []Type) Type { return commonSuperTypeOfVariableSizedArrays(types) case dictionaryTypeMask: return commonSuperTypeOfDictionaries(types) - case referenceTypeMask, - genericTypeMask: - + case referenceTypeMask: + return commonSuperTypeOfReferences(types) + case genericTypeMask: return getSuperTypeOfDerivedTypes(types) default: // not homogenous. Return nil and continue on advanced checks. @@ -670,9 +693,13 @@ func findSuperTypeFromUpperMask(joinedTypeTag TypeTag, types []Type) Type { intersectionTypeMask, transactionTypeMask, interfaceTypeMask, - functionTypeMask: + functionTypeMask, + inclusiveRangeTypeMask: return getSuperTypeOfDerivedTypes(types) + case hashableStructMask: + return HashableStructType + case anyResourceAttachmentMask: return AnyResourceAttachmentType @@ -685,11 +712,140 @@ func findSuperTypeFromUpperMask(joinedTypeTag TypeTag, types []Type) Type { case accountCapabilityControllerTypeMask: return AccountCapabilityControllerType + case fixedSizeUnsignedIntegerTypeMask: + return FixedSizeUnsignedIntegerType + default: return nil } } +func leastCommonAccess(accessA, accessB Access) Access { + setAccessA, isSetAccessA := accessA.(EntitlementSetAccess) + setAccessB, isSetAccessB := accessB.(EntitlementSetAccess) + + if !isSetAccessA || !isSetAccessB { + return UnauthorizedAccess + } + + switch setAccessA.SetKind { + case Conjunction: + switch setAccessB.SetKind { + case Conjunction: + // least common access of two non-disjoint conjunctions is their intersection + // e.g. the least common supertype of (E, F) and (E, G) is just E + intersection := orderedmap.KeySetIntersection(setAccessA.Entitlements, setAccessB.Entitlements) + if intersection.Len() != 0 { + return NewAccessFromEntitlementOrderedSet(intersection, Conjunction) + } + // if the intersection is completely empty (i.e. the two sets are totally disjoint) + // the least common supertype is the union of one element arbitrarily chosen from each conjunction. + // E.g., `(A | C)`, `(A | D)`, `(B | C)`, and `(B | D)` + // are all equally valid least common supertypes of (A, B)` and `(C, D)`. + // + // To get a more consistent behavior here, + // we take the least common supertype of all the possible least common supertypes from the previous step, + // which luckily here is just the union of the elements of the conjunctions converted to a disjunction. + // e.g. the least common supertype of E and F is `(E | F)` + // and the least common supertype of `(A, B)` and `(C, D)` is `(A | B | C | D)` + union := orderedmap.KeySetUnion(setAccessA.Entitlements, setAccessB.Entitlements) + return NewAccessFromEntitlementOrderedSet(union, Disjunction) + + case Disjunction: + // least common supertype of a non-disjoint conjunction and a disjunction is + // just the disjunction. This is because, in this case, the disjunction is + // already a supertype of the conjunction + // e.g. the least common access of `(E, F)` and `(E | G)` is `(E | G)` + if setAccessB.PermitsAccess(setAccessA) { + return setAccessB + } + + // if the conjunction and disjunction are completely disjoint, their least common supertype + // is the union of the disjunction and an arbitrary element chosen from the conjunction. + // E.g. `(E | G | H)` and `(F | G | H)` are both valid least common supertypes of `(E, F)` and `(G | H)` + // + // In order to have a consistent behavior here, + // we take the least common supertype of all the possible least common supertypes from the previous step, + // which luckily here is just the union of the elements of the disjunction and the conjunction. + // E.g. our computed supertype of `(E, F)` and `(G | H)` is `(E | F | G | H)` + union := orderedmap.KeySetUnion(setAccessA.Entitlements, setAccessB.Entitlements) + return NewAccessFromEntitlementOrderedSet(union, Disjunction) + } + + case Disjunction: + switch setAccessB.SetKind { + case Conjunction: + // symmetric with the other case where A is a conjunction and B is a disjunction + return leastCommonAccess(accessB, accessA) + case Disjunction: + // least common access of two disjunctions is their union + // e.g. the least common supertype of (E | F) and (E | G) is (E | F | G) + union := orderedmap.KeySetUnion(setAccessA.Entitlements, setAccessB.Entitlements) + return NewAccessFromEntitlementOrderedSet(union, Disjunction) + } + } + + panic(errors.NewUnreachableError()) +} + +func commonSuperTypeOfReferences(types []Type) Type { + var references []*ReferenceType + + // check that all the referenced types are equal + // before computing authorization supertype + var prevReferenceType *ReferenceType + for _, typ := range types { + // 'Never' type doesn't affect the supertype. + // Hence, ignore them + if typ == NeverType { + continue + } + + referenceType, ok := typ.(*ReferenceType) + if !ok { + panic(errors.NewUnreachableError()) + } + + references = append(references, referenceType) + + if prevReferenceType == nil { + prevReferenceType = referenceType + continue + } + + if !referenceType.Type.Equal(prevReferenceType.Type) { + return commonSuperTypeOfHeterogeneousTypes(types) + } + } + + if len(references) == 0 { + return commonSuperTypeOfHeterogeneousTypes(types) + } + + referencedType := references[0].Type + + // compute the least common authorization of the list of references + // the "supertype" operation for access is commutative and associative, + // so we can just apply the operation by reducing the list + var superAuthorization Access + for _, refTyp := range references { + if superAuthorization == nil { + superAuthorization = refTyp.Authorization + continue + } + // this is the "top" access, so if we are already here, just end the loop early + if superAuthorization == UnauthorizedAccess { + break + } + superAuthorization = leastCommonAccess(superAuthorization, refTyp.Authorization) + } + + return &ReferenceType{ + Type: referencedType, + Authorization: superAuthorization, + } +} + func getSuperTypeOfDerivedTypes(types []Type) Type { // We reach here if all types belongs to same kind. // e.g: All are arrays, all are dictionaries, etc. @@ -827,7 +983,7 @@ func commonSuperTypeOfDictionaries(types []Type) Type { return InvalidType } - if !IsValidDictionaryKeyType(keySuperType) { + if !IsSubType(keySuperType, HashableStructType) { return commonSuperTypeOfHeterogeneousTypes(types) } @@ -838,11 +994,13 @@ func commonSuperTypeOfDictionaries(types []Type) Type { } func commonSuperTypeOfHeterogeneousTypes(types []Type) Type { - var hasStructs, hasResources bool + var hasStructs, hasResources, allHashableStructs bool + allHashableStructs = true for _, typ := range types { isResource := typ.IsResourceType() hasResources = hasResources || isResource hasStructs = hasStructs || !isResource + allHashableStructs = allHashableStructs && IsHashableStructType(typ) if hasResources && hasStructs { return AnyType @@ -853,6 +1011,10 @@ func commonSuperTypeOfHeterogeneousTypes(types []Type) Type { return AnyResourceType } + if allHashableStructs { + return HashableStructType + } + return AnyStructType } diff --git a/runtime/sema/type_test.go b/runtime/sema/type_test.go index a81854a54f..0f0bcf40cf 100644 --- a/runtime/sema/type_test.go +++ b/runtime/sema/type_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -384,7 +384,7 @@ func TestIntersectionType_GetMember(t *testing.T) { require.Contains(t, actualMembers, fieldName) - actualMember := actualMembers[fieldName].Resolve(nil, fieldName, ast.Range{}, nil) + actualMember := actualMembers[fieldName].Resolve(nil, fieldName, ast.EmptyRange, nil) assert.Same(t, interfaceMember, actualMember) }) @@ -649,10 +649,9 @@ func TestCommonSuperType(t *testing.T) { testLeastCommonSuperType := func(t *testing.T, tests []testCase) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - assert.Equal( + assert.True( t, - test.expectedSuperType, - LeastCommonSuperType(test.types...), + test.expectedSuperType.Equal(LeastCommonSuperType(test.types...)), ) }) } @@ -772,16 +771,25 @@ func TestCommonSuperType(t *testing.T) { types: []Type{ UInt8Type, UInt128Type, + UIntType, }, expectedSuperType: IntegerType, }, + { + name: "fixed size unsigned integers", + types: []Type{ + UInt8Type, + UInt128Type, + }, + expectedSuperType: FixedSizeUnsignedIntegerType, + }, { name: "heterogeneous simple types", types: []Type{ StringType, Int8Type, }, - expectedSuperType: AnyStructType, + expectedSuperType: HashableStructType, }, { name: "all nil", @@ -1036,7 +1044,7 @@ func TestCommonSuperType(t *testing.T) { stringArray, &VariableSizedType{Type: BoolType}, }, - expectedSuperType: &VariableSizedType{Type: AnyStructType}, + expectedSuperType: &VariableSizedType{Type: HashableStructType}, }, { name: "simple-typed array & resource array", @@ -1160,7 +1168,7 @@ func TestCommonSuperType(t *testing.T) { }, expectedSuperType: &DictionaryType{ KeyType: StringType, - ValueType: AnyStructType, + ValueType: HashableStructType, }, }, { @@ -1228,9 +1236,27 @@ func TestCommonSuperType(t *testing.T) { testLeastCommonSuperType(t, tests) }) - t.Run("References types", func(t *testing.T) { + t.Run("Reference types", func(t *testing.T) { t.Parallel() + testLocation := common.StringLocation("test") + + entitlementE := NewEntitlementType(nil, testLocation, "E") + entitlementF := NewEntitlementType(nil, testLocation, "F") + entitlementG := NewEntitlementType(nil, testLocation, "G") + entitlementM := NewEntitlementMapType(nil, testLocation, "E") + + entitlementsEOnly := NewEntitlementSetAccess([]*EntitlementType{entitlementE}, Conjunction) + entitlementsEAndF := NewEntitlementSetAccess([]*EntitlementType{entitlementE, entitlementF}, Conjunction) + entitlementsEAndG := NewEntitlementSetAccess([]*EntitlementType{entitlementE, entitlementG}, Conjunction) + entitlementsFAndG := NewEntitlementSetAccess([]*EntitlementType{entitlementF, entitlementG}, Conjunction) + entitlementsEAndFAndG := NewEntitlementSetAccess([]*EntitlementType{entitlementE, entitlementG, entitlementF}, Conjunction) + entitlementsEOrFOrG := NewEntitlementSetAccess([]*EntitlementType{entitlementE, entitlementF, entitlementG}, Disjunction) + entitlementsEOrG := NewEntitlementSetAccess([]*EntitlementType{entitlementE, entitlementG}, Disjunction) + entitlementsEOrF := NewEntitlementSetAccess([]*EntitlementType{entitlementE, entitlementF}, Disjunction) + entitlementsFOrG := NewEntitlementSetAccess([]*EntitlementType{entitlementG, entitlementF}, Disjunction) + entitlementsM := NewEntitlementMapAccess(entitlementM) + tests := []testCase{ { name: "homogenous references", @@ -1304,8 +1330,197 @@ func TestCommonSuperType(t *testing.T) { Authorization: EntitlementSetAccess{}, }, }, - // maybe have this be unauthorized instead of anystruct? - expectedSuperType: AnyStructType, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: UnauthorizedAccess, + }, + }, + { + name: "E and (E, F)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEAndF, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + }, + { + name: "E and (F, G)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsFAndG, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrFOrG, + }, + }, + { + name: "E and (E | G)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrG, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrG, + }, + }, + { + name: "E and (F | G)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsFOrG, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrFOrG, + }, + }, + { + name: "(F | G) and E", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsFOrG, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrFOrG, + }, + }, + { + name: "(E, F) and (E | G)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEAndF, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrG, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrG, + }, + }, + { + name: "(E, F) and (E, G)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEAndF, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEAndG, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + }, + { + name: "(E, F) and (E, F, G)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEAndF, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEAndFAndG, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEAndF, + }, + }, + { + name: "(E | G) and (E | F)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrG, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrF, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrFOrG, + }, + }, + { + name: "(E | G) and (E | F | G)", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrG, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrFOrG, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOrFOrG, + }, + }, + { + name: "M and E", + types: []Type{ + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsEOnly, + }, + &ReferenceType{ + Type: Int8Type, + Authorization: entitlementsM, + }, + }, + expectedSuperType: &ReferenceType{ + Type: Int8Type, + Authorization: UnauthorizedAccess, + }, }, } @@ -1349,7 +1564,7 @@ func TestCommonSuperType(t *testing.T) { StoragePathType, StringType, }, - expectedSuperType: AnyStructType, + expectedSuperType: HashableStructType, }, } @@ -1618,7 +1833,9 @@ func TestCommonSuperType(t *testing.T) { Int8Type, StringType, }, - expectedSuperType: AnyStructType, + expectedSuperType: &OptionalType{ + Type: HashableStructType, + }, }, { name: "nil with simple type", @@ -1637,7 +1854,9 @@ func TestCommonSuperType(t *testing.T) { Int8Type, StringType, }, - expectedSuperType: AnyStructType, + expectedSuperType: &OptionalType{ + Type: HashableStructType, + }, }, { name: "multi-level simple optional types", @@ -1699,6 +1918,332 @@ func TestCommonSuperType(t *testing.T) { }) } +func TestIsPrimitive(t *testing.T) { + t.Parallel() + + resourceType := &CompositeType{ + Location: nil, + Identifier: "Foo", + Kind: common.CompositeKindResource, + } + + type testCase struct { + expectedIsPrimitive bool + name string + ty Type + } + + testIsPrimitive := func(t *testing.T, tests []testCase) { + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + assert.Equal(t, test.expectedIsPrimitive, test.ty.IsPrimitiveType()) + }) + } + } + + t.Run("number types", func(t *testing.T) { + t.Parallel() + + var tests []testCase + for _, ty := range AllNumberTypes { + tests = append(tests, testCase{ + expectedIsPrimitive: true, + name: string(ty.ID()), + ty: ty, + }) + } + + testIsPrimitive(t, tests) + }) + + t.Run("simple types", func(t *testing.T) { + t.Parallel() + + var tests []testCase + for _, ty := range []Type{ + CharacterType, + BoolType, + StringType, + TheAddressType, + PrivatePathType, + PublicPathType, + StoragePathType, + VoidType, + } { + tests = append(tests, testCase{ + expectedIsPrimitive: true, + name: string(ty.ID()), + ty: ty, + }) + } + + for _, ty := range []Type{ + &GenericType{TypeParameter: &TypeParameter{Name: "T"}}, + &TransactionType{}, + } { + tests = append(tests, testCase{ + expectedIsPrimitive: false, + name: string(ty.ID()), + ty: ty, + }) + } + + testIsPrimitive(t, tests) + }) + + t.Run("Optional types", func(t *testing.T) { + t.Parallel() + + testLocation := common.StringLocation("test") + + structType := &CompositeType{ + Location: testLocation, + Identifier: "T", + Kind: common.CompositeKindStructure, + Members: &StringMemberOrderedMap{}, + } + + optionalStructType := &OptionalType{ + Type: structType, + } + + doubleOptionalStructType := &OptionalType{ + Type: &OptionalType{ + Type: structType, + }, + } + + var tests []testCase + for _, ty := range []Type{ + CharacterType, + BoolType, + StringType, + TheAddressType, + PrivatePathType, + PublicPathType, + StoragePathType, + VoidType, + } { + tests = append(tests, testCase{ + expectedIsPrimitive: true, + name: fmt.Sprintf("Optional<%s>", string(ty.ID())), + ty: &OptionalType{Type: ty}, + }) + + tests = append(tests, testCase{ + expectedIsPrimitive: true, + name: fmt.Sprintf("Optional>", string(ty.ID())), + ty: &OptionalType{Type: &OptionalType{Type: ty}}, + }) + } + + tests = append(tests, testCase{ + expectedIsPrimitive: false, + name: "Optional", + ty: optionalStructType, + }) + + tests = append(tests, testCase{ + expectedIsPrimitive: false, + name: "Optional>", + ty: doubleOptionalStructType, + }) + + testIsPrimitive(t, tests) + }) + + t.Run("Arrays", func(t *testing.T) { + t.Parallel() + + var tests []testCase + err := BaseTypeActivation.ForEach(func(name string, variable *Variable) error { + // Entitlements are not typical types. So skip. + if _, ok := BuiltinEntitlements[name]; ok { + return nil + } + if _, ok := BuiltinEntitlementMappings[name]; ok { + return nil + } + + typ := variable.Type + + tests = append(tests, testCase{ + name: fmt.Sprintf("VariableSizedType<%s>", name), + ty: &VariableSizedType{Type: typ}, + expectedIsPrimitive: false, + }) + + tests = append(tests, testCase{ + name: fmt.Sprintf("ConstantSizedType<%s>", name), + ty: &ConstantSizedType{Type: typ, Size: 1}, + expectedIsPrimitive: false, + }) + + return nil + }) + + require.NoError(t, err) + testIsPrimitive(t, tests) + }) + + t.Run("Dictionaries", func(t *testing.T) { + t.Parallel() + + stringStringDictionary := &DictionaryType{ + KeyType: StringType, + ValueType: StringType, + } + + stringBoolDictionary := &DictionaryType{ + KeyType: StringType, + ValueType: BoolType, + } + + stringResourceDictionary := &DictionaryType{ + KeyType: StringType, + ValueType: resourceType, + } + + nestedResourceDictionary := &DictionaryType{ + KeyType: StringType, + ValueType: stringResourceDictionary, + } + + nestedStringDictionary := &DictionaryType{ + KeyType: StringType, + ValueType: stringStringDictionary, + } + + tests := []testCase{ + { + name: "Dictionary", + ty: stringStringDictionary, + expectedIsPrimitive: false, + }, + { + name: "Dictionary", + ty: stringBoolDictionary, + expectedIsPrimitive: false, + }, + { + name: "Dictionary", + ty: stringResourceDictionary, + expectedIsPrimitive: false, + }, + { + name: "Dictionary", + ty: nestedResourceDictionary, + expectedIsPrimitive: false, + }, + { + name: "Dictionary", + ty: nestedStringDictionary, + expectedIsPrimitive: false, + }, + } + + testIsPrimitive(t, tests) + }) + + t.Run("References types", func(t *testing.T) { + t.Parallel() + + var tests []testCase + err := BaseTypeActivation.ForEach(func(name string, variable *Variable) error { + // Entitlements are not typical types. So skip. + if _, ok := BuiltinEntitlements[name]; ok { + return nil + } + if _, ok := BuiltinEntitlementMappings[name]; ok { + return nil + } + + typ := variable.Type + + tests = append(tests, testCase{ + name: fmt.Sprintf("ReferenceType<%s>", name), + ty: &ReferenceType{Type: typ}, + expectedIsPrimitive: false, + }) + + return nil + }) + + require.NoError(t, err) + testIsPrimitive(t, tests) + }) + + t.Run("Capability types", func(t *testing.T) { + t.Parallel() + + testLocation := common.StringLocation("test") + + interfaceType1 := &InterfaceType{ + Location: testLocation, + Identifier: "I1", + CompositeKind: common.CompositeKindStructure, + Members: &StringMemberOrderedMap{}, + } + + capType := &CapabilityType{ + BorrowType: &IntersectionType{ + Types: []*InterfaceType{interfaceType1}, + }, + } + + tests := []testCase{ + { + name: "CapabilityType", + ty: capType, + expectedIsPrimitive: false, + }, + } + + testIsPrimitive(t, tests) + }) + + t.Run("Function types", func(t *testing.T) { + t.Parallel() + + funcType1 := &FunctionType{ + Purity: FunctionPurityImpure, + Parameters: []Parameter{ + { + TypeAnnotation: StringTypeAnnotation, + }, + }, + ReturnTypeAnnotation: Int8TypeAnnotation, + Members: &StringMemberOrderedMap{}, + } + + funcType2 := &FunctionType{ + Purity: FunctionPurityImpure, + Parameters: []Parameter{ + { + TypeAnnotation: IntTypeAnnotation, + }, + }, + ReturnTypeAnnotation: PublicPathTypeAnnotation, + Members: &StringMemberOrderedMap{}, + } + + tests := []testCase{ + { + name: "Function(String): Int8", + ty: funcType1, + expectedIsPrimitive: false, + }, + { + name: "Function(Int): PublicPath", + ty: funcType2, + expectedIsPrimitive: false, + }, + } + + testIsPrimitive(t, tests) + }) +} + func TestTypeInclusions(t *testing.T) { t.Parallel() @@ -1744,6 +2289,16 @@ func TestTypeInclusions(t *testing.T) { } }) + t.Run("FixedSizeUnsignedInteger", func(t *testing.T) { + t.Parallel() + + for _, typ := range AllFixedSizeUnsignedIntegerTypes { + t.Run(typ.String(), func(t *testing.T) { + assert.True(t, FixedSizeUnsignedIntegerTypeTag.ContainsAny(typ.Tag())) + }) + } + }) + t.Run("FixedPoint", func(t *testing.T) { t.Parallel() @@ -1904,7 +2459,7 @@ func TestMapType(t *testing.T) { for _, i := range typ.Types { interfaces = append(interfaces, &InterfaceType{Identifier: i.Identifier + "f"}) } - return NewIntersectionType(nil, interfaces) + return NewIntersectionType(nil, nil, interfaces) } return ty } @@ -1962,6 +2517,7 @@ func TestMapType(t *testing.T) { t.Parallel() original := NewIntersectionType( + nil, nil, []*InterfaceType{ {Identifier: "foo"}, @@ -1969,6 +2525,7 @@ func TestMapType(t *testing.T) { }, ) mapped := NewIntersectionType( + nil, nil, []*InterfaceType{ {Identifier: "foof"}, @@ -2162,7 +2719,7 @@ func TestReferenceType_String(t *testing.T) { referenceType := NewReferenceType(nil, access, IntType) assert.Equal(t, - "auth(M) &Int", + "auth(mapping M) &Int", referenceType.String(), ) }) @@ -2216,7 +2773,7 @@ func TestReferenceType_QualifiedString(t *testing.T) { referenceType := NewReferenceType(nil, access, IntType) assert.Equal(t, - "auth(M) &Int", + "auth(mapping M) &Int", referenceType.QualifiedString(), ) }) @@ -2252,7 +2809,7 @@ func TestReferenceType_QualifiedString(t *testing.T) { referenceType := NewReferenceType(nil, access, IntType) assert.Equal(t, - "auth(C.M) &Int", + "auth(mapping C.M) &Int", referenceType.QualifiedString(), ) }) @@ -2297,6 +2854,7 @@ func TestIntersectionType_ID(t *testing.T) { t.Parallel() intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ { @@ -2315,6 +2873,7 @@ func TestIntersectionType_ID(t *testing.T) { t.Parallel() intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ // NOTE: order @@ -2351,6 +2910,7 @@ func TestIntersectionType_ID(t *testing.T) { interfaceType2.SetContainerType(containerType) intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ // NOTE: order @@ -2375,6 +2935,7 @@ func TestIntersectionType_String(t *testing.T) { t.Parallel() intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ { @@ -2393,6 +2954,7 @@ func TestIntersectionType_String(t *testing.T) { t.Parallel() intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ // NOTE: order @@ -2428,6 +2990,7 @@ func TestIntersectionType_QualifiedString(t *testing.T) { t.Parallel() intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ { @@ -2446,6 +3009,7 @@ func TestIntersectionType_QualifiedString(t *testing.T) { t.Parallel() intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ // NOTE: order @@ -2482,6 +3046,7 @@ func TestIntersectionType_QualifiedString(t *testing.T) { interfaceType2.SetContainerType(containerType) intersectionType := NewIntersectionType( + nil, nil, []*InterfaceType{ // NOTE: order @@ -2496,3 +3061,137 @@ func TestIntersectionType_QualifiedString(t *testing.T) { ) }) } + +func TestType_IsOrContainsReference(t *testing.T) { + + t.Parallel() + + type testCase struct { + name string + ty Type + expected bool + genTy func(innerType Type) Type + } + + someNonReferenceType := VoidType + + tests := []testCase{ + { + name: "Capability, with type", + genTy: func(innerType Type) Type { + return &CapabilityType{ + BorrowType: innerType, + } + }, + }, + { + name: "Capability, without type", + ty: &CapabilityType{}, + expected: false, + }, + { + name: "Variable-sized array", + genTy: func(innerType Type) Type { + return &VariableSizedType{ + Type: innerType, + } + }, + }, + { + name: "Constant-sized array", + genTy: func(innerType Type) Type { + return &ConstantSizedType{ + Type: innerType, + Size: 42, + } + }, + }, + { + name: "Optional", + genTy: func(innerType Type) Type { + return &OptionalType{ + Type: innerType, + } + }, + }, + { + name: "Reference", + genTy: func(innerType Type) Type { + return &ReferenceType{ + Type: innerType, + } + }, + }, + { + name: "Dictionary, key", + genTy: func(innerType Type) Type { + return &DictionaryType{ + KeyType: innerType, + ValueType: someNonReferenceType, + } + }, + }, + { + name: "Dictionary, value", + genTy: func(innerType Type) Type { + return &DictionaryType{ + KeyType: someNonReferenceType, + ValueType: innerType, + } + }, + }, + { + name: "Function", + ty: &FunctionType{}, + expected: false, + }, + { + name: "Interface", + ty: &InterfaceType{}, + expected: false, + }, + { + name: "Composite", + ty: &CompositeType{}, + expected: false, + }, + { + name: "InclusiveRange", + genTy: func(innerType Type) Type { + return &InclusiveRangeType{ + MemberType: innerType, + } + }, + }, + } + + test := func(test testCase) { + t.Run(test.name, func(t *testing.T) { + + t.Parallel() + + if test.genTy != nil { + + itself := test.genTy(someNonReferenceType) + + _, ok := itself.(*ReferenceType) + assert.Equal(t, ok, itself.IsOrContainsReferenceType()) + + assert.True(t, + test.genTy(&ReferenceType{ + Type: someNonReferenceType, + }).IsOrContainsReferenceType(), + ) + } else { + assert.Equal(t, + test.expected, + test.ty.IsOrContainsReferenceType(), + ) + } + }) + } + + for _, testCase := range tests { + test(testCase) + } +} diff --git a/runtime/sema/typeannotationstate.go b/runtime/sema/typeannotationstate.go index a3e99464e5..2741fac6f7 100644 --- a/runtime/sema/typeannotationstate.go +++ b/runtime/sema/typeannotationstate.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/typecheckfunc.go b/runtime/sema/typecheckfunc.go index 5b50db9663..550d43f021 100644 --- a/runtime/sema/typecheckfunc.go +++ b/runtime/sema/typecheckfunc.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/variable.go b/runtime/sema/variable.go index 4314ba65f6..08bc1e328d 100644 --- a/runtime/sema/variable.go +++ b/runtime/sema/variable.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/variable_activations.go b/runtime/sema/variable_activations.go index 938d551f95..1f17a81f0a 100644 --- a/runtime/sema/variable_activations.go +++ b/runtime/sema/variable_activations.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/variable_activations_test.go b/runtime/sema/variable_activations_test.go index 4b57c14c5d..6494da2dcb 100644 --- a/runtime/sema/variable_activations_test.go +++ b/runtime/sema/variable_activations_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/sema/void_type.go b/runtime/sema/void_type.go index 4ebe233b58..f7311df94f 100644 --- a/runtime/sema/void_type.go +++ b/runtime/sema/void_type.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ var VoidType = &SimpleType{ TypeTag: VoidTypeTag, IsResource: false, Storable: false, + Primitive: true, Equatable: true, Comparable: false, Exportable: true, diff --git a/runtime/sharedstate_test.go b/runtime/sharedstate_test.go index 05dbe3ef65..243543432a 100644 --- a/runtime/sharedstate_test.go +++ b/runtime/sharedstate_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stackdepth.go b/runtime/stackdepth.go index ed62a781b0..f9e60c9880 100644 --- a/runtime/stackdepth.go +++ b/runtime/stackdepth.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/account.go b/runtime/stdlib/account.go index 8c26d7448d..62b376d385 100644 --- a/runtime/stdlib/account.go +++ b/runtime/stdlib/account.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package stdlib import ( + goerrors "errors" "fmt" "golang.org/x/crypto/sha3" @@ -26,9 +27,11 @@ import ( "github.com/onflow/atree" + "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/old_parser" "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/sema" ) @@ -77,6 +80,10 @@ type AccountIDGenerator interface { GenerateAccountID(address common.Address) (uint64, error) } +type StorageCommitter interface { + CommitStorageTemporarily(inter *interpreter.Interpreter) error +} + type AccountHandler interface { AccountIDGenerator BalanceProvider @@ -87,6 +94,7 @@ type AccountHandler interface { } type AccountCreator interface { + StorageCommitter EventEmitter AccountHandler // CreateAccount creates a new account. @@ -94,7 +102,7 @@ type AccountCreator interface { } func NewAccountConstructor(creator AccountCreator) StandardLibraryValue { - return NewStandardLibraryFunction( + return NewStandardLibraryStaticFunction( "Account", accountFunctionType, accountFunctionDocString, @@ -130,6 +138,11 @@ func NewAccountConstructor(creator AccountCreator) StandardLibraryValue { payerAddress := payerAddressValue.ToAddress() + err := creator.CommitStorageTemporarily(inter) + if err != nil { + panic(err) + } + addressValue := interpreter.NewAddressValueFromConstructor( inter, func() (address common.Address) { @@ -157,6 +170,7 @@ func NewAccountConstructor(creator AccountCreator) StandardLibraryValue { creator, addressValue, interpreter.FullyEntitledAccountAccess, + locationRange, ) }, ) @@ -196,7 +210,7 @@ var getAuthAccountFunctionType = func() *sema.FunctionType { }() func NewGetAuthAccountFunction(handler AccountHandler) StandardLibraryValue { - return NewStandardLibraryFunction( + return NewStandardLibraryStaticFunction( getAuthAccountFunctionName, getAuthAccountFunctionType, getAuthAccountFunctionDocString, @@ -206,7 +220,8 @@ func NewGetAuthAccountFunction(handler AccountHandler) StandardLibraryValue { panic(errors.NewUnreachableError()) } - gauge := invocation.Interpreter + inter := invocation.Interpreter + locationRange := invocation.LocationRange typeParameterPair := invocation.TypeParameterTypes.Oldest() if typeParameterPair == nil { @@ -221,77 +236,80 @@ func NewGetAuthAccountFunction(handler AccountHandler) StandardLibraryValue { } authorization := interpreter.ConvertSemaAccessToStaticAuthorization( - gauge, + inter, referenceType.Authorization, ) return NewAccountReferenceValue( - gauge, + inter, handler, accountAddress, authorization, + locationRange, ) }, ) } func NewAccountReferenceValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler AccountHandler, addressValue interpreter.AddressValue, authorization interpreter.Authorization, + locationRange interpreter.LocationRange, ) interpreter.Value { - account := NewAccountValue(gauge, handler, addressValue) + account := NewAccountValue(inter, handler, addressValue) return interpreter.NewEphemeralReferenceValue( - gauge, + inter, authorization, account, sema.AccountType, + locationRange, ) } func NewAccountValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler AccountHandler, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountValue( - gauge, + inter, addressValue, - newAccountBalanceGetFunction(gauge, handler, addressValue), - newAccountAvailableBalanceGetFunction(gauge, handler, addressValue), + newAccountBalanceGetFunction(inter, handler, addressValue), + newAccountAvailableBalanceGetFunction(inter, handler, addressValue), func() interpreter.Value { return newAccountStorageValue( - gauge, + inter, handler, addressValue, ) }, func() interpreter.Value { return newAccountContractsValue( - gauge, + inter, handler, addressValue, ) }, func() interpreter.Value { return newAccountKeysValue( - gauge, + inter, handler, addressValue, ) }, func() interpreter.Value { return newAccountInboxValue( - gauge, + inter, handler, addressValue, ) }, func() interpreter.Value { return newAccountCapabilitiesValue( - gauge, + inter, handler, addressValue, ) @@ -299,55 +317,59 @@ func NewAccountValue( ) } +type AccountContractAdditionAndNamesHandler interface { + AccountContractAdditionHandler + AccountContractNamesProvider +} + type AccountContractsHandler interface { AccountContractProvider - AccountContractAdditionHandler + AccountContractAdditionAndNamesHandler AccountContractRemovalHandler - AccountContractNamesProvider } func newAccountContractsValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler AccountContractsHandler, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountContractsValue( - gauge, + inter, addressValue, newAccountContractsChangeFunction( + inter, sema.Account_ContractsTypeAddFunctionType, - gauge, handler, addressValue, false, ), newAccountContractsChangeFunction( + inter, sema.Account_ContractsTypeUpdateFunctionType, - gauge, handler, addressValue, true, ), newAccountContractsTryUpdateFunction( + inter, sema.Account_ContractsTypeUpdateFunctionType, - gauge, handler, addressValue, ), newAccountContractsGetFunction( + inter, sema.Account_ContractsTypeGetFunctionType, - gauge, handler, addressValue, ), newAccountContractsBorrowFunction( + inter, sema.Account_ContractsTypeBorrowFunctionType, - gauge, handler, addressValue, ), newAccountContractsRemoveFunction( - gauge, + inter, handler, addressValue, ), @@ -383,36 +405,36 @@ type AccountKeysHandler interface { } func newAccountKeysValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler AccountKeysHandler, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountKeysValue( - gauge, + inter, addressValue, newAccountKeysAddFunction( - gauge, + inter, handler, addressValue, ), newAccountKeysGetFunction( + inter, sema.Account_KeysTypeGetFunctionType, - gauge, handler, addressValue, ), newAccountKeysRevokeFunction( - gauge, + inter, handler, addressValue, ), newAccountKeysForEachFunction( + inter, sema.Account_KeysTypeForEachFunctionType, - gauge, handler, addressValue, ), - newAccountKeysCountGetter(gauge, handler, addressValue), + newAccountKeysCountGetter(inter, handler, addressValue), ) } @@ -475,7 +497,7 @@ func newAccountAvailableBalanceGetFunction( } type StorageUsedProvider interface { - CommitStorageTemporarily(inter *interpreter.Interpreter) error + StorageCommitter // GetStorageUsed gets storage used in bytes by the address at the moment of the function call. GetStorageUsed(address common.Address) (uint64, error) } @@ -514,7 +536,7 @@ func newStorageUsedGetFunction( } type StorageCapacityProvider interface { - CommitStorageTemporarily(inter *interpreter.Interpreter) error + StorageCommitter // GetStorageCapacity gets storage capacity in bytes on the address. GetStorageCapacity(address common.Address) (uint64, error) } @@ -564,66 +586,73 @@ type AccountKeyAdditionHandler interface { } func newAccountKeysAddFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler AccountKeyAdditionHandler, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { +) interpreter.BoundFunctionGenerator { + return func(accountKeys interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { - // Converted addresses can be cached and don't have to be recomputed on each function invocation - address := addressValue.ToAddress() + // Converted addresses can be cached and don't have to be recomputed on each function invocation + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_KeysTypeAddFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - publicKeyValue, ok := invocation.Arguments[0].(*interpreter.CompositeValue) - if !ok { - panic(errors.NewUnreachableError()) - } + return interpreter.NewBoundHostFunctionValue( + inter, + accountKeys, + sema.Account_KeysTypeAddFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + publicKeyValue, ok := invocation.Arguments[0].(*interpreter.CompositeValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - publicKey, err := NewPublicKeyFromValue(inter, locationRange, publicKeyValue) - if err != nil { - panic(err) - } + publicKey, err := NewPublicKeyFromValue(inter, locationRange, publicKeyValue) + if err != nil { + panic(err) + } - hashAlgo := NewHashAlgorithmFromValue(inter, locationRange, invocation.Arguments[1]) - weightValue, ok := invocation.Arguments[2].(interpreter.UFix64Value) - if !ok { - panic(errors.NewUnreachableError()) - } - weight := weightValue.ToInt(locationRange) + hashAlgoValue := invocation.Arguments[1] + hashAlgo := NewHashAlgorithmFromValue(inter, locationRange, hashAlgoValue) - var accountKey *AccountKey - errors.WrapPanic(func() { - accountKey, err = handler.AddAccountKey(address, publicKey, hashAlgo, weight) - }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } + weightValue, ok := invocation.Arguments[2].(interpreter.UFix64Value) + if !ok { + panic(errors.NewUnreachableError()) + } - handler.EmitEvent( - inter, - AccountKeyAddedFromPublicKeyEventType, - []interpreter.Value{ - addressValue, - publicKeyValue, - }, - locationRange, - ) + weight := weightValue.ToInt(locationRange) - return NewAccountKeyValue( - inter, - locationRange, - accountKey, - handler, - handler, - handler, - ) - }, - ) + var accountKey *AccountKey + errors.WrapPanic(func() { + accountKey, err = handler.AddAccountKey(address, publicKey, hashAlgo, weight) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } + + handler.EmitEvent( + inter, + AccountKeyAddedFromPublicKeyEventType, + []interpreter.Value{ + addressValue, + publicKeyValue, + weightValue, + hashAlgoValue, + interpreter.NewIntValueFromInt64(inter, int64(accountKey.KeyIndex)), + }, + locationRange, + ) + + return NewAccountKeyValue( + inter, + locationRange, + accountKey, + handler, + ) + }, + ) + } } type AccountKey struct { @@ -645,58 +674,59 @@ type AccountKeyProvider interface { } func newAccountKeysGetFunction( + inter *interpreter.Interpreter, functionType *sema.FunctionType, - gauge common.MemoryGauge, provider AccountKeyProvider, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { +) interpreter.BoundFunctionGenerator { + return func(accountKeys interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { - // Converted addresses can be cached and don't have to be recomputed on each function invocation - address := addressValue.ToAddress() + // Converted addresses can be cached and don't have to be recomputed on each function invocation + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - functionType, - func(invocation interpreter.Invocation) interpreter.Value { - indexValue, ok := invocation.Arguments[0].(interpreter.IntValue) - if !ok { - panic(errors.NewUnreachableError()) - } - locationRange := invocation.LocationRange - index := indexValue.ToInt(locationRange) + return interpreter.NewBoundHostFunctionValue( + inter, + accountKeys, + functionType, + func(invocation interpreter.Invocation) interpreter.Value { + indexValue, ok := invocation.Arguments[0].(interpreter.IntValue) + if !ok { + panic(errors.NewUnreachableError()) + } + locationRange := invocation.LocationRange + index := indexValue.ToInt(locationRange) - var err error - var accountKey *AccountKey - errors.WrapPanic(func() { - accountKey, err = provider.GetAccountKey(address, index) - }) + var err error + var accountKey *AccountKey + errors.WrapPanic(func() { + accountKey, err = provider.GetAccountKey(address, index) + }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } - // Here it is expected the host function to return a nil key, if a key is not found at the given index. - // This is done because, if the host function returns an error when a key is not found, then - // currently there's no way to distinguish between a 'key not found error' vs other internal errors. - if accountKey == nil { - return interpreter.Nil - } + // Here it is expected the host function to return a nil key, if a key is not found at the given index. + // This is done because, if the host function returns an error when a key is not found, then + // currently there's no way to distinguish between a 'key not found error' vs other internal errors. + if accountKey == nil { + return interpreter.Nil + } - inter := invocation.Interpreter + inter := invocation.Interpreter - return interpreter.NewSomeValueNonCopying( - inter, - NewAccountKeyValue( + return interpreter.NewSomeValueNonCopying( inter, - locationRange, - accountKey, - provider, - provider, - provider, - ), - ) - }, - ) + NewAccountKeyValue( + inter, + locationRange, + accountKey, + provider, + ), + ) + }, + ) + } } // accountKeysForEachCallbackTypeParams are the parameter types of the callback function of @@ -704,102 +734,103 @@ func newAccountKeysGetFunction( var accountKeysForEachCallbackTypeParams = []sema.Type{sema.AccountKeyType} func newAccountKeysForEachFunction( + inter *interpreter.Interpreter, functionType *sema.FunctionType, - gauge common.MemoryGauge, provider AccountKeyProvider, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() - - return interpreter.NewHostFunctionValue( - gauge, - functionType, - func(invocation interpreter.Invocation) interpreter.Value { - fnValue, ok := invocation.Arguments[0].(interpreter.FunctionValue) - - if !ok { - panic(errors.NewUnreachableError()) - } - - inter := invocation.Interpreter - locationRange := invocation.LocationRange +) interpreter.BoundFunctionGenerator { + return func(accountKeys interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() - newSubInvocation := func(key interpreter.Value) interpreter.Invocation { - return interpreter.NewInvocation( - inter, - nil, - nil, - nil, - []interpreter.Value{key}, - accountKeysForEachCallbackTypeParams, - nil, - locationRange, - ) - } + return interpreter.NewBoundHostFunctionValue( + inter, + accountKeys, + functionType, + func(invocation interpreter.Invocation) interpreter.Value { + fnValue, ok := invocation.Arguments[0].(interpreter.FunctionValue) - liftKeyToValue := func(key *AccountKey) interpreter.Value { - return NewAccountKeyValue( - inter, - locationRange, - key, - provider, - provider, - provider, - ) - } + if !ok { + panic(errors.NewUnreachableError()) + } - var count uint64 - var err error + inter := invocation.Interpreter + locationRange := invocation.LocationRange - errors.WrapPanic(func() { - count, err = provider.AccountKeysCount(address) - }) + newSubInvocation := func(key interpreter.Value) interpreter.Invocation { + return interpreter.NewInvocation( + inter, + nil, + nil, + nil, + []interpreter.Value{key}, + accountKeysForEachCallbackTypeParams, + nil, + locationRange, + ) + } - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } + liftKeyToValue := func(key *AccountKey) interpreter.Value { + return NewAccountKeyValue( + inter, + locationRange, + key, + provider, + ) + } - var accountKey *AccountKey + var count uint64 + var err error - for index := uint64(0); index < count; index++ { errors.WrapPanic(func() { - accountKey, err = provider.GetAccountKey(address, int(index)) + count, err = provider.AccountKeysCount(address) }) + if err != nil { panic(interpreter.WrappedExternalError(err)) } - // Here it is expected the host function to return a nil key, if a key is not found at the given index. - // This is done because, if the host function returns an error when a key is not found, then - // currently there's no way to distinguish between a 'key not found error' vs other internal errors. - if accountKey == nil { - continue - } + var accountKey *AccountKey - liftedKey := liftKeyToValue(accountKey) + for index := uint64(0); index < count; index++ { + errors.WrapPanic(func() { + accountKey, err = provider.GetAccountKey(address, int(index)) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } - res, err := inter.InvokeFunction( - fnValue, - newSubInvocation(liftedKey), - ) - if err != nil { - // interpreter panicked while invoking the inner function value - panic(err) - } + // Here it is expected the host function to return a nil key, if a key is not found at the given index. + // This is done because, if the host function returns an error when a key is not found, then + // currently there's no way to distinguish between a 'key not found error' vs other internal errors. + if accountKey == nil { + continue + } - shouldContinue, ok := res.(interpreter.BoolValue) - if !ok { - panic(errors.NewUnreachableError()) - } + liftedKey := liftKeyToValue(accountKey) + + res, err := inter.InvokeFunction( + fnValue, + newSubInvocation(liftedKey), + ) + if err != nil { + // interpreter panicked while invoking the inner function value + panic(err) + } + + shouldContinue, ok := res.(interpreter.BoolValue) + if !ok { + panic(errors.NewUnreachableError()) + } - if !shouldContinue { - break + if !shouldContinue { + break + } } - } - return interpreter.Void - }, - ) + return interpreter.Void + }, + ) + } } func newAccountKeysCountGetter( @@ -839,306 +870,316 @@ type AccountKeyRevocationHandler interface { } func newAccountKeysRevokeFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler AccountKeyRevocationHandler, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { +) interpreter.BoundFunctionGenerator { + return func(accountKeys interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { - // Converted addresses can be cached and don't have to be recomputed on each function invocation - address := addressValue.ToAddress() - - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_KeysTypeRevokeFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - indexValue, ok := invocation.Arguments[0].(interpreter.IntValue) - if !ok { - panic(errors.NewUnreachableError()) - } - locationRange := invocation.LocationRange - index := indexValue.ToInt(locationRange) + // Converted addresses can be cached and don't have to be recomputed on each function invocation + address := addressValue.ToAddress() - var err error - var accountKey *AccountKey - errors.WrapPanic(func() { - accountKey, err = handler.RevokeAccountKey(address, index) - }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } + return interpreter.NewBoundHostFunctionValue( + inter, + accountKeys, + sema.Account_KeysTypeRevokeFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + indexValue, ok := invocation.Arguments[0].(interpreter.IntValue) + if !ok { + panic(errors.NewUnreachableError()) + } + locationRange := invocation.LocationRange + index := indexValue.ToInt(locationRange) - // Here it is expected the host function to return a nil key, if a key is not found at the given index. - // This is done because, if the host function returns an error when a key is not found, then - // currently there's no way to distinguish between a 'key not found error' vs other internal errors. - if accountKey == nil { - return interpreter.Nil - } + var err error + var accountKey *AccountKey + errors.WrapPanic(func() { + accountKey, err = handler.RevokeAccountKey(address, index) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } - inter := invocation.Interpreter + // Here it is expected the host function to return a nil key, if a key is not found at the given index. + // This is done because, if the host function returns an error when a key is not found, then + // currently there's no way to distinguish between a 'key not found error' vs other internal errors. + if accountKey == nil { + return interpreter.Nil + } - handler.EmitEvent( - inter, - AccountKeyRemovedFromPublicKeyIndexEventType, - []interpreter.Value{ - addressValue, - indexValue, - }, - locationRange, - ) + inter := invocation.Interpreter - return interpreter.NewSomeValueNonCopying( - inter, - NewAccountKeyValue( + handler.EmitEvent( inter, + AccountKeyRemovedFromPublicKeyIndexEventType, + []interpreter.Value{ + addressValue, + indexValue, + }, locationRange, - accountKey, - handler, - handler, - handler, - ), - ) - }, - ) + ) + + return interpreter.NewSomeValueNonCopying( + inter, + NewAccountKeyValue( + inter, + locationRange, + accountKey, + handler, + ), + ) + }, + ) + } } const InboxStorageDomain = "inbox" func newAccountInboxPublishFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler EventEmitter, providerValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - provider := providerValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_InboxTypePublishFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - value, ok := invocation.Arguments[0].(*interpreter.CapabilityValue) - if !ok { - panic(errors.NewUnreachableError()) - } +) interpreter.BoundFunctionGenerator { + return func(accountInbox interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + provider := providerValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountInbox, + sema.Account_InboxTypePublishFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + value, ok := invocation.Arguments[0].(interpreter.CapabilityValue) + if !ok { + panic(errors.NewUnreachableError()) + } - nameValue, ok := invocation.Arguments[1].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } + nameValue, ok := invocation.Arguments[1].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } - recipientValue := invocation.Arguments[2].(interpreter.AddressValue) - if !ok { - panic(errors.NewUnreachableError()) - } + recipientValue := invocation.Arguments[2].(interpreter.AddressValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - handler.EmitEvent( - inter, - AccountInboxPublishedEventType, - []interpreter.Value{ - providerValue, - recipientValue, - nameValue, - interpreter.NewTypeValue(gauge, value.StaticType(inter)), - }, - locationRange, - ) + handler.EmitEvent( + inter, + AccountInboxPublishedEventType, + []interpreter.Value{ + providerValue, + recipientValue, + nameValue, + interpreter.NewTypeValue(inter, value.StaticType(inter)), + }, + locationRange, + ) - publishedValue := interpreter.NewPublishedValue(inter, recipientValue, value).Transfer( - inter, - locationRange, - atree.Address(provider), - true, - nil, - nil, - ) + publishedValue := interpreter.NewPublishedValue(inter, recipientValue, value).Transfer( + inter, + locationRange, + atree.Address(provider), + true, + nil, + nil, + ) - storageMapKey := interpreter.StringStorageMapKey(nameValue.Str) + storageMapKey := interpreter.StringStorageMapKey(nameValue.Str) - inter.WriteStored( - provider, - InboxStorageDomain, - storageMapKey, - publishedValue, - ) + inter.WriteStored( + provider, + InboxStorageDomain, + storageMapKey, + publishedValue, + ) - return interpreter.Void - }, - ) + return interpreter.Void + }, + ) + } } func newAccountInboxUnpublishFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler EventEmitter, providerValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - provider := providerValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_InboxTypeUnpublishFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } +) interpreter.BoundFunctionGenerator { + return func(accountInbox interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + provider := providerValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountInbox, + sema.Account_InboxTypeUnpublishFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - storageMapKey := interpreter.StringStorageMapKey(nameValue.Str) + storageMapKey := interpreter.StringStorageMapKey(nameValue.Str) - readValue := inter.ReadStored(provider, InboxStorageDomain, storageMapKey) - if readValue == nil { - return interpreter.Nil - } - publishedValue := readValue.(*interpreter.PublishedValue) - if !ok { - panic(errors.NewUnreachableError()) - } + readValue := inter.ReadStored(provider, InboxStorageDomain, storageMapKey) + if readValue == nil { + return interpreter.Nil + } + publishedValue := readValue.(*interpreter.PublishedValue) + if !ok { + panic(errors.NewUnreachableError()) + } - typeParameterPair := invocation.TypeParameterTypes.Oldest() - if typeParameterPair == nil { - panic(errors.NewUnreachableError()) - } + typeParameterPair := invocation.TypeParameterTypes.Oldest() + if typeParameterPair == nil { + panic(errors.NewUnreachableError()) + } - ty := sema.NewCapabilityType(gauge, typeParameterPair.Value) - publishedType := publishedValue.Value.StaticType(invocation.Interpreter) - if !inter.IsSubTypeOfSemaType(publishedType, ty) { - panic(interpreter.ForceCastTypeMismatchError{ - ExpectedType: ty, - ActualType: inter.MustConvertStaticToSemaType(publishedType), - LocationRange: locationRange, - }) - } + ty := sema.NewCapabilityType(inter, typeParameterPair.Value) + publishedType := publishedValue.Value.StaticType(invocation.Interpreter) + if !inter.IsSubTypeOfSemaType(publishedType, ty) { + panic(interpreter.ForceCastTypeMismatchError{ + ExpectedType: ty, + ActualType: inter.MustConvertStaticToSemaType(publishedType), + LocationRange: locationRange, + }) + } - value := publishedValue.Value.Transfer( - inter, - locationRange, - atree.Address{}, - true, - nil, - nil, - ) + value := publishedValue.Value.Transfer( + inter, + locationRange, + atree.Address{}, + true, + nil, + nil, + ) - inter.WriteStored( - provider, - InboxStorageDomain, - storageMapKey, - nil, - ) + inter.WriteStored( + provider, + InboxStorageDomain, + storageMapKey, + nil, + ) - handler.EmitEvent( - inter, - AccountInboxUnpublishedEventType, - []interpreter.Value{ - providerValue, - nameValue, - }, - locationRange, - ) + handler.EmitEvent( + inter, + AccountInboxUnpublishedEventType, + []interpreter.Value{ + providerValue, + nameValue, + }, + locationRange, + ) - return interpreter.NewSomeValueNonCopying(inter, value) - }, - ) + return interpreter.NewSomeValueNonCopying(inter, value) + }, + ) + } } func newAccountInboxClaimFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler EventEmitter, recipientValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_InboxTypePublishFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } +) interpreter.BoundFunctionGenerator { + return func(accountInbox interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + return interpreter.NewBoundHostFunctionValue( + inter, + accountInbox, + sema.Account_InboxTypePublishFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } - providerValue, ok := invocation.Arguments[1].(interpreter.AddressValue) - if !ok { - panic(errors.NewUnreachableError()) - } + providerValue, ok := invocation.Arguments[1].(interpreter.AddressValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - providerAddress := providerValue.ToAddress() + providerAddress := providerValue.ToAddress() - storageMapKey := interpreter.StringStorageMapKey(nameValue.Str) + storageMapKey := interpreter.StringStorageMapKey(nameValue.Str) - readValue := inter.ReadStored(providerAddress, InboxStorageDomain, storageMapKey) - if readValue == nil { - return interpreter.Nil - } - publishedValue := readValue.(*interpreter.PublishedValue) - if !ok { - panic(errors.NewUnreachableError()) - } + readValue := inter.ReadStored(providerAddress, InboxStorageDomain, storageMapKey) + if readValue == nil { + return interpreter.Nil + } + publishedValue := readValue.(*interpreter.PublishedValue) + if !ok { + panic(errors.NewUnreachableError()) + } - // compare the intended recipient with the caller - if !publishedValue.Recipient.Equal(inter, locationRange, recipientValue) { - return interpreter.Nil - } + // compare the intended recipient with the caller + if !publishedValue.Recipient.Equal(inter, locationRange, recipientValue) { + return interpreter.Nil + } - typeParameterPair := invocation.TypeParameterTypes.Oldest() - if typeParameterPair == nil { - panic(errors.NewUnreachableError()) - } + typeParameterPair := invocation.TypeParameterTypes.Oldest() + if typeParameterPair == nil { + panic(errors.NewUnreachableError()) + } - ty := sema.NewCapabilityType(gauge, typeParameterPair.Value) - publishedType := publishedValue.Value.StaticType(invocation.Interpreter) - if !inter.IsSubTypeOfSemaType(publishedType, ty) { - panic(interpreter.ForceCastTypeMismatchError{ - ExpectedType: ty, - ActualType: inter.MustConvertStaticToSemaType(publishedType), - LocationRange: locationRange, - }) - } + ty := sema.NewCapabilityType(inter, typeParameterPair.Value) + publishedType := publishedValue.Value.StaticType(invocation.Interpreter) + if !inter.IsSubTypeOfSemaType(publishedType, ty) { + panic(interpreter.ForceCastTypeMismatchError{ + ExpectedType: ty, + ActualType: inter.MustConvertStaticToSemaType(publishedType), + LocationRange: locationRange, + }) + } - value := publishedValue.Value.Transfer( - inter, - locationRange, - atree.Address{}, - true, - nil, - nil, - ) + value := publishedValue.Value.Transfer( + inter, + locationRange, + atree.Address{}, + true, + nil, + nil, + ) - inter.WriteStored( - providerAddress, - InboxStorageDomain, - storageMapKey, - nil, - ) + inter.WriteStored( + providerAddress, + InboxStorageDomain, + storageMapKey, + nil, + ) - handler.EmitEvent( - inter, - AccountInboxClaimedEventType, - []interpreter.Value{ - providerValue, - recipientValue, - nameValue, - }, - locationRange, - ) + handler.EmitEvent( + inter, + AccountInboxClaimedEventType, + []interpreter.Value{ + providerValue, + recipientValue, + nameValue, + }, + locationRange, + ) - return interpreter.NewSomeValueNonCopying(inter, value) - }, - ) + return interpreter.NewSomeValueNonCopying(inter, value) + }, + ) + } } func newAccountInboxValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler EventEmitter, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountInboxValue( - gauge, + inter, addressValue, - newAccountInboxPublishFunction(gauge, handler, addressValue), - newAccountInboxUnpublishFunction(gauge, handler, addressValue), - newAccountInboxClaimFunction(gauge, handler, addressValue), + newAccountInboxPublishFunction(inter, handler, addressValue), + newAccountInboxUnpublishFunction(inter, handler, addressValue), + newAccountInboxClaimFunction(inter, handler, addressValue), ) } @@ -1207,136 +1248,155 @@ type AccountContractProvider interface { } func newAccountContractsGetFunction( + inter *interpreter.Interpreter, functionType *sema.FunctionType, - gauge common.MemoryGauge, provider AccountContractProvider, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { +) interpreter.BoundFunctionGenerator { + return func(accountContracts interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { - // Converted addresses can be cached and don't have to be recomputed on each function invocation - address := addressValue.ToAddress() + // Converted addresses can be cached and don't have to be recomputed on each function invocation + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - functionType, - func(invocation interpreter.Invocation) interpreter.Value { - nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } - name := nameValue.Str - location := common.NewAddressLocation(invocation.Interpreter, address, name) + return interpreter.NewBoundHostFunctionValue( + inter, + accountContracts, + functionType, + func(invocation interpreter.Invocation) interpreter.Value { + nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + name := nameValue.Str + location := common.NewAddressLocation(invocation.Interpreter, address, name) - var code []byte - var err error - errors.WrapPanic(func() { - code, err = provider.GetAccountContractCode(location) - }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } + var code []byte + var err error + errors.WrapPanic(func() { + code, err = provider.GetAccountContractCode(location) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } - if len(code) > 0 { - return interpreter.NewSomeValueNonCopying( - invocation.Interpreter, - interpreter.NewDeployedContractValue( + if len(code) > 0 { + return interpreter.NewSomeValueNonCopying( invocation.Interpreter, - addressValue, - nameValue, - interpreter.ByteSliceToByteArrayValue( + interpreter.NewDeployedContractValue( invocation.Interpreter, - code, + addressValue, + nameValue, + interpreter.ByteSliceToByteArrayValue( + invocation.Interpreter, + code, + ), ), - ), - ) - } else { - return interpreter.Nil - } - }, - ) + ) + } else { + return interpreter.Nil + } + }, + ) + } } func newAccountContractsBorrowFunction( + inter *interpreter.Interpreter, functionType *sema.FunctionType, - gauge common.MemoryGauge, handler AccountContractsHandler, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { +) interpreter.BoundFunctionGenerator { + return func(accountContracts interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { - // Converted addresses can be cached and don't have to be recomputed on each function invocation - address := addressValue.ToAddress() + // Converted addresses can be cached and don't have to be recomputed on each function invocation + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - functionType, - func(invocation interpreter.Invocation) interpreter.Value { + return interpreter.NewBoundHostFunctionValue( + inter, + accountContracts, + functionType, + func(invocation interpreter.Invocation) interpreter.Value { + + inter := invocation.Interpreter + locationRange := invocation.LocationRange + + nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + name := nameValue.Str + location := common.NewAddressLocation(invocation.Interpreter, address, name) - inter := invocation.Interpreter + typeParameterPair := invocation.TypeParameterTypes.Oldest() + if typeParameterPair == nil { + panic(errors.NewUnreachableError()) + } + ty := typeParameterPair.Value - nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } - name := nameValue.Str - location := common.NewAddressLocation(invocation.Interpreter, address, name) + referenceType, ok := ty.(*sema.ReferenceType) + if !ok { + panic(errors.NewUnreachableError()) + } - typeParameterPair := invocation.TypeParameterTypes.Oldest() - if typeParameterPair == nil { - panic(errors.NewUnreachableError()) - } - ty := typeParameterPair.Value + if referenceType.Authorization != sema.UnauthorizedAccess { + panic(errors.NewDefaultUserError("cannot borrow a reference with an authorization")) + } - referenceType, ok := ty.(*sema.ReferenceType) - if !ok { - panic(errors.NewUnreachableError()) - } + // Check if the contract exists - // Check if the contract exists + var code []byte + var err error + errors.WrapPanic(func() { + code, err = handler.GetAccountContractCode(location) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } + if len(code) == 0 { + return interpreter.Nil + } - var code []byte - var err error - errors.WrapPanic(func() { - code, err = handler.GetAccountContractCode(location) - }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } - if len(code) == 0 { - return interpreter.Nil - } + // Load the contract and get the contract composite value. + // The requested contract may be a contract interface, + // in which case there will be no contract composite value. - // Load the contract + contractLocation := common.NewAddressLocation(inter, address, name) + inter = inter.EnsureLoaded(contractLocation) + contractValue, err := inter.GetContractComposite(contractLocation) + if err != nil { + var notDeclaredErr interpreter.NotDeclaredError + if goerrors.As(err, ¬DeclaredErr) { + return interpreter.Nil + } - contractLocation := common.NewAddressLocation(gauge, address, name) - inter = inter.EnsureLoaded(contractLocation) - contractValue, err := inter.GetContractComposite(contractLocation) - if err != nil { - panic(err) - } + panic(err) + } - // Check the type + // Check the type - staticType := contractValue.StaticType(inter) - if !inter.IsSubTypeOfSemaType(staticType, referenceType.Type) { - return interpreter.Nil - } + staticType := contractValue.StaticType(inter) + if !inter.IsSubTypeOfSemaType(staticType, referenceType.Type) { + return interpreter.Nil + } - // No need to track the referenced value, since the reference is taken to a contract value. - // A contract value would never be moved or destroyed, within the execution of a program. - reference := interpreter.NewEphemeralReferenceValue( - inter, - interpreter.UnauthorizedAccess, - contractValue, - referenceType.Type, - ) + // No need to track the referenced value, since the reference is taken to a contract value. + // A contract value would never be moved or destroyed, within the execution of a program. + reference := interpreter.NewEphemeralReferenceValue( + inter, + interpreter.UnauthorizedAccess, + contractValue, + referenceType.Type, + locationRange, + ) - return interpreter.NewSomeValueNonCopying( - inter, - reference, - ) + return interpreter.NewSomeValueNonCopying( + inter, + reference, + ) - }, - ) + }, + ) + } } type AccountContractAdditionHandler interface { @@ -1364,30 +1424,42 @@ type AccountContractAdditionHandler interface { error, ) TemporarilyRecordCode(location common.AddressLocation, code []byte) + + // StartContractAddition starts adding a contract. + StartContractAddition(location common.AddressLocation) + + // EndContractAddition ends adding the contract + EndContractAddition(location common.AddressLocation) + + // IsContractBeingAdded checks whether a contract is being added in the current execution. + IsContractBeingAdded(location common.AddressLocation) bool } // newAccountContractsChangeFunction called when e.g. // - adding: `Account.contracts.add(name: "Foo", code: [...])` (isUpdate = false) // - updating: `Account.contracts.update(name: "Foo", code: [...])` (isUpdate = true) func newAccountContractsChangeFunction( + inter *interpreter.Interpreter, functionType *sema.FunctionType, - gauge common.MemoryGauge, - handler AccountContractAdditionHandler, + handler AccountContractAdditionAndNamesHandler, addressValue interpreter.AddressValue, isUpdate bool, -) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( - gauge, - functionType, - func(invocation interpreter.Invocation) interpreter.Value { - return changeAccountContracts(invocation, handler, addressValue, isUpdate) - }, - ) +) interpreter.BoundFunctionGenerator { + return func(accountContracts interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + return interpreter.NewBoundHostFunctionValue( + inter, + accountContracts, + functionType, + func(invocation interpreter.Invocation) interpreter.Value { + return changeAccountContracts(invocation, handler, addressValue, isUpdate) + }, + ) + } } func changeAccountContracts( invocation interpreter.Invocation, - handler AccountContractAdditionHandler, + handler AccountContractAdditionAndNamesHandler, addressValue interpreter.AddressValue, isUpdate bool, ) interpreter.Value { @@ -1450,7 +1522,10 @@ func changeAccountContracts( // Ensure that no contract/contract interface with the given name exists already, // and no contract deploy or update was recorded before - if len(existingCode) > 0 || handler.ContractUpdateRecorded(location) { + if len(existingCode) > 0 || + handler.ContractUpdateRecorded(location) || + handler.IsContractBeingAdded(location) { + panic(errors.NewDefaultUserError( "cannot overwrite existing contract with name %q in account %s", contractName, @@ -1560,34 +1635,67 @@ func changeAccountContracts( // Validate the contract update + inter := invocation.Interpreter + if isUpdate { oldCode, err := handler.GetAccountContractCode(location) handleContractUpdateError(err) - oldProgram, err := parser.ParseProgram( - invocation.Interpreter.SharedState.Config.MemoryGauge, - oldCode, - parser.Config{ - IgnoreLeadingIdentifierEnabled: true, - }, - ) + memoryGauge := invocation.Interpreter.SharedState.Config.MemoryGauge + legacyUpgradeEnabled := invocation.Interpreter.SharedState.Config.LegacyContractUpgradeEnabled + contractUpdateTypeRemovalEnabled := invocation.Interpreter.SharedState.Config.ContractUpdateTypeRemovalEnabled + + var oldProgram *ast.Program + + // It is not always possible to determine whether the old code is pre-1.0 or not, + // only based on the parser errors. Therefore, always rely on the flag only. + // If the legacy contract upgrades are enabled, then use the old parser. + if legacyUpgradeEnabled { + oldProgram, err = old_parser.ParseProgram( + memoryGauge, + oldCode, + old_parser.Config{}, + ) + } else { + oldProgram, err = parser.ParseProgram( + memoryGauge, + oldCode, + parser.Config{ + IgnoreLeadingIdentifierEnabled: true, + }, + ) + } if !ignoreUpdatedProgramParserError(err) { handleContractUpdateError(err) } - validator := NewContractUpdateValidator( - location, - contractName, - oldProgram, - program.Program, - ) + var validator UpdateValidator + if legacyUpgradeEnabled { + validator = NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + handler, + oldProgram, + program, + inter.AllElaborations(), + ) + } else { + validator = NewContractUpdateValidator( + location, + contractName, + handler, + oldProgram, + program.Program, + ) + } + + validator = validator.WithTypeRemovalEnabled(contractUpdateTypeRemovalEnabled) + err = validator.Validate() handleContractUpdateError(err) } - inter := invocation.Interpreter - err = updateAccountContractCode( handler, location, @@ -1639,50 +1747,53 @@ func changeAccountContracts( } func newAccountContractsTryUpdateFunction( + inter *interpreter.Interpreter, functionType *sema.FunctionType, - gauge common.MemoryGauge, - handler AccountContractAdditionHandler, + handler AccountContractAdditionAndNamesHandler, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( - gauge, - functionType, - func(invocation interpreter.Invocation) (deploymentResult interpreter.Value) { - var deployedContract interpreter.Value - - defer func() { - if r := recover(); r != nil { - rootError := r - for { - switch err := r.(type) { - case errors.UserError, errors.ExternalError: - // Error is ignored for now. - // Simply return with a `nil` deployed-contract - case xerrors.Wrapper: - r = err.Unwrap() - continue - default: - panic(rootError) +) interpreter.BoundFunctionGenerator { + return func(accountContracts interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + return interpreter.NewBoundHostFunctionValue( + inter, + accountContracts, + functionType, + func(invocation interpreter.Invocation) (deploymentResult interpreter.Value) { + var deployedContract interpreter.Value + + defer func() { + if r := recover(); r != nil { + rootError := r + for { + switch err := r.(type) { + case errors.UserError, errors.ExternalError: + // Error is ignored for now. + // Simply return with a `nil` deployed-contract + case xerrors.Wrapper: + r = err.Unwrap() + continue + default: + panic(rootError) + } + + break } - - break } - } - var optionalDeployedContract interpreter.OptionalValue - if deployedContract == nil { - optionalDeployedContract = interpreter.NilOptionalValue - } else { - optionalDeployedContract = interpreter.NewSomeValueNonCopying(invocation.Interpreter, deployedContract) - } + var optionalDeployedContract interpreter.OptionalValue + if deployedContract == nil { + optionalDeployedContract = interpreter.NilOptionalValue + } else { + optionalDeployedContract = interpreter.NewSomeValueNonCopying(invocation.Interpreter, deployedContract) + } - deploymentResult = interpreter.NewDeploymentResultValue(gauge, optionalDeployedContract) - }() + deploymentResult = interpreter.NewDeploymentResultValue(inter, optionalDeployedContract) + }() - deployedContract = changeAccountContracts(invocation, handler, addressValue, true) - return - }, - ) + deployedContract = changeAccountContracts(invocation, handler, addressValue, true) + return + }, + ) + } } // InvalidContractDeploymentError @@ -1764,6 +1875,13 @@ func updateAccountContractCode( constructorArgumentTypes []sema.Type, options updateAccountContractCodeOptions, ) error { + + // Start tracking the contract addition. + // This must be done even before the contract code gets added, + // to avoid the same contract being updated during the deployment of itself. + handler.StartContractAddition(location) + defer handler.EndContractAddition(location) + // If the code declares a contract, instantiate it and store it. // // This function might be called when @@ -1930,101 +2048,104 @@ type AccountContractRemovalHandler interface { } func newAccountContractsRemoveFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, handler AccountContractRemovalHandler, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { +) interpreter.BoundFunctionGenerator { + return func(accountContracts interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { - // Converted addresses can be cached and don't have to be recomputed on each function invocation - address := addressValue.ToAddress() + // Converted addresses can be cached and don't have to be recomputed on each function invocation + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_ContractsTypeRemoveFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { + return interpreter.NewBoundHostFunctionValue( + inter, + accountContracts, + sema.Account_ContractsTypeRemoveFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter - nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } - name := nameValue.Str - location := common.NewAddressLocation(invocation.Interpreter, address, name) + inter := invocation.Interpreter + nameValue, ok := invocation.Arguments[0].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + name := nameValue.Str + location := common.NewAddressLocation(invocation.Interpreter, address, name) - // Get the current code + // Get the current code - var code []byte - var err error - errors.WrapPanic(func() { - code, err = handler.GetAccountContractCode(location) - }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } + var code []byte + var err error + errors.WrapPanic(func() { + code, err = handler.GetAccountContractCode(location) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } - // Only remove the contract code, remove the contract value, and emit an event, - // if there is currently code deployed for the given contract name + // Only remove the contract code, remove the contract value, and emit an event, + // if there is currently code deployed for the given contract name - if len(code) > 0 { - locationRange := invocation.LocationRange + if len(code) > 0 { + locationRange := invocation.LocationRange - // NOTE: *DO NOT* call setProgram – the program removal - // should not be effective during the execution, only after + // NOTE: *DO NOT* call setProgram – the program removal + // should not be effective during the execution, only after - existingProgram, err := parser.ParseProgram(gauge, code, parser.Config{}) + existingProgram, err := parser.ParseProgram(inter, code, parser.Config{}) - // If the existing code is not parsable (i.e: `err != nil`), - // that shouldn't be a reason to fail the contract removal. - // Therefore, validate only if the code is a valid one. - if err == nil && containsEnumsInProgram(existingProgram) { - panic(&ContractRemovalError{ - Name: name, - LocationRange: locationRange, - }) - } + // If the existing code is not parsable (i.e: `err != nil`), + // that shouldn't be a reason to fail the contract removal. + // Therefore, validate only if the code is a valid one. + if err == nil && containsEnumsInProgram(existingProgram) { + panic(&ContractRemovalError{ + Name: name, + LocationRange: locationRange, + }) + } - errors.WrapPanic(func() { - err = handler.RemoveAccountContractCode(location) - }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } + errors.WrapPanic(func() { + err = handler.RemoveAccountContractCode(location) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } - // NOTE: the contract recording function delays the write - // until the end of the execution of the program + // NOTE: the contract recording function delays the write + // until the end of the execution of the program - handler.RecordContractRemoval(location) + handler.RecordContractRemoval(location) - codeHashValue := CodeToHashValue(inter, code) + codeHashValue := CodeToHashValue(inter, code) - handler.EmitEvent( - inter, - AccountContractRemovedEventType, - []interpreter.Value{ - addressValue, - codeHashValue, - nameValue, - }, - locationRange, - ) + handler.EmitEvent( + inter, + AccountContractRemovedEventType, + []interpreter.Value{ + addressValue, + codeHashValue, + nameValue, + }, + locationRange, + ) - return interpreter.NewSomeValueNonCopying( - inter, - interpreter.NewDeployedContractValue( + return interpreter.NewSomeValueNonCopying( inter, - addressValue, - nameValue, - interpreter.ByteSliceToByteArrayValue( + interpreter.NewDeployedContractValue( inter, - code, + addressValue, + nameValue, + interpreter.ByteSliceToByteArrayValue( + inter, + code, + ), ), - ), - ) - } else { - return interpreter.Nil - } - }, - ) + ) + } else { + return interpreter.Nil + } + }, + ) + } } // ContractRemovalError @@ -2058,21 +2179,26 @@ var getAccountFunctionType = sema.NewSimpleFunctionType( ) func NewGetAccountFunction(handler AccountHandler) StandardLibraryValue { - return NewStandardLibraryFunction( + return NewStandardLibraryStaticFunction( "getAccount", getAccountFunctionType, getAccountFunctionDocString, func(invocation interpreter.Invocation) interpreter.Value { + + inter := invocation.Interpreter + locationRange := invocation.LocationRange + accountAddress, ok := invocation.Arguments[0].(interpreter.AddressValue) if !ok { panic(errors.NewUnreachableError()) } return NewAccountReferenceValue( - invocation.Interpreter, + inter, handler, accountAddress, interpreter.UnauthorizedAccess, + locationRange, ) }, ) @@ -2082,8 +2208,6 @@ func NewAccountKeyValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, accountKey *AccountKey, - publicKeySignatureVerifier PublicKeySignatureVerifier, - blsPoPVerifier BLSPoPVerifier, hasher Hasher, ) interpreter.Value { @@ -2100,8 +2224,6 @@ func NewAccountKeyValue( inter, locationRange, accountKey.PublicKey, - publicKeySignatureVerifier, - blsPoPVerifier, ), hashAlgorithm, interpreter.NewUFix64ValueWithInteger( @@ -2137,58 +2259,62 @@ func CodeToHashValue(inter *interpreter.Interpreter, code []byte) *interpreter.A } func newAccountStorageCapabilitiesValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, accountIDGenerator AccountIDGenerator, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountStorageCapabilitiesValue( - gauge, + inter, addressValue, - newAccountStorageCapabilitiesGetControllerFunction(gauge, addressValue), - newAccountStorageCapabilitiesGetControllersFunction(gauge, addressValue), - newAccountStorageCapabilitiesForEachControllerFunction(gauge, addressValue), - newAccountStorageCapabilitiesIssueFunction(gauge, accountIDGenerator, addressValue), + newAccountStorageCapabilitiesGetControllerFunction(inter, addressValue), + newAccountStorageCapabilitiesGetControllersFunction(inter, addressValue), + newAccountStorageCapabilitiesForEachControllerFunction(inter, addressValue), + newAccountStorageCapabilitiesIssueFunction(inter, accountIDGenerator, addressValue), + newAccountStorageCapabilitiesIssueWithTypeFunction(inter, accountIDGenerator, addressValue), ) } func newAccountAccountCapabilitiesValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, accountIDGenerator AccountIDGenerator, addressValue interpreter.AddressValue, ) interpreter.Value { - return interpreter.NewAccountAccountCapabilitiesValue( - gauge, + accountCapabilities := interpreter.NewAccountAccountCapabilitiesValue( + inter, addressValue, - newAccountAccountCapabilitiesGetControllerFunction(gauge, addressValue), - newAccountAccountCapabilitiesGetControllersFunction(gauge, addressValue), - newAccountAccountCapabilitiesForEachControllerFunction(gauge, addressValue), - newAccountAccountCapabilitiesIssueFunction(gauge, accountIDGenerator, addressValue), + newAccountAccountCapabilitiesGetControllerFunction(inter, addressValue), + newAccountAccountCapabilitiesGetControllersFunction(inter, addressValue), + newAccountAccountCapabilitiesForEachControllerFunction(inter, addressValue), + newAccountAccountCapabilitiesIssueFunction(inter, accountIDGenerator, addressValue), + newAccountAccountCapabilitiesIssueWithTypeFunction(inter, accountIDGenerator, addressValue), ) + + return accountCapabilities } func newAccountCapabilitiesValue( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, idGenerator AccountIDGenerator, addressValue interpreter.AddressValue, ) interpreter.Value { return interpreter.NewAccountCapabilitiesValue( - gauge, + inter, addressValue, - newAccountCapabilitiesGetFunction(gauge, addressValue, false), - newAccountCapabilitiesGetFunction(gauge, addressValue, true), - newAccountCapabilitiesExistsFunction(gauge, addressValue), - newAccountCapabilitiesPublishFunction(gauge, addressValue), - newAccountCapabilitiesUnpublishFunction(gauge, addressValue), + newAccountCapabilitiesGetFunction(inter, addressValue, false), + newAccountCapabilitiesGetFunction(inter, addressValue, true), + newAccountCapabilitiesExistsFunction(inter, addressValue), + newAccountCapabilitiesPublishFunction(inter, addressValue), + newAccountCapabilitiesUnpublishFunction(inter, addressValue), func() interpreter.Value { return newAccountStorageCapabilitiesValue( - gauge, + inter, idGenerator, addressValue, ) }, func() interpreter.Value { return newAccountAccountCapabilitiesValue( - gauge, + inter, idGenerator, addressValue, ) @@ -2197,34 +2323,38 @@ func newAccountCapabilitiesValue( } func newAccountStorageCapabilitiesGetControllerFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) interpreter.FunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_StorageCapabilitiesTypeGetControllerFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { +) interpreter.BoundFunctionGenerator { + return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + storageCapabilities, + sema.Account_StorageCapabilitiesTypeGetControllerFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get capability ID argument + // Get capability ID argument - capabilityIDValue, ok := invocation.Arguments[0].(interpreter.UInt64Value) - if !ok { - panic(errors.NewUnreachableError()) - } + capabilityIDValue, ok := invocation.Arguments[0].(interpreter.UInt64Value) + if !ok { + panic(errors.NewUnreachableError()) + } - capabilityID := uint64(capabilityIDValue) + capabilityID := uint64(capabilityIDValue) - referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID) - if referenceValue == nil { - return interpreter.Nil - } + referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID, locationRange) + if referenceValue == nil { + return interpreter.Nil + } - return interpreter.NewSomeValueNonCopying(inter, referenceValue) - }, - ) + return interpreter.NewSomeValueNonCopying(inter, referenceValue) + }, + ) + } } var storageCapabilityControllerReferencesArrayStaticType = &interpreter.VariableSizedStaticType{ @@ -2235,57 +2365,61 @@ var storageCapabilityControllerReferencesArrayStaticType = &interpreter.Variable } func newAccountStorageCapabilitiesGetControllersFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) interpreter.FunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_StorageCapabilitiesTypeGetControllersFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { +) interpreter.BoundFunctionGenerator { + return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + storageCapabilities, + sema.Account_StorageCapabilitiesTypeGetControllersFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get path argument + // Get path argument - targetPathValue, ok := invocation.Arguments[0].(interpreter.PathValue) - if !ok || targetPathValue.Domain != common.PathDomainStorage { - panic(errors.NewUnreachableError()) - } + targetPathValue, ok := invocation.Arguments[0].(interpreter.PathValue) + if !ok || targetPathValue.Domain != common.PathDomainStorage { + panic(errors.NewUnreachableError()) + } - // Get capability controllers iterator + // Get capability controllers iterator - nextCapabilityID, count := - getStorageCapabilityControllerIDsIterator(inter, address, targetPathValue) + nextCapabilityID, count := + getStorageCapabilityControllerIDsIterator(inter, address, targetPathValue) - var capabilityControllerIndex uint64 = 0 + var capabilityControllerIndex uint64 = 0 - return interpreter.NewArrayValueWithIterator( - inter, - storageCapabilityControllerReferencesArrayStaticType, - common.Address{}, - count, - func() interpreter.Value { - if capabilityControllerIndex >= count { - return nil - } - capabilityControllerIndex++ + return interpreter.NewArrayValueWithIterator( + inter, + storageCapabilityControllerReferencesArrayStaticType, + common.Address{}, + count, + func() interpreter.Value { + if capabilityControllerIndex >= count { + return nil + } + capabilityControllerIndex++ - capabilityID, ok := nextCapabilityID() - if !ok { - return nil - } + capabilityID, ok := nextCapabilityID() + if !ok { + return nil + } - referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID) - if referenceValue == nil { - panic(errors.NewUnreachableError()) - } + referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID, locationRange) + if referenceValue == nil { + panic(errors.NewUnreachableError()) + } - return referenceValue - }, - ) - }, - ) + return referenceValue + }, + ) + }, + ) + } } // `(&StorageCapabilityController)` in @@ -2298,160 +2432,251 @@ var accountStorageCapabilitiesForEachControllerCallbackTypeParams = []sema.Type{ } func newAccountStorageCapabilitiesForEachControllerFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() +) interpreter.BoundFunctionGenerator { + return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_StorageCapabilitiesTypeForEachControllerFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { + return interpreter.NewBoundHostFunctionValue( + inter, + storageCapabilities, + sema.Account_StorageCapabilitiesTypeForEachControllerFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get path argument + // Get path argument - targetPathValue, ok := invocation.Arguments[0].(interpreter.PathValue) - if !ok || targetPathValue.Domain != common.PathDomainStorage { - panic(errors.NewUnreachableError()) - } + targetPathValue, ok := invocation.Arguments[0].(interpreter.PathValue) + if !ok || targetPathValue.Domain != common.PathDomainStorage { + panic(errors.NewUnreachableError()) + } - // Get function argument + // Get function argument - functionValue, ok := invocation.Arguments[1].(interpreter.FunctionValue) - if !ok { - panic(errors.NewUnreachableError()) - } + functionValue, ok := invocation.Arguments[1].(interpreter.FunctionValue) + if !ok { + panic(errors.NewUnreachableError()) + } - // Prevent mutations (record/unrecord) to storage capability controllers - // for this address/path during iteration + // Prevent mutations (record/unrecord) to storage capability controllers + // for this address/path during iteration - addressPath := interpreter.AddressPath{ - Address: address, - Path: targetPathValue, - } - iterations := inter.SharedState.CapabilityControllerIterations - iterations[addressPath]++ - defer func() { - iterations[addressPath]-- - if iterations[addressPath] <= 0 { - delete(iterations, addressPath) + addressPath := interpreter.AddressPath{ + Address: address, + Path: targetPathValue, } - }() + iterations := inter.SharedState.CapabilityControllerIterations + iterations[addressPath]++ + defer func() { + iterations[addressPath]-- + if iterations[addressPath] <= 0 { + delete(iterations, addressPath) + } + }() - // Get capability controllers iterator + // Get capability controllers iterator - nextCapabilityID, _ := - getStorageCapabilityControllerIDsIterator(inter, address, targetPathValue) + nextCapabilityID, _ := + getStorageCapabilityControllerIDsIterator(inter, address, targetPathValue) - for { - capabilityID, ok := nextCapabilityID() - if !ok { - break + for { + capabilityID, ok := nextCapabilityID() + if !ok { + break + } + + referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID, locationRange) + if referenceValue == nil { + panic(errors.NewUnreachableError()) + } + + subInvocation := interpreter.NewInvocation( + inter, + nil, + nil, + nil, + []interpreter.Value{referenceValue}, + accountStorageCapabilitiesForEachControllerCallbackTypeParams, + nil, + locationRange, + ) + + res, err := inter.InvokeFunction(functionValue, subInvocation) + if err != nil { + // interpreter panicked while invoking the inner function value + panic(err) + } + + shouldContinue, ok := res.(interpreter.BoolValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + if !shouldContinue { + break + } + + // It is not safe to check this at the beginning of the loop + // (i.e. on the next invocation of the callback), + // because if the mutation performed in the callback reorganized storage + // such that the iteration pointer is now at the end, + // we will not invoke the callback again but will still silently skip elements of storage. + // + // In order to be safe, we perform this check here to effectively enforce + // that users return `false` from their callback in all cases where storage is mutated. + if inter.SharedState.MutationDuringCapabilityControllerIteration { + panic(CapabilityControllersMutatedDuringIterationError{ + LocationRange: locationRange, + }) + } } - referenceValue := getStorageCapabilityControllerReference(inter, address, capabilityID) - if referenceValue == nil { + return interpreter.Void + }, + ) + } +} + +func newAccountStorageCapabilitiesIssueFunction( + inter *interpreter.Interpreter, + idGenerator AccountIDGenerator, + addressValue interpreter.AddressValue, +) interpreter.BoundFunctionGenerator { + return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + storageCapabilities, + sema.Account_StorageCapabilitiesTypeIssueFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + + inter := invocation.Interpreter + locationRange := invocation.LocationRange + + // Get path argument + + targetPathValue, ok := invocation.Arguments[0].(interpreter.PathValue) + if !ok || targetPathValue.Domain != common.PathDomainStorage { panic(errors.NewUnreachableError()) } - subInvocation := interpreter.NewInvocation( + // Get borrow type type argument + + typeParameterPair := invocation.TypeParameterTypes.Oldest() + ty := typeParameterPair.Value + + // Issue capability controller and return capability + + return checkAndIssueStorageCapabilityControllerWithType( inter, - nil, - nil, - nil, - []interpreter.Value{referenceValue}, - accountStorageCapabilitiesForEachControllerCallbackTypeParams, - nil, locationRange, + idGenerator, + address, + targetPathValue, + ty, ) + }, + ) + } +} - res, err := inter.InvokeFunction(functionValue, subInvocation) - if err != nil { - // interpreter panicked while invoking the inner function value - panic(err) +func newAccountStorageCapabilitiesIssueWithTypeFunction( + inter *interpreter.Interpreter, + idGenerator AccountIDGenerator, + addressValue interpreter.AddressValue, +) interpreter.BoundFunctionGenerator { + return func(storageCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + storageCapabilities, + sema.Account_StorageCapabilitiesTypeIssueFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + + inter := invocation.Interpreter + locationRange := invocation.LocationRange + + // Get path argument + + targetPathValue, ok := invocation.Arguments[0].(interpreter.PathValue) + if !ok || targetPathValue.Domain != common.PathDomainStorage { + panic(errors.NewUnreachableError()) } - shouldContinue, ok := res.(interpreter.BoolValue) + // Get type argument + + typeValue, ok := invocation.Arguments[1].(interpreter.TypeValue) if !ok { panic(errors.NewUnreachableError()) } - if !shouldContinue { - break + ty, err := inter.ConvertStaticToSemaType(typeValue.Type) + if err != nil { + panic(errors.NewUnexpectedErrorFromCause(err)) } - // It is not safe to check this at the beginning of the loop - // (i.e. on the next invocation of the callback), - // because if the mutation performed in the callback reorganized storage - // such that the iteration pointer is now at the end, - // we will not invoke the callback again but will still silently skip elements of storage. - // - // In order to be safe, we perform this check here to effectively enforce - // that users return `false` from their callback in all cases where storage is mutated. - if inter.SharedState.MutationDuringCapabilityControllerIteration { - panic(CapabilityControllersMutatedDuringIterationError{ - LocationRange: locationRange, - }) - } - } + // Issue capability controller and return capability - return interpreter.Void - }, - ) + return checkAndIssueStorageCapabilityControllerWithType( + inter, + locationRange, + idGenerator, + address, + targetPathValue, + ty, + ) + }, + ) + } } -func newAccountStorageCapabilitiesIssueFunction( - gauge common.MemoryGauge, +func checkAndIssueStorageCapabilityControllerWithType( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, idGenerator AccountIDGenerator, - addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_StorageCapabilitiesTypeIssueFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - - inter := invocation.Interpreter - locationRange := invocation.LocationRange + address common.Address, + targetPathValue interpreter.PathValue, + ty sema.Type, +) *interpreter.IDCapabilityValue { - // Get path argument + borrowType, ok := ty.(*sema.ReferenceType) + if !ok { + panic(interpreter.InvalidCapabilityIssueTypeError{ + ExpectedTypeDescription: "reference type", + ActualType: ty, + LocationRange: locationRange, + }) + } - targetPathValue, ok := invocation.Arguments[0].(interpreter.PathValue) - if !ok || targetPathValue.Domain != common.PathDomainStorage { - panic(errors.NewUnreachableError()) - } + // Issue capability controller - // Get borrow type type argument + capabilityIDValue, borrowStaticType := IssueStorageCapabilityController( + inter, + locationRange, + idGenerator, + address, + borrowType, + targetPathValue, + ) - typeParameterPair := invocation.TypeParameterTypes.Oldest() - borrowType, ok := typeParameterPair.Value.(*sema.ReferenceType) - if !ok { - panic(errors.NewUnreachableError()) - } + if capabilityIDValue == interpreter.InvalidCapabilityID { + panic(interpreter.InvalidCapabilityIDError{}) + } - capabilityIDValue, borrowStaticType := issueStorageCapabilityController( - inter, - locationRange, - idGenerator, - address, - borrowType, - targetPathValue, - ) + // Return controller's capability - return interpreter.NewCapabilityValue( - gauge, - capabilityIDValue, - addressValue, - borrowStaticType, - ) - }, + return interpreter.NewCapabilityValue( + inter, + capabilityIDValue, + interpreter.NewAddressValue(inter, address), + borrowStaticType, ) } -func issueStorageCapabilityController( +func IssueStorageCapabilityController( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, idGenerator AccountIDGenerator, @@ -2494,47 +2719,132 @@ func issueStorageCapabilityController( } func newAccountAccountCapabilitiesIssueFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, idGenerator AccountIDGenerator, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_AccountCapabilitiesTypeIssueFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_AccountCapabilitiesTypeIssueFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get borrow type type argument + // Get borrow type type argument - typeParameterPair := invocation.TypeParameterTypes.Oldest() - borrowType, ok := typeParameterPair.Value.(*sema.ReferenceType) - if !ok { - panic(errors.NewUnreachableError()) - } + typeParameterPair := invocation.TypeParameterTypes.Oldest() + ty := typeParameterPair.Value + + // Issue capability controller and return capability + + return checkAndIssueAccountCapabilityControllerWithType( + inter, + locationRange, + idGenerator, + address, + ty, + ) + }, + ) + } +} + +func newAccountAccountCapabilitiesIssueWithTypeFunction( + inter *interpreter.Interpreter, + idGenerator AccountIDGenerator, + addressValue interpreter.AddressValue, +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_AccountCapabilitiesTypeIssueFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + + inter := invocation.Interpreter + locationRange := invocation.LocationRange + + // Get type argument + + typeValue, ok := invocation.Arguments[0].(interpreter.TypeValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + ty, err := inter.ConvertStaticToSemaType(typeValue.Type) + if err != nil { + panic(errors.NewUnexpectedErrorFromCause(err)) + } - capabilityIDValue, borrowStaticType := - issueAccountCapabilityController( + // Issue capability controller and return capability + + return checkAndIssueAccountCapabilityControllerWithType( inter, locationRange, idGenerator, address, - borrowType, + ty, ) + }, + ) + } +} - return interpreter.NewCapabilityValue( - gauge, - capabilityIDValue, - addressValue, - borrowStaticType, - ) - }, +func checkAndIssueAccountCapabilityControllerWithType( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + idGenerator AccountIDGenerator, + address common.Address, + ty sema.Type, +) *interpreter.IDCapabilityValue { + + // Get and check borrow type + + typeBound := sema.AccountReferenceType + if !sema.IsSubType(ty, typeBound) { + panic(interpreter.InvalidCapabilityIssueTypeError{ + ExpectedTypeDescription: fmt.Sprintf("`%s`", typeBound.QualifiedString()), + ActualType: ty, + LocationRange: locationRange, + }) + } + + borrowType, ok := ty.(*sema.ReferenceType) + if !ok { + panic(errors.NewUnreachableError()) + } + + // Issue capability controller + + capabilityIDValue, borrowStaticType := + IssueAccountCapabilityController( + inter, + locationRange, + idGenerator, + address, + borrowType, + ) + + if capabilityIDValue == interpreter.InvalidCapabilityID { + panic(interpreter.InvalidCapabilityIDError{}) + } + + // Return controller's capability + + return interpreter.NewCapabilityValue( + inter, + capabilityIDValue, + interpreter.NewAddressValue(inter, address), + borrowStaticType, ) } -func issueAccountCapabilityController( +func IssueAccountCapabilityController( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, idGenerator AccountIDGenerator, @@ -2693,6 +3003,7 @@ func getStorageCapabilityControllerReference( inter *interpreter.Interpreter, address common.Address, capabilityID uint64, + locationRange interpreter.LocationRange, ) *interpreter.EphemeralReferenceValue { capabilityController := getCapabilityController(inter, address, capabilityID) @@ -2710,6 +3021,7 @@ func getStorageCapabilityControllerReference( interpreter.UnauthorizedAccess, storageCapabilityController, sema.StorageCapabilityControllerType, + locationRange, ) } @@ -3041,148 +3353,160 @@ func getAccountCapabilityControllerIDsIterator( } func newAccountCapabilitiesPublishFunction( - gauge common.MemoryGauge, - addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_CapabilitiesTypePublishFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter + inter *interpreter.Interpreter, + accountAddressValue interpreter.AddressValue, +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + accountAddress := accountAddressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_CapabilitiesTypePublishFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get capability argument + // Get capability argument - var capabilityValue *interpreter.CapabilityValue + var capabilityValue *interpreter.IDCapabilityValue - firstValue := invocation.Arguments[0] - switch firstValue := firstValue.(type) { - case *interpreter.CapabilityValue: - capabilityValue = firstValue + firstValue := invocation.Arguments[0] + switch firstValue := firstValue.(type) { + case *interpreter.IDCapabilityValue: + capabilityValue = firstValue - default: - panic(errors.NewUnreachableError()) - } + default: + panic(errors.NewUnreachableError()) + } - // Get path argument + capabilityAddressValue := capabilityValue.Address + if capabilityAddressValue != accountAddressValue { + panic(interpreter.CapabilityAddressPublishingError{ + LocationRange: locationRange, + CapabilityAddress: capabilityAddressValue, + AccountAddress: accountAddressValue, + }) + } - pathValue, ok := invocation.Arguments[1].(interpreter.PathValue) - if !ok || pathValue.Domain != common.PathDomainPublic { - panic(errors.NewUnreachableError()) - } + // Get path argument - domain := pathValue.Domain.Identifier() - identifier := pathValue.Identifier + pathValue, ok := invocation.Arguments[1].(interpreter.PathValue) + if !ok || pathValue.Domain != common.PathDomainPublic { + panic(errors.NewUnreachableError()) + } - // Prevent an overwrite + domain := pathValue.Domain.Identifier() + identifier := pathValue.Identifier - locationRange := invocation.LocationRange + // Prevent an overwrite - storageMapKey := interpreter.StringStorageMapKey(identifier) + storageMapKey := interpreter.StringStorageMapKey(identifier) - if inter.StoredValueExists( - address, - domain, - storageMapKey, - ) { - panic( - interpreter.OverwriteError{ - Address: addressValue, + if inter.StoredValueExists( + accountAddress, + domain, + storageMapKey, + ) { + panic(interpreter.OverwriteError{ + Address: accountAddressValue, Path: pathValue, LocationRange: locationRange, - }, - ) - } + }) + } - capabilityValue, ok = capabilityValue.Transfer( - inter, - locationRange, - atree.Address(address), - true, - nil, - nil, - ).(*interpreter.CapabilityValue) - if !ok { - panic(errors.NewUnreachableError()) - } + capabilityValue, ok = capabilityValue.Transfer( + inter, + locationRange, + atree.Address(accountAddress), + true, + nil, + nil, + ).(*interpreter.IDCapabilityValue) + if !ok { + panic(errors.NewUnreachableError()) + } - // Write new value + // Write new value - inter.WriteStored( - address, - domain, - storageMapKey, - capabilityValue, - ) + inter.WriteStored( + accountAddress, + domain, + storageMapKey, + capabilityValue, + ) - return interpreter.Void - }, - ) + return interpreter.Void + }, + ) + } } func newAccountCapabilitiesUnpublishFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_CapabilitiesTypeUnpublishFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_CapabilitiesTypeUnpublishFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get path argument + // Get path argument - pathValue, ok := invocation.Arguments[0].(interpreter.PathValue) - if !ok || pathValue.Domain != common.PathDomainPublic { - panic(errors.NewUnreachableError()) - } + pathValue, ok := invocation.Arguments[0].(interpreter.PathValue) + if !ok || pathValue.Domain != common.PathDomainPublic { + panic(errors.NewUnreachableError()) + } - domain := pathValue.Domain.Identifier() - identifier := pathValue.Identifier + domain := pathValue.Domain.Identifier() + identifier := pathValue.Identifier - // Read/remove capability + // Read/remove capability - storageMapKey := interpreter.StringStorageMapKey(identifier) + storageMapKey := interpreter.StringStorageMapKey(identifier) - readValue := inter.ReadStored(address, domain, storageMapKey) - if readValue == nil { - return interpreter.Nil - } + readValue := inter.ReadStored(address, domain, storageMapKey) + if readValue == nil { + return interpreter.Nil + } - var capabilityValue *interpreter.CapabilityValue - switch readValue := readValue.(type) { - case *interpreter.CapabilityValue: - capabilityValue = readValue + var capabilityValue *interpreter.IDCapabilityValue + switch readValue := readValue.(type) { + case *interpreter.IDCapabilityValue: + capabilityValue = readValue - default: - panic(errors.NewUnreachableError()) - } + default: + panic(errors.NewUnreachableError()) + } - capabilityValue, ok = capabilityValue.Transfer( - inter, - locationRange, - atree.Address{}, - true, - nil, - nil, - ).(*interpreter.CapabilityValue) - if !ok { - panic(errors.NewUnreachableError()) - } + capabilityValue, ok = capabilityValue.Transfer( + inter, + locationRange, + atree.Address{}, + true, + nil, + nil, + ).(*interpreter.IDCapabilityValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter.WriteStored( - address, - domain, - storageMapKey, - nil, - ) + inter.WriteStored( + address, + domain, + storageMapKey, + nil, + ) - return interpreter.NewSomeValueNonCopying(inter, capabilityValue) - }, - ) + return interpreter.NewSomeValueNonCopying(inter, capabilityValue) + }, + ) + } } func getCheckedCapabilityController( @@ -3233,12 +3557,13 @@ func getCheckedCapabilityController( return controller, wantedBorrowType } -func getCheckedCapabilityControllerReference( +func GetCheckedCapabilityControllerReference( inter *interpreter.Interpreter, capabilityAddressValue interpreter.AddressValue, capabilityIDValue interpreter.UInt64Value, wantedBorrowType *sema.ReferenceType, capabilityBorrowType *sema.ReferenceType, + locationRange interpreter.LocationRange, ) interpreter.ReferenceValue { controller, resultBorrowType := getCheckedCapabilityController( inter, @@ -3257,6 +3582,7 @@ func getCheckedCapabilityControllerReference( inter, capabilityAddress, resultBorrowType, + locationRange, ) } @@ -3268,12 +3594,13 @@ func BorrowCapabilityController( wantedBorrowType *sema.ReferenceType, capabilityBorrowType *sema.ReferenceType, ) interpreter.ReferenceValue { - referenceValue := getCheckedCapabilityControllerReference( + referenceValue := GetCheckedCapabilityControllerReference( inter, capabilityAddress, capabilityID, wantedBorrowType, capabilityBorrowType, + locationRange, ) if referenceValue == nil { return nil @@ -3303,12 +3630,13 @@ func CheckCapabilityController( wantedBorrowType *sema.ReferenceType, capabilityBorrowType *sema.ReferenceType, ) interpreter.BoolValue { - referenceValue := getCheckedCapabilityControllerReference( + referenceValue := GetCheckedCapabilityControllerReference( inter, capabilityAddress, capabilityID, wantedBorrowType, capabilityBorrowType, + locationRange, ) if referenceValue == nil { return interpreter.FalseValue @@ -3328,166 +3656,202 @@ func CheckCapabilityController( } func newAccountCapabilitiesGetFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, borrow bool, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() - var funcType *sema.FunctionType + var funcType *sema.FunctionType - if borrow { - funcType = sema.Account_CapabilitiesTypeBorrowFunctionType - } else { - funcType = sema.Account_CapabilitiesTypeGetFunctionType - } + if borrow { + funcType = sema.Account_CapabilitiesTypeBorrowFunctionType + } else { + funcType = sema.Account_CapabilitiesTypeGetFunctionType + } - return interpreter.NewHostFunctionValue( - gauge, - funcType, - func(invocation interpreter.Invocation) interpreter.Value { + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + funcType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get path argument + // Get path argument - pathValue, ok := invocation.Arguments[0].(interpreter.PathValue) - if !ok || pathValue.Domain != common.PathDomainPublic { - panic(errors.NewUnreachableError()) - } + pathValue, ok := invocation.Arguments[0].(interpreter.PathValue) + if !ok || pathValue.Domain != common.PathDomainPublic { + panic(errors.NewUnreachableError()) + } - domain := pathValue.Domain.Identifier() - identifier := pathValue.Identifier + domain := pathValue.Domain.Identifier() + identifier := pathValue.Identifier - // Get borrow type type argument + // Get borrow type type argument - typeParameterPair := invocation.TypeParameterTypes.Oldest() - wantedBorrowType, ok := typeParameterPair.Value.(*sema.ReferenceType) - if !ok { - panic(errors.NewUnreachableError()) - } + typeParameterPairValue := invocation.TypeParameterTypes.Oldest().Value + // `Never` is never a supertype of any stored value + if typeParameterPairValue.Equal(sema.NeverType) { + if borrow { + return interpreter.Nil + } else { + return interpreter.NewInvalidCapabilityValue( + inter, + addressValue, + interpreter.PrimitiveStaticTypeNever, + ) + } + } - // Read stored capability, if any + wantedBorrowType, ok := typeParameterPairValue.(*sema.ReferenceType) + if !ok { + panic(errors.NewUnreachableError()) + } - storageMapKey := interpreter.StringStorageMapKey(identifier) + var failValue interpreter.Value + if borrow { + failValue = interpreter.Nil + } else { + failValue = + interpreter.NewInvalidCapabilityValue( + inter, + addressValue, + interpreter.ConvertSemaToStaticType(inter, wantedBorrowType), + ) + } - readValue := inter.ReadStored(address, domain, storageMapKey) - if readValue == nil { - return interpreter.Nil - } + // Read stored capability, if any - var readCapabilityValue *interpreter.CapabilityValue + storageMapKey := interpreter.StringStorageMapKey(identifier) - switch readValue := readValue.(type) { - case *interpreter.CapabilityValue: - readCapabilityValue = readValue + readValue := inter.ReadStored(address, domain, storageMapKey) + if readValue == nil { + return failValue + } - default: - panic(errors.NewUnreachableError()) - } + var readCapabilityValue *interpreter.IDCapabilityValue - capabilityBorrowType, ok := - inter.MustConvertStaticToSemaType(readCapabilityValue.BorrowType).(*sema.ReferenceType) - if !ok { - panic(errors.NewUnreachableError()) - } + switch readValue := readValue.(type) { + case *interpreter.IDCapabilityValue: + readCapabilityValue = readValue - capabilityID := readCapabilityValue.ID - capabilityAddress := readCapabilityValue.Address + default: + panic(errors.NewUnreachableError()) + } - var resultValue interpreter.Value - if borrow { - // When borrowing, - // check the controller and types, - // and return a checked reference + capabilityBorrowType, ok := + inter.MustConvertStaticToSemaType(readCapabilityValue.BorrowType).(*sema.ReferenceType) + if !ok { + panic(errors.NewUnreachableError()) + } - resultValue = BorrowCapabilityController( - inter, - locationRange, - capabilityAddress, - capabilityID, - wantedBorrowType, - capabilityBorrowType, - ) - } else { - // When not borrowing, - // check the controller and types, - // and return a capability + capabilityID := readCapabilityValue.ID + capabilityAddress := readCapabilityValue.Address - controller, resultBorrowType := getCheckedCapabilityController( - inter, - capabilityAddress, - capabilityID, - wantedBorrowType, - capabilityBorrowType, - ) - if controller != nil { - resultBorrowStaticType := - interpreter.ConvertSemaReferenceTypeToStaticReferenceType(inter, resultBorrowType) - if !ok { - panic(errors.NewUnreachableError()) - } + var resultValue interpreter.Value + if borrow { + // When borrowing, + // check the controller and types, + // and return a checked reference - resultValue = interpreter.NewCapabilityValue( + resultValue = BorrowCapabilityController( inter, + locationRange, + capabilityAddress, capabilityID, + wantedBorrowType, + capabilityBorrowType, + ) + } else { + // When not borrowing, + // check the controller and types, + // and return a capability + + controller, resultBorrowType := getCheckedCapabilityController( + inter, capabilityAddress, - resultBorrowStaticType, + capabilityID, + wantedBorrowType, + capabilityBorrowType, ) + if controller != nil { + resultBorrowStaticType := + interpreter.ConvertSemaReferenceTypeToStaticReferenceType(inter, resultBorrowType) + if !ok { + panic(errors.NewUnreachableError()) + } + + resultValue = interpreter.NewCapabilityValue( + inter, + capabilityID, + capabilityAddress, + resultBorrowStaticType, + ) + } } - } - if resultValue == nil { - return interpreter.Nil - } + if resultValue == nil { + return failValue + } - return interpreter.NewSomeValueNonCopying( - inter, - resultValue, - ) - }, - ) + if borrow { + resultValue = interpreter.NewSomeValueNonCopying( + inter, + resultValue, + ) + } + + return resultValue + }, + ) + } } func newAccountCapabilitiesExistsFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_CapabilitiesTypeExistsFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_CapabilitiesTypeExistsFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter + inter := invocation.Interpreter - // Get path argument + // Get path argument - pathValue, ok := invocation.Arguments[0].(interpreter.PathValue) - if !ok || pathValue.Domain != common.PathDomainPublic { - panic(errors.NewUnreachableError()) - } + pathValue, ok := invocation.Arguments[0].(interpreter.PathValue) + if !ok || pathValue.Domain != common.PathDomainPublic { + panic(errors.NewUnreachableError()) + } - domain := pathValue.Domain.Identifier() - identifier := pathValue.Identifier + domain := pathValue.Domain.Identifier() + identifier := pathValue.Identifier - // Read stored capability, if any + // Read stored capability, if any - storageMapKey := interpreter.StringStorageMapKey(identifier) + storageMapKey := interpreter.StringStorageMapKey(identifier) - return interpreter.AsBoolValue( - inter.StoredValueExists(address, domain, storageMapKey), - ) - }, - ) + return interpreter.AsBoolValue( + inter.StoredValueExists(address, domain, storageMapKey), + ) + }, + ) + } } func getAccountCapabilityControllerReference( inter *interpreter.Interpreter, address common.Address, capabilityID uint64, + locationRange interpreter.LocationRange, ) *interpreter.EphemeralReferenceValue { capabilityController := getCapabilityController(inter, address, capabilityID) @@ -3505,38 +3869,43 @@ func getAccountCapabilityControllerReference( interpreter.UnauthorizedAccess, accountCapabilityController, sema.AccountCapabilityControllerType, + locationRange, ) } func newAccountAccountCapabilitiesGetControllerFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) interpreter.FunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_AccountCapabilitiesTypeGetControllerFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_AccountCapabilitiesTypeGetControllerFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get capability ID argument + // Get capability ID argument - capabilityIDValue, ok := invocation.Arguments[0].(interpreter.UInt64Value) - if !ok { - panic(errors.NewUnreachableError()) - } + capabilityIDValue, ok := invocation.Arguments[0].(interpreter.UInt64Value) + if !ok { + panic(errors.NewUnreachableError()) + } - capabilityID := uint64(capabilityIDValue) + capabilityID := uint64(capabilityIDValue) - referenceValue := getAccountCapabilityControllerReference(inter, address, capabilityID) - if referenceValue == nil { - return interpreter.Nil - } + referenceValue := getAccountCapabilityControllerReference(inter, address, capabilityID, locationRange) + if referenceValue == nil { + return interpreter.Nil + } - return interpreter.NewSomeValueNonCopying(inter, referenceValue) - }, - ) + return interpreter.NewSomeValueNonCopying(inter, referenceValue) + }, + ) + } } var accountCapabilityControllerReferencesArrayStaticType = &interpreter.VariableSizedStaticType{ @@ -3547,50 +3916,59 @@ var accountCapabilityControllerReferencesArrayStaticType = &interpreter.Variable } func newAccountAccountCapabilitiesGetControllersFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) interpreter.FunctionValue { - address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_AccountCapabilitiesTypeGetControllersFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_AccountCapabilitiesTypeGetControllersFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get capability controllers iterator + // Get capability controllers iterator - nextCapabilityID, count := - getAccountCapabilityControllerIDsIterator(inter, address) + nextCapabilityID, count := + getAccountCapabilityControllerIDsIterator(inter, address) - var capabilityControllerIndex uint64 = 0 + var capabilityControllerIndex uint64 = 0 - return interpreter.NewArrayValueWithIterator( - inter, - accountCapabilityControllerReferencesArrayStaticType, - common.Address{}, - count, - func() interpreter.Value { - if capabilityControllerIndex >= count { - return nil - } - capabilityControllerIndex++ + return interpreter.NewArrayValueWithIterator( + inter, + accountCapabilityControllerReferencesArrayStaticType, + common.Address{}, + count, + func() interpreter.Value { + if capabilityControllerIndex >= count { + return nil + } + capabilityControllerIndex++ - capabilityID, ok := nextCapabilityID() - if !ok { - return nil - } + capabilityID, ok := nextCapabilityID() + if !ok { + return nil + } - referenceValue := getAccountCapabilityControllerReference(inter, address, capabilityID) - if referenceValue == nil { - panic(errors.NewUnreachableError()) - } + referenceValue := getAccountCapabilityControllerReference( + inter, + address, + capabilityID, + locationRange, + ) + if referenceValue == nil { + panic(errors.NewUnreachableError()) + } - return referenceValue - }, - ) - }, - ) + return referenceValue + }, + ) + }, + ) + } } // `(&AccountCapabilityController)` in @@ -3616,101 +3994,104 @@ func (CapabilityControllersMutatedDuringIterationError) Error() string { } func newAccountAccountCapabilitiesForEachControllerFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, addressValue interpreter.AddressValue, -) *interpreter.HostFunctionValue { - address := addressValue.ToAddress() +) interpreter.BoundFunctionGenerator { + return func(accountCapabilities interpreter.MemberAccessibleValue) interpreter.BoundFunctionValue { + address := addressValue.ToAddress() - return interpreter.NewHostFunctionValue( - gauge, - sema.Account_AccountCapabilitiesTypeForEachControllerFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { + return interpreter.NewBoundHostFunctionValue( + inter, + accountCapabilities, + sema.Account_AccountCapabilitiesTypeForEachControllerFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter - locationRange := invocation.LocationRange + inter := invocation.Interpreter + locationRange := invocation.LocationRange - // Get function argument + // Get function argument - functionValue, ok := invocation.Arguments[0].(interpreter.FunctionValue) - if !ok { - panic(errors.NewUnreachableError()) - } + functionValue, ok := invocation.Arguments[0].(interpreter.FunctionValue) + if !ok { + panic(errors.NewUnreachableError()) + } - // Prevent mutations (record/unrecord) to account capability controllers - // for this address during iteration + // Prevent mutations (record/unrecord) to account capability controllers + // for this address during iteration - addressPath := interpreter.AddressPath{ - Address: address, - } - iterations := inter.SharedState.CapabilityControllerIterations - iterations[addressPath]++ - defer func() { - iterations[addressPath]-- - if iterations[addressPath] <= 0 { - delete(iterations, addressPath) + addressPath := interpreter.AddressPath{ + Address: address, } - }() + iterations := inter.SharedState.CapabilityControllerIterations + iterations[addressPath]++ + defer func() { + iterations[addressPath]-- + if iterations[addressPath] <= 0 { + delete(iterations, addressPath) + } + }() - // Get capability controllers iterator + // Get capability controllers iterator - nextCapabilityID, _ := - getAccountCapabilityControllerIDsIterator(inter, address) + nextCapabilityID, _ := + getAccountCapabilityControllerIDsIterator(inter, address) - for { - capabilityID, ok := nextCapabilityID() - if !ok { - break - } + for { + capabilityID, ok := nextCapabilityID() + if !ok { + break + } - referenceValue := getAccountCapabilityControllerReference(inter, address, capabilityID) - if referenceValue == nil { - panic(errors.NewUnreachableError()) - } + referenceValue := getAccountCapabilityControllerReference(inter, address, capabilityID, locationRange) + if referenceValue == nil { + panic(errors.NewUnreachableError()) + } - subInvocation := interpreter.NewInvocation( - inter, - nil, - nil, - nil, - []interpreter.Value{referenceValue}, - accountAccountCapabilitiesForEachControllerCallbackTypeParams, - nil, - locationRange, - ) + subInvocation := interpreter.NewInvocation( + inter, + nil, + nil, + nil, + []interpreter.Value{referenceValue}, + accountAccountCapabilitiesForEachControllerCallbackTypeParams, + nil, + locationRange, + ) - res, err := inter.InvokeFunction(functionValue, subInvocation) - if err != nil { - // interpreter panicked while invoking the inner function value - panic(err) - } + res, err := inter.InvokeFunction(functionValue, subInvocation) + if err != nil { + // interpreter panicked while invoking the inner function value + panic(err) + } - shouldContinue, ok := res.(interpreter.BoolValue) - if !ok { - panic(errors.NewUnreachableError()) - } + shouldContinue, ok := res.(interpreter.BoolValue) + if !ok { + panic(errors.NewUnreachableError()) + } - if !shouldContinue { - break - } + if !shouldContinue { + break + } - // It is not safe to check this at the beginning of the loop - // (i.e. on the next invocation of the callback), - // because if the mutation performed in the callback reorganized storage - // such that the iteration pointer is now at the end, - // we will not invoke the callback again but will still silently skip elements of storage. - // - // In order to be safe, we perform this check here to effectively enforce - // that users return `false` from their callback in all cases where storage is mutated. - if inter.SharedState.MutationDuringCapabilityControllerIteration { - panic(CapabilityControllersMutatedDuringIterationError{ - LocationRange: locationRange, - }) + // It is not safe to check this at the beginning of the loop + // (i.e. on the next invocation of the callback), + // because if the mutation performed in the callback reorganized storage + // such that the iteration pointer is now at the end, + // we will not invoke the callback again but will still silently skip elements of storage. + // + // In order to be safe, we perform this check here to effectively enforce + // that users return `false` from their callback in all cases where storage is mutated. + if inter.SharedState.MutationDuringCapabilityControllerIteration { + panic(CapabilityControllersMutatedDuringIterationError{ + LocationRange: locationRange, + }) + } } - } - return interpreter.Void - }, - ) + return interpreter.Void + }, + ) + } } func newAccountCapabilityControllerDeleteFunction( @@ -3764,13 +4145,13 @@ func getCapabilityControllerTag( func newCapabilityControllerGetCapabilityFunction( address common.Address, controller interpreter.CapabilityControllerValue, -) func(inter *interpreter.Interpreter) *interpreter.CapabilityValue { +) func(inter *interpreter.Interpreter) *interpreter.IDCapabilityValue { addressValue := interpreter.AddressValue(address) capabilityID := controller.ControllerCapabilityID() borrowType := controller.CapabilityControllerBorrowType() - return func(inter *interpreter.Interpreter) *interpreter.CapabilityValue { + return func(inter *interpreter.Interpreter) *interpreter.IDCapabilityValue { return interpreter.NewCapabilityValue( inter, capabilityID, diff --git a/runtime/stdlib/account_test.go b/runtime/stdlib/account_test.go index 99e302036d..0096b48133 100644 --- a/runtime/stdlib/account_test.go +++ b/runtime/stdlib/account_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ import ( "github.com/stretchr/testify/require" - "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/sema" ) @@ -31,10 +30,6 @@ func TestSemaCheckPathLiteralForInternalStorageDomains(t *testing.T) { t.Parallel() - rangeThunk := func() ast.Range { - return ast.EmptyRange - } - internalStorageDomains := []string{ InboxStorageDomain, AccountCapabilityStorageDomain, @@ -44,8 +39,11 @@ func TestSemaCheckPathLiteralForInternalStorageDomains(t *testing.T) { } test := func(domain string) { + t.Run(domain, func(t *testing.T) { - _, err := sema.CheckPathLiteral(domain, "test", rangeThunk, rangeThunk) + t.Parallel() + + _, err := sema.CheckPathLiteral(nil, domain, "test", nil, nil) var invalidPathDomainError *sema.InvalidPathDomainError require.ErrorAs(t, err, &invalidPathDomainError) }) diff --git a/runtime/stdlib/assert.go b/runtime/stdlib/assert.go index e730e771ba..f93ed0c294 100644 --- a/runtime/stdlib/assert.go +++ b/runtime/stdlib/assert.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -53,7 +53,7 @@ var assertFunctionType = &sema.FunctionType{ Arity: &sema.Arity{Min: 1, Max: 2}, } -var AssertFunction = NewStandardLibraryFunction( +var AssertFunction = NewStandardLibraryStaticFunction( "assert", assertFunctionType, assertFunctionDocString, diff --git a/runtime/stdlib/block.go b/runtime/stdlib/block.go index 9edaf3a626..cbe98ee234 100644 --- a/runtime/stdlib/block.go +++ b/runtime/stdlib/block.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -75,7 +75,7 @@ type BlockAtHeightProvider interface { } func NewGetBlockFunction(provider BlockAtHeightProvider) StandardLibraryValue { - return NewStandardLibraryFunction( + return NewStandardLibraryStaticFunction( "getBlock", getBlockFunctionType, getBlockFunctionDocString, @@ -192,7 +192,7 @@ type CurrentBlockProvider interface { } func NewGetCurrentBlockFunction(provider CurrentBlockProvider) StandardLibraryValue { - return NewStandardLibraryFunction( + return NewStandardLibraryStaticFunction( "getCurrentBlock", getCurrentBlockFunctionType, getCurrentBlockFunctionDocString, diff --git a/runtime/stdlib/bls.gen.go b/runtime/stdlib/bls.gen.go index cde94eb341..610b74fd56 100644 --- a/runtime/stdlib/bls.gen.go +++ b/runtime/stdlib/bls.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/bls.go b/runtime/stdlib/bls.go index 62cc7ad6ae..8a9169da02 100644 --- a/runtime/stdlib/bls.go +++ b/runtime/stdlib/bls.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,7 +38,9 @@ func newBLSAggregatePublicKeysFunction( gauge common.MemoryGauge, aggregator BLSPublicKeyAggregator, ) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( + // TODO: Should create a bound-host function here, but interpreter is not available at this point. + // However, this is not a problem for now, since underlying contract doesn't get moved. + return interpreter.NewStaticHostFunctionValue( gauge, BLSTypeAggregatePublicKeysFunctionType, func(invocation interpreter.Invocation) interpreter.Value { @@ -57,22 +59,27 @@ func newBLSAggregatePublicKeysFunction( ) publicKeys := make([]*PublicKey, 0, publicKeysValue.Count()) - publicKeysValue.Iterate(inter, func(element interpreter.Value) (resume bool) { - publicKeyValue, ok := element.(*interpreter.CompositeValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - publicKey, err := NewPublicKeyFromValue(inter, locationRange, publicKeyValue) - if err != nil { - panic(err) - } - - publicKeys = append(publicKeys, publicKey) - - // Continue iteration - return true - }) + publicKeysValue.Iterate( + inter, + func(element interpreter.Value) (resume bool) { + publicKeyValue, ok := element.(*interpreter.CompositeValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + publicKey, err := NewPublicKeyFromValue(inter, locationRange, publicKeyValue) + if err != nil { + panic(err) + } + + publicKeys = append(publicKeys, publicKey) + + // Continue iteration + return true + }, + false, + locationRange, + ) var err error var aggregatedPublicKey *PublicKey @@ -89,8 +96,6 @@ func newBLSAggregatePublicKeysFunction( inter, locationRange, aggregatedPublicKey, - aggregator, - aggregator, ) return interpreter.NewSomeValueNonCopying( @@ -110,7 +115,9 @@ func newBLSAggregateSignaturesFunction( gauge common.MemoryGauge, aggregator BLSSignatureAggregator, ) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( + // TODO: Should create a bound-host function here, but interpreter is not available at this point. + // However, this is not a problem for now, since underlying contract doesn't get moved. + return interpreter.NewStaticHostFunctionValue( gauge, BLSTypeAggregateSignaturesFunctionType, func(invocation interpreter.Invocation) interpreter.Value { @@ -129,22 +136,27 @@ func newBLSAggregateSignaturesFunction( ) bytesArray := make([][]byte, 0, signaturesValue.Count()) - signaturesValue.Iterate(inter, func(element interpreter.Value) (resume bool) { - signature, ok := element.(*interpreter.ArrayValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - bytes, err := interpreter.ByteArrayValueToByteSlice(inter, signature, invocation.LocationRange) - if err != nil { - panic(err) - } - - bytesArray = append(bytesArray, bytes) - - // Continue iteration - return true - }) + signaturesValue.Iterate( + inter, + func(element interpreter.Value) (resume bool) { + signature, ok := element.(*interpreter.ArrayValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + bytes, err := interpreter.ByteArrayValueToByteSlice(inter, signature, invocation.LocationRange) + if err != nil { + panic(err) + } + + bytesArray = append(bytesArray, bytes) + + // Continue iteration + return true + }, + false, + locationRange, + ) var err error var aggregatedSignature []byte diff --git a/runtime/stdlib/builtin.go b/runtime/stdlib/builtin.go index d292eb1bef..afc9662f24 100644 --- a/runtime/stdlib/builtin.go +++ b/runtime/stdlib/builtin.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,9 +18,15 @@ package stdlib +import ( + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + type StandardLibraryHandler interface { Logger - UnsafeRandomGenerator + RandomGenerator BlockAtHeightProvider CurrentBlockProvider AccountCreator @@ -38,13 +44,14 @@ func DefaultStandardLibraryValues(handler StandardLibraryHandler) []StandardLibr PanicFunction, SignatureAlgorithmConstructor, RLPContract, + InclusiveRangeConstructorFunction, NewLogFunction(handler), - NewUnsafeRandomFunction(handler), + NewRevertibleRandomFunction(handler), NewGetBlockFunction(handler), NewGetCurrentBlockFunction(handler), NewGetAccountFunction(handler), NewAccountConstructor(handler), - NewPublicKeyConstructor(handler, handler, handler), + NewPublicKeyConstructor(handler), NewBLSContract(nil, handler), NewHashAlgorithmConstructor(handler), } @@ -56,3 +63,25 @@ func DefaultScriptStandardLibraryValues(handler StandardLibraryHandler) []Standa NewGetAuthAccountFunction(handler), ) } + +type CompositeValueFunctionsHandler func( + inter *interpreter.Interpreter, + locationRange interpreter.LocationRange, + compositeValue *interpreter.CompositeValue, +) *interpreter.FunctionOrderedMap + +type CompositeValueFunctionsHandlers map[common.TypeID]CompositeValueFunctionsHandler + +func DefaultStandardLibraryCompositeValueFunctionHandlers( + handler StandardLibraryHandler, +) CompositeValueFunctionsHandlers { + return CompositeValueFunctionsHandlers{ + sema.PublicKeyType.ID(): func( + inter *interpreter.Interpreter, + _ interpreter.LocationRange, + publicKeyValue *interpreter.CompositeValue, + ) *interpreter.FunctionOrderedMap { + return PublicKeyFunctions(inter, publicKeyValue, handler) + }, + } +} diff --git a/runtime/stdlib/builtin_test.go b/runtime/stdlib/builtin_test.go index 6ea23b815e..3c92b1e385 100644 --- a/runtime/stdlib/builtin_test.go +++ b/runtime/stdlib/builtin_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import ( "testing" "github.com/onflow/cadence/runtime/activations" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/tests/checker" "github.com/stretchr/testify/assert" @@ -55,8 +56,10 @@ func newInterpreter(t *testing.T, code string, valueDeclarations ...StandardLibr utils.TestLocation, nil, &sema.Config{ - BaseValueActivation: baseValueActivation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeStrict, }, ) require.NoError(t, err) @@ -66,7 +69,7 @@ func newInterpreter(t *testing.T, code string, valueDeclarations ...StandardLibr storage := newUnmeteredInMemoryStorage() - baseActivation := activations.NewActivation[*interpreter.Variable](nil, interpreter.BaseActivation) + baseActivation := activations.NewActivation[interpreter.Variable](nil, interpreter.BaseActivation) for _, valueDeclaration := range valueDeclarations { interpreter.Declare(baseActivation, valueDeclaration) } @@ -75,8 +78,10 @@ func newInterpreter(t *testing.T, code string, valueDeclarations ...StandardLibr interpreter.ProgramFromChecker(checker), checker.Location, &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, ) require.NoError(t, err) @@ -99,7 +104,9 @@ func TestCheckAssert(t *testing.T) { code, checker.ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -215,7 +222,9 @@ func TestCheckPanic(t *testing.T) { code, checker.ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/stdlib/cadence_v0.42_to_v1_contract_upgrade_validation_test.go b/runtime/stdlib/cadence_v0.42_to_v1_contract_upgrade_validation_test.go new file mode 100644 index 0000000000..e1d1b1ee15 --- /dev/null +++ b/runtime/stdlib/cadence_v0.42_to_v1_contract_upgrade_validation_test.go @@ -0,0 +1,3033 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package stdlib_test + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/old_parser" + "github.com/onflow/cadence/runtime/parser" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" + "github.com/onflow/cadence/runtime/tests/runtime_utils" + "github.com/onflow/cadence/runtime/tests/utils" +) + +func testContractUpdate(t *testing.T, oldCode string, newCode string) error { + oldProgram, err := old_parser.ParseProgram(nil, []byte(oldCode), old_parser.Config{}) + require.NoError(t, err) + + newProgram, err := parser.ParseProgram(nil, []byte(newCode), parser.Config{}) + require.NoError(t, err) + + checker, err := sema.NewChecker( + newProgram, + utils.TestLocation, + nil, + &sema.Config{ + AccessCheckMode: sema.AccessCheckModeStrict, + AttachmentsEnabled: true, + }) + require.NoError(t, err) + + err = checker.Check() + require.NoError(t, err) + + program := interpreter.ProgramFromChecker(checker) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + utils.TestLocation, + "Test", + &runtime_utils.TestRuntimeInterface{}, + oldProgram, + program, + map[common.Location]*sema.Elaboration{ + utils.TestLocation: checker.Elaboration, + }) + return upgradeValidator.Validate() +} + +func testContractUpdateWithImports( + t *testing.T, + contractName string, + oldCode string, + newCode string, + newImports map[common.Location]string, +) error { + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, newImports) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ) + return upgradeValidator.Validate() +} + +func parseAndCheckPrograms( + t *testing.T, + location common.Location, + oldCode string, + newCode string, + newImports map[common.Location]string, +) ( + oldProgram *ast.Program, + newProgram *interpreter.Program, + elaborations map[common.Location]*sema.Elaboration, +) { + + var err error + oldProgram, err = old_parser.ParseProgram(nil, []byte(oldCode), old_parser.Config{}) + require.NoError(t, err) + + program, err := parser.ParseProgram(nil, []byte(newCode), parser.Config{}) + require.NoError(t, err) + + elaborations = map[common.Location]*sema.Elaboration{} + + for location, code := range newImports { + newImportedProgram, err := parser.ParseProgram(nil, []byte(code), parser.Config{}) + require.NoError(t, err) + + importedChecker, err := sema.NewChecker( + newImportedProgram, + location, + nil, + &sema.Config{ + AccessCheckMode: sema.AccessCheckModeStrict, + AttachmentsEnabled: true, + }, + ) + + require.NoError(t, err) + err = importedChecker.Check() + require.NoError(t, err) + + elaborations[location] = importedChecker.Elaboration + } + + checker, err := sema.NewChecker( + program, + location, + nil, + &sema.Config{ + AccessCheckMode: sema.AccessCheckModeStrict, + ImportHandler: func(_ *sema.Checker, location common.Location, _ ast.Range) (sema.Import, error) { + importedElaboration := elaborations[location] + return sema.ElaborationImport{ + Elaboration: importedElaboration, + }, nil + }, + LocationHandler: func(identifiers []ast.Identifier, location common.Location) ( + locations []sema.ResolvedLocation, err error, + ) { + if addressLocation, ok := location.(common.AddressLocation); ok && len(identifiers) == 1 { + location = common.AddressLocation{ + Name: identifiers[0].Identifier, + Address: addressLocation.Address, + } + } + + locations = append(locations, sema.ResolvedLocation{ + Location: location, + Identifiers: identifiers, + }) + + return + }, + AttachmentsEnabled: true, + }) + require.NoError(t, err) + + err = checker.Check() + require.NoError(t, err) + + newProgram = interpreter.ProgramFromChecker(checker) + + return +} + +func getSingleContractUpdateErrorCause(t *testing.T, err error, contractName string) error { + updateErr := getContractUpdateError(t, err, contractName) + + require.Len(t, updateErr.Errors, 1) + return updateErr.Errors[0] +} + +func assertMissingDeclarationError(t *testing.T, err error, declName string) bool { + var missingDeclError *stdlib.MissingDeclarationError + require.ErrorAs(t, err, &missingDeclError) + + return assert.Equal(t, declName, missingDeclError.Name) +} + +func assertInvalidEntitlementsUpgradeError(t *testing.T, err error, declName string, accessString string) { + var invalidEntitlements *stdlib.UnrepresentableEntitlementsUpgrade + require.ErrorAs(t, err, &invalidEntitlements) + + require.Equal(t, declName, invalidEntitlements.Type.QualifiedString()) + require.Equal(t, accessString, invalidEntitlements.InvalidAuthorization.QualifiedString()) +} + +func getContractUpdateError(t *testing.T, err error, contractName string) *stdlib.ContractUpdateError { + require.Error(t, err) + + var contractUpdateErr *stdlib.ContractUpdateError + require.ErrorAs(t, err, &contractUpdateErr) + + assert.Equal(t, contractName, contractUpdateErr.ContractName) + + return contractUpdateErr +} + +func assertFieldTypeMismatchError( + t *testing.T, + err error, + erroneousDeclName string, + fieldName string, + expectedType string, + foundType string, +) { + var fieldMismatchError *stdlib.FieldMismatchError + require.ErrorAs(t, err, &fieldMismatchError) + + assert.Equal(t, fieldName, fieldMismatchError.FieldName) + assert.Equal(t, erroneousDeclName, fieldMismatchError.DeclName) + + var typeMismatchError *stdlib.TypeMismatchError + assert.ErrorAs(t, fieldMismatchError.Err, &typeMismatchError) + + assert.Equal(t, expectedType, typeMismatchError.ExpectedType.String()) + assert.Equal(t, foundType, typeMismatchError.FoundType.String()) +} + +func assertFieldAuthorizationMismatchError( + t *testing.T, + err error, + erroneousDeclName string, + fieldName string, + expectedType string, + foundType string, +) { + var fieldMismatchError *stdlib.FieldMismatchError + require.ErrorAs(t, err, &fieldMismatchError) + + assert.Equal(t, fieldName, fieldMismatchError.FieldName) + assert.Equal(t, erroneousDeclName, fieldMismatchError.DeclName) + + var authorizationMismatchError *stdlib.AuthorizationMismatchError + assert.ErrorAs(t, fieldMismatchError.Err, &authorizationMismatchError) + + assert.Equal(t, expectedType, authorizationMismatchError.ExpectedAuthorization.String()) + assert.Equal(t, foundType, authorizationMismatchError.FoundAuthorization.String()) +} + +func TestContractUpgradeFieldAccess(t *testing.T) { + + t.Parallel() + + t.Run("change field access to entitlement", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) resource R { + access(all) var a: Int + init() { + self.a = 0 + } + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) resource R { + access(E) var a: Int + init() { + self.a = 0 + } + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("change field access to all", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub var a: Int + init() { + self.a = 0 + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) var a: Int + init() { + self.a = 0 + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("change field access to self", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub var a: Int + init() { + self.a = 0 + } + } + ` + + const newCode = ` + access(all) contract Test { + access(self) var a: Int + init() { + self.a = 0 + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) +} + +func TestContractUpgradeFieldType(t *testing.T) { + + t.Parallel() + + t.Run("simple invalid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) var a: Int + init() { + self.a = 0 + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) var a: String + init() { + self.a = "hello" + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "a", "Int", "String") + + }) + + t.Run("intersection types invalid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) struct interface I {} + access(all) struct interface J {} + access(all) struct S: I, J {} + + access(all) var a: {I} + init() { + self.a = S() + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) struct interface I {} + access(all) struct interface J {} + access(all) struct S: I, J {} + + access(all) var a: {I, J} + init() { + self.a = S() + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "a", "{I}", "{I, J}") + + }) + + t.Run("capability reference auth", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub var a: Capability<&Int>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "all", "E") + }) + + t.Run("capability reference auth allowed composite", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct S { + pub fun foo() {} + } + + pub var a: Capability<&S>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + + access(all) struct S { + access(E) fun foo() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("capability reference auth allowed too many entitlements", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct S { + pub fun foo() {} + } + + pub var a: Capability<&S>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) entitlement F + + access(all) struct S { + access(E) fun foo() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "E", "E, F") + }) + + t.Run("capability reference auth fewer entitlements", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct S { + pub fun foo() {} + pub fun bar() {} + } + + pub var a: Capability<&S>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) entitlement F + + access(all) struct S { + access(E) fun foo() {} + access(F) fun bar() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "E, F", "E") + }) + + t.Run("capability reference auth disjunctive entitlements", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct S { + pub fun foo() {} + pub fun bar() {} + } + + pub var a: Capability<&S>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) entitlement F + + access(all) struct S { + access(E) fun foo() {} + access(F) fun bar() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "E, F", "E | F") + }) + + t.Run("changing to a non-storable types", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) struct Foo { + access(all) var a: Int + init() { + self.a = 0 + } + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) struct Foo { + access(all) var a: &Int? + init() { + self.a = nil + } + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("changing to a non-storable inside Capability", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + // Capability is invalid, but that's OK, we just want to check + // whether inner type is changeable to a non-storable type. + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) var a: Capability<&Int>? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "a", "Int", "&Int") + }) + + t.Run("changing from a non-storable types", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) struct Foo { + access(all) var a: &Int? + init() { + self.a = nil + } + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) struct Foo { + access(all) var a: Int + init() { + self.a = 0 + } + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("composite to interface valid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import FungibleToken from 0x02 + + access(all) contract Test { + access(all) var a: @FungibleToken.Vault? + init() { + self.a <- nil + } + } + ` + + const newImport = ` + access(all) contract FungibleToken { + access(all) resource interface Vault {} + } + ` + const newCode = ` + import FungibleToken from 0x02 + + access(all) contract Test { + access(all) var a: @{FungibleToken.Vault}? + init() { + self.a <- nil + } + } + ` + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + nftLocation := common.AddressLocation{ + Name: "FungibleToken", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + nftLocation: newImport, + } + + vaultResourceTypeID := common.NewTypeIDFromQualifiedName(nil, nftLocation, "FungibleToken.Vault") + + vaultInterfaceTypeID := sema.FormatIntersectionTypeID([]common.TypeID{vaultResourceTypeID}) + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case vaultResourceTypeID: + return true, newTypeID == vaultInterfaceTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + require.NoError(t, err) + }) + + t.Run("composite to interface invalid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import FungibleToken from 0x02 + + access(all) contract Test { + access(all) var a: @FungibleToken.Vault? + init() { + self.a <- nil + } + } + ` + + const newImport = ` + access(all) contract FungibleToken { + access(all) resource interface Vault {} + } + ` + const newCode = ` + import FungibleToken from 0x02 + + access(all) contract Test { + access(all) var a: @{FungibleToken.Vault}? + init() { + self.a <- nil + } + } + ` + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + ftLocation := common.AddressLocation{ + Name: "FungibleToken", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + ftLocation: newImport, + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + return true, false + }, + ) + + err := upgradeValidator.Validate() + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "a", "FungibleToken.Vault", "{FungibleToken.Vault}") + + }) + + t.Run("custom rule not followed", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import Import from 0x02 + + access(all) contract Test { + access(all) var a: @Import.Foo? + init() { + self.a <- nil + } + } + ` + + const newImport = ` + access(all) contract Import { + access(all) resource Foo {} + access(all) resource Bar {} + } + ` + const newCode = ` + import Import from 0x02 + + access(all) contract Test { + access(all) var a: @Import.Foo? + init() { + self.a <- nil + } + } + ` + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + importLocation := common.AddressLocation{ + Name: "Import", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + importLocation: newImport, + } + + barTypeID := sema.FormatIntersectionTypeID( + []common.TypeID{ + common.NewTypeIDFromQualifiedName(nil, importLocation, "Import.Bar"), + }, + ) + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case oldTypeID: + return true, newTypeID == barTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + + // This should be an error. + // If there are custom rules, they MUST be followed. + utils.RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + var fieldMismatchError *stdlib.FieldMismatchError + require.ErrorAs(t, cause, &fieldMismatchError) + }) + + t.Run("account types", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) var a: Capability<&AuthAccount>? + access(all) var b: Capability<&AuthAccount.Keys>? + access(all) var c: Capability<&PublicAccount.Capabilities>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) var a: Capability? + access(all) var b: Capability<&Account.Keys>? + access(all) var c: Capability<&Account.Capabilities>? + init() { + self.a = nil + self.b = nil + self.c = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("custom type change inside interface set", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import MetadataViews from 0x02 + + access(all) contract Test { + access(all) resource interface Foo {} + + access(all) var a: Capability<&{Foo, MetadataViews.Resolver}>? + init() { + self.a = nil + } + } + ` + + const newImport = ` + access(all) contract ViewResolver { + access(all) resource interface Resolver {} + } + ` + + const newCode = ` + import ViewResolver from 0x02 + + access(all) contract Test { + access(all) resource interface Foo {} + + access(all) var a: Capability<&{Foo, ViewResolver.Resolver}>? + init() { + self.a = nil + } + } + ` + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + metadataViewsLocation := common.AddressLocation{ + Name: "MetadataViews", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + viewResolverLocation := common.AddressLocation{ + Name: "ViewResolver", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + viewResolverLocation: newImport, + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + metadataViewsResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + metadataViewsLocation, + "MetadataViews.Resolver", + ) + + viewResolverResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + viewResolverLocation, + "ViewResolver.Resolver", + ) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case metadataViewsResolverTypeID: + return true, newTypeID == viewResolverResolverTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + require.NoError(t, err) + }) + + t.Run("intersection types changed order", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) struct interface I {} + access(all) struct interface J {} + access(all) struct S: I, J {} + + access(all) var a: {I, J} + init() { + self.a = S() + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) struct interface I {} + access(all) struct interface J {} + access(all) struct S: I, J {} + + access(all) var a: {J, I} + init() { + self.a = S() + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("custom type change, explicit AnyResource restricted type", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import MetadataViews from 0x02 + + access(all) contract Test { + access(all) resource interface Foo {} + + access(all) var a: Capability<&AnyResource{MetadataViews.Resolver}>? + init() { + self.a = nil + } + } + ` + + const newImport = ` + access(all) contract ViewResolver { + access(all) resource interface Resolver {} + } + ` + + const newCode = ` + import ViewResolver from 0x02 + + access(all) contract Test { + access(all) resource interface Foo {} + + access(all) var a: Capability<&{ViewResolver.Resolver}>? + init() { + self.a = nil + } + } + ` + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + metadataViewsLocation := common.AddressLocation{ + Name: "MetadataViews", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + viewResolverLocation := common.AddressLocation{ + Name: "ViewResolver", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + viewResolverLocation: newImport, + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + metadataViewsResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + metadataViewsLocation, + "MetadataViews.Resolver", + ) + + viewResolverResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + viewResolverLocation, + "ViewResolver.Resolver", + ) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case metadataViewsResolverTypeID: + return true, newTypeID == viewResolverResolverTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + require.NoError(t, err) + }) + + t.Run("custom type change, implicit AnyResource restricted type", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import MetadataViews from 0x02 + + access(all) contract Test { + access(all) resource interface Foo {} + + access(all) var a: Capability<&{MetadataViews.Resolver}>? + init() { + self.a = nil + } + } + ` + + const newImport = ` + access(all) contract ViewResolver { + access(all) resource interface Resolver {} + } + ` + + const newCode = ` + import ViewResolver from 0x02 + + access(all) contract Test { + access(all) resource interface Foo {} + + access(all) var a: Capability<&{ViewResolver.Resolver}>? + init() { + self.a = nil + } + } + ` + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + metadataViewsLocation := common.AddressLocation{ + Name: "MetadataViews", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + viewResolverLocation := common.AddressLocation{ + Name: "ViewResolver", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + viewResolverLocation: newImport, + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + metadataViewsResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + metadataViewsLocation, + "MetadataViews.Resolver", + ) + + viewResolverResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + viewResolverLocation, + "ViewResolver.Resolver", + ) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case metadataViewsResolverTypeID: + return true, newTypeID == viewResolverResolverTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + require.NoError(t, err) + }) +} + +func TestContractUpgradeIntersectionAuthorization(t *testing.T) { + + t.Parallel() + + t.Run("change field type capability reference auth allowed intersection", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct interface I { + pub fun foo() + } + pub struct S:I { + pub fun foo() {} + } + + pub var a: Capability<&{I}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + + access(all) struct interface I { + access(E) fun foo() + } + + access(all) struct S:I { + access(E) fun foo() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("change field type capability reference auth allowed too many entitlements", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct interface I {} + pub struct S:I { + pub fun foo() {} + } + + pub var a: Capability<&{I}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + + access(all) struct interface I {} + + access(all) struct S:I { + access(E) fun foo() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "all", "E") + }) + + t.Run("change field type capability reference auth allowed multiple intersected", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct interface I { + pub fun bar() + } + pub struct interface J { + pub fun foo() + } + pub struct S:I, J { + pub fun foo() {} + pub fun bar() {} + } + + pub var a: Capability<&{I, J}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) entitlement F + + access(all) struct interface I { + access(E) fun foo() + } + access(all) struct interface J { + access(F) fun bar() + } + + access(all) struct S:I, J { + access(E) fun foo() {} + access(F) fun bar() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("change field type capability reference auth disallowed multiple intersected fewer entitlements", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct interface I { + pub fun bar() + } + pub struct interface J { + pub fun foo() + } + pub struct S:I, J { + pub fun foo() {} + pub fun bar() {} + } + + pub var a: Capability<&{I, J}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) entitlement F + + access(all) struct interface I { + access(E) fun foo() + } + access(all) struct interface J { + access(F) fun bar() + } + + access(all) struct S:I, J { + access(E) fun foo() {} + access(F) fun bar() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "E, F", "E") + }) + + t.Run("change field type capability reference auth multiple intersected with too many entitlements", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub struct interface I { + pub fun bar() + } + pub struct interface J { + pub fun foo() + } + pub struct S:I, J { + pub fun foo() {} + pub fun bar() {} + } + + pub var a: Capability<&{I, J}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) entitlement F + + access(all) struct interface I { + access(E) fun foo() + } + access(all) struct interface J {} + + access(all) struct S:I, J { + access(E) fun foo() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "E", "E, F") + }) + +} + +func TestContractUpgradeIntersectionFieldType(t *testing.T) { + + t.Parallel() + + t.Run("restricted type", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: @R{I} + init() { + self.a <- create R() + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: @{I} + init() { + self.a <- create R() + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + // This is not allowed because `@R{I}` is converted to `@R`, not `@{I}` + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "a", "R", "{I}") + }) + + t.Run("AnyResource restricted type, with restrictions", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: @AnyResource{I} + init() { + self.a <- create R() + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: @{I} + init() { + self.a <- create R() + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("AnyResource restricted type, without restrictions", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource R {} + + pub var a: @AnyResource{} + init() { + self.a <- create R() + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource R {} + + access(all) var a: @AnyResource + init() { + self.a <- create R() + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("restricted type variable sized", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: @[R{I}] + init() { + self.a <- [<- create R()] + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: @[R] + init() { + self.a <- [<- create R()] + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("restricted type constant sized", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: @[R{I}; 1] + init() { + self.a <- [<- create R()] + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: @[R; 1] + init() { + self.a <- [<- create R()] + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("restricted type constant sized with size change", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: @[R{I}; 1] + init() { + self.a <- [<- create R()] + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: @[R; 2] + init() { + self.a <- [<- create R(), <- create R()] + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "Test", "a", "[{I}; 1]", "[R; 2]") + }) + + t.Run("restricted type dict", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: @{Int: R{I}} + init() { + self.a <- {0: <- create R()} + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: @{Int: R} + init() { + self.a <- {0: <- create R()} + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("restricted type dict with qualified names", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: @{Int: R{I}} + init() { + self.a <- {0: <- create R()} + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: @{Int: Test.R} + init() { + self.a <- {0: <- create Test.R()} + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("restricted reference type", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I {} + pub resource R:I {} + + pub var a: Capability<&R{I}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface I {} + access(all) resource R:I {} + + access(all) var a: Capability<&R>? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("restricted entitled reference type", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I { + pub fun foo() + } + pub resource R:I { + pub fun foo() + } + + pub var a: Capability<&R{I}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) resource interface I { + access(E) fun foo() + } + access(all) resource R:I { + access(E) fun foo() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("restricted entitled reference type with qualified types", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I { + pub fun foo() + } + pub resource R:I { + pub fun foo() + } + + pub var a: Capability<&R{I}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) resource interface I { + access(Test.E) fun foo() + } + access(all) resource R:I { + access(Test.E) fun foo() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("restricted entitled reference type with qualified types with imports", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import TestImport from 0x02 + + pub contract Test { + pub resource R:TestImport.I { + pub fun foo() + } + + pub var a: Capability<&R{TestImport.I}>? + init() { + self.a = nil + } + } + ` + + const newImport = ` + access(all) contract TestImport { + access(all) entitlement E + access(all) resource interface I { + access(E) fun foo() + } + } + ` + + const newCode = ` + import TestImport from 0x02 + + access(all) contract Test { + access(all) entitlement F + access(all) resource R: TestImport.I { + access(TestImport.E) fun foo() {} + access(Test.F) fun bar() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdateWithImports( + t, + "Test", + oldCode, + newCode, + map[common.Location]string{ + common.AddressLocation{ + Name: "TestImport", + Address: common.MustBytesToAddress([]byte{0x2}), + }: newImport, + }, + ) + + require.NoError(t, err) + }) + + t.Run("restricted entitled reference type with too many granted entitlements", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface I { + pub fun foo() + } + pub resource R:I { + pub fun foo() + pub fun bar() + } + + pub var a: Capability<&R{I}>? + init() { + self.a = nil + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) entitlement E + access(all) entitlement F + access(all) resource interface I { + access(E) fun foo() + } + access(all) resource R:I { + access(E) fun foo() {} + access(F) fun bar() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "E", "E, F") + }) + + t.Run("restricted entitled reference type with too many granted entitlements with imports", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import TestImport from 0x02 + + pub contract Test { + pub resource R:TestImport.I { + pub fun foo() + } + + pub var a: Capability<&R{TestImport.I}>? + init() { + self.a = nil + } + } + ` + + const newImport = ` + access(all) contract TestImport { + access(all) entitlement E + access(all) resource interface I { + access(TestImport.E) fun foo() + } + } + ` + + const newCode = ` + import TestImport from 0x02 + + access(all) contract Test { + access(all) entitlement F + access(all) resource R: TestImport.I { + access(TestImport.E) fun foo() {} + access(Test.F) fun bar() {} + } + + access(all) var a: Capability? + init() { + self.a = nil + } + } + ` + + err := testContractUpdateWithImports( + t, + "Test", + oldCode, + newCode, + map[common.Location]string{ + common.AddressLocation{ + Name: "TestImport", + Address: common.MustBytesToAddress([]byte{0x2}), + }: newImport, + }, + ) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "Test", "a", "E", "E, F") + }) + + t.Run("restricted reference type", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + + pub resource interface I {} + + pub resource R:I { + access(all) var ref: &R{I}? + + init() { + self.ref = nil + } + } + } + ` + + const newCode = ` + access(all) contract Test { + + access(all) resource interface I { + access(E) fun foo() + } + + access(all) entitlement E + + access(all) resource R:I { + access(all) var ref: auth(E) &R? + + init() { + self.ref = nil + } + + access(E) fun foo() {} + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("restricted anystruct reference type invalid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + + pub resource interface I {} + + pub resource R:I { + access(all) var ref: &AnyStruct{I}? + + init() { + self.ref = nil + } + } + } + ` + + const newCode = ` + access(all) contract Test { + + access(all) resource interface I { + access(E) fun foo() + } + + access(all) entitlement E + + access(all) resource R:I { + access(all) var ref: auth(E) &AnyStruct? + + init() { + self.ref = nil + } + + access(E) fun foo() {} + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldTypeMismatchError(t, cause, "R", "ref", "{I}", "AnyStruct") + + }) + + t.Run("restricted anystruct reference type valid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + + pub resource interface I {} + + pub resource R:I { + access(all) var ref: &AnyStruct{I}? + + init() { + self.ref = nil + } + } + } + ` + + const newCode = ` + access(all) contract Test { + + access(all) resource interface I { + access(E) fun foo() + } + + access(all) entitlement E + + access(all) resource R:I { + access(all) var ref: auth(E) &{I}? + + init() { + self.ref = nil + } + + access(E) fun foo() {} + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + +} + +func TestTypeRequirementRemoval(t *testing.T) { + + t.Parallel() + + t.Run("resource valid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract interface Test { + access(all) resource R {} + access(all) fun foo(r: @R) + } + ` + + const newCode = ` + access(all) contract interface Test { + access(all) resource interface R {} + access(all) fun foo(r: @{R}) + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("resource invalid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract interface Test { + access(all) resource R {} + access(all) fun foo(r: @R) + } + ` + + const newCode = ` + access(all) contract interface Test { + access(all) struct interface R {} + access(all) fun foo(r: {R}) + } + ` + + err := testContractUpdate(t, oldCode, newCode) + cause := getSingleContractUpdateErrorCause(t, err, "Test") + declKindChangeError := &stdlib.InvalidDeclarationKindChangeError{} + require.ErrorAs(t, cause, &declKindChangeError) + }) + + t.Run("struct valid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract interface Test { + access(all) struct S {} + access(all) fun foo(r: S) + } + ` + + const newCode = ` + access(all) contract interface Test { + access(all) struct interface S {} + access(all) fun foo(r: {S}) + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("struct invalid", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract interface Test { + access(all) struct S {} + access(all) fun foo(r: S) + } + ` + + const newCode = ` + access(all) contract interface Test { + access(all) resource interface S {} + access(all) fun foo(r: @{S}) + } + ` + + err := testContractUpdate(t, oldCode, newCode) + cause := getSingleContractUpdateErrorCause(t, err, "Test") + declKindChangeError := &stdlib.InvalidDeclarationKindChangeError{} + require.ErrorAs(t, cause, &declKindChangeError) + }) +} + +func TestInterfaceConformanceChange(t *testing.T) { + + t.Parallel() + + t.Run("local inherited interface", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub resource interface A {} + + pub resource R: A {} + } + ` + + const newCode = ` + access(all) contract Test { + access(all) resource interface A {} + access(all) resource interface B: A {} + + // Also conforms to 'A' via inheritance. + // Therefore, existing conformance is not removed. + access(all) resource R: B {} + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("imported inherited interface", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + import TestImport from 0x02 + + pub contract Test { + pub resource R: TestImport.A {} + } + ` + + const newImport = ` + access(all) contract TestImport { + access(all) resource interface A {} + + access(all) resource interface B: A {} + } + ` + + const newCode = ` + import TestImport from 0x02 + + access(all) contract Test { + // Also conforms to 'TestImport.A' via inheritance. + // Therefore, existing conformance is not removed. + access(all) resource R: TestImport.B {} + } + ` + + err := testContractUpdateWithImports( + t, + "Test", + oldCode, + newCode, + map[common.Location]string{ + common.AddressLocation{ + Name: "TestImport", + Address: common.MustBytesToAddress([]byte{0x2}), + }: newImport, + }, + ) + + require.NoError(t, err) + }) + + t.Run("with custom rules", func(t *testing.T) { + t.Parallel() + + const oldCode = ` + import NonFungibleToken from 0x02 + + pub contract Test { + pub resource R: NonFungibleToken.INFT {} + } + ` + + const newImport = ` + access(all) contract NonFungibleToken { + access(all) resource interface INFT {} + access(all) resource interface NFT {} + } + ` + + const newCode = ` + import NonFungibleToken from 0x02 + + access(all) contract Test { + access(all) resource R: NonFungibleToken.NFT {} + } + ` + + nftLocation := common.AddressLocation{ + Name: "NonFungibleToken", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + nftLocation: newImport, + } + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + inftTypeID := common.NewTypeIDFromQualifiedName(nil, nftLocation, "NonFungibleToken.INFT") + nftTypeID := common.NewTypeIDFromQualifiedName(nil, nftLocation, "NonFungibleToken.NFT") + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case inftTypeID: + return true, newTypeID == nftTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + require.NoError(t, err) + }) + + t.Run("with custom rules and changed import", func(t *testing.T) { + t.Parallel() + + const oldCode = ` + import MetadataViews from 0x02 + + pub contract Test { + pub resource R: MetadataViews.Resolver {} + } + ` + + const newImport = ` + access(all) contract ViewResolver { + access(all) resource interface Resolver {} + } + ` + + const newCode = ` + import ViewResolver from 0x02 + + access(all) contract Test { + access(all) resource R: ViewResolver.Resolver {} + } + ` + + viewResolverLocation := common.AddressLocation{ + Name: "ViewResolver", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + metadatViewsLocation := common.AddressLocation{ + Name: "MetadataViews", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + viewResolverLocation: newImport, + } + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + metadataViewsResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + metadatViewsLocation, + "MetadataViews.Resolver", + ) + + viewResolverResolverTypeID := common.NewTypeIDFromQualifiedName( + nil, + viewResolverLocation, + "ViewResolver.Resolver", + ) + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case metadataViewsResolverTypeID: + return true, newTypeID == viewResolverResolverTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + require.NoError(t, err) + }) + + t.Run("with custom rule, not applied", func(t *testing.T) { + t.Parallel() + + const oldCode = ` + import NonFungibleToken from 0x02 + + pub contract Test { + pub resource R: NonFungibleToken.INFT {} + } + ` + + const newImport = ` + access(all) contract NonFungibleToken { + access(all) resource interface INFT {} + access(all) resource interface NFT {} + } + ` + + const newCode = ` + import NonFungibleToken from 0x02 + + access(all) contract Test { + // Chose not to change the type. + // However, the custom rule mandates changing + access(all) resource R: NonFungibleToken.INFT {} + } + ` + + nftLocation := common.AddressLocation{ + Name: "NonFungibleToken", + Address: common.MustBytesToAddress([]byte{0x2}), + } + + imports := map[common.Location]string{ + nftLocation: newImport, + } + + const contractName = "Test" + location := common.AddressLocation{ + Name: contractName, + Address: common.MustBytesToAddress([]byte{0x1}), + } + + oldProgram, newProgram, elaborations := parseAndCheckPrograms(t, location, oldCode, newCode, imports) + + inftTypeID := common.NewTypeIDFromQualifiedName(nil, nftLocation, "NonFungibleToken.INFT") + nftTypeID := common.NewTypeIDFromQualifiedName(nil, nftLocation, "NonFungibleToken.NFT") + + upgradeValidator := stdlib.NewCadenceV042ToV1ContractUpdateValidator( + location, + contractName, + &runtime_utils.TestRuntimeInterface{ + OnGetAccountContractNames: func(address runtime.Address) ([]string, error) { + return []string{"TestImport"}, nil + }, + }, + oldProgram, + newProgram, + elaborations, + ).WithUserDefinedTypeChangeChecker( + func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) { + switch oldTypeID { + case inftTypeID: + // The rules here says, the new conformance should be `NonFungibleToken.NFT`. + return true, newTypeID == nftTypeID + } + + return false, false + }, + ) + + err := upgradeValidator.Validate() + + // This should be an error. + // If there are custom rules, they MUST be followed. + utils.RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + var conformanceMismatchError *stdlib.ConformanceMismatchError + require.ErrorAs(t, cause, &conformanceMismatchError) + }) +} + +func TestEnumUpdates(t *testing.T) { + + t.Parallel() + + t.Run("remove from contract", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract Test { + pub enum E: UInt {} + } + ` + + const newCode = ` + access(all) contract Test {} + ` + + err := testContractUpdate(t, oldCode, newCode) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertMissingDeclarationError(t, cause, "E") + }) + + t.Run("remove from contract interface", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + pub contract interface Test { + pub enum E: UInt {} + } + ` + + const newCode = ` + access(all) contract interface Test { + + } + ` + + err := testContractUpdate(t, oldCode, newCode) + + require.NoError(t, err) + }) + + t.Run("update as is", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) enum Foo: UInt8 { + access(all) case up + access(all) case down + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) enum Foo: UInt8 { + access(all) case up + access(all) case down + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run("change enum type", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + + access(all) var x: Foo + + init() { + self.x = Foo.up + } + + access(all) enum Foo: UInt8 { + access(all) case up + access(all) case down + } + } + ` + + const newCode = ` + access(all) contract Test { + + access(all) var x: Foo + + init() { + self.x = Foo.up + } + + access(all) enum Foo: UInt128 { + access(all) case up + access(all) case down + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + utils.RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + var conformanceMismatchError *stdlib.ConformanceMismatchError + require.ErrorAs(t, cause, &conformanceMismatchError) + + assert.Equal(t, "Foo", conformanceMismatchError.DeclName) + }) + + t.Run("remove case", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) enum Foo: UInt8 { + access(all) case up + access(all) case down + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) enum Foo: UInt8 { + access(all) case up + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + utils.RequireError(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + var missingEnumCasesError *stdlib.MissingEnumCasesError + require.ErrorAs(t, cause, &missingEnumCasesError) + + assert.Equal(t, "Foo", missingEnumCasesError.DeclName) + assert.Equal(t, 2, missingEnumCasesError.Expected) + assert.Equal(t, 1, missingEnumCasesError.Found) + }) + + t.Run("add case", func(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) contract Test { + access(all) enum Foo: UInt8 { + access(all) case up + access(all) case down + } + } + ` + + const newCode = ` + access(all) contract Test { + access(all) enum Foo: UInt8 { + access(all) case up + access(all) case down + access(all) case left + } + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) +} + +func TestContractUpgradeIsRepresentable(t *testing.T) { + + t.Parallel() + + test := func(isInterface bool) { + nameString := "composite" + if isInterface { + nameString = "interface" + } + + codeString := "" + if isInterface { + codeString = "interface" + } + + functionImplString := "{}" + if isInterface { + functionImplString = "" + } + + t.Run(fmt.Sprintf("grant one entitlement %s", nameString), func(t *testing.T) { + + t.Parallel() + + var oldCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) resource %[1]s R { + access(all) fun a() %[2]s + } + } + `, codeString, functionImplString) + + var newCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) entitlement E + access(all) resource %[1]s R { + access(E) fun a() %[2]s + } + } + `, codeString, functionImplString) + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run(fmt.Sprintf("grant two entitlements %s", nameString), func(t *testing.T) { + + t.Parallel() + + var oldCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) resource %[1]s R { + access(all) fun a() %[2]s + access(all) fun b() %[2]s + } + } + `, codeString, functionImplString) + + var newCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) entitlement E + access(all) entitlement F + access(all) resource %[1]s R { + access(E) fun a() %[2]s + access(F) fun b() %[2]s + } + } + `, codeString, functionImplString) + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run(fmt.Sprintf("redundant disjunction %s", nameString), func(t *testing.T) { + + t.Parallel() + + var oldCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) resource %[1]s R { + access(all) fun a() %[2]s + access(all) fun b() %[2]s + } + } + `, codeString, functionImplString) + + var newCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) entitlement E + access(all) entitlement F + access(all) resource %[1]s R { + access(E) fun a() %[2]s + access(E | F) fun b() %[2]s + } + } + `, codeString, functionImplString) + + err := testContractUpdate(t, oldCode, newCode) + require.NoError(t, err) + }) + + t.Run(fmt.Sprintf("non-redundant disjunction %s", nameString), func(t *testing.T) { + + t.Parallel() + + var oldCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) resource %[1]s R { + access(all) fun a() %[2]s + access(all) fun b() %[2]s + } + } + `, codeString, functionImplString) + + var newCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) entitlement E + access(all) entitlement F + access(all) entitlement G + access(all) resource %[1]s R { + access(E) fun a() %[2]s + access(F | G) fun b() %[2]s + } + } + `, codeString, functionImplString) + + err := testContractUpdate(t, oldCode, newCode) + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertInvalidEntitlementsUpgradeError(t, cause, "Test.R", "Test.E, Test.F, Test.G") + }) + + t.Run(fmt.Sprintf("two disjunctions %s", nameString), func(t *testing.T) { + + t.Parallel() + + var oldCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) resource %[1]s R { + access(all) fun a() %[2]s + access(all) fun b() %[2]s + } + } + `, codeString, functionImplString) + + var newCode = fmt.Sprintf(` + access(all) contract %[1]s Test { + access(all) entitlement E + access(all) entitlement F + access(all) entitlement G + access(all) resource %[1]s R { + access(E | F) fun a() %[2]s + access(F | G) fun b() %[2]s + } + } + `, codeString, functionImplString) + + err := testContractUpdate(t, oldCode, newCode) + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertInvalidEntitlementsUpgradeError(t, cause, "Test.R", "Test.E, Test.F, Test.G") + }) + } + + test(true) + test(false) +} + +func TestContractUpgrade(t *testing.T) { + + t.Parallel() + + const oldCode = ` + access(all) + contract Test { + + access(all) + resource A { + + access(self) + // NOTE: undefined type + let cap: Capability<&B{Undefined}> + } + + access(all) + resource B {} + } + ` + + const newCode = ` + access(all) + contract Test { + + access(all) + entitlement E + + access(all) + resource A { + + access(self) + let cap: Capability + + init(cap: Capability) { + self.cap = cap + } + } + + access(all) + resource B {} + } + ` + + err := testContractUpdate(t, oldCode, newCode) + require.Error(t, err) + + cause := getSingleContractUpdateErrorCause(t, err, "Test") + assertFieldAuthorizationMismatchError(t, cause, "A", "cap", "all", "E") +} diff --git a/runtime/stdlib/cadence_v0.42_to_v1_contract_upgrade_validator.go b/runtime/stdlib/cadence_v0.42_to_v1_contract_upgrade_validator.go new file mode 100644 index 0000000000..ee5706967b --- /dev/null +++ b/runtime/stdlib/cadence_v0.42_to_v1_contract_upgrade_validator.go @@ -0,0 +1,952 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package stdlib + +import ( + "fmt" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/common/orderedmap" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type CadenceV042ToV1ContractUpdateValidator struct { + *TypeComparator + + newElaborations map[common.Location]*sema.Elaboration + currentRestrictedTypeUpgradeRestrictions []*ast.NominalType + + underlyingUpdateValidator *ContractUpdateValidator + + checkUserDefinedType func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool) +} + +// NewCadenceV042ToV1ContractUpdateValidator initializes and returns a validator, without performing any validation. +// Invoke the `Validate()` method of the validator returned, to start validating the contract. +func NewCadenceV042ToV1ContractUpdateValidator( + location common.Location, + contractName string, + provider AccountContractNamesProvider, + oldProgram *ast.Program, + newProgram *interpreter.Program, + newElaborations map[common.Location]*sema.Elaboration, +) *CadenceV042ToV1ContractUpdateValidator { + + underlyingValidator := NewContractUpdateValidator( + location, + contractName, + provider, + oldProgram, + newProgram.Program, + ) + + // Also add the elaboration of the current program. + newElaborations[location] = newProgram.Elaboration + + return &CadenceV042ToV1ContractUpdateValidator{ + underlyingUpdateValidator: underlyingValidator, + newElaborations: newElaborations, + TypeComparator: underlyingValidator.TypeComparator, + } +} + +var _ UpdateValidator = &CadenceV042ToV1ContractUpdateValidator{} + +func (validator *CadenceV042ToV1ContractUpdateValidator) isTypeRemovalEnabled() bool { + return validator.underlyingUpdateValidator.isTypeRemovalEnabled() +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) WithUserDefinedTypeChangeChecker( + typeChangeCheckFunc func(oldTypeID common.TypeID, newTypeID common.TypeID) (checked, valid bool), +) *CadenceV042ToV1ContractUpdateValidator { + validator.checkUserDefinedType = typeChangeCheckFunc + return validator +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) WithTypeRemovalEnabled( + enabled bool, +) UpdateValidator { + validator.underlyingUpdateValidator.WithTypeRemovalEnabled(enabled) + return validator +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) getCurrentDeclaration() ast.Declaration { + return validator.underlyingUpdateValidator.getCurrentDeclaration() +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) setCurrentDeclaration(decl ast.Declaration) { + validator.underlyingUpdateValidator.setCurrentDeclaration(decl) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) getAccountContractNames(address common.Address) ([]string, error) { + return validator.underlyingUpdateValidator.accountContractNamesProvider.GetAccountContractNames(address) +} + +// Validate validates the contract update, and returns an error if it is an invalid update. +func (validator *CadenceV042ToV1ContractUpdateValidator) Validate() error { + underlyingValidator := validator.underlyingUpdateValidator + + oldRootDecl := getRootDeclaration(validator, underlyingValidator.oldProgram) + if underlyingValidator.hasErrors() { + return underlyingValidator.getContractUpdateError() + } + + newRootDecl := getRootDeclaration(validator, underlyingValidator.newProgram) + if underlyingValidator.hasErrors() { + return underlyingValidator.getContractUpdateError() + } + + validator.TypeComparator.RootDeclIdentifier = newRootDecl.DeclarationIdentifier() + validator.TypeComparator.expectedIdentifierImportLocations = collectImports(validator, underlyingValidator.oldProgram) + validator.TypeComparator.foundIdentifierImportLocations = collectImports(validator, underlyingValidator.newProgram) + + checkDeclarationUpdatability( + validator, + oldRootDecl, + newRootDecl, + validator.checkConformanceV1, + ) + + // Check entitlements added to nested decls are all representable + nestedComposites := newRootDecl.DeclarationMembers().Composites() + for _, nestedComposite := range nestedComposites { + validator.validateEntitlementsRepresentableComposite(nestedComposite) + } + nestedInterfaces := newRootDecl.DeclarationMembers().Interfaces() + for _, nestedInterface := range nestedInterfaces { + validator.validateEntitlementsRepresentableInterface(nestedInterface) + } + + if underlyingValidator.hasErrors() { + return underlyingValidator.getContractUpdateError() + } + + return nil +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) report(err error) { + validator.underlyingUpdateValidator.report(err) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) typeIDFromType(typ ast.Type) ( + common.TypeID, + error, +) { + switch typ := typ.(type) { + case *ast.NominalType: + id, _ := validator.idAndLocationOfQualifiedType(typ) + return id, nil + case *ast.IntersectionType: + var interfaceTypeIDs []common.TypeID + for _, typ := range typ.Types { + typeID, err := validator.typeIDFromType(typ) + if err != nil { + return "", err + } + interfaceTypeIDs = append(interfaceTypeIDs, typeID) + } + + return sema.FormatIntersectionTypeID[common.TypeID](interfaceTypeIDs), nil + default: + // For now, only needs to support nominal types and intersection types. + return "", errors.NewDefaultUserError("Unsupported type") + } +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) idAndLocationOfQualifiedType(typ *ast.NominalType) ( + common.TypeID, + common.Location, +) { + + qualifiedString := typ.String() + + // working under the assumption that any new program we are validating already typechecks, + // any nominal type must fall into one of three cases: + // 1) type qualified by an import (e.g `C.R` where `C` is an imported type) + // 2) type qualified by the root declaration (e.g `C.R` where `C` is the root contract or contract interface of the new contract) + // 3) unqualified type (e.g. `R`, but declared inside `C`) + // + // in case 3, we prepend the root declaration identifier with a `.` to the type's string to get its qualified name, + // and in 1 and 2 we don't need to do anything + typIdentifier := typ.Identifier.Identifier + rootIdentifier := validator.TypeComparator.RootDeclIdentifier.Identifier + + newImportLocations := validator.TypeComparator.foundIdentifierImportLocations + oldImportLocations := validator.TypeComparator.expectedIdentifierImportLocations + + // Here we only need to find the qualified type ID. + // So check in both old imports as well as in new imports. + location, wasImported := newImportLocations[typIdentifier] + if !wasImported { + location, wasImported = oldImportLocations[typIdentifier] + } + + if !wasImported { + location = validator.underlyingUpdateValidator.location + } + + if typIdentifier != rootIdentifier && !wasImported { + qualifiedString = fmt.Sprintf("%s.%s", rootIdentifier, qualifiedString) + return common.NewTypeIDFromQualifiedName(nil, location, qualifiedString), location + } + + return common.NewTypeIDFromQualifiedName(nil, location, qualifiedString), location +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) getEntitlementType( + entitlement *ast.NominalType, +) *sema.EntitlementType { + typeID, location := validator.idAndLocationOfQualifiedType(entitlement) + elaboration, ok := validator.newElaborations[location] + if !ok { + panic(errors.NewUnreachableError()) + } + return elaboration.EntitlementType(typeID) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) getEntitlementSetAccess( + entitlementSet ast.EntitlementSet, +) sema.EntitlementSetAccess { + var entitlements []*sema.EntitlementType + + for _, entitlement := range entitlementSet.Entitlements() { + entitlements = append(entitlements, validator.getEntitlementType(entitlement)) + } + + entitlementSetKind := sema.Conjunction + if entitlementSet.Separator() == ast.Disjunction { + entitlementSetKind = sema.Disjunction + } + + return sema.NewEntitlementSetAccess(entitlements, entitlementSetKind) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) getCompositeType(composite *ast.NominalType) *sema.CompositeType { + typeID, location := validator.idAndLocationOfQualifiedType(composite) + return validator.newElaborations[location].CompositeType(typeID) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) getInterfaceType(intf *ast.NominalType) *sema.InterfaceType { + typeID, location := validator.idAndLocationOfQualifiedType(intf) + return validator.newElaborations[location].InterfaceType(typeID) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) getIntersectedInterfaces( + intersection []*ast.NominalType, +) (interfaceTypes []*sema.InterfaceType) { + for _, astInterfaceType := range intersection { + interfaceType := validator.getInterfaceType(astInterfaceType) + if interfaceType == nil { + continue + } + interfaceTypes = append(interfaceTypes, interfaceType) + } + return +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) requireEqualAccess( + expected sema.Access, + found sema.EntitlementSetAccess, + foundType ast.Type, +) error { + if !found.Equal(expected) { + return &AuthorizationMismatchError{ + FoundAuthorization: found, + ExpectedAuthorization: expected, + Range: ast.NewUnmeteredRangeFromPositioned(foundType), + } + } + return nil +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) expectedAuthorizationOfComposite(composite *ast.NominalType) sema.Access { + // If this field is set, we are currently upgrading a former legacy restricted type into a reference to a composite + // in this case, the expected entitlements are based not on the underlying composite type, + // but instead the types previously in the restriction set + if validator.currentRestrictedTypeUpgradeRestrictions != nil { + return validator.expectedAuthorizationOfIntersection(validator.currentRestrictedTypeUpgradeRestrictions) + } + + compositeType := validator.getCompositeType(composite) + + if compositeType == nil { + return sema.UnauthorizedAccess + } + + supportedEntitlements := compositeType.SupportedEntitlements() + return supportedEntitlements.Access() +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) expectedAuthorizationOfIntersection( + intersectionTypes []*ast.NominalType, +) sema.Access { + + // a reference to an intersection (or restricted) type is granted entitlements based on the intersected interfaces, + // ignoring the legacy restricted type, as an intersection type appearing in the new contract means it must have originally + // been a restricted type with no legacy type + interfaces := validator.getIntersectedInterfaces(intersectionTypes) + + if len(interfaces) == 0 { + return sema.UnauthorizedAccess + } + + intersectionType := sema.NewIntersectionType(nil, nil, interfaces) + + return intersectionType.SupportedEntitlements().Access() +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) validateEntitlementsRepresentableComposite(decl *ast.CompositeDeclaration) { + dummyNominalType := ast.NewNominalType(nil, decl.Identifier, nil) + compositeType := validator.getCompositeType(dummyNominalType) + supportedEntitlements := compositeType.SupportedEntitlements() + + if !supportedEntitlements.IsMinimallyRepresentable() { + validator.report(&UnrepresentableEntitlementsUpgrade{ + Type: compositeType, + InvalidAuthorization: supportedEntitlements.Access(), + Range: decl.Range, + }) + } +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) validateEntitlementsRepresentableInterface(decl *ast.InterfaceDeclaration) { + dummyNominalType := ast.NewNominalType(nil, decl.Identifier, nil) + interfaceType := validator.getInterfaceType(dummyNominalType) + supportedEntitlements := interfaceType.SupportedEntitlements() + + if !supportedEntitlements.IsMinimallyRepresentable() { + validator.report(&UnrepresentableEntitlementsUpgrade{ + Type: interfaceType, + InvalidAuthorization: supportedEntitlements.Access(), + Range: decl.Range, + }) + } +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) checkEntitlementsUpgrade(newType *ast.ReferenceType) error { + newAuthorization := newType.Authorization + newEntitlementSet, isEntitlementsSet := newAuthorization.(ast.EntitlementSet) + foundEntitlementSet := validator.getEntitlementSetAccess(newEntitlementSet) + + // if the new authorization is not an entitlements set, there's nothing to check here + if !isEntitlementsSet { + return nil + } + + switch newReferencedType := newType.Type.(type) { + // a lone nominal type must be a composite + case *ast.NominalType: + expectedAccess := validator.expectedAuthorizationOfComposite(newReferencedType) + return validator.requireEqualAccess(expectedAccess, foundEntitlementSet, newReferencedType) + + case *ast.IntersectionType: + expectedAccess := validator.expectedAuthorizationOfIntersection(newReferencedType.Types) + return validator.requireEqualAccess(expectedAccess, foundEntitlementSet, newReferencedType) + } + + return nil +} + +var astAccountReferenceType = &ast.ReferenceType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: sema.AccountType.Identifier, + }, + }, +} + +var astFullyEntitledAccountReferenceType = &ast.ReferenceType{ + Type: &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: sema.AccountType.Identifier, + }, + }, + Authorization: ast.ConjunctiveEntitlementSet{ + Elements: []*ast.NominalType{ + { + Identifier: ast.Identifier{ + Identifier: sema.StorageType.Identifier, + }, + }, + { + Identifier: ast.Identifier{ + Identifier: sema.ContractsType.Identifier, + }, + }, + { + Identifier: ast.Identifier{ + Identifier: sema.KeysType.Identifier, + }, + }, + { + Identifier: ast.Identifier{ + Identifier: sema.InboxType.Identifier, + }, + }, + { + Identifier: ast.Identifier{ + Identifier: sema.CapabilitiesType.Identifier, + }, + }, + }, + }, +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) checkTypeUpgradability(oldType ast.Type, newType ast.Type, inCapability bool) error { + + switch oldType := oldType.(type) { + case *ast.OptionalType: + if newOptional, isOptional := newType.(*ast.OptionalType); isOptional { + return validator.checkTypeUpgradability(oldType.Type, newOptional.Type, inCapability) + } + + case *ast.ReferenceType: + + if newReference, isReference := newType.(*ast.ReferenceType); isReference { + // Special-case `&AuthAccount` and `&PublicAccount`. + // These two references also equal to the new account reference-types. + // i.e: Both `AuthAccount` (non-reference) as well as `&AuthAccount` (reference) can + // be replaced with the new account reference type `&Account`. + switch oldType.Type.String() { + case "AuthAccount": + return newReference.CheckEqual(astFullyEntitledAccountReferenceType, validator) + case "PublicAccount": + return newReference.CheckEqual(astAccountReferenceType, validator) + default: + err := validator.checkTypeUpgradability(oldType.Type, newReference.Type, inCapability) + if err != nil { + return err + } + + if newReference.Authorization != nil { + return validator.checkEntitlementsUpgrade(newReference) + + } + return nil + } + } + + case *ast.IntersectionType: + // If the intersection type have doesn't a legacy restricted type, + // or if the legacy restricted type is AnyStruct/AnyResource (i.e: {T} or AnyStruct{T} or AnyResource{T}) + // then the interface set must be compatible. + if dropRestrictedType(oldType) { + newIntersectionType, ok := newType.(*ast.IntersectionType) + if !ok { + return newTypeMismatchError(oldType, newType) + } + + if len(oldType.Types) != len(newIntersectionType.Types) { + return newTypeMismatchError(oldType, newType) + } + + // Work on a copy. Otherwise, re-slicing in the loop messes up the + // original slice `newIntersectionType.Types` because of the pointer-type. + newInterfaceTypes := make([]*ast.NominalType, len(newIntersectionType.Types)) + copy(newInterfaceTypes, newIntersectionType.Types) + + for _, oldInterfaceType := range oldType.Types { + found := false + // Have to do an exhaustive search, because the new type could be + // a completely different type, and can only know if it's a match + // only after checking with `checkTypeUpgradability`. + for index := 0; index < len(newInterfaceTypes); index++ { + newInterfaceType := newInterfaceTypes[index] + err := validator.checkTypeUpgradability(oldInterfaceType, newInterfaceType, inCapability) + if err == nil { + found = true + // Optimization: Remove the found type + newInterfaceTypes = append(newInterfaceTypes[:index], newInterfaceTypes[index+1:]...) + break + } + } + + if !found { + return newTypeMismatchError(oldType, newType) + } + } + + // Cannot have extra interfaces in the new set. + if len(newInterfaceTypes) > 0 { + return newTypeMismatchError(oldType, newType) + } + + return nil + } + + // If the intersection type have a legacy restricted type, + // they must be upgraded according to the migration rules: i.e. R{I} -> R + validator.currentRestrictedTypeUpgradeRestrictions = oldType.Types + + // Otherwise require them to drop the "restrictions". + // e.g-1: `T{I} -> T` + // e.g-2: `AnyStruct{} -> AnyStruct` + return validator.checkTypeUpgradability(oldType.LegacyRestrictedType, newType, inCapability) + + case *ast.VariableSizedType: + if newVariableSizedType, isVariableSizedType := newType.(*ast.VariableSizedType); isVariableSizedType { + return validator.checkTypeUpgradability(oldType.Type, newVariableSizedType.Type, inCapability) + } + + case *ast.ConstantSizedType: + if newConstantSizedType, isConstantSizedType := newType.(*ast.ConstantSizedType); isConstantSizedType { + if oldType.Size.Value.Cmp(newConstantSizedType.Size.Value) != 0 || + oldType.Size.Base != newConstantSizedType.Size.Base { + return newTypeMismatchError(oldType, newConstantSizedType) + } + return validator.checkTypeUpgradability(oldType.Type, newConstantSizedType.Type, inCapability) + } + + case *ast.DictionaryType: + if newDictionaryType, isDictionaryType := newType.(*ast.DictionaryType); isDictionaryType { + err := validator.checkTypeUpgradability(oldType.KeyType, newDictionaryType.KeyType, inCapability) + if err != nil { + return err + } + return validator.checkTypeUpgradability(oldType.ValueType, newDictionaryType.ValueType, inCapability) + } + + case *ast.InstantiationType: + // if the type is a Capability, allow the borrow type to change according to the normal upgrade rules + if oldNominalType, isNominal := oldType.Type.(*ast.NominalType); isNominal && + oldNominalType.Identifier.Identifier == "Capability" { + + if instantiationType, isInstantiation := newType.(*ast.InstantiationType); isInstantiation { + if newNominalType, isNominal := oldType.Type.(*ast.NominalType); isNominal && + newNominalType.Identifier.Identifier == "Capability" { + + // Capability insantiation types must have exactly 1 type argument + if len(oldType.TypeArguments) != 1 || len(instantiationType.TypeArguments) != 1 { + break + } + + oldTypeArg := oldType.TypeArguments[0] + newTypeArg := instantiationType.TypeArguments[0] + + return validator.checkTypeUpgradability(oldTypeArg.Type, newTypeArg.Type, true) + } + } + } + + case *ast.NominalType: + + oldTypeName := oldType.String() + + if validator.checkUserDefinedType != nil { + if _, isbuiltinType := builtinTypes[oldTypeName]; !isbuiltinType { + checked, valid := validator.checkUserDefinedTypeCustomRules(oldType, newType) + + // If there are no custom rules for this type, + // do the default type comparison. + if checked { + if !valid { + return newTypeMismatchError(oldType, newType) + } + return nil + } + + } + } + + var expectedTypeName string + + isAccountType := true + + switch oldTypeName { + case "AuthAccount": + return newType.CheckEqual(astFullyEntitledAccountReferenceType, validator) + + case "PublicAccount": + return newType.CheckEqual(astAccountReferenceType, validator) + + case "AuthAccount.Capabilities", + "PublicAccount.Capabilities": + expectedTypeName = sema.Account_CapabilitiesType.QualifiedString() + + case "AuthAccount.AccountCapabilities": + expectedTypeName = sema.Account_AccountCapabilitiesType.QualifiedString() + + case "AuthAccount.StorageCapabilities": + expectedTypeName = sema.Account_StorageCapabilitiesType.QualifiedString() + + case "AuthAccount.Contracts", + "PublicAccount.Contracts": + expectedTypeName = sema.Account_ContractsType.QualifiedString() + + case "AuthAccount.Keys", + "PublicAccount.Keys": + expectedTypeName = sema.Account_KeysType.QualifiedString() + + case "AuthAccount.Inbox": + expectedTypeName = sema.Account_InboxType.QualifiedString() + + case "AccountKey": + expectedTypeName = sema.AccountKeyType.QualifiedString() + + default: + isAccountType = false + + } + + if isAccountType { + // Only reaches here for the deprecated account types. + if newType.String() != expectedTypeName { + return newTypeMismatchError(oldType, newType) + } + return nil + + } + } + + // If the new/old type is non-storable, + // then changing the type of this field has no impact to the storage. + // However, fields having non-storable types inside capabilities are in-fact storable. + // So, skip only if the non-storable type is a direct field type. + if !inCapability { + if isNonStorableType(oldType) || isNonStorableType(newType) { + return nil + } + } + + return oldType.CheckEqual(newType, validator) + +} + +func dropRestrictedType(intersectionType *ast.IntersectionType) bool { + if intersectionType.LegacyRestrictedType == nil { + return true + } + + // If the old restricted type is for AnyStruct/AnyResource, + // and if there are atleast one restriction, require them to drop the "restricted type". + // e.g-1: `AnyStruct{I} -> {I}` + // e.g-2: `AnyResource{I} -> {I}` + // See: https://github.com/onflow/cadence/issues/3112 + if restrictedNominalType, isNominal := intersectionType.LegacyRestrictedType.(*ast.NominalType); isNominal { + switch restrictedNominalType.Identifier.Identifier { + case "AnyStruct", "AnyResource": + return len(intersectionType.Types) > 0 + } + } + + return false +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) checkUserDefinedTypeCustomRules( + oldType ast.Type, + newType ast.Type, +) (checked, valid bool) { + + if validator.checkUserDefinedType == nil { + return false, false + } + + oldTypeID, err := validator.typeIDFromType(oldType) + if err != nil { + return false, false + } + + newTypeID, err := validator.typeIDFromType(newType) + if err != nil { + return false, false + } + + return validator.checkUserDefinedType(oldTypeID, newTypeID) +} + +func isNonStorableType(typ ast.Type) bool { + switch typ := typ.(type) { + case *ast.ReferenceType, *ast.FunctionType: + return true + case *ast.OptionalType: + return isNonStorableType(typ.Type) + default: + return false + } +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) checkField(oldField *ast.FieldDeclaration, newField *ast.FieldDeclaration) { + oldType := oldField.TypeAnnotation.Type + newType := newField.TypeAnnotation.Type + + validator.currentRestrictedTypeUpgradeRestrictions = nil + err := validator.checkTypeUpgradability(oldType, newType, false) + if err == nil { + return + } + + validator.report(&FieldMismatchError{ + DeclName: validator.getCurrentDeclaration().DeclarationIdentifier().Identifier, + FieldName: newField.Identifier.Identifier, + Err: err, + Range: ast.NewUnmeteredRangeFromPositioned(newField.TypeAnnotation), + }) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) checkDeclarationKindChange( + oldDeclaration ast.Declaration, + newDeclaration ast.Declaration, +) bool { + // Do not allow converting between different types of composite declarations: + // e.g: - 'contracts' and 'contract-interfaces', + // - 'structs' and 'enums' + // + // However, with the removal of type requirements, it is OK to convert a + // concrete type (Struct or Resource) to an interface type (StructInterface or ResourceInterface). + // However, resource should stay a resource interface, and cannot be a struct interface. + + oldDeclKind := oldDeclaration.DeclarationKind() + newDeclKind := newDeclaration.DeclarationKind() + if oldDeclKind == newDeclKind { + return true + } + + parent := validator.getCurrentDeclaration() + + // If the parent is an interface, and the child is a concrete type, + // then it is a type requirement. + if parent != nil && + parent.DeclarationKind() == common.DeclarationKindContractInterface { + + // A struct is OK to be converted to a struct-interface + if oldDeclKind == common.DeclarationKindStructure && + newDeclKind == common.DeclarationKindStructureInterface { + return true + } + + // A resource is OK to be converted to a resource-interface + if oldDeclKind == common.DeclarationKindResource && + newDeclKind == common.DeclarationKindResourceInterface { + return true + } + } + + validator.report(&InvalidDeclarationKindChangeError{ + Name: oldDeclaration.DeclarationIdentifier().Identifier, + OldKind: oldDeclaration.DeclarationKind(), + NewKind: newDeclaration.DeclarationKind(), + Range: ast.NewUnmeteredRangeFromPositioned(newDeclaration.DeclarationIdentifier()), + }) + return false +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) checkNestedDeclarationRemoval( + nestedDeclaration ast.Declaration, + oldContainingDeclaration ast.Declaration, + newContainingDeclaration ast.Declaration, + removedTypes *orderedmap.OrderedMap[string, struct{}], +) { + + // enums can be removed from contract interfaces, as they have no interface equivalent and are not + // actually used in field type annotations in any contracts + if oldContainingDeclaration.DeclarationKind() == common.DeclarationKindContractInterface && + newContainingDeclaration.DeclarationKind() == common.DeclarationKindContractInterface && + nestedDeclaration.DeclarationKind() == common.DeclarationKindEnum { + return + } + + validator.underlyingUpdateValidator.checkNestedDeclarationRemoval( + nestedDeclaration, + oldContainingDeclaration, + newContainingDeclaration, + removedTypes, + ) +} + +func (validator *CadenceV042ToV1ContractUpdateValidator) checkConformanceV1( + oldDecl *ast.CompositeDeclaration, + newDecl *ast.CompositeDeclaration, +) { + + oldConformances := oldDecl.Conformances + + // NOTE 1: Here it is assumed enums will always have one and only one conformance. + // This is enforced by the checker. + // + // NOTE 2: If one declaration is an enum, then other is also an enum at this stage. + // This is enforced by the validator (in `checkDeclarationUpdatability`), before calling this function. + if newDecl.Kind() == common.CompositeKindEnum { + oldConformance := oldConformances[0] + newConformance := newDecl.Conformances[0] + + err := oldConformance.CheckEqual(newConformance, validator) + if err != nil { + validator.report(&ConformanceMismatchError{ + DeclName: newDecl.Identifier.Identifier, + MissingConformance: oldConformance.String(), + Range: ast.NewUnmeteredRangeFromPositioned(newDecl.Identifier), + }) + } + + return + } + + // Below check for multiple conformances is only applicable + // for non-enum type composite declarations. i.e: structs, resources, etc. + + location := validator.underlyingUpdateValidator.location + + elaboration := validator.newElaborations[location] + newDeclType := elaboration.CompositeDeclarationType(newDecl) + + // A conformance may not be explicitly defined in the current declaration, + // but they could be available via inheritance. + newConformances := newDeclType.EffectiveInterfaceConformances() + + // All the existing conformances must have a match. Order is not important. + // Having extra new conformance is OK. See: https://github.com/onflow/cadence/issues/1394 + + // Note: Removing a conformance is NOT OK. That could lead to type-safety issues. + // e.g: + // - Someone stores an array of type `[{I}]` with `T:I` objects inside. + // - Later T’s conformance to `I` is removed. + // - Now `[{I}]` contains objects if `T` that does not conform to `I`. + + for _, oldConformance := range oldConformances { + found := false + for index, newConformance := range newConformances { + newConformanceNominalType := semaConformanceToASTNominalType(newConformance) + + // First check whether there are any custom type-change rules. + customRuleChecked, customRuleValid := + validator.checkUserDefinedTypeCustomRules(oldConformance, newConformanceNominalType) + + if customRuleChecked { + // If exists, take its result. + // DO NOT fall back to the default type equality check, even if the rule did not satisfy. + found = customRuleValid + } else { + // If no custom rule exist, then use the default type equality check. + err := oldConformance.CheckEqual(newConformanceNominalType, validator) + found = err == nil + } + + if found { + // Remove the matched conformance, so we don't have to check it again. + // i.e: optimization + newConformances = append(newConformances[:index], newConformances[index+1:]...) + break + } + } + + if !found { + oldConformanceID := validator.underlyingUpdateValidator.oldTypeID(oldConformance) + + validator.report(&ConformanceMismatchError{ + DeclName: newDecl.Identifier.Identifier, + MissingConformance: string(oldConformanceID), + Range: ast.NewUnmeteredRangeFromPositioned(newDecl.Identifier), + }) + + return + } + } +} + +func semaConformanceToASTNominalType(newConformance sema.Conformance) *ast.NominalType { + interfaceType := newConformance.InterfaceType + containerType := interfaceType.GetContainerType() + + identifier := ast.Identifier{ + Identifier: interfaceType.Identifier, + } + + if containerType == nil { + return ast.NewNominalType(nil, identifier, nil) + } + + return ast.NewNominalType( + nil, + ast.Identifier{ + Identifier: containerType.String(), + }, + []ast.Identifier{identifier}, + ) + +} + +var builtinTypes = map[string]struct{}{} + +func init() { + err := sema.BaseTypeActivation.ForEach(func(s string, _ *sema.Variable) error { + builtinTypes[s] = struct{}{} + return nil + }) + + if err != nil { + panic(err) + } +} + +// AuthorizationMismatchError is reported during a contract upgrade, +// when a field value is given authorization that is more powerful +// than that which the migration would grant it +type AuthorizationMismatchError struct { + ExpectedAuthorization sema.Access + FoundAuthorization sema.Access + ast.Range +} + +var _ errors.UserError = &AuthorizationMismatchError{} + +func (*AuthorizationMismatchError) IsUserError() {} + +func (e *AuthorizationMismatchError) Error() string { + if e.ExpectedAuthorization == sema.PrimitiveAccess(ast.AccessAll) { + return fmt.Sprintf( + "mismatching authorization: the entitlements migration would not grant this value any entitlements, but the annotation present is `%s`", + e.FoundAuthorization.QualifiedString(), + ) + } + + return fmt.Sprintf( + "mismatching authorization: the entitlements migration would only grant this value `%s`, but the annotation present is `%s`", + e.ExpectedAuthorization.QualifiedString(), + e.FoundAuthorization.QualifiedString(), + ) +} + +// UnrepresentableEntitlementsUpgrade is reported during a contract upgrade, +// when a composite or interface type is given access modifiers on its field that would +// cause the migration to produce an unrepresentable entitlement set for references to that type +type UnrepresentableEntitlementsUpgrade struct { + Type sema.Type + InvalidAuthorization sema.Access + ast.Range +} + +var _ errors.UserError = &UnrepresentableEntitlementsUpgrade{} +var _ errors.SecondaryError = &UnrepresentableEntitlementsUpgrade{} + +func (*UnrepresentableEntitlementsUpgrade) IsUserError() {} + +func (e *UnrepresentableEntitlementsUpgrade) Error() string { + return fmt.Sprintf( + "unsafe access modifiers on %s: the entitlements migration would grant references to this type %s authorization, which is too permissive.", + e.Type.QualifiedString(), + e.InvalidAuthorization.QualifiedString(), + ) +} + +func (e *UnrepresentableEntitlementsUpgrade) SecondaryError() string { + return "Consider removing any disjunction access modifiers" +} diff --git a/runtime/stdlib/contract_update_validation.go b/runtime/stdlib/contract_update_validation.go index 39f0d5edff..cce723d63a 100644 --- a/runtime/stdlib/contract_update_validation.go +++ b/runtime/stdlib/contract_update_validation.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,55 +24,128 @@ import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/onflow/cadence/runtime/errors" ) +type UpdateValidator interface { + ast.TypeEqualityChecker + + Validate() error + report(error) + + getCurrentDeclaration() ast.Declaration + setCurrentDeclaration(ast.Declaration) + + checkField(oldField *ast.FieldDeclaration, newField *ast.FieldDeclaration) + checkNestedDeclarationRemoval( + nestedDeclaration ast.Declaration, + oldContainingDeclaration ast.Declaration, + newContainingDeclaration ast.Declaration, + removedTypes *orderedmap.OrderedMap[string, struct{}], + ) + getAccountContractNames(address common.Address) ([]string, error) + + checkDeclarationKindChange( + oldDeclaration ast.Declaration, + newDeclaration ast.Declaration, + ) bool + + isTypeRemovalEnabled() bool + WithTypeRemovalEnabled(enabled bool) UpdateValidator +} + +type checkConformanceFunc func( + oldDecl *ast.CompositeDeclaration, + newDecl *ast.CompositeDeclaration, +) + type ContractUpdateValidator struct { - TypeComparator + *TypeComparator - location common.Location - contractName string - oldProgram *ast.Program - newProgram *ast.Program - currentDecl ast.Declaration - errors []error + location common.Location + contractName string + oldProgram *ast.Program + newProgram *ast.Program + currentDecl ast.Declaration + importLocations map[ast.Identifier]common.Location + accountContractNamesProvider AccountContractNamesProvider + errors []error + typeRemovalEnabled bool } // ContractUpdateValidator should implement ast.TypeEqualityChecker var _ ast.TypeEqualityChecker = &ContractUpdateValidator{} +var _ UpdateValidator = &ContractUpdateValidator{} // NewContractUpdateValidator initializes and returns a validator, without performing any validation. // Invoke the `Validate()` method of the validator returned, to start validating the contract. func NewContractUpdateValidator( location common.Location, contractName string, + accountContractNamesProvider AccountContractNamesProvider, oldProgram *ast.Program, newProgram *ast.Program, ) *ContractUpdateValidator { return &ContractUpdateValidator{ - location: location, - oldProgram: oldProgram, - newProgram: newProgram, - contractName: contractName, + location: location, + oldProgram: oldProgram, + newProgram: newProgram, + contractName: contractName, + accountContractNamesProvider: accountContractNamesProvider, + importLocations: map[ast.Identifier]common.Location{}, + TypeComparator: &TypeComparator{}, } } +func (validator *ContractUpdateValidator) isTypeRemovalEnabled() bool { + return validator.typeRemovalEnabled +} + +func (validator *ContractUpdateValidator) WithTypeRemovalEnabled(enabled bool) UpdateValidator { + validator.typeRemovalEnabled = enabled + return validator +} + +func (validator *ContractUpdateValidator) getCurrentDeclaration() ast.Declaration { + return validator.currentDecl +} + +func (validator *ContractUpdateValidator) setCurrentDeclaration(decl ast.Declaration) { + validator.currentDecl = decl +} + +func (validator *ContractUpdateValidator) getAccountContractNames(address common.Address) ([]string, error) { + return validator.accountContractNamesProvider.GetAccountContractNames(address) +} + // Validate validates the contract update, and returns an error if it is an invalid update. func (validator *ContractUpdateValidator) Validate() error { - oldRootDecl := validator.getRootDeclaration(validator.oldProgram) + oldRootDecl := getRootDeclaration(validator, validator.oldProgram) if validator.hasErrors() { return validator.getContractUpdateError() } - newRootDecl := validator.getRootDeclaration(validator.newProgram) + newRootDecl := getRootDeclaration(validator, validator.newProgram) if validator.hasErrors() { return validator.getContractUpdateError() } validator.TypeComparator.RootDeclIdentifier = newRootDecl.DeclarationIdentifier() + validator.TypeComparator.expectedIdentifierImportLocations = collectImports(validator, validator.oldProgram) + validator.TypeComparator.foundIdentifierImportLocations = collectImports(validator, validator.newProgram) - validator.checkDeclarationUpdatability(oldRootDecl, newRootDecl) + if validator.hasErrors() { + return validator.getContractUpdateError() + } + + checkDeclarationUpdatability( + validator, + oldRootDecl, + newRootDecl, + validator.checkConformance, + ) if validator.hasErrors() { return validator.getContractUpdateError() @@ -81,8 +154,52 @@ func (validator *ContractUpdateValidator) Validate() error { return nil } -func (validator *ContractUpdateValidator) getRootDeclaration(program *ast.Program) ast.Declaration { - decl, err := getRootDeclaration(program) +func collectImports(validator UpdateValidator, program *ast.Program) map[string]common.Location { + importLocations := map[string]common.Location{} + + imports := program.ImportDeclarations() + + for _, importDecl := range imports { + importLocation := importDecl.Location + + addressLocation, ok := importLocation.(common.AddressLocation) + if !ok { + // e.g: Crypto + continue + } + + // if there are no identifiers given, the import covers all of them + if len(importDecl.Identifiers) == 0 { + allLocations, err := validator.getAccountContractNames(addressLocation.Address) + if err != nil { + validator.report(err) + } + for _, identifier := range allLocations { + // associate the location of an identifier's import with the location it's being imported from + // this assumes that two imports cannot have the same name, which should be prevented by the type checker + importLocations[identifier] = common.AddressLocation{ + Name: identifier, + Address: addressLocation.Address, + } + } + } else { + for _, identifier := range importDecl.Identifiers { + name := identifier.Identifier + // associate the location of an identifier's import with the location it's being imported from. + // This assumes that two imports cannot have the same name, which should be prevented by the type checker + importLocations[name] = common.AddressLocation{ + Name: name, + Address: addressLocation.Address, + } + } + } + } + + return importLocations +} + +func getRootDeclaration(validator UpdateValidator, program *ast.Program) ast.Declaration { + decl, err := getRootDeclarationOfProgram(program) if err != nil { validator.report(&ContractNotFoundError{ @@ -93,7 +210,7 @@ func (validator *ContractUpdateValidator) getRootDeclaration(program *ast.Progra return decl } -func getRootDeclaration(program *ast.Program) (ast.Declaration, error) { +func getRootDeclarationOfProgram(program *ast.Program) (ast.Declaration, error) { compositeDecl := program.SoleContractDeclaration() if compositeDecl != nil { return compositeDecl, nil @@ -113,49 +230,72 @@ func (validator *ContractUpdateValidator) hasErrors() bool { return len(validator.errors) > 0 } -func (validator *ContractUpdateValidator) checkDeclarationUpdatability( +func collectRemovedTypePragmas(validator UpdateValidator, pragmas []*ast.PragmaDeclaration) *orderedmap.OrderedMap[string, struct{}] { + removedTypes := orderedmap.New[orderedmap.OrderedMap[string, struct{}]](len(pragmas)) + + for _, pragma := range pragmas { + invocationExpression, isInvocation := pragma.Expression.(*ast.InvocationExpression) + if !isInvocation { + continue + } + invokedIdentifier, isIdentifier := invocationExpression.InvokedExpression.(*ast.IdentifierExpression) + if !isIdentifier || invokedIdentifier.Identifier.Identifier != "removedType" { + continue + } + if len(invocationExpression.Arguments) != 1 { + validator.report(&InvalidTypeRemovalPragmaError{ + Expression: pragma.Expression, + Range: ast.NewUnmeteredRangeFromPositioned(pragma.Expression), + }) + continue + } + removedTypeName, isIdentifer := invocationExpression.Arguments[0].Expression.(*ast.IdentifierExpression) + if !isIdentifer { + validator.report(&InvalidTypeRemovalPragmaError{ + Expression: pragma.Expression, + Range: ast.NewUnmeteredRangeFromPositioned(pragma.Expression), + }) + continue + } + removedTypes.Set(removedTypeName.Identifier.Identifier, struct{}{}) + } + + return removedTypes +} + +func checkDeclarationUpdatability( + validator UpdateValidator, oldDeclaration ast.Declaration, newDeclaration ast.Declaration, + checkConformance checkConformanceFunc, ) { - // Do not allow converting between different types of composite declarations: - // e.g: - 'contracts' and 'contract-interfaces', - // - 'structs' and 'enums' - if oldDeclaration.DeclarationKind() != newDeclaration.DeclarationKind() { - validator.report(&InvalidDeclarationKindChangeError{ - Name: oldDeclaration.DeclarationIdentifier().Identifier, - OldKind: oldDeclaration.DeclarationKind(), - NewKind: newDeclaration.DeclarationKind(), - Range: ast.NewUnmeteredRangeFromPositioned(newDeclaration.DeclarationIdentifier()), - }) - + if !validator.checkDeclarationKindChange(oldDeclaration, newDeclaration) { return } - parentDecl := validator.currentDecl - validator.currentDecl = newDeclaration + parentDecl := validator.getCurrentDeclaration() + validator.setCurrentDeclaration(newDeclaration) defer func() { - validator.currentDecl = parentDecl + validator.setCurrentDeclaration(parentDecl) }() - validator.checkFields(oldDeclaration, newDeclaration) + checkFields(validator, oldDeclaration, newDeclaration) - validator.checkNestedDeclarations(oldDeclaration, newDeclaration) + checkNestedDeclarations(validator, oldDeclaration, newDeclaration, checkConformance) if newDecl, ok := newDeclaration.(*ast.CompositeDeclaration); ok { if oldDecl, ok := oldDeclaration.(*ast.CompositeDeclaration); ok { - validator.checkConformances(oldDecl, newDecl) - } - } - - if newDecl, ok := newDeclaration.(*ast.AttachmentDeclaration); ok { - if oldDecl, ok := oldDeclaration.(*ast.AttachmentDeclaration); ok { - validator.checkRequiredEntitlements(oldDecl, newDecl) + checkConformance(oldDecl, newDecl) } } } -func (validator *ContractUpdateValidator) checkFields(oldDeclaration ast.Declaration, newDeclaration ast.Declaration) { +func checkFields( + validator UpdateValidator, + oldDeclaration ast.Declaration, + newDeclaration ast.Declaration, +) { oldFields := oldDeclaration.DeclarationMembers().FieldsByIdentifier() newFields := newDeclaration.DeclarationMembers().Fields() @@ -193,23 +333,120 @@ func (validator *ContractUpdateValidator) checkField(oldField *ast.FieldDeclarat } } -func (validator *ContractUpdateValidator) checkNestedDeclarations( +func (validator *ContractUpdateValidator) checkDeclarationKindChange( + oldDeclaration ast.Declaration, + newDeclaration ast.Declaration, +) bool { + // Do not allow converting between different types of composite declarations: + // e.g: - 'contracts' and 'contract-interfaces', + // - 'structs' and 'enums' + if oldDeclaration.DeclarationKind() != newDeclaration.DeclarationKind() { + validator.report(&InvalidDeclarationKindChangeError{ + Name: oldDeclaration.DeclarationIdentifier().Identifier, + OldKind: oldDeclaration.DeclarationKind(), + NewKind: newDeclaration.DeclarationKind(), + Range: ast.NewUnmeteredRangeFromPositioned(newDeclaration.DeclarationIdentifier()), + }) + + return false + } + + return true +} + +func (validator *ContractUpdateValidator) checkNestedDeclarationRemoval( + nestedDeclaration ast.Declaration, + _ ast.Declaration, + newContainingDeclaration ast.Declaration, + removedTypes *orderedmap.OrderedMap[string, struct{}], +) { + declarationKind := nestedDeclaration.DeclarationKind() + + // OK to remove events - they are not stored + if declarationKind == common.DeclarationKindEvent { + return + } + + if validator.typeRemovalEnabled { + // OK to remove a type if it is included in a #removedType pragma, and it is not an interface + if removedTypes.Contains(nestedDeclaration.DeclarationIdentifier().Identifier) && + !declarationKind.IsInterfaceDeclaration() { + return + } + } + + validator.report(&MissingDeclarationError{ + Name: nestedDeclaration.DeclarationIdentifier().Identifier, + Kind: declarationKind, + Range: ast.NewUnmeteredRangeFromPositioned( + newContainingDeclaration.DeclarationIdentifier(), + ), + }) +} + +func (validator *ContractUpdateValidator) oldTypeID(oldType *ast.NominalType) common.TypeID { + oldImportLocation := validator.expectedIdentifierImportLocations[oldType.Identifier.Identifier] + qualifiedIdentifier := oldType.String() + if oldImportLocation == nil { + return common.TypeID(qualifiedIdentifier) + } + return oldImportLocation.TypeID(nil, qualifiedIdentifier) +} + +func checkTypeNotRemoved( + validator UpdateValidator, + newDeclaration ast.Declaration, + removedTypes *orderedmap.OrderedMap[string, struct{}], +) { + if !validator.isTypeRemovalEnabled() { + return + } + + if removedTypes.Contains(newDeclaration.DeclarationIdentifier().Identifier) { + validator.report(&UseOfRemovedTypeError{ + Declaration: newDeclaration, + Range: ast.NewUnmeteredRangeFromPositioned(newDeclaration), + }) + } +} + +func checkNestedDeclarations( + validator UpdateValidator, oldDeclaration ast.Declaration, newDeclaration ast.Declaration, + checkConformance checkConformanceFunc, ) { + var removedTypes *orderedmap.OrderedMap[string, struct{}] + if validator.isTypeRemovalEnabled() { + // process pragmas first, as they determine whether types can later be removed + oldRemovedTypes := collectRemovedTypePragmas(validator, oldDeclaration.DeclarationMembers().Pragmas()) + removedTypes = collectRemovedTypePragmas(validator, newDeclaration.DeclarationMembers().Pragmas()) + + // #typeRemoval pragmas cannot be removed, so any that appear in the old program must appear in the new program + // they can however, be added, so use the new program's type removals for the purposes of checking the upgrade + oldRemovedTypes.Foreach(func(oldRemovedType string, _ struct{}) { + if !removedTypes.Contains(oldRemovedType) { + validator.report(&TypeRemovalPragmaRemovalError{ + RemovedType: oldRemovedType, + }) + } + }) + } + oldNominalTypeDecls := getNestedNominalTypeDecls(oldDeclaration) // Check nested structs, enums, etc. newNestedCompositeDecls := newDeclaration.DeclarationMembers().Composites() for _, newNestedDecl := range newNestedCompositeDecls { + checkTypeNotRemoved(validator, newNestedDecl, removedTypes) oldNestedDecl, found := oldNominalTypeDecls[newNestedDecl.Identifier.Identifier] if !found { // Then it's a new declaration continue } - validator.checkDeclarationUpdatability(oldNestedDecl, newNestedDecl) + checkDeclarationUpdatability(validator, oldNestedDecl, newNestedDecl, checkConformance) // If there's a matching new decl, then remove the old one from the map. delete(oldNominalTypeDecls, newNestedDecl.Identifier.Identifier) @@ -218,13 +455,14 @@ func (validator *ContractUpdateValidator) checkNestedDeclarations( // Check nested attachments, etc. newNestedAttachmentDecls := newDeclaration.DeclarationMembers().Attachments() for _, newNestedDecl := range newNestedAttachmentDecls { + checkTypeNotRemoved(validator, newNestedDecl, removedTypes) oldNestedDecl, found := oldNominalTypeDecls[newNestedDecl.Identifier.Identifier] if !found { // Then it's a new declaration continue } - validator.checkDeclarationUpdatability(oldNestedDecl, newNestedDecl) + checkDeclarationUpdatability(validator, oldNestedDecl, newNestedDecl, checkConformance) // If there's a matching new decl, then remove the old one from the map. delete(oldNominalTypeDecls, newNestedDecl.Identifier.Identifier) @@ -233,13 +471,14 @@ func (validator *ContractUpdateValidator) checkNestedDeclarations( // Check nested interfaces. newNestedInterfaces := newDeclaration.DeclarationMembers().Interfaces() for _, newNestedDecl := range newNestedInterfaces { + checkTypeNotRemoved(validator, newNestedDecl, removedTypes) oldNestedDecl, found := oldNominalTypeDecls[newNestedDecl.Identifier.Identifier] if !found { // Then this is a new declaration. continue } - validator.checkDeclarationUpdatability(oldNestedDecl, newNestedDecl) + checkDeclarationUpdatability(validator, oldNestedDecl, newNestedDecl, checkConformance) // If there's a matching new decl, then remove the old one from the map. delete(oldNominalTypeDecls, newNestedDecl.Identifier.Identifier) @@ -261,17 +500,11 @@ func (validator *ContractUpdateValidator) checkNestedDeclarations( }) for _, declaration := range missingDeclarations { - validator.report(&MissingDeclarationError{ - Name: declaration.DeclarationIdentifier().Identifier, - Kind: declaration.DeclarationKind(), - Range: ast.NewUnmeteredRangeFromPositioned( - newDeclaration.DeclarationIdentifier(), - ), - }) + validator.checkNestedDeclarationRemoval(declaration, oldDeclaration, newDeclaration, removedTypes) } // Check enum-cases, if there are any. - validator.checkEnumCases(oldDeclaration, newDeclaration) + checkEnumCases(validator, oldDeclaration, newDeclaration) } func getNestedNominalTypeDecls(declaration ast.Declaration) map[string]ast.Declaration { @@ -298,7 +531,11 @@ func getNestedNominalTypeDecls(declaration ast.Declaration) map[string]ast.Decla // checkEnumCases validates updating enum cases. Updated enum must: // - Have at-least the same number of enum-cases as the old enum (Adding is allowed, but no removals). // - Preserve the order of the old enum-cases (Adding to top/middle is not allowed, swapping is not allowed). -func (validator *ContractUpdateValidator) checkEnumCases(oldDeclaration ast.Declaration, newDeclaration ast.Declaration) { +func checkEnumCases( + validator UpdateValidator, + oldDeclaration ast.Declaration, + newDeclaration ast.Declaration, +) { newEnumCases := newDeclaration.DeclarationMembers().EnumCases() oldEnumCases := oldDeclaration.DeclarationMembers().EnumCases() @@ -338,48 +575,7 @@ func (validator *ContractUpdateValidator) checkEnumCases(oldDeclaration ast.Decl } } -func (validator *ContractUpdateValidator) checkRequiredEntitlements( - oldDecl *ast.AttachmentDeclaration, - newDecl *ast.AttachmentDeclaration, -) { - oldEntitlements := oldDecl.RequiredEntitlements - newEntitlements := newDecl.RequiredEntitlements - - // updates cannot add new entitlement requirements, or equivalently, - // the new entitlements must all be present in the old entitlements list - // Adding new entitlement requirements has to be prohibited because it would - // be a security vulnerability. If your attachment previously only requires X access to the base, - // people who might be okay giving an attachment X access to their resource would be willing to attach it. - // If the author could later add a requirement to the attachment declaration asking for Y access as well, - // then they would be able to access Y-entitled values on existing attached bases without ever having - // received explicit permission from the resource owners to access that entitlement. - - for _, newEntitlement := range newEntitlements { - found := false - for index, oldEntitlement := range oldEntitlements { - err := oldEntitlement.CheckEqual(newEntitlement, validator) - if err == nil { - found = true - - // Remove the matched entitlement, so we don't have to check it again. - // i.e: optimization - oldEntitlements = append(oldEntitlements[:index], oldEntitlements[index+1:]...) - break - } - } - - if !found { - validator.report(&RequiredEntitlementMismatchError{ - DeclName: newDecl.Identifier.Identifier, - Range: ast.NewUnmeteredRangeFromPositioned(newDecl.Identifier), - }) - - return - } - } -} - -func (validator *ContractUpdateValidator) checkConformances( +func (validator *ContractUpdateValidator) checkConformance( oldDecl *ast.CompositeDeclaration, newDecl *ast.CompositeDeclaration, ) { @@ -394,6 +590,13 @@ func (validator *ContractUpdateValidator) checkConformances( // All the existing conformances must have a match. Order is not important. // Having extra new conformance is OK. See: https://github.com/onflow/cadence/issues/1394 + + // Note: Removing a conformance is NOT OK. That could lead to type-safety issues. + // e.g: + // - Someone stores an array of type `[{I}]` with `T:I` objects inside. + // - Later T’s conformance to `I` is removed. + // - Now `[{I}]` contains objects if `T` that does not conform to `I`. + for _, oldConformance := range oldConformances { found := false for index, newConformance := range newConformances { @@ -409,9 +612,12 @@ func (validator *ContractUpdateValidator) checkConformances( } if !found { + oldConformanceID := validator.oldTypeID(oldConformance) + validator.report(&ConformanceMismatchError{ - DeclName: newDecl.Identifier.Identifier, - Range: ast.NewUnmeteredRangeFromPositioned(newDecl.Identifier), + DeclName: newDecl.Identifier.Identifier, + MissingConformance: string(oldConformanceID), + Range: ast.NewUnmeteredRangeFromPositioned(newDecl.Identifier), }) return @@ -435,7 +641,7 @@ func (validator *ContractUpdateValidator) getContractUpdateError() error { } func containsEnumsInProgram(program *ast.Program) bool { - declaration, err := getRootDeclaration(program) + declaration, err := getRootDeclarationOfProgram(program) if err != nil { return false @@ -482,6 +688,10 @@ func (e *ContractUpdateError) ChildErrors() []error { return e.Errors } +func (e *ContractUpdateError) Unwrap() []error { + return e.Errors +} + func (e *ContractUpdateError) ImportLocation() common.Location { return e.Location } @@ -583,7 +793,8 @@ func (e *InvalidDeclarationKindChangeError) Error() string { // ConformanceMismatchError is reported during a contract update, when the enum conformance of the new program // does not match the existing one. type ConformanceMismatchError struct { - DeclName string + DeclName string + MissingConformance string ast.Range } @@ -592,22 +803,11 @@ var _ errors.UserError = &ConformanceMismatchError{} func (*ConformanceMismatchError) IsUserError() {} func (e *ConformanceMismatchError) Error() string { - return fmt.Sprintf("conformances does not match in `%s`", e.DeclName) -} - -// RequiredEntitlementMismatchError is reported during a contract update, when the required entitlements of the new attachment -// does not match the existing one. -type RequiredEntitlementMismatchError struct { - DeclName string - ast.Range -} - -var _ errors.UserError = &RequiredEntitlementMismatchError{} - -func (*RequiredEntitlementMismatchError) IsUserError() {} - -func (e *RequiredEntitlementMismatchError) Error() string { - return fmt.Sprintf("required entitlements do not match in `%s`", e.DeclName) + return fmt.Sprintf( + "conformances do not match in `%s`: missing `%s`", + e.DeclName, + e.MissingConformance, + ) } // EnumCaseMismatchError is reported during an enum update, when an updated enum case @@ -666,7 +866,60 @@ func (*MissingDeclarationError) IsUserError() {} func (e *MissingDeclarationError) Error() string { return fmt.Sprintf( "missing %s declaration `%s`", - e.Kind, + e.Kind.Name(), e.Name, ) } + +// InvalidTypeRemovalPragmaError is reported during a contract update +// if a malformed #removedType pragma is encountered +type InvalidTypeRemovalPragmaError struct { + Expression ast.Expression + ast.Range +} + +var _ errors.UserError = &InvalidTypeRemovalPragmaError{} + +func (*InvalidTypeRemovalPragmaError) IsUserError() {} + +func (e *InvalidTypeRemovalPragmaError) Error() string { + return fmt.Sprintf( + "invalid #removedType pragma: %s", + e.Expression.String(), + ) +} + +// UseOfRemovedTypeError is reported during a contract update +// if a type is encountered that is also in a #removedType pragma +type UseOfRemovedTypeError struct { + Declaration ast.Declaration + ast.Range +} + +var _ errors.UserError = &UseOfRemovedTypeError{} + +func (*UseOfRemovedTypeError) IsUserError() {} + +func (e *UseOfRemovedTypeError) Error() string { + return fmt.Sprintf( + "cannot declare %s, type has been removed with a #removedType pragma", + e.Declaration.DeclarationIdentifier(), + ) +} + +// TypeRemovalPragmaRemovalError is reported during a contract update +// if a #removedType pragma is removed +type TypeRemovalPragmaRemovalError struct { + RemovedType string +} + +var _ errors.UserError = &TypeRemovalPragmaRemovalError{} + +func (*TypeRemovalPragmaRemovalError) IsUserError() {} + +func (e *TypeRemovalPragmaRemovalError) Error() string { + return fmt.Sprintf( + "missing #removedType pragma for %s", + e.RemovedType, + ) +} diff --git a/runtime/stdlib/contracts/crypto.cdc b/runtime/stdlib/contracts/crypto.cdc index 6d7d9ca276..a8c50dcdfe 100644 --- a/runtime/stdlib/contracts/crypto.cdc +++ b/runtime/stdlib/contracts/crypto.cdc @@ -1,20 +1,33 @@ access(all) contract Crypto { - access(all) fun hash(_ data: [UInt8], algorithm: HashAlgorithm): [UInt8] { + access(all) + fun hash(_ data: [UInt8], algorithm: HashAlgorithm): [UInt8] { return algorithm.hash(data) } - access(all) fun hashWithTag(_ data: [UInt8], tag: String, algorithm: HashAlgorithm): [UInt8] { + access(all) + fun hashWithTag(_ data: [UInt8], tag: String, algorithm: HashAlgorithm): [UInt8] { return algorithm.hashWithTag(data, tag: tag) } - access(all) struct KeyListEntry { - access(all) let keyIndex: Int - access(all) let publicKey: PublicKey - access(all) let hashAlgorithm: HashAlgorithm - access(all) let weight: UFix64 - access(all) let isRevoked: Bool + access(all) + struct KeyListEntry { + + access(all) + let keyIndex: Int + + access(all) + let publicKey: PublicKey + + access(all) + let hashAlgorithm: HashAlgorithm + + access(all) + let weight: UFix64 + + access(all) + let isRevoked: Bool init( keyIndex: Int, @@ -31,16 +44,19 @@ access(all) contract Crypto { } } - access(all) struct KeyList { + access(all) + struct KeyList { - access(self) let entries: [KeyListEntry] + access(self) + let entries: [KeyListEntry] init() { self.entries = [] } /// Adds a new key with the given weight - access(all) fun add( + access(all) + fun add( _ publicKey: PublicKey, hashAlgorithm: HashAlgorithm, weight: UFix64 @@ -59,8 +75,9 @@ access(all) contract Crypto { } /// Returns the key at the given index, if it exists. - /// Revoked keys are always returned, but they have `isRevoked` field set to true - access(all) fun get(keyIndex: Int): KeyListEntry? { + /// Revoked keys are always returned, but they have the `isRevoked` field set to true + access(all) + fun get(keyIndex: Int): KeyListEntry? { if keyIndex >= self.entries.length { return nil } @@ -69,10 +86,12 @@ access(all) contract Crypto { } /// Marks the key at the given index revoked, but does not delete it - access(all) fun revoke(keyIndex: Int) { + access(all) + fun revoke(keyIndex: Int) { if keyIndex >= self.entries.length { return } + let currentEntry = self.entries[keyIndex] self.entries[keyIndex] = KeyListEntry( keyIndex: currentEntry.keyIndex, @@ -84,9 +103,11 @@ access(all) contract Crypto { } /// Returns true if the given signatures are valid for the given signed data - access(all) fun verify( + access(all) + fun verify( signatureSet: [KeyListSignature], - signedData: [UInt8] + signedData: [UInt8], + domainSeparationTag: String ): Bool { var validWeights: UFix64 = 0.0 @@ -126,7 +147,7 @@ access(all) contract Crypto { if !key.publicKey.verify( signature: signature.signature, signedData: signedData, - domainSeparationTag: Crypto.domainSeparationTagUser, + domainSeparationTag: domainSeparationTag, hashAlgorithm:key.hashAlgorithm ) { return false @@ -139,19 +160,18 @@ access(all) contract Crypto { } } - access(all) struct KeyListSignature { - access(all) let keyIndex: Int - access(all) let signature: [UInt8] + access(all) + struct KeyListSignature { - access(all) init(keyIndex: Int, signature: [UInt8]) { + access(all) + let keyIndex: Int + + access(all) + let signature: [UInt8] + + init(keyIndex: Int, signature: [UInt8]) { self.keyIndex = keyIndex self.signature = signature } } - - access(self) let domainSeparationTagUser: String - - init() { - self.domainSeparationTagUser = "FLOW-V0.0-user" - } } diff --git a/runtime/stdlib/contracts/crypto.go b/runtime/stdlib/contracts/crypto.go index 7d16f8b25f..a64180f160 100644 --- a/runtime/stdlib/contracts/crypto.go +++ b/runtime/stdlib/contracts/crypto.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/contracts/crypto_test.cdc b/runtime/stdlib/contracts/crypto_test.cdc index b4ce834ff7..d4e654287b 100644 --- a/runtime/stdlib/contracts/crypto_test.cdc +++ b/runtime/stdlib/contracts/crypto_test.cdc @@ -1,19 +1,11 @@ import Test - -access(all) let blockchain = Test.newEmulatorBlockchain() -access(all) let account = blockchain.createAccount() +import Crypto from "crypto.cdc" access(all) fun setup() { - blockchain.useConfiguration(Test.Configuration({ - "Crypto": account.address - })) - - let crypto = Test.readFile("crypto.cdc") - let err = blockchain.deployContract( + let err = Test.deployContract( name: "Crypto", - code: crypto, - account: account, + path: "crypto.cdc", arguments: [] ) @@ -22,76 +14,328 @@ fun setup() { access(all) fun testCryptoHash() { - let returnedValue = executeScript("./scripts/crypto_hash.cdc") - Test.assertEqual(true, returnedValue) + let hash = Crypto.hash([1, 2, 3], algorithm: HashAlgorithm.SHA3_256) + Test.assertEqual(32, hash.length) } access(all) fun testCryptoHashWithTag() { - let returnedValue = executeScript("./scripts/crypto_hash_with_tag.cdc") - Test.assertEqual(true, returnedValue) + let hash = Crypto.hashWithTag( + [1, 2, 3], + tag: "v0.1.tag", + algorithm: HashAlgorithm.SHA3_256 + ) + Test.assertEqual(32, hash.length) } access(all) fun testAddKeyToKeyList() { - let returnedValue = executeScript("./scripts/crypto_key_list_add.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKey = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + keyList.add( + publicKey, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 1.0 + ) + + Test.assert(keyList.get(keyIndex: 0) != nil) } access(all) fun testGetKeyFromList() { - let returnedValue = executeScript("./scripts/crypto_get_key_from_list.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKey = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + keyList.add( + publicKey, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 1.0 + ) + + Test.assert(keyList.get(keyIndex: 0) != nil) + Test.assert(keyList.get(keyIndex: 2) == nil) } access(all) fun testRevokeKeyFromList() { - let returnedValue = executeScript("./scripts/crypto_revoke_key_from_list.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKey = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + keyList.add( + publicKey, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + keyList.revoke(keyIndex: 0) + keyList.revoke(keyIndex: 2) + + Test.assert(keyList.get(keyIndex: 0)!.isRevoked) + Test.assert(keyList.get(keyIndex: 2) == nil) } access(all) fun testKeyListVerify() { - let returnedValue = executeScript("./scripts/crypto_key_list_verify.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKeyA = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + + keyList.add( + publicKeyA, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + let publicKeyB = PublicKey( + publicKey: + "df9609ee588dd4a6f7789df8d56f03f545d4516f0c99b200d73b9a3afafc14de5d21a4fc7a2a2015719dc95c9e756cfa44f2a445151aaf42479e7120d83df956".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + + keyList.add( + publicKeyB, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + let signatureSet = [ + Crypto.KeyListSignature( + keyIndex: 0, + signature: + "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() + ), + Crypto.KeyListSignature( + keyIndex: 1, + signature: + "bbdc5591c3f937a730d4f6c0a6fde61a0a6ceaa531ccb367c3559335ab9734f4f2b9da8adbe371f1f7da913b5a3fdd96a871e04f078928ca89a83d841c72fadf".decodeHex() + ) + ] + + // "foo", encoded as UTF-8, in hex representation + let signedData = "666f6f".decodeHex() + + let isValid = keyList.verify( + signatureSet: signatureSet, + signedData: signedData, + domainSeparationTag: "FLOW-V0.0-user" + ) + + Test.assert(isValid) } access(all) fun testKeyListVerifyInsufficientWeights() { - let returnedValue = executeScript("./scripts/crypto_key_list_verify_insufficient_weights.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKeyA = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + + keyList.add( + publicKeyA, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.4 + ) + + let publicKeyB = PublicKey( + publicKey: + "df9609ee588dd4a6f7789df8d56f03f545d4516f0c99b200d73b9a3afafc14de5d21a4fc7a2a2015719dc95c9e756cfa44f2a445151aaf42479e7120d83df956".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + + keyList.add( + publicKeyB, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + let signatureSet = [ + Crypto.KeyListSignature( + keyIndex: 0, + signature: + "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() + ), + Crypto.KeyListSignature( + keyIndex: 1, + signature: + "bbdc5591c3f937a730d4f6c0a6fde61a0a6ceaa531ccb367c3559335ab9734f4f2b9da8adbe371f1f7da913b5a3fdd96a871e04f078928ca89a83d841c72fadf".decodeHex() + ) + ] + + // "foo", encoded as UTF-8, in hex representation + let signedData = "666f6f".decodeHex() + + let isValid = keyList.verify( + signatureSet: signatureSet, + signedData: signedData, + domainSeparationTag: "FLOW-V0.0-user" + ) + + Test.assert(!isValid) } access(all) fun testKeyListVerifyWithRevokedKey() { - let returnedValue = executeScript("./scripts/crypto_key_list_verify_revoked.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKey = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + keyList.add( + publicKey, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + let signatureSet = [ + Crypto.KeyListSignature( + keyIndex: 0, + signature: + "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() + ) + ] + + // "foo", encoded as UTF-8, in hex representation + let signedData = "666f6f".decodeHex() + + keyList.revoke(keyIndex: 0) + + let isValid = keyList.verify( + signatureSet: signatureSet, + signedData: signedData, + domainSeparationTag: "FLOW-V0.0-user" + ) + + Test.assert(!isValid) } access(all) fun testKeyListVerifyWithMissingSignature() { - let returnedValue = executeScript("./scripts/crypto_key_list_verify_missing_signature.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKey = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + keyList.add( + publicKey, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + let signatureSet = [ + Crypto.KeyListSignature( + keyIndex: 1, + signature: + "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() + ) + ] + + // "foo", encoded as UTF-8, in hex representation + let signedData = "666f6f".decodeHex() + + let isValid = keyList.verify( + signatureSet: signatureSet, + signedData: signedData, + domainSeparationTag: "FLOW-V0.0-user" + ) + + Test.assert(!isValid) } access(all) fun testKeyListVerifyDuplicateSignature() { - let returnedValue = executeScript("./scripts/crypto_key_list_verify_duplicate_signature.cdc") - Test.assertEqual(true, returnedValue) + let keyList = Crypto.KeyList() + + let publicKey = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + keyList.add( + publicKey, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + let signatureSet = [ + Crypto.KeyListSignature( + keyIndex: 0, + signature: + "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() + ), + Crypto.KeyListSignature( + keyIndex: 0, + signature: + "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() + ) + ] + + // "foo", encoded as UTF-8, in hex representation + let signedData = "666f6f".decodeHex() + + let isValid = keyList.verify( + signatureSet: signatureSet, + signedData: signedData, + domainSeparationTag: "FLOW-V0.0-user" + ) + + Test.assert(!isValid) } access(all) fun testKeyListVerifyInvalidSignature() { - let returnedValue = executeScript("./scripts/crypto_key_list_verify_invalid_signature.cdc") - Test.assertEqual(true, returnedValue) -} + let keyList = Crypto.KeyList() -access(self) -fun executeScript(_ scriptPath: String): Bool { - let script = Test.readFile(scriptPath) - let scriptResult = blockchain.executeScript(script, []) + let publicKey = PublicKey( + publicKey: + "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), + signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 + ) + keyList.add( + publicKey, + hashAlgorithm: HashAlgorithm.SHA3_256, + weight: 0.5 + ) + + let signatureSet = [ + Crypto.KeyListSignature( + keyIndex: 0, + signature: + "db70a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() + ) + ] - Test.expect(scriptResult, Test.beSucceeded()) + // "foo", encoded as UTF-8, in hex representation + let signedData = "666f6f".decodeHex() + + let isValid = keyList.verify( + signatureSet: signatureSet, + signedData: signedData, + domainSeparationTag: "FLOW-V0.0-user" + ) - return scriptResult.returnValue! as! Bool + Test.assert(!isValid) } diff --git a/runtime/stdlib/contracts/flow.json b/runtime/stdlib/contracts/flow.json index 5ac314e31f..7604b6c306 100644 --- a/runtime/stdlib/contracts/flow.json +++ b/runtime/stdlib/contracts/flow.json @@ -1,12 +1,18 @@ { "networks": { "emulator": "127.0.0.1:3569", + "testing": "127.0.0.1:3569", "mainnet": "access.mainnet.nodes.onflow.org:9000", "sandboxnet": "access.sandboxnet.nodes.onflow.org:9000", "testnet": "access.devnet.nodes.onflow.org:9000" }, "contracts": { - "Crypto": "crypto.cdc" + "Crypto": { + "source": "crypto.cdc", + "aliases": { + "testing": "0x0000000000000007" + } + } }, "deployments": { "emulator": { diff --git a/runtime/stdlib/contracts/scripts/crypto_get_key_from_list.cdc b/runtime/stdlib/contracts/scripts/crypto_get_key_from_list.cdc deleted file mode 100644 index 4d8f6a641f..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_get_key_from_list.cdc +++ /dev/null @@ -1,21 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKey = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - keyList.add( - publicKey, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 1.0 - ) - - assert(keyList.get(keyIndex: 0) != nil) - assert(keyList.get(keyIndex: 2) == nil) - - return true -} diff --git a/runtime/stdlib/contracts/scripts/crypto_hash.cdc b/runtime/stdlib/contracts/scripts/crypto_hash.cdc deleted file mode 100644 index 9b4ef47aff..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_hash.cdc +++ /dev/null @@ -1,6 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let hash = Crypto.hash([1, 2, 3], algorithm: HashAlgorithm.SHA3_256) - return hash.length == 32 -} diff --git a/runtime/stdlib/contracts/scripts/crypto_hash_with_tag.cdc b/runtime/stdlib/contracts/scripts/crypto_hash_with_tag.cdc deleted file mode 100644 index 2e841a50dd..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_hash_with_tag.cdc +++ /dev/null @@ -1,10 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let hash = Crypto.hashWithTag( - [1, 2, 3], - tag: "v0.1.tag", - algorithm: HashAlgorithm.SHA3_256 - ) - return hash.length == 32 -} diff --git a/runtime/stdlib/contracts/scripts/crypto_key_list_add.cdc b/runtime/stdlib/contracts/scripts/crypto_key_list_add.cdc deleted file mode 100644 index 5f95e575c4..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_key_list_add.cdc +++ /dev/null @@ -1,18 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKey = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - keyList.add( - publicKey, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 1.0 - ) - - return keyList.get(keyIndex: 0) != nil -} diff --git a/runtime/stdlib/contracts/scripts/crypto_key_list_verify.cdc b/runtime/stdlib/contracts/scripts/crypto_key_list_verify.cdc deleted file mode 100644 index ab0c3f0f4f..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_key_list_verify.cdc +++ /dev/null @@ -1,51 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKeyA = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - - keyList.add( - publicKeyA, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - let publicKeyB = PublicKey( - publicKey: - "df9609ee588dd4a6f7789df8d56f03f545d4516f0c99b200d73b9a3afafc14de5d21a4fc7a2a2015719dc95c9e756cfa44f2a445151aaf42479e7120d83df956".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - - keyList.add( - publicKeyB, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - let signatureSet = [ - Crypto.KeyListSignature( - keyIndex: 0, - signature: - "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() - ), - Crypto.KeyListSignature( - keyIndex: 1, - signature: - "bbdc5591c3f937a730d4f6c0a6fde61a0a6ceaa531ccb367c3559335ab9734f4f2b9da8adbe371f1f7da913b5a3fdd96a871e04f078928ca89a83d841c72fadf".decodeHex() - ) - ] - - // "foo", encoded as UTF-8, in hex representation - let signedData = "666f6f".decodeHex() - - let isValid = keyList.verify( - signatureSet: signatureSet, - signedData: signedData - ) - return isValid -} diff --git a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_duplicate_signature.cdc b/runtime/stdlib/contracts/scripts/crypto_key_list_verify_duplicate_signature.cdc deleted file mode 100644 index 1ca7ef69b4..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_duplicate_signature.cdc +++ /dev/null @@ -1,39 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKey = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - keyList.add( - publicKey, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - let signatureSet = [ - Crypto.KeyListSignature( - keyIndex: 0, - signature: - "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() - ), - Crypto.KeyListSignature( - keyIndex: 0, - signature: - "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() - ) - ] - - // "foo", encoded as UTF-8, in hex representation - let signedData = "666f6f".decodeHex() - - var isValid = keyList.verify( - signatureSet: signatureSet, - signedData: signedData - ) - - return !isValid -} diff --git a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_insufficient_weights.cdc b/runtime/stdlib/contracts/scripts/crypto_key_list_verify_insufficient_weights.cdc deleted file mode 100644 index cd1f6d99fa..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_insufficient_weights.cdc +++ /dev/null @@ -1,51 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKeyA = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - - keyList.add( - publicKeyA, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.4 - ) - - let publicKeyB = PublicKey( - publicKey: - "df9609ee588dd4a6f7789df8d56f03f545d4516f0c99b200d73b9a3afafc14de5d21a4fc7a2a2015719dc95c9e756cfa44f2a445151aaf42479e7120d83df956".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - - keyList.add( - publicKeyB, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - let signatureSet = [ - Crypto.KeyListSignature( - keyIndex: 0, - signature: - "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() - ), - Crypto.KeyListSignature( - keyIndex: 1, - signature: - "bbdc5591c3f937a730d4f6c0a6fde61a0a6ceaa531ccb367c3559335ab9734f4f2b9da8adbe371f1f7da913b5a3fdd96a871e04f078928ca89a83d841c72fadf".decodeHex() - ) - ] - - // "foo", encoded as UTF-8, in hex representation - let signedData = "666f6f".decodeHex() - - let isValid = keyList.verify( - signatureSet: signatureSet, - signedData: signedData - ) - return !isValid -} diff --git a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_invalid_signature.cdc b/runtime/stdlib/contracts/scripts/crypto_key_list_verify_invalid_signature.cdc deleted file mode 100644 index 47449c0bbb..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_invalid_signature.cdc +++ /dev/null @@ -1,34 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKey = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - keyList.add( - publicKey, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - let signatureSet = [ - Crypto.KeyListSignature( - keyIndex: 0, - signature: - "db70a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() - ) - ] - - // "foo", encoded as UTF-8, in hex representation - let signedData = "666f6f".decodeHex() - - var isValid = keyList.verify( - signatureSet: signatureSet, - signedData: signedData - ) - - return !isValid -} diff --git a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_missing_signature.cdc b/runtime/stdlib/contracts/scripts/crypto_key_list_verify_missing_signature.cdc deleted file mode 100644 index 851309e257..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_missing_signature.cdc +++ /dev/null @@ -1,34 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKey = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - keyList.add( - publicKey, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - let signatureSet = [ - Crypto.KeyListSignature( - keyIndex: 1, - signature: - "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() - ) - ] - - // "foo", encoded as UTF-8, in hex representation - let signedData = "666f6f".decodeHex() - - var isValid = keyList.verify( - signatureSet: signatureSet, - signedData: signedData - ) - - return !isValid -} diff --git a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_revoked.cdc b/runtime/stdlib/contracts/scripts/crypto_key_list_verify_revoked.cdc deleted file mode 100644 index 1cc9c18f9d..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_key_list_verify_revoked.cdc +++ /dev/null @@ -1,36 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKey = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - keyList.add( - publicKey, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - let signatureSet = [ - Crypto.KeyListSignature( - keyIndex: 0, - signature: - "8870a8cbe6f44932ba59e0d15a706214cc4ad2538deb12c0cf718d86f32c47765462a92ce2da15d4a29eb4e2b6fa05d08c7db5d5b2a2cd8c2cb98ded73da31f6".decodeHex() - ) - ] - - // "foo", encoded as UTF-8, in hex representation - let signedData = "666f6f".decodeHex() - - keyList.revoke(keyIndex: 0) - - var isValid = keyList.verify( - signatureSet: signatureSet, - signedData: signedData - ) - - return !isValid -} diff --git a/runtime/stdlib/contracts/scripts/crypto_revoke_key_from_list.cdc b/runtime/stdlib/contracts/scripts/crypto_revoke_key_from_list.cdc deleted file mode 100644 index 7a3e40e747..0000000000 --- a/runtime/stdlib/contracts/scripts/crypto_revoke_key_from_list.cdc +++ /dev/null @@ -1,24 +0,0 @@ -import "Crypto" - -access(self) fun main(): Bool { - let keyList = Crypto.KeyList() - - let publicKey = PublicKey( - publicKey: - "db04940e18ec414664ccfd31d5d2d4ece3985acb8cb17a2025b2f1673427267968e52e2bbf3599059649d4b2cce98fdb8a3048e68abf5abe3e710129e90696ca".decodeHex(), - signatureAlgorithm: SignatureAlgorithm.ECDSA_P256 - ) - keyList.add( - publicKey, - hashAlgorithm: HashAlgorithm.SHA3_256, - weight: 0.5 - ) - - keyList.revoke(keyIndex: 0) - keyList.revoke(keyIndex: 2) - - assert(keyList.get(keyIndex: 0)!.isRevoked) - assert(keyList.get(keyIndex: 2) == nil) - - return true -} diff --git a/runtime/stdlib/contracts/test.go b/runtime/stdlib/contracts/test.go index 74b6b0446d..1e2c4dcdc8 100644 --- a/runtime/stdlib/contracts/test.go +++ b/runtime/stdlib/contracts/test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/crypto.go b/runtime/stdlib/crypto.go index 580b09fc7c..49d68c4984 100644 --- a/runtime/stdlib/crypto.go +++ b/runtime/stdlib/crypto.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -169,7 +169,7 @@ func cryptoAlgorithmEnumValueAndCaseValues[T sema.CryptoAlgorithm]( caseCount := len(enumCases) caseValues := make([]interpreter.EnumCase, caseCount) - constructorNestedVariables := make(map[string]*interpreter.Variable, caseCount) + constructorNestedVariables := make(map[string]interpreter.Variable, caseCount) cases = make(map[interpreter.UInt8Value]interpreter.MemberAccessibleValue, caseCount) for i, enumCase := range enumCases { diff --git a/runtime/stdlib/crypto_test.go b/runtime/stdlib/crypto_test.go index 2e74ce5b4f..ff2dca5cf4 100644 --- a/runtime/stdlib/crypto_test.go +++ b/runtime/stdlib/crypto_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/flow.go b/runtime/stdlib/flow.go index 47451caf56..b7d34e42d1 100644 --- a/runtime/stdlib/flow.go +++ b/runtime/stdlib/flow.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -209,6 +209,21 @@ var AccountEventContractParameter = sema.Parameter{ TypeAnnotation: sema.StringTypeAnnotation, } +var AccountEventKeyWeightParameter = sema.Parameter{ + Identifier: "weight", + TypeAnnotation: sema.UFix64TypeAnnotation, +} + +var AccountEventHashAlgorithmParameter = sema.Parameter{ + Identifier: "hashAlgorithm", + TypeAnnotation: sema.HashAlgorithmTypeAnnotation, +} + +var AccountEventKeyIndexParameter = sema.Parameter{ + Identifier: "keyIndex", + TypeAnnotation: sema.IntTypeAnnotation, +} + var AccountCreatedEventType = newFlowEventType( "AccountCreated", AccountEventAddressParameter, @@ -218,6 +233,9 @@ var AccountKeyAddedFromPublicKeyEventType = newFlowEventType( "AccountKeyAdded", AccountEventAddressParameter, AccountEventPublicKeyParameterAsCompositeType, + AccountEventKeyWeightParameter, + AccountEventHashAlgorithmParameter, + AccountEventKeyIndexParameter, ) var AccountKeyRemovedFromPublicKeyIndexEventType = newFlowEventType( diff --git a/runtime/stdlib/flow_test.go b/runtime/stdlib/flow_test.go index e57c8737dc..7075178e89 100644 --- a/runtime/stdlib/flow_test.go +++ b/runtime/stdlib/flow_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/functions.go b/runtime/stdlib/functions.go index 61b85dbd9e..c9e1f5295d 100644 --- a/runtime/stdlib/functions.go +++ b/runtime/stdlib/functions.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,8 @@ import ( "github.com/onflow/cadence/runtime/sema" ) -func NewStandardLibraryFunction( +// NewStandardLibraryStaticFunction should only be used for creating static functions. +func NewStandardLibraryStaticFunction( name string, functionType *sema.FunctionType, docString string, @@ -39,7 +40,7 @@ func NewStandardLibraryFunction( argumentLabels[i] = parameter.EffectiveArgumentLabel() } - functionValue := interpreter.NewUnmeteredHostFunctionValue(functionType, function) + functionValue := interpreter.NewUnmeteredStaticHostFunctionValue(functionType, function) return StandardLibraryValue{ Name: name, diff --git a/runtime/stdlib/hashalgorithm.go b/runtime/stdlib/hashalgorithm.go index 65019f84e3..57679df65e 100644 --- a/runtime/stdlib/hashalgorithm.go +++ b/runtime/stdlib/hashalgorithm.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -71,7 +71,9 @@ func newHashAlgorithmHashFunction( hashAlgoValue interpreter.MemberAccessibleValue, hasher Hasher, ) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( + // TODO: should ideally create a bound-host function. + // But the interpreter is not available at this point. + return interpreter.NewUnmeteredStaticHostFunctionValue( sema.HashAlgorithmTypeHashFunctionType, func(invocation interpreter.Invocation) interpreter.Value { dataValue, ok := invocation.Arguments[0].(*interpreter.ArrayValue) @@ -99,7 +101,9 @@ func newHashAlgorithmHashWithTagFunction( hashAlgorithmValue interpreter.MemberAccessibleValue, hasher Hasher, ) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( + // TODO: should ideally create a bound-host function. + // But the interpreter is not available at this point. + return interpreter.NewUnmeteredStaticHostFunctionValue( sema.HashAlgorithmTypeHashWithTagFunctionType, func(invocation interpreter.Invocation) interpreter.Value { diff --git a/runtime/stdlib/log.go b/runtime/stdlib/log.go index 792f8273df..50294e8091 100644 --- a/runtime/stdlib/log.go +++ b/runtime/stdlib/log.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,7 +46,7 @@ type Logger interface { } func NewLogFunction(logger Logger) StandardLibraryValue { - return NewStandardLibraryFunction( + return NewStandardLibraryStaticFunction( "log", LogFunctionType, logFunctionDocString, @@ -54,8 +54,8 @@ func NewLogFunction(logger Logger) StandardLibraryValue { value := invocation.Arguments[0] locationRange := invocation.LocationRange - memoryGauge := invocation.Interpreter - message := value.MeteredString(memoryGauge, interpreter.SeenReferences{}) + inter := invocation.Interpreter + message := value.MeteredString(inter, interpreter.SeenReferences{}, locationRange) var err error errors.WrapPanic(func() { diff --git a/runtime/stdlib/panic.go b/runtime/stdlib/panic.go index d9f6296780..7ad7aa2168 100644 --- a/runtime/stdlib/panic.go +++ b/runtime/stdlib/panic.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,7 +55,7 @@ var panicFunctionType = sema.NewSimpleFunctionType( sema.NeverTypeAnnotation, ) -var PanicFunction = NewStandardLibraryFunction( +var PanicFunction = NewStandardLibraryStaticFunction( "panic", panicFunctionType, panicFunctionDocString, diff --git a/runtime/stdlib/publickey.go b/runtime/stdlib/publickey.go index ef27bebc3a..584e5c11bb 100644 --- a/runtime/stdlib/publickey.go +++ b/runtime/stdlib/publickey.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ package stdlib import ( - "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" @@ -77,10 +77,8 @@ func newPublicKeyValidationHandler(validator PublicKeyValidator) interpreter.Pub func NewPublicKeyConstructor( publicKeyValidator PublicKeyValidator, - publicKeySignatureVerifier PublicKeySignatureVerifier, - blsPoPVerifier BLSPoPVerifier, ) StandardLibraryValue { - return NewStandardLibraryFunction( + return NewStandardLibraryStaticFunction( sema.PublicKeyTypeName, publicKeyConstructorFunctionType, publicKeyConstructorFunctionDocString, @@ -105,8 +103,6 @@ func NewPublicKeyConstructor( publicKey, signAlgo, publicKeyValidator, - publicKeySignatureVerifier, - blsPoPVerifier, ) }, ) @@ -118,8 +114,6 @@ func NewPublicKeyFromFields( publicKey *interpreter.ArrayValue, signAlgo *interpreter.SimpleCompositeValue, publicKeyValidator PublicKeyValidator, - publicKeySignatureVerifier PublicKeySignatureVerifier, - blsPoPVerifier BLSPoPVerifier, ) *interpreter.CompositeValue { return interpreter.NewPublicKeyValue( inter, @@ -127,8 +121,6 @@ func NewPublicKeyFromFields( publicKey, signAlgo, newPublicKeyValidationHandler(publicKeyValidator), - newPublicKeyVerifySignatureFunction(inter, publicKeySignatureVerifier), - newPublicKeyVerifyPoPFunction(inter, blsPoPVerifier), ) } @@ -140,8 +132,6 @@ func NewPublicKeyValue( inter *interpreter.Interpreter, locationRange interpreter.LocationRange, publicKey *PublicKey, - publicKeySignatureVerifier PublicKeySignatureVerifier, - blsPoPVerifier BLSPoPVerifier, ) *interpreter.CompositeValue { return interpreter.NewPublicKeyValue( inter, @@ -155,8 +145,6 @@ func NewPublicKeyValue( ), // public keys converted from "native" (non-interpreter) keys are assumed to be already validated assumePublicKeyIsValid, - newPublicKeyVerifySignatureFunction(inter, publicKeySignatureVerifier), - newPublicKeyVerifyPoPFunction(inter, blsPoPVerifier), ) } @@ -223,11 +211,13 @@ type PublicKeySignatureVerifier interface { } func newPublicKeyVerifySignatureFunction( - gauge common.MemoryGauge, - verififier PublicKeySignatureVerifier, -) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( - gauge, + inter *interpreter.Interpreter, + publicKeyValue *interpreter.CompositeValue, + verifier PublicKeySignatureVerifier, +) interpreter.BoundFunctionValue { + return interpreter.NewBoundHostFunctionValue( + inter, + publicKeyValue, sema.PublicKeyVerifyFunctionType, func(invocation interpreter.Invocation) interpreter.Value { signatureValue, ok := invocation.Arguments[0].(*interpreter.ArrayValue) @@ -250,7 +240,10 @@ func newPublicKeyVerifySignatureFunction( panic(errors.NewUnreachableError()) } - publicKeyValue := *invocation.Self + publicKeyValue, ok := (*invocation.Self).(interpreter.MemberAccessibleValue) + if !ok { + panic(errors.NewUnreachableError()) + } inter := invocation.Interpreter @@ -283,7 +276,7 @@ func newPublicKeyVerifySignatureFunction( var valid bool errors.WrapPanic(func() { - valid, err = verififier.VerifySignature( + valid, err = verifier.VerifySignature( signature, domainSeparationTag, signedData, @@ -308,11 +301,13 @@ type BLSPoPVerifier interface { } func newPublicKeyVerifyPoPFunction( - gauge common.MemoryGauge, + inter *interpreter.Interpreter, + publicKeyValue *interpreter.CompositeValue, verifier BLSPoPVerifier, -) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( - gauge, +) interpreter.BoundFunctionValue { + return interpreter.NewBoundHostFunctionValue( + inter, + publicKeyValue, sema.PublicKeyVerifyPoPFunctionType, func(invocation interpreter.Invocation) interpreter.Value { signatureValue, ok := invocation.Arguments[0].(*interpreter.ArrayValue) @@ -320,7 +315,10 @@ func newPublicKeyVerifyPoPFunction( panic(errors.NewUnreachableError()) } - publicKeyValue := *invocation.Self + publicKeyValue, ok := (*invocation.Self).(interpreter.MemberAccessibleValue) + if !ok { + panic(errors.NewUnreachableError()) + } inter := invocation.Interpreter @@ -353,3 +351,28 @@ func newPublicKeyVerifyPoPFunction( }, ) } + +type PublicKeyFunctionsHandler interface { + PublicKeySignatureVerifier + BLSPoPVerifier +} + +func PublicKeyFunctions( + inter *interpreter.Interpreter, + publicKeyValue *interpreter.CompositeValue, + handler PublicKeyFunctionsHandler, +) *interpreter.FunctionOrderedMap { + functions := orderedmap.New[interpreter.FunctionOrderedMap](2) + + functions.Set( + sema.PublicKeyTypeVerifyFunctionName, + newPublicKeyVerifySignatureFunction(inter, publicKeyValue, handler), + ) + + functions.Set( + sema.PublicKeyTypeVerifyPoPFunctionName, + newPublicKeyVerifyPoPFunction(inter, publicKeyValue, handler), + ) + + return functions +} diff --git a/runtime/stdlib/random.go b/runtime/stdlib/random.go index 7340db4559..6375384c7e 100644 --- a/runtime/stdlib/random.go +++ b/runtime/stdlib/random.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,13 +20,17 @@ package stdlib import ( "encoding/binary" + "fmt" + "math/big" + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" ) -const unsafeRandomFunctionDocString = ` +const revertibleRandomFunctionDocString = ` Returns a pseudo-random number. NOTE: The use of this function is unsafe if not used correctly. @@ -34,37 +38,422 @@ NOTE: The use of this function is unsafe if not used correctly. Follow best practices to prevent security issues when using this function ` -var unsafeRandomFunctionType = sema.NewSimpleFunctionType( - sema.FunctionPurityImpure, - nil, - sema.UInt64TypeAnnotation, -) +const revertibleRandomFunctionName = "revertibleRandom" + +var revertibleRandomFunctionType = func() *sema.FunctionType { + typeParameter := &sema.TypeParameter{ + Name: "T", + TypeBound: sema.FixedSizeUnsignedIntegerType, + } + + typeAnnotation := sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ) -type UnsafeRandomGenerator interface { + return &sema.FunctionType{ + TypeParameters: []*sema.TypeParameter{ + typeParameter, + }, + Parameters: []sema.Parameter{ + { + Identifier: "modulo", + TypeAnnotation: typeAnnotation, + }, + }, + TypeArgumentsCheck: func( + memoryGauge common.MemoryGauge, + typeArguments *sema.TypeParameterTypeOrderedMap, + _ []*ast.TypeAnnotation, + invocationRange ast.HasPosition, + report func(err error)) { + typeArg, ok := typeArguments.Get(typeParameter) + if !ok || typeArg == nil { + // Invalid, already reported by checker + return + } + if typeArg == sema.NeverType || typeArg == sema.FixedSizeUnsignedIntegerType { + report(&sema.InvalidTypeArgumentError{ + TypeArgumentName: typeParameter.Name, + Range: ast.NewRangeFromPositioned(memoryGauge, invocationRange), + Details: fmt.Sprintf( + "Type argument for `%s` cannot be `%s`", + revertibleRandomFunctionName, + typeArg, + ), + }) + } + }, + ReturnTypeAnnotation: typeAnnotation, + // `modulo` parameter is optional + Arity: &sema.Arity{Min: 0, Max: 1}, + } +}() + +type RandomGenerator interface { // ReadRandom reads pseudo-random bytes into the input slice, using distributed randomness. + // The number of bytes read is equal to the length of input slice. ReadRandom([]byte) error } -func NewUnsafeRandomFunction(generator UnsafeRandomGenerator) StandardLibraryValue { - return NewStandardLibraryFunction( - "unsafeRandom", - unsafeRandomFunctionType, - unsafeRandomFunctionDocString, +func getRandomBytes(buffer []byte, generator RandomGenerator) { + var err error + errors.WrapPanic(func() { + err = generator.ReadRandom(buffer) + }) + if err != nil { + panic(interpreter.WrappedExternalError(err)) + } +} + +var ZeroModuloError = errors.NewDefaultUserError("modulo argument cannot be zero") + +func NewRevertibleRandomFunction(generator RandomGenerator) StandardLibraryValue { + return NewStandardLibraryStaticFunction( + revertibleRandomFunctionName, + revertibleRandomFunctionType, + revertibleRandomFunctionDocString, func(invocation interpreter.Invocation) interpreter.Value { - return interpreter.NewUInt64Value( - invocation.Interpreter, - func() uint64 { - var buffer [8]byte - var err error - errors.WrapPanic(func() { - err = generator.ReadRandom(buffer[:]) - }) - if err != nil { - panic(interpreter.WrappedExternalError(err)) - } - return binary.LittleEndian.Uint64(buffer[:]) - }, + inter := invocation.Interpreter + + returnIntegerType := invocation.TypeParameterTypes.Oldest().Value + + // arguments should be 0 or 1 at this point + var moduloValue interpreter.Value + if len(invocation.Arguments) == 1 { + moduloValue = invocation.Arguments[0] + } + + return RevertibleRandom( + generator, + inter, + returnIntegerType, + moduloValue, ) }, ) } + +func RevertibleRandom( + generator RandomGenerator, + memoryGauge common.MemoryGauge, + returnIntegerType sema.Type, + moduloValue interpreter.Value, +) interpreter.Value { + switch returnIntegerType { + // UInt* + case sema.UInt8Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewUInt8Value( + memoryGauge, + func() uint8 { + return uint8(randomUint64) + }, + ) + case sema.UInt16Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewUInt16Value( + memoryGauge, + func() uint16 { + return uint16(randomUint64) + }, + ) + case sema.UInt32Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewUInt32Value( + memoryGauge, + func() uint32 { + return uint32(randomUint64) + }, + ) + case sema.UInt64Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewUInt64Value( + memoryGauge, + func() uint64 { + return randomUint64 + }, + ) + case sema.UInt128Type: + randomBig := getBigRandomNumber(generator, memoryGauge, returnIntegerType, moduloValue) + return interpreter.NewUInt128ValueFromBigInt( + memoryGauge, + func() *big.Int { + return randomBig + }, + ) + case sema.UInt256Type: + randomBig := getBigRandomNumber(generator, memoryGauge, returnIntegerType, moduloValue) + return interpreter.NewUInt256ValueFromBigInt( + memoryGauge, + func() *big.Int { + return randomBig + }, + ) + + // Word* + case sema.Word8Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewWord8Value( + memoryGauge, + func() uint8 { + return uint8(randomUint64) + }, + ) + case sema.Word16Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewWord16Value( + memoryGauge, + func() uint16 { + return uint16(randomUint64) + }, + ) + case sema.Word32Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewWord32Value( + memoryGauge, + func() uint32 { + return uint32(randomUint64) + }, + ) + case sema.Word64Type: + randomUint64 := getUint64RandomNumber(generator, returnIntegerType, moduloValue) + return interpreter.NewWord64Value( + memoryGauge, + func() uint64 { + return randomUint64 + }, + ) + case sema.Word128Type: + randomBig := getBigRandomNumber(generator, memoryGauge, returnIntegerType, moduloValue) + return interpreter.NewWord128ValueFromBigInt( + memoryGauge, + func() *big.Int { + return randomBig + }, + ) + case sema.Word256Type: + randomBig := getBigRandomNumber(generator, memoryGauge, returnIntegerType, moduloValue) + return interpreter.NewWord256ValueFromBigInt( + memoryGauge, + func() *big.Int { + return randomBig + }, + ) + + default: + // Checker should prevent this. + panic(errors.NewUnreachableError()) + } +} + +// cases of a random number of size 8 bytes or less can be all treated +// by the same function, based on the uint64 type. +// Although the final output is a `uint64`, it can be safely +// casted into the desired output type because the extra bytes are guaranteed +// to be zeros. +func getUint64RandomNumber( + generator RandomGenerator, + ty sema.Type, + moduloArg interpreter.Value, +) uint64 { + + // buffer to get random bytes from the generator + // 8 is the size of the largest type supported, it is also the size needed for + // the `binary.BigEndian.Uint64` call + const bufferSize = 8 + var buffer [bufferSize]byte + + // case where no modulo argument was provided + if moduloArg == nil { + numericType, ok := ty.(*sema.NumericType) + if !ok { + // checker should prevent this + panic(errors.NewUnreachableError()) + } + bytes := numericType.ByteSize() + getRandomBytes(buffer[bufferSize-bytes:], generator) + return binary.BigEndian.Uint64(buffer[:]) + } + + var ok bool + var modulo uint64 + + switch ty { + case sema.UInt8Type: + var moduloVal interpreter.UInt8Value + moduloVal, ok = moduloArg.(interpreter.UInt8Value) + modulo = uint64(moduloVal) + case sema.UInt16Type: + var moduloVal interpreter.UInt16Value + moduloVal, ok = moduloArg.(interpreter.UInt16Value) + modulo = uint64(moduloVal) + case sema.UInt32Type: + var moduloVal interpreter.UInt32Value + moduloVal, ok = moduloArg.(interpreter.UInt32Value) + modulo = uint64(moduloVal) + case sema.UInt64Type: + var moduloVal interpreter.UInt64Value + moduloVal, ok = moduloArg.(interpreter.UInt64Value) + modulo = uint64(moduloVal) + case sema.Word8Type: + var moduloVal interpreter.Word8Value + moduloVal, ok = moduloArg.(interpreter.Word8Value) + modulo = uint64(moduloVal) + case sema.Word16Type: + var moduloVal interpreter.Word16Value + moduloVal, ok = moduloArg.(interpreter.Word16Value) + modulo = uint64(moduloVal) + case sema.Word32Type: + var moduloVal interpreter.Word32Value + moduloVal, ok = moduloArg.(interpreter.Word32Value) + modulo = uint64(moduloVal) + case sema.Word64Type: + var moduloVal interpreter.Word64Value + moduloVal, ok = moduloArg.(interpreter.Word64Value) + modulo = uint64(moduloVal) + default: + // sanity check: shouldn't reach here + panic(errors.NewUnreachableError()) + } + + if !ok { + // checker should prevent this + panic(errors.NewUnreachableError()) + } + + // user error if modulo is zero + if modulo == 0 { + panic(ZeroModuloError) + } + + // `max` is the maximum value that can be returned + max := modulo - 1 + // get a bit mask (0b11..11) that covers all `max` bits, + // and count the byte size of `max` + mask := uint64(0) + bitSize := 0 + for max&mask != max { + bitSize++ + mask = (mask << 1) | 1 + } + byteSize := (bitSize + 7) >> 3 + + // Generate a number less or equal than `max`. + // use the reject-sample method to avoid the modulo bias. + // the function isn't constant-time in this case and may take longer than computing + // a modular reduction. + // However, sampling exactly the size of `max` in bits makes the loop return fast: + // the probability of the loop running for (k) iterations is at most (1/2)^k. + // + // (a different approach would be to pull 128 bits more bits than the size of `max` + // from the random generator and use big number reduction by `modulo`) + for { + // only generate `byteSize` random bytes + getRandomBytes(buffer[bufferSize-byteSize:], generator) + // big endianness must be used in this case + random := binary.BigEndian.Uint64(buffer[:]) + // truncate to the bit size of `max` + random &= mask + if random <= max { + return random + } + } +} + +// cases of a random number of size larger than 8 bytes can be all treated +// by the same function, based on the big.Int type. +func getBigRandomNumber( + generator RandomGenerator, + gauge common.MemoryGauge, + ty sema.Type, + moduloArg interpreter.Value, +) *big.Int { + + // get the numeric type byte size + numericType, ok := ty.(*sema.NumericType) + if !ok { + // checker should prevent this + panic(errors.NewUnreachableError()) + } + bytes := numericType.ByteSize() + // buffer to get random bytes from the generator + common.UseMemory(gauge, common.NewBytesMemoryUsage(bytes)) + buffer := make([]byte, bytes) + + // case where no modulo argument was provided + if moduloArg == nil { + getRandomBytes(buffer, generator) + // SetBytes considers big endianness (although little endian could be used too) + common.UseMemory(gauge, common.NewBigIntMemoryUsage(len(buffer))) + return new(big.Int).SetBytes(buffer) + } + + var modulo *big.Int + switch ty { + case sema.UInt128Type: + var moduloVal interpreter.UInt128Value + moduloVal, ok = moduloArg.(interpreter.UInt128Value) + modulo = moduloVal.BigInt + case sema.UInt256Type: + var moduloVal interpreter.UInt256Value + moduloVal, ok = moduloArg.(interpreter.UInt256Value) + modulo = moduloVal.BigInt + case sema.Word128Type: + var moduloVal interpreter.Word128Value + moduloVal, ok = moduloArg.(interpreter.Word128Value) + modulo = moduloVal.BigInt + case sema.Word256Type: + var moduloVal interpreter.Word256Value + moduloVal, ok = moduloArg.(interpreter.Word256Value) + modulo = moduloVal.BigInt + default: + // sanity check: shouldn't reach here + panic(errors.NewUnreachableError()) + } + + if !ok { + // checker should prevent this + panic(errors.NewUnreachableError()) + } + + // user error if modulo is zero + if modulo.Sign() == 0 { + panic(ZeroModuloError) + } + + // `max` is the maximum value that can be returned (modulo - 1) + one := big.NewInt(1) + max := new(big.Int).Sub(modulo, one) + // count the byte size of `max` + bitSize := max.BitLen() + byteSize := (bitSize + 7) >> 3 + // get a bit mask (0b11..11) that covers all `max`'s bits: + // `mask` can be computed as: (1 << bitSize) -1 + mask := new(big.Int).Lsh(one, uint(bitSize)) + mask.Sub(mask, one) + + // Generate a number less or equal than `max` + // use the reject-sample method to avoid the modulo bias. + // the function isn't constant-time in this case and may take longer than computing + // a modular reduction. + // However, sampling exactly the size of `max` in bits makes the loop return fast: + // the probability of the loop running for (k) iterations is at most (1/2)^k. + // + // (a different approach would be to pull 128 bits more bits than the size of `max` + // from the random generator and use big number reduction by `modulo`) + common.UseMemory(gauge, common.NewBigIntMemoryUsage(byteSize)) + random := new(big.Int) + for { + // only generate `byteSize` random bytes + getRandomBytes(buffer[:byteSize], generator) + // big endianness is used for consistency (but little can be used too) + random.SetBytes(buffer[:byteSize]) + // truncate to the bit size of `max` + random.And(random, mask) + if random.Cmp(max) <= 0 { + return random + } + } +} diff --git a/runtime/stdlib/random_test.go b/runtime/stdlib/random_test.go new file mode 100644 index 0000000000..efa6078e9d --- /dev/null +++ b/runtime/stdlib/random_test.go @@ -0,0 +1,109 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package stdlib + +import ( + "crypto/rand" + "strconv" + "testing" + + "github.com/onflow/crypto/random" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type testCryptRandomGenerator struct{} + +var _ RandomGenerator = testCryptRandomGenerator{} + +func (t testCryptRandomGenerator) ReadRandom(buffer []byte) error { + _, err := rand.Read(buffer) + return err +} + +// TestRandomBasicUniformityWithModulo is a sanity statistical test +// to make sure the random numbers less than modulo are uniform in [0,modulo-1]. +// The test requires the original random source (here `crypto/rand`) to be uniform. +// The test uses the same small values for all types: +// one is a power of 2 and the other is not. +func TestRandomBasicUniformityWithModulo(t *testing.T) { + + t.Parallel() + + if testing.Short() { + // skipped because the test is slow + t.Skip() + } + + testTypes := func(t *testing.T, testType func(*testing.T, sema.Type)) { + for _, ty := range sema.AllFixedSizeUnsignedIntegerTypes { + tyCopy := ty + t.Run(ty.String(), func(t *testing.T) { + t.Parallel() + + testType(t, tyCopy) + }) + } + } + + // dummy interpreter, just use for ConvertAndBox + inter := newInterpreter(t, ``) + + runStatisticsWithModulo := func(modulo int) func(*testing.T, sema.Type) { + return func(t *testing.T, ty sema.Type) { + // make sure modulo fits in 8 bits + require.Less(t, modulo, 1<<8) + + moduloValue := inter.ConvertAndBox( + interpreter.EmptyLocationRange, + interpreter.NewUnmeteredUIntValueFromUint64(uint64(modulo)), + sema.UIntType, + ty, + ) + + f := func() (uint64, error) { + + value := RevertibleRandom( + testCryptRandomGenerator{}, + nil, + ty, + moduloValue, + ) + + return strconv.ParseUint(value.String(), 10, 8) + } + + random.BasicDistributionTest(t, uint64(modulo), 1, f) + } + } + + t.Run("power of 2 (that fits in 8 bits)", func(t *testing.T) { + t.Parallel() + + testTypes(t, runStatisticsWithModulo(64)) + }) + + t.Run("non-power of 2", func(t *testing.T) { + t.Parallel() + + testTypes(t, runStatisticsWithModulo(71)) + }) +} diff --git a/runtime/stdlib/range.go b/runtime/stdlib/range.go new file mode 100644 index 0000000000..37a65435dc --- /dev/null +++ b/runtime/stdlib/range.go @@ -0,0 +1,186 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package stdlib + +import ( + "fmt" + + "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/errors" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +// InclusiveRangeConstructorFunction + +const inclusiveRangeConstructorFunctionDocString = ` + Constructs a Range covering from start to end. + + The step argument is optional and determines the step size. + If not provided, the value of +1 or -1 is used based on the values of start and end. + ` + +var inclusiveRangeConstructorFunctionType = func() *sema.FunctionType { + typeParameter := &sema.TypeParameter{ + Name: "T", + TypeBound: sema.IntegerType, + } + + typeAnnotation := sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ) + + return &sema.FunctionType{ + Purity: sema.FunctionPurityView, + TypeParameters: []*sema.TypeParameter{ + typeParameter, + }, + Parameters: []sema.Parameter{ + { + Label: sema.ArgumentLabelNotRequired, + Identifier: "start", + TypeAnnotation: typeAnnotation, + }, + { + Label: sema.ArgumentLabelNotRequired, + Identifier: "end", + TypeAnnotation: typeAnnotation, + }, + { + Identifier: "step", + TypeAnnotation: typeAnnotation, + }, + }, + ReturnTypeAnnotation: sema.NewTypeAnnotation( + &sema.InclusiveRangeType{ + MemberType: typeAnnotation.Type, + }, + ), + // `step` parameter is optional + Arity: &sema.Arity{Min: 2, Max: 3}, + TypeArgumentsCheck: func( + memoryGauge common.MemoryGauge, + typeArguments *sema.TypeParameterTypeOrderedMap, + astTypeArguments []*ast.TypeAnnotation, + invocationRange ast.HasPosition, + report func(error), + ) { + memberType, ok := typeArguments.Get(typeParameter) + if !ok || memberType == nil { + // Invalid, already reported by checker + return + } + + // memberType must only be a leaf integer type. + for _, ty := range sema.AllNonLeafIntegerTypes { + if memberType != ty { + continue + } + + // If type argument was provided, use its range otherwise fallback to invocation range. + errorRange := invocationRange + if len(astTypeArguments) > 0 { + errorRange = astTypeArguments[0] + } + + report(&sema.InvalidTypeArgumentError{ + TypeArgumentName: typeParameter.Name, + Range: ast.NewRangeFromPositioned(memoryGauge, errorRange), + Details: fmt.Sprintf("Creation of InclusiveRange<%s> is disallowed", memberType), + }) + + break + } + }, + } +}() + +var InclusiveRangeConstructorFunction = NewStandardLibraryStaticFunction( + "InclusiveRange", + inclusiveRangeConstructorFunctionType, + inclusiveRangeConstructorFunctionDocString, + func(invocation interpreter.Invocation) interpreter.Value { + start, startOk := invocation.Arguments[0].(interpreter.IntegerValue) + end, endOk := invocation.Arguments[1].(interpreter.IntegerValue) + + if !startOk || !endOk { + panic(errors.NewUnreachableError()) + } + + inter := invocation.Interpreter + locationRange := invocation.LocationRange + + startStaticType := start.StaticType(inter) + endStaticType := end.StaticType(inter) + if !startStaticType.Equal(endStaticType) { + panic(interpreter.InclusiveRangeConstructionError{ + LocationRange: locationRange, + Message: fmt.Sprintf( + "start and end are of different types. start: %s and end: %s", + startStaticType, + endStaticType, + ), + }) + } + + rangeStaticType := interpreter.NewInclusiveRangeStaticType(invocation.Interpreter, startStaticType) + rangeSemaType := sema.NewInclusiveRangeType(invocation.Interpreter, invocation.ArgumentTypes[0]) + + if len(invocation.Arguments) > 2 { + step, ok := invocation.Arguments[2].(interpreter.IntegerValue) + if !ok { + panic(errors.NewUnreachableError()) + } + + stepStaticType := step.StaticType(inter) + if stepStaticType != startStaticType { + panic(interpreter.InclusiveRangeConstructionError{ + LocationRange: locationRange, + Message: fmt.Sprintf( + "step must be of the same type as start and end. start/end: %s and step: %s", + startStaticType, + stepStaticType, + ), + }) + } + + return interpreter.NewInclusiveRangeValueWithStep( + inter, + locationRange, + start, + end, + step, + rangeStaticType, + rangeSemaType, + ) + } + + return interpreter.NewInclusiveRangeValue( + inter, + locationRange, + start, + end, + rangeStaticType, + rangeSemaType, + ) + }, +) diff --git a/runtime/stdlib/rlp.gen.go b/runtime/stdlib/rlp.gen.go index 1fdf0f7895..f14f28b159 100644 --- a/runtime/stdlib/rlp.gen.go +++ b/runtime/stdlib/rlp.gen.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/rlp.go b/runtime/stdlib/rlp.go index a8c9faae3f..5157a7ee42 100644 --- a/runtime/stdlib/rlp.go +++ b/runtime/stdlib/rlp.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,7 +44,8 @@ func (e RLPDecodeStringError) Error() string { const rlpErrMsgInputContainsExtraBytes = "input data is expected to be RLP-encoded of a single string or a single list but it seems it contains extra trailing bytes." -var rlpDecodeStringFunction = interpreter.NewUnmeteredHostFunctionValue( +// rlpDecodeStringFunction is a static function +var rlpDecodeStringFunction = interpreter.NewUnmeteredStaticHostFunctionValue( RLPTypeDecodeStringFunctionType, func(invocation interpreter.Invocation) interpreter.Value { input, ok := invocation.Arguments[0].(*interpreter.ArrayValue) @@ -93,7 +94,8 @@ func (e RLPDecodeListError) Error() string { return fmt.Sprintf("failed to RLP-decode list: %s", e.Msg) } -var rlpDecodeListFunction = interpreter.NewUnmeteredHostFunctionValue( +// rlpDecodeListFunction is a static function +var rlpDecodeListFunction = interpreter.NewUnmeteredStaticHostFunctionValue( RLPTypeDecodeListFunctionType, func(invocation interpreter.Invocation) interpreter.Value { input, ok := invocation.Arguments[0].(*interpreter.ArrayValue) diff --git a/runtime/stdlib/rlp/rlp.go b/runtime/stdlib/rlp/rlp.go index bbdfc16880..976cc640fb 100644 --- a/runtime/stdlib/rlp/rlp.go +++ b/runtime/stdlib/rlp/rlp.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/rlp/rlp_test.go b/runtime/stdlib/rlp/rlp_test.go index dbd0442ca5..fbc90556ad 100644 --- a/runtime/stdlib/rlp/rlp_test.go +++ b/runtime/stdlib/rlp/rlp_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/signaturealgorithm.go b/runtime/stdlib/signaturealgorithm.go index fa475433ce..23426a1ad1 100644 --- a/runtime/stdlib/signaturealgorithm.go +++ b/runtime/stdlib/signaturealgorithm.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/test-framework.go b/runtime/stdlib/test-framework.go index 6496ee98fb..07e88a766d 100644 --- a/runtime/stdlib/test-framework.go +++ b/runtime/stdlib/test-framework.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -64,8 +64,6 @@ type Blockchain interface { arguments []interpreter.Value, ) error - StandardLibraryHandler() StandardLibraryHandler - Logs() []string ServiceAccount() (*Account, error) diff --git a/runtime/stdlib/test.go b/runtime/stdlib/test.go index de914c21a9..eb65c13985 100644 --- a/runtime/stdlib/test.go +++ b/runtime/stdlib/test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -100,21 +100,29 @@ func getFunctionTypeFromMember(funcMember *sema.Member, funcName string) *sema.F return functionType } -func getNestedTypeConstructorValue(parent interpreter.Value, typeName string) *interpreter.HostFunctionValue { +func getNestedTypeConstructorValue( + inter *interpreter.Interpreter, + parent interpreter.Value, + typeName string, +) *interpreter.HostFunctionValue { compositeValue, ok := parent.(*interpreter.CompositeValue) if !ok { panic(errors.NewUnreachableError()) } constructorVar := compositeValue.NestedVariables[typeName] - constructor, ok := constructorVar.GetValue().(*interpreter.HostFunctionValue) + constructor, ok := constructorVar.GetValue(inter).(*interpreter.HostFunctionValue) if !ok { panic(errors.NewUnexpectedError("invalid type for constructor")) } return constructor } -func arrayValueToSlice(inter *interpreter.Interpreter, value interpreter.Value) ([]interpreter.Value, error) { +func arrayValueToSlice( + inter *interpreter.Interpreter, + value interpreter.Value, + locationRange interpreter.LocationRange, +) ([]interpreter.Value, error) { array, ok := value.(*interpreter.ArrayValue) if !ok { return nil, errors.NewDefaultUserError("value is not an array") @@ -122,10 +130,15 @@ func arrayValueToSlice(inter *interpreter.Interpreter, value interpreter.Value) result := make([]interpreter.Value, 0, array.Count()) - array.Iterate(inter, func(element interpreter.Value) (resume bool) { - result = append(result, element) - return true - }) + array.Iterate( + inter, + func(element interpreter.Value) (resume bool) { + result = append(result, element) + return true + }, + false, + locationRange, + ) return result, nil } @@ -146,10 +159,10 @@ func newScriptResult( var status interpreter.Value if result.Error == nil { succeededVar := resultStatusConstructor.NestedVariables[testResultStatusTypeSucceededCaseName] - status = succeededVar.GetValue() + status = succeededVar.GetValue(inter) } else { failedVar := resultStatusConstructor.NestedVariables[testResultStatusTypeFailedCaseName] - status = failedVar.GetValue() + status = failedVar.GetValue(inter) } errValue := newErrorValue(inter, result.Error) @@ -175,7 +188,7 @@ func newScriptResult( func getConstructor(inter *interpreter.Interpreter, typeName string) *interpreter.HostFunctionValue { resultStatusConstructorVar := inter.FindVariable(typeName) - resultStatusConstructor, ok := resultStatusConstructorVar.GetValue().(*interpreter.HostFunctionValue) + resultStatusConstructor, ok := resultStatusConstructorVar.GetValue(inter).(*interpreter.HostFunctionValue) if !ok { panic(errors.NewUnexpectedError("invalid type for constructor of '%s'", typeName)) } @@ -183,7 +196,11 @@ func getConstructor(inter *interpreter.Interpreter, typeName string) *interprete return resultStatusConstructor } -func addressArrayValueToSlice(inter *interpreter.Interpreter, accountsValue interpreter.Value) []common.Address { +func addressArrayValueToSlice( + inter *interpreter.Interpreter, + accountsValue interpreter.Value, + locationRange interpreter.LocationRange, +) []common.Address { accountsArray, ok := accountsValue.(*interpreter.ArrayValue) if !ok { panic(errors.NewUnreachableError()) @@ -191,16 +208,21 @@ func addressArrayValueToSlice(inter *interpreter.Interpreter, accountsValue inte addresses := make([]common.Address, 0) - accountsArray.Iterate(inter, func(element interpreter.Value) (resume bool) { - address, ok := element.(interpreter.AddressValue) - if !ok { - panic(errors.NewUnreachableError()) - } + accountsArray.Iterate( + inter, + func(element interpreter.Value) (resume bool) { + address, ok := element.(interpreter.AddressValue) + if !ok { + panic(errors.NewUnreachableError()) + } - addresses = append(addresses, common.Address(address)) + addresses = append(addresses, common.Address(address)) - return true - }) + return true + }, + false, + locationRange, + ) return addresses } @@ -218,18 +240,23 @@ func accountsArrayValueToSlice( accounts := make([]*Account, 0) - accountsArray.Iterate(inter, func(element interpreter.Value) (resume bool) { - accountValue, ok := element.(interpreter.MemberAccessibleValue) - if !ok { - panic(errors.NewUnreachableError()) - } + accountsArray.Iterate( + inter, + func(element interpreter.Value) (resume bool) { + accountValue, ok := element.(interpreter.MemberAccessibleValue) + if !ok { + panic(errors.NewUnreachableError()) + } - account := accountFromValue(inter, accountValue, locationRange) + account := accountFromValue(inter, accountValue, locationRange) - accounts = append(accounts, account) + accounts = append(accounts, account) - return true - }) + return true + }, + false, + locationRange, + ) return accounts } @@ -280,10 +307,10 @@ func newTransactionResult(inter *interpreter.Interpreter, result *TransactionRes var status interpreter.Value if result.Error == nil { succeededVar := resultStatusConstructor.NestedVariables[testResultStatusTypeSucceededCaseName] - status = succeededVar.GetValue() + status = succeededVar.GetValue(inter) } else { failedVar := resultStatusConstructor.NestedVariables[testResultStatusTypeFailedCaseName] - status = failedVar.GetValue() + status = failedVar.GetValue(inter) } // Create a 'TransactionResult' by calling its constructor. @@ -355,11 +382,14 @@ func newMatcherWithAnyStructTestFunction( testFunc interpreter.FunctionValue, ) interpreter.Value { + inter := invocation.Interpreter + matcherConstructor := getNestedTypeConstructorValue( + inter, *invocation.Self, testMatcherTypeName, ) - matcher, err := invocation.Interpreter.InvokeExternally( + matcher, err := inter.InvokeExternally( matcherConstructor, matcherConstructor.Type, []interpreter.Value{ @@ -401,7 +431,7 @@ func newMatcherWithGenericTestFunction( // Note: This argument validation is only needed if the matcher was created with a user-provided function. // No need to validate if the matcher is created as a matcher combinator. // - matcherTestFunction := interpreter.NewUnmeteredHostFunctionValue( + matcherTestFunction := interpreter.NewUnmeteredStaticHostFunctionValue( matcherTestFunctionType, func(invocation interpreter.Invocation) interpreter.Value { inter := invocation.Interpreter diff --git a/runtime/stdlib/test_contract.go b/runtime/stdlib/test_contract.go index 2467f48331..8499b45bb9 100644 --- a/runtime/stdlib/test_contract.go +++ b/runtime/stdlib/test_contract.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,17 +36,22 @@ type TestContractType struct { CompositeType *sema.CompositeType InitializerTypes []sema.Type emulatorBackendType *testEmulatorBackendType - expectFunction interpreter.FunctionValue - newMatcherFunction interpreter.FunctionValue - haveElementCountFunction interpreter.FunctionValue - beEmptyFunction interpreter.FunctionValue - equalFunction interpreter.FunctionValue - beGreaterThanFunction interpreter.FunctionValue - containFunction interpreter.FunctionValue - beLessThanFunction interpreter.FunctionValue - expectFailureFunction interpreter.FunctionValue + expectFunction testContractBoundFunctionGenerator + newMatcherFunction testContractBoundFunctionGenerator + haveElementCountFunction testContractBoundFunctionGenerator + beEmptyFunction testContractBoundFunctionGenerator + equalFunction testContractBoundFunctionGenerator + beGreaterThanFunction testContractBoundFunctionGenerator + containFunction testContractBoundFunctionGenerator + beLessThanFunction testContractBoundFunctionGenerator + expectFailureFunction testContractBoundFunctionGenerator } +type testContractBoundFunctionGenerator func( + *interpreter.Interpreter, + *interpreter.CompositeValue, +) interpreter.BoundFunctionValue + // 'Test.assert' function const testTypeAssertFunctionDocString = ` @@ -73,33 +78,40 @@ var testTypeAssertFunctionType = &sema.FunctionType{ Arity: &sema.Arity{Min: 1, Max: 2}, } -var testTypeAssertFunction = interpreter.NewUnmeteredHostFunctionValue( - testTypeAssertFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - condition, ok := invocation.Arguments[0].(interpreter.BoolValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - var message string - if len(invocation.Arguments) > 1 { - messageValue, ok := invocation.Arguments[1].(*interpreter.StringValue) +func testTypeAssertFunction( + inter *interpreter.Interpreter, + testContractValue *interpreter.CompositeValue, +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + testTypeAssertFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + condition, ok := invocation.Arguments[0].(interpreter.BoolValue) if !ok { panic(errors.NewUnreachableError()) } - message = messageValue.Str - } - if !condition { - panic(AssertionError{ - Message: message, - LocationRange: invocation.LocationRange, - }) - } + var message string + if len(invocation.Arguments) > 1 { + messageValue, ok := invocation.Arguments[1].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + message = messageValue.Str + } - return interpreter.Void - }, -) + if !condition { + panic(AssertionError{ + Message: message, + LocationRange: invocation.LocationRange, + }) + } + + return interpreter.Void + }, + ) +} // 'Test.assertEqual' function @@ -132,42 +144,63 @@ var testTypeAssertEqualFunctionType = &sema.FunctionType{ ), } -var testTypeAssertEqualFunction = interpreter.NewUnmeteredHostFunctionValue( - testTypeAssertEqualFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - expected, ok := invocation.Arguments[0].(interpreter.EquatableValue) - if !ok { - panic(errors.NewUnreachableError()) - } +func testTypeAssertEqualFunction( + inter *interpreter.Interpreter, + testContractValue *interpreter.CompositeValue, +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + testTypeAssertEqualFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + expected, ok := invocation.Arguments[0].(interpreter.EquatableValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter + actual, ok := invocation.Arguments[1].(interpreter.EquatableValue) + if !ok { + panic(errors.NewUnreachableError()) + } - actual, ok := invocation.Arguments[1].(interpreter.EquatableValue) - if !ok { - panic(errors.NewUnreachableError()) - } + inter := invocation.Interpreter - equal := expected.Equal( - inter, - invocation.LocationRange, - actual, - ) + expectedType := expected.StaticType(inter) + actualType := actual.StaticType(inter) + if !expectedType.Equal(actualType) { + message := fmt.Sprintf( + "not equal types: expected: %s, actual: %s", + expectedType, + actualType, + ) + panic(AssertionError{ + Message: message, + LocationRange: invocation.LocationRange, + }) + } - if !equal { - message := fmt.Sprintf( - "not equal: expected: %s, actual: %s", - expected, + equal := expected.Equal( + inter, + invocation.LocationRange, actual, ) - panic(AssertionError{ - Message: message, - LocationRange: invocation.LocationRange, - }) - } - return interpreter.Void - }, -) + if !equal { + message := fmt.Sprintf( + "not equal: expected: %s, actual: %s", + expected, + actual, + ) + panic(AssertionError{ + Message: message, + LocationRange: invocation.LocationRange, + }) + } + + return interpreter.Void + }, + ) +} // 'Test.fail' function @@ -190,24 +223,31 @@ var testTypeFailFunctionType = &sema.FunctionType{ Arity: &sema.Arity{Min: 0, Max: 1}, } -var testTypeFailFunction = interpreter.NewUnmeteredHostFunctionValue( - testTypeFailFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - var message string - if len(invocation.Arguments) > 0 { - messageValue, ok := invocation.Arguments[0].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) +func testTypeFailFunction( + inter *interpreter.Interpreter, + testContractValue *interpreter.CompositeValue, +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + testTypeFailFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + var message string + if len(invocation.Arguments) > 0 { + messageValue, ok := invocation.Arguments[0].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } + message = messageValue.Str } - message = messageValue.Str - } - panic(AssertionError{ - Message: message, - LocationRange: invocation.LocationRange, - }) - }, -) + panic(AssertionError{ + Message: message, + LocationRange: invocation.LocationRange, + }) + }, + ) +} // 'Test.expect' function @@ -248,41 +288,45 @@ func newTestTypeExpectFunctionType(matcherType *sema.CompositeType) *sema.Functi } } -func newTestTypeExpectFunction(functionType *sema.FunctionType) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - functionType, - func(invocation interpreter.Invocation) interpreter.Value { - value := invocation.Arguments[0] - - matcher, ok := invocation.Arguments[1].(*interpreter.CompositeValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - inter := invocation.Interpreter - locationRange := invocation.LocationRange +func newTestTypeExpectFunction(functionType *sema.FunctionType) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + functionType, + func(invocation interpreter.Invocation) interpreter.Value { + value := invocation.Arguments[0] + + matcher, ok := invocation.Arguments[1].(*interpreter.CompositeValue) + if !ok { + panic(errors.NewUnreachableError()) + } - result := invokeMatcherTest( - inter, - matcher, - value, - locationRange, - ) + inter := invocation.Interpreter + locationRange := invocation.LocationRange - if !result { - message := fmt.Sprintf( - "given value is: %s", + result := invokeMatcherTest( + inter, + matcher, value, + locationRange, ) - panic(AssertionError{ - Message: message, - LocationRange: locationRange, - }) - } - return interpreter.Void - }, - ) + if !result { + message := fmt.Sprintf( + "given value is: %s", + value, + ) + panic(AssertionError{ + Message: message, + LocationRange: locationRange, + }) + } + + return interpreter.Void + }, + ) + } } func invokeMatcherTest( @@ -346,8 +390,14 @@ var testTypeReadFileFunctionType = &sema.FunctionType{ ReturnTypeAnnotation: sema.StringTypeAnnotation, } -func newTestTypeReadFileFunction(testFramework TestFramework) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +func newTestTypeReadFileFunction( + testFramework TestFramework, + inter *interpreter.Interpreter, + testContractValue *interpreter.CompositeValue, +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, testTypeReadFileFunctionType, func(invocation interpreter.Invocation) interpreter.Value { pathString, ok := invocation.Arguments[0].(*interpreter.StringValue) @@ -425,22 +475,26 @@ func newTestTypeNewMatcherFunctionType(matcherType *sema.CompositeType) *sema.Fu func newTestTypeNewMatcherFunction( newMatcherFunctionType *sema.FunctionType, matcherTestFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - newMatcherFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - test, ok := invocation.Arguments[0].(interpreter.FunctionValue) - if !ok { - panic(errors.NewUnreachableError()) - } +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + newMatcherFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + test, ok := invocation.Arguments[0].(interpreter.FunctionValue) + if !ok { + panic(errors.NewUnreachableError()) + } - return newMatcherWithGenericTestFunction( - invocation, - test, - matcherTestFunctionType, - ) - }, - ) + return newMatcherWithGenericTestFunction( + invocation, + test, + matcherTestFunctionType, + ) + }, + ) + } } // `Test.equal` @@ -481,44 +535,49 @@ func newTestTypeEqualFunctionType(matcherType *sema.CompositeType) *sema.Functio func newTestTypeEqualFunction( equalFunctionType *sema.FunctionType, matcherTestFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - equalFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - otherValue, ok := invocation.Arguments[0].(interpreter.EquatableValue) - if !ok { - panic(errors.NewUnreachableError()) - } +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + equalFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + otherValue, ok := invocation.Arguments[0].(interpreter.EquatableValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter + inter := invocation.Interpreter - equalTestFunc := interpreter.NewHostFunctionValue( - nil, - matcherTestFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { + // This is a static function. + equalTestFunc := interpreter.NewStaticHostFunctionValue( + nil, + matcherTestFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { - thisValue, ok := invocation.Arguments[0].(interpreter.EquatableValue) - if !ok { - panic(errors.NewUnreachableError()) - } + thisValue, ok := invocation.Arguments[0].(interpreter.EquatableValue) + if !ok { + panic(errors.NewUnreachableError()) + } - equal := thisValue.Equal( - inter, - invocation.LocationRange, - otherValue, - ) + equal := thisValue.Equal( + inter, + invocation.LocationRange, + otherValue, + ) - return interpreter.AsBoolValue(equal) - }, - ) + return interpreter.AsBoolValue(equal) + }, + ) - return newMatcherWithGenericTestFunction( - invocation, - equalTestFunc, - matcherTestFunctionType, - ) - }, - ) + return newMatcherWithGenericTestFunction( + invocation, + equalTestFunc, + matcherTestFunctionType, + ) + }, + ) + } } // `Test.beEmpty` @@ -540,34 +599,40 @@ func newTestTypeBeEmptyFunctionType(matcherType *sema.CompositeType) *sema.Funct func newTestTypeBeEmptyFunction( beEmptyFunctionType *sema.FunctionType, matcherTestFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - beEmptyFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - beEmptyTestFunc := interpreter.NewHostFunctionValue( - nil, - matcherTestFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - var isEmpty bool - switch value := invocation.Arguments[0].(type) { - case *interpreter.ArrayValue: - isEmpty = value.Count() == 0 - case *interpreter.DictionaryValue: - isEmpty = value.Count() == 0 - default: - panic(errors.NewDefaultUserError("expected Array or Dictionary argument")) - } - - return interpreter.AsBoolValue(isEmpty) - }, - ) +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + beEmptyFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + + // This is a static function. + beEmptyTestFunc := interpreter.NewStaticHostFunctionValue( + nil, + matcherTestFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + var isEmpty bool + switch value := invocation.Arguments[0].(type) { + case *interpreter.ArrayValue: + isEmpty = value.Count() == 0 + case *interpreter.DictionaryValue: + isEmpty = value.Count() == 0 + default: + panic(errors.NewDefaultUserError("expected Array or Dictionary argument")) + } + + return interpreter.AsBoolValue(isEmpty) + }, + ) - return newMatcherWithAnyStructTestFunction( - invocation, - beEmptyTestFunc, - ) - }, - ) + return newMatcherWithAnyStructTestFunction( + invocation, + beEmptyTestFunc, + ) + }, + ) + } } // `Test.haveElementCount` @@ -596,39 +661,44 @@ func newTestTypeHaveElementCountFunctionType(matcherType *sema.CompositeType) *s func newTestTypeHaveElementCountFunction( haveElementCountFunctionType *sema.FunctionType, matcherTestFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - haveElementCountFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - count, ok := invocation.Arguments[0].(interpreter.IntValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - haveElementCountTestFunc := interpreter.NewHostFunctionValue( - nil, - matcherTestFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - var matchingCount bool - switch value := invocation.Arguments[0].(type) { - case *interpreter.ArrayValue: - matchingCount = value.Count() == count.ToInt(invocation.LocationRange) - case *interpreter.DictionaryValue: - matchingCount = value.Count() == count.ToInt(invocation.LocationRange) - default: - panic(errors.NewDefaultUserError("expected Array or Dictionary argument")) - } +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + haveElementCountFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + count, ok := invocation.Arguments[0].(interpreter.IntValue) + if !ok { + panic(errors.NewUnreachableError()) + } - return interpreter.AsBoolValue(matchingCount) - }, - ) + // This is a static function. + haveElementCountTestFunc := interpreter.NewStaticHostFunctionValue( + nil, + matcherTestFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + var matchingCount bool + switch value := invocation.Arguments[0].(type) { + case *interpreter.ArrayValue: + matchingCount = value.Count() == count.ToInt(invocation.LocationRange) + case *interpreter.DictionaryValue: + matchingCount = value.Count() == count.ToInt(invocation.LocationRange) + default: + panic(errors.NewDefaultUserError("expected Array or Dictionary argument")) + } + + return interpreter.AsBoolValue(matchingCount) + }, + ) - return newMatcherWithAnyStructTestFunction( - invocation, - haveElementCountTestFunc, - ) - }, - ) + return newMatcherWithAnyStructTestFunction( + invocation, + haveElementCountTestFunc, + ) + }, + ) + } } // `Test.contain` @@ -658,49 +728,54 @@ func newTestTypeContainFunctionType(matcherType *sema.CompositeType) *sema.Funct func newTestTypeContainFunction( containFunctionType *sema.FunctionType, matcherTestFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - containFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - element, ok := invocation.Arguments[0].(interpreter.EquatableValue) - if !ok { - panic(errors.NewUnreachableError()) - } - - inter := invocation.Interpreter - - containTestFunc := interpreter.NewHostFunctionValue( - nil, - matcherTestFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - var elementFound interpreter.BoolValue - switch value := invocation.Arguments[0].(type) { - case *interpreter.ArrayValue: - elementFound = value.Contains( - inter, - invocation.LocationRange, - element, - ) - case *interpreter.DictionaryValue: - elementFound = value.ContainsKey( - inter, - invocation.LocationRange, - element, - ) - default: - panic(errors.NewDefaultUserError("expected Array or Dictionary argument")) - } +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + containFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + element, ok := invocation.Arguments[0].(interpreter.EquatableValue) + if !ok { + panic(errors.NewUnreachableError()) + } - return elementFound - }, - ) + inter := invocation.Interpreter + + // This is a static function. + containTestFunc := interpreter.NewStaticHostFunctionValue( + nil, + matcherTestFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + var elementFound interpreter.BoolValue + switch value := invocation.Arguments[0].(type) { + case *interpreter.ArrayValue: + elementFound = value.Contains( + inter, + invocation.LocationRange, + element, + ) + case *interpreter.DictionaryValue: + elementFound = value.ContainsKey( + inter, + invocation.LocationRange, + element, + ) + default: + panic(errors.NewDefaultUserError("expected Array or Dictionary argument")) + } + + return elementFound + }, + ) - return newMatcherWithAnyStructTestFunction( - invocation, - containTestFunc, - ) - }, - ) + return newMatcherWithAnyStructTestFunction( + invocation, + containTestFunc, + ) + }, + ) + } } // `Test.beGreaterThan` @@ -729,42 +804,47 @@ func newTestTypeBeGreaterThanFunctionType(matcherType *sema.CompositeType) *sema func newTestTypeBeGreaterThanFunction( beGreaterThanFunctionType *sema.FunctionType, matcherTestFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - beGreaterThanFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - otherValue, ok := invocation.Arguments[0].(interpreter.NumberValue) - if !ok { - panic(errors.NewUnreachableError()) - } +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + beGreaterThanFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + otherValue, ok := invocation.Arguments[0].(interpreter.NumberValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter + inter := invocation.Interpreter - beGreaterThanTestFunc := interpreter.NewHostFunctionValue( - nil, - matcherTestFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - thisValue, ok := invocation.Arguments[0].(interpreter.NumberValue) - if !ok { - panic(errors.NewUnreachableError()) - } + // This is a static function. + beGreaterThanTestFunc := interpreter.NewStaticHostFunctionValue( + nil, + matcherTestFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + thisValue, ok := invocation.Arguments[0].(interpreter.NumberValue) + if !ok { + panic(errors.NewUnreachableError()) + } - isGreaterThan := thisValue.Greater( - inter, - otherValue, - invocation.LocationRange, - ) + isGreaterThan := thisValue.Greater( + inter, + otherValue, + invocation.LocationRange, + ) - return isGreaterThan - }, - ) + return isGreaterThan + }, + ) - return newMatcherWithAnyStructTestFunction( - invocation, - beGreaterThanTestFunc, - ) - }, - ) + return newMatcherWithAnyStructTestFunction( + invocation, + beGreaterThanTestFunc, + ) + }, + ) + } } // `Test.beLessThan` @@ -822,92 +902,101 @@ func newTestTypeExpectFailureFunctionType() *sema.FunctionType { func newTestTypeExpectFailureFunction( testExpectFailureFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - testExpectFailureFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - inter := invocation.Interpreter - functionValue, ok := invocation.Arguments[0].(interpreter.FunctionValue) - if !ok { - panic(errors.NewUnreachableError()) - } - functionType := functionValue.FunctionType() +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + testExpectFailureFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + inter := invocation.Interpreter + functionValue, ok := invocation.Arguments[0].(interpreter.FunctionValue) + if !ok { + panic(errors.NewUnreachableError()) + } + functionType := functionValue.FunctionType() - errorMessage, ok := invocation.Arguments[1].(*interpreter.StringValue) - if !ok { - panic(errors.NewUnreachableError()) - } + errorMessage, ok := invocation.Arguments[1].(*interpreter.StringValue) + if !ok { + panic(errors.NewUnreachableError()) + } - failedAsExpected := true + failedAsExpected := true - defer inter.RecoverErrors(func(internalErr error) { - if !failedAsExpected { - panic(internalErr) - } else if !strings.Contains(internalErr.Error(), errorMessage.Str) { - msg := fmt.Sprintf( - "Expected error message to include: %s.", - errorMessage, - ) - panic( - errors.NewDefaultUserError(msg), - ) - } - }) + defer inter.RecoverErrors(func(internalErr error) { + if !failedAsExpected { + panic(internalErr) + } else if !strings.Contains(internalErr.Error(), errorMessage.Str) { + msg := fmt.Sprintf( + "Expected error message to include: %s.", + errorMessage, + ) + panic( + errors.NewDefaultUserError(msg), + ) + } + }) - _, err := inter.InvokeExternally( - functionValue, - functionType, - nil, - ) - if err == nil { - failedAsExpected = false - panic(errors.NewDefaultUserError("Expected a failure, but found none.")) - } + _, err := inter.InvokeExternally( + functionValue, + functionType, + nil, + ) + if err == nil { + failedAsExpected = false + panic(errors.NewDefaultUserError("Expected a failure, but found none.")) + } - return interpreter.Void - }, - ) + return interpreter.Void + }, + ) + } } func newTestTypeBeLessThanFunction( beLessThanFunctionType *sema.FunctionType, matcherTestFunctionType *sema.FunctionType, -) interpreter.FunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( - beLessThanFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - otherValue, ok := invocation.Arguments[0].(interpreter.NumberValue) - if !ok { - panic(errors.NewUnreachableError()) - } +) testContractBoundFunctionGenerator { + return func(inter *interpreter.Interpreter, testContractValue *interpreter.CompositeValue) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + testContractValue, + beLessThanFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + otherValue, ok := invocation.Arguments[0].(interpreter.NumberValue) + if !ok { + panic(errors.NewUnreachableError()) + } - inter := invocation.Interpreter + inter := invocation.Interpreter - beLessThanTestFunc := interpreter.NewHostFunctionValue( - nil, - matcherTestFunctionType, - func(invocation interpreter.Invocation) interpreter.Value { - thisValue, ok := invocation.Arguments[0].(interpreter.NumberValue) - if !ok { - panic(errors.NewUnreachableError()) - } + // This is a static function. + beLessThanTestFunc := interpreter.NewStaticHostFunctionValue( + nil, + matcherTestFunctionType, + func(invocation interpreter.Invocation) interpreter.Value { + thisValue, ok := invocation.Arguments[0].(interpreter.NumberValue) + if !ok { + panic(errors.NewUnreachableError()) + } - isLessThan := thisValue.Less( - inter, - otherValue, - invocation.LocationRange, - ) + isLessThan := thisValue.Less( + inter, + otherValue, + invocation.LocationRange, + ) - return isLessThan - }, - ) + return isLessThan + }, + ) - return newMatcherWithAnyStructTestFunction( - invocation, - beLessThanTestFunc, - ) - }, - ) + return newMatcherWithAnyStructTestFunction( + invocation, + beLessThanTestFunc, + ) + }, + ) + } } func newTestContractType() *TestContractType { @@ -930,8 +1019,10 @@ func newTestContractType() *TestContractType { TestContractLocation, nil, &sema.Config{ - BaseValueActivation: activation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return activation + }, + AccessCheckMode: sema.AccessCheckModeStrict, }, ) if err != nil { @@ -1228,22 +1319,24 @@ func (t *TestContractType) NewTestContract( compositeValue := value.(*interpreter.CompositeValue) // Inject natively implemented function values - compositeValue.Functions[testTypeAssertFunctionName] = testTypeAssertFunction - compositeValue.Functions[testTypeAssertEqualFunctionName] = testTypeAssertEqualFunction - compositeValue.Functions[testTypeFailFunctionName] = testTypeFailFunction - compositeValue.Functions[testTypeExpectFunctionName] = t.expectFunction - compositeValue.Functions[testTypeReadFileFunctionName] = - newTestTypeReadFileFunction(testFramework) + compositeValue.Functions.Set(testTypeAssertFunctionName, testTypeAssertFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeAssertEqualFunctionName, testTypeAssertEqualFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeFailFunctionName, testTypeFailFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeExpectFunctionName, t.expectFunction(inter, compositeValue)) + compositeValue.Functions.Set( + testTypeReadFileFunctionName, + newTestTypeReadFileFunction(testFramework, inter, compositeValue), + ) // Inject natively implemented matchers - compositeValue.Functions[testTypeNewMatcherFunctionName] = t.newMatcherFunction - compositeValue.Functions[testTypeEqualFunctionName] = t.equalFunction - compositeValue.Functions[testTypeBeEmptyFunctionName] = t.beEmptyFunction - compositeValue.Functions[testTypeHaveElementCountFunctionName] = t.haveElementCountFunction - compositeValue.Functions[testTypeContainFunctionName] = t.containFunction - compositeValue.Functions[testTypeBeGreaterThanFunctionName] = t.beGreaterThanFunction - compositeValue.Functions[testTypeBeLessThanFunctionName] = t.beLessThanFunction - compositeValue.Functions[testExpectFailureFunctionName] = t.expectFailureFunction + compositeValue.Functions.Set(testTypeNewMatcherFunctionName, t.newMatcherFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeEqualFunctionName, t.equalFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeBeEmptyFunctionName, t.beEmptyFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeHaveElementCountFunctionName, t.haveElementCountFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeContainFunctionName, t.containFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeBeGreaterThanFunctionName, t.beGreaterThanFunction(inter, compositeValue)) + compositeValue.Functions.Set(testTypeBeLessThanFunctionName, t.beLessThanFunction(inter, compositeValue)) + compositeValue.Functions.Set(testExpectFailureFunctionName, t.expectFailureFunction(inter, compositeValue)) return compositeValue, nil } diff --git a/runtime/stdlib/test_emulatorbackend.go b/runtime/stdlib/test_emulatorbackend.go index 1e087139ea..4a6199fb80 100644 --- a/runtime/stdlib/test_emulatorbackend.go +++ b/runtime/stdlib/test_emulatorbackend.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -254,9 +254,13 @@ The 'returnValue' field of the result will be nil if the script failed. ` func (t *testEmulatorBackendType) newExecuteScriptFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.executeScriptFunctionType, func(invocation interpreter.Invocation) interpreter.Value { inter := invocation.Interpreter @@ -266,7 +270,11 @@ func (t *testEmulatorBackendType) newExecuteScriptFunction( panic(errors.NewUnreachableError()) } - args, err := arrayValueToSlice(inter, invocation.Arguments[1]) + args, err := arrayValueToSlice( + inter, + invocation.Arguments[1], + invocation.LocationRange, + ) if err != nil { panic(errors.NewUnexpectedErrorFromCause(err)) } @@ -289,9 +297,13 @@ The returned account can be used to sign and authorize transactions. ` func (t *testEmulatorBackendType) newCreateAccountFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.createAccountFunctionType, func(invocation interpreter.Invocation) interpreter.Value { account, err := blockchain.CreateAccount() @@ -303,7 +315,6 @@ func (t *testEmulatorBackendType) newCreateAccountFunction( locationRange := invocation.LocationRange return newTestAccountValue( - blockchain, inter, locationRange, account, @@ -313,7 +324,6 @@ func (t *testEmulatorBackendType) newCreateAccountFunction( } func newTestAccountValue( - blockchain Blockchain, inter *interpreter.Interpreter, locationRange interpreter.LocationRange, account *Account, @@ -322,14 +332,10 @@ func newTestAccountValue( // Create address value address := interpreter.NewAddressValue(nil, account.Address) - standardLibraryHandler := blockchain.StandardLibraryHandler() - publicKey := NewPublicKeyValue( inter, locationRange, account.PublicKey, - standardLibraryHandler, - standardLibraryHandler, ) // Create an 'Account' by calling its constructor. @@ -359,9 +365,13 @@ Returns the account for the given address. ` func (t *testEmulatorBackendType) newGetAccountFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.getAccountFunctionType, func(invocation interpreter.Invocation) interpreter.Value { address, ok := invocation.Arguments[0].(interpreter.AddressValue) @@ -382,7 +392,6 @@ func (t *testEmulatorBackendType) newGetAccountFunction( locationRange := invocation.LocationRange return newTestAccountValue( - blockchain, inter, locationRange, account, @@ -405,9 +414,13 @@ const testTransactionTypeSignersFieldName = "signers" const testTransactionTypeArgumentsFieldName = "arguments" func (t *testEmulatorBackendType) newAddTransactionFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.addTransactionFunctionType, func(invocation interpreter.Invocation) interpreter.Value { inter := invocation.Interpreter @@ -436,7 +449,7 @@ func (t *testEmulatorBackendType) newAddTransactionFunction( testTransactionTypeAuthorizersFieldName, ) - authorizers := addressArrayValueToSlice(inter, authorizerValue) + authorizers := addressArrayValueToSlice(inter, authorizerValue, locationRange) // Get signers signersValue := transactionValue.GetMember( @@ -457,7 +470,7 @@ func (t *testEmulatorBackendType) newAddTransactionFunction( locationRange, testTransactionTypeArgumentsFieldName, ) - args, err := arrayValueToSlice(inter, argsValue) + args, err := arrayValueToSlice(inter, argsValue, locationRange) if err != nil { panic(errors.NewUnexpectedErrorFromCause(err)) } @@ -489,9 +502,13 @@ Returns the result of the transaction, or nil if no transaction was scheduled. ` func (t *testEmulatorBackendType) newExecuteNextTransactionFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.executeNextTransactionFunctionType, func(invocation interpreter.Invocation) interpreter.Value { result := blockchain.ExecuteNextTransaction() @@ -515,9 +532,13 @@ Commit the current block. Committing will fail if there are un-executed transact ` func (t *testEmulatorBackendType) newCommitBlockFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.commitBlockFunctionType, func(invocation interpreter.Invocation) interpreter.Value { err := blockchain.CommitBlock() @@ -539,9 +560,13 @@ Deploys a given contract, and initializes it with the provided arguments. ` func (t *testEmulatorBackendType) newDeployContractFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.deployContractFunctionType, func(invocation interpreter.Invocation) interpreter.Value { inter := invocation.Interpreter @@ -559,7 +584,11 @@ func (t *testEmulatorBackendType) newDeployContractFunction( } // Contract init arguments - args, err := arrayValueToSlice(inter, invocation.Arguments[2]) + args, err := arrayValueToSlice( + inter, + invocation.Arguments[2], + invocation.LocationRange, + ) if err != nil { panic(err) } @@ -585,9 +614,13 @@ Returns all the logs from the blockchain, up to the calling point. ` func (t *testEmulatorBackendType) newLogsFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.logsFunctionType, func(invocation interpreter.Invocation) interpreter.Value { logs := blockchain.Logs() @@ -634,9 +667,13 @@ transactions with this account. ` func (t *testEmulatorBackendType) newServiceAccountFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.serviceAccountFunctionType, func(invocation interpreter.Invocation) interpreter.Value { serviceAccount, err := blockchain.ServiceAccount() @@ -645,7 +682,6 @@ func (t *testEmulatorBackendType) newServiceAccountFunction( } return newTestAccountValue( - blockchain, invocation.Interpreter, invocation.LocationRange, serviceAccount, @@ -664,9 +700,13 @@ optionally filtered by event type. ` func (t *testEmulatorBackendType) newEventsFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.eventsFunctionType, func(invocation interpreter.Invocation) interpreter.Value { var eventType interpreter.StaticType = nil @@ -700,9 +740,13 @@ Resets the state of the blockchain to the given height. ` func (t *testEmulatorBackendType) newResetFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.resetFunctionType, func(invocation interpreter.Invocation) interpreter.Value { height, ok := invocation.Arguments[0].(interpreter.UInt64Value) @@ -725,9 +769,13 @@ which should be passed in the form of seconds. ` func (t *testEmulatorBackendType) newMoveTimeFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.moveTimeFunctionType, func(invocation interpreter.Invocation) interpreter.Value { timeDelta, ok := invocation.Arguments[0].(interpreter.Fix64Value) @@ -750,9 +798,13 @@ current ledger state, with the given name. ` func (t *testEmulatorBackendType) newCreateSnapshotFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.createSnapshotFunctionType, func(invocation interpreter.Invocation) interpreter.Value { name, ok := invocation.Arguments[0].(*interpreter.StringValue) @@ -776,9 +828,13 @@ updates the current ledger state. ` func (t *testEmulatorBackendType) newLoadSnapshotFunction( + inter *interpreter.Interpreter, + emulatorBackend interpreter.MemberAccessibleValue, blockchain Blockchain, -) *interpreter.HostFunctionValue { - return interpreter.NewUnmeteredHostFunctionValue( +) interpreter.BoundFunctionValue { + return interpreter.NewUnmeteredBoundHostFunctionValue( + inter, + emulatorBackend, t.loadSnapshotFunctionType, func(invocation interpreter.Invocation) interpreter.Value { name, ok := invocation.Arguments[0].(*interpreter.StringValue) @@ -797,72 +853,84 @@ func (t *testEmulatorBackendType) newEmulatorBackend( blockchain Blockchain, locationRange interpreter.LocationRange, ) *interpreter.CompositeValue { - var fields = []interpreter.CompositeField{ + + // TODO: Use SimpleCompositeValue + emulatorBackend := interpreter.NewCompositeValue( + inter, + locationRange, + t.compositeType.Location, + testEmulatorBackendTypeName, + common.CompositeKindStructure, + nil, + common.ZeroAddress, + ) + + fields := []interpreter.CompositeField{ { Name: testEmulatorBackendTypeExecuteScriptFunctionName, - Value: t.newExecuteScriptFunction(blockchain), + Value: t.newExecuteScriptFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeCreateAccountFunctionName, - Value: t.newCreateAccountFunction(blockchain), + Value: t.newCreateAccountFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeAddTransactionFunctionName, - Value: t.newAddTransactionFunction(blockchain), + Value: t.newAddTransactionFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeExecuteNextTransactionFunctionName, - Value: t.newExecuteNextTransactionFunction(blockchain), + Value: t.newExecuteNextTransactionFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeCommitBlockFunctionName, - Value: t.newCommitBlockFunction(blockchain), + Value: t.newCommitBlockFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeDeployContractFunctionName, - Value: t.newDeployContractFunction(blockchain), + Value: t.newDeployContractFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeLogsFunctionName, - Value: t.newLogsFunction(blockchain), + Value: t.newLogsFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeServiceAccountFunctionName, - Value: t.newServiceAccountFunction(blockchain), + Value: t.newServiceAccountFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeEventsFunctionName, - Value: t.newEventsFunction(blockchain), + Value: t.newEventsFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeResetFunctionName, - Value: t.newResetFunction(blockchain), + Value: t.newResetFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeMoveTimeFunctionName, - Value: t.newMoveTimeFunction(blockchain), + Value: t.newMoveTimeFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeCreateSnapshotFunctionName, - Value: t.newCreateSnapshotFunction(blockchain), + Value: t.newCreateSnapshotFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeLoadSnapshotFunctionName, - Value: t.newLoadSnapshotFunction(blockchain), + Value: t.newLoadSnapshotFunction(inter, emulatorBackend, blockchain), }, { Name: testEmulatorBackendTypeGetAccountFunctionName, - Value: t.newGetAccountFunction(blockchain), + Value: t.newGetAccountFunction(inter, emulatorBackend, blockchain), }, } - // TODO: Use SimpleCompositeValue - return interpreter.NewCompositeValue( - inter, - locationRange, - t.compositeType.Location, - testEmulatorBackendTypeName, - common.CompositeKindStructure, - fields, - common.ZeroAddress, - ) + for _, field := range fields { + emulatorBackend.SetMember( + inter, + locationRange, + field.Name, + field.Value, + ) + } + + return emulatorBackend } diff --git a/runtime/stdlib/test_test.go b/runtime/stdlib/test_test.go index 6a3a2e4af4..c34232df05 100644 --- a/runtime/stdlib/test_test.go +++ b/runtime/stdlib/test_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ */ // This is in order to avoid cyclic import errors with runtime package -package stdlib_test +package stdlib import ( "errors" @@ -27,7 +27,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/onflow/cadence/runtime" "github.com/onflow/cadence/runtime/activations" "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" @@ -35,14 +34,13 @@ import ( "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/sema" - "github.com/onflow/cadence/runtime/stdlib" "github.com/onflow/cadence/runtime/tests/checker" "github.com/onflow/cadence/runtime/tests/utils" ) func newTestContractInterpreter(t *testing.T, code string) (*interpreter.Interpreter, error) { testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{} }, } @@ -52,7 +50,7 @@ func newTestContractInterpreter(t *testing.T, code string) (*interpreter.Interpr func newTestContractInterpreterWithTestFramework( t *testing.T, code string, - testFramework stdlib.TestFramework, + testFramework TestFramework, ) (*interpreter.Interpreter, error) { program, err := parser.ParseProgram( nil, @@ -61,17 +59,19 @@ func newTestContractInterpreterWithTestFramework( ) require.NoError(t, err) - activation := sema.NewVariableActivation(sema.BaseValueActivation) - activation.DeclareValue(stdlib.AssertFunction) - activation.DeclareValue(stdlib.PanicFunction) + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(AssertFunction) + baseValueActivation.DeclareValue(PanicFunction) checker, err := sema.NewChecker( program, utils.TestLocation, nil, &sema.Config{ - BaseValueActivation: activation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeStrict, ImportHandler: func( checker *sema.Checker, importedLocation common.Location, @@ -80,15 +80,15 @@ func newTestContractInterpreterWithTestFramework( sema.Import, error, ) { - if importedLocation == stdlib.TestContractLocation { + if importedLocation == TestContractLocation { return sema.ElaborationImport{ - Elaboration: stdlib.GetTestContractType().Checker.Elaboration, + Elaboration: GetTestContractType().Checker.Elaboration, }, nil } return nil, errors.New("invalid import") }, - ContractValueHandler: stdlib.TestCheckerContractValueHandler, + ContractValueHandler: TestCheckerContractValueHandler, }, ) require.NoError(t, err) @@ -103,18 +103,20 @@ func newTestContractInterpreterWithTestFramework( var uuid uint64 = 0 baseActivation := activations.NewActivation(nil, interpreter.BaseActivation) - interpreter.Declare(baseActivation, stdlib.AssertFunction) - interpreter.Declare(baseActivation, stdlib.PanicFunction) + interpreter.Declare(baseActivation, AssertFunction) + interpreter.Declare(baseActivation, PanicFunction) inter, err := interpreter.NewInterpreter( interpreter.ProgramFromChecker(checker), checker.Location, &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, ImportLocationHandler: func(inter *interpreter.Interpreter, location common.Location) interpreter.Import { - if location == stdlib.TestContractLocation { - program := interpreter.ProgramFromChecker(stdlib.GetTestContractType().Checker) + if location == TestContractLocation { + program := interpreter.ProgramFromChecker(GetTestContractType().Checker) subInterpreter, err := inter.NewSubInterpreter(program, location) if err != nil { panic(err) @@ -126,7 +128,7 @@ func newTestContractInterpreterWithTestFramework( return nil }, - ContractValueHandler: stdlib.NewTestInterpreterContractValueHandler(testFramework), + ContractValueHandler: NewTestInterpreterContractValueHandler(testFramework), UUIDHandler: func() (uint64, error) { uuid++ return uuid, nil @@ -332,9 +334,9 @@ func TestTestNewMatcher(t *testing.T) { _, err := newTestContractInterpreter(t, script) - errs := checker.RequireCheckerErrors(t, err, 2) - assert.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + errs := checker.RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) t.Run("combined matcher mismatching types", func(t *testing.T) { @@ -497,9 +499,9 @@ func TestTestEqualMatcher(t *testing.T) { _, err := newTestContractInterpreter(t, script) - errs := checker.RequireCheckerErrors(t, err, 2) - assert.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + errs := checker.RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) t.Run("matcher or", func(t *testing.T) { @@ -750,7 +752,7 @@ func TestAssertEqual(t *testing.T) { _, err = inter.Invoke("test") require.Error(t, err) - assert.ErrorAs(t, err, &stdlib.AssertionError{}) + assert.ErrorAs(t, err, &AssertionError{}) assert.ErrorContains( t, err, @@ -758,6 +760,33 @@ func TestAssertEqual(t *testing.T) { ) }) + t.Run("fail with value equality on optional type", func(t *testing.T) { + t.Parallel() + + script := ` + import Test + + access(all) + fun test() { + let expected: Int = 15 + let actual: Int? = 15 + Test.assertEqual(expected, actual) + } + ` + + inter, err := newTestContractInterpreter(t, script) + require.NoError(t, err) + + _, err = inter.Invoke("test") + require.Error(t, err) + assert.ErrorAs(t, err, &AssertionError{}) + assert.ErrorContains( + t, + err, + "assertion failed: not equal types: expected: Int, actual: Int?", + ) + }) + t.Run("different types", func(t *testing.T) { t.Parallel() @@ -775,11 +804,11 @@ func TestAssertEqual(t *testing.T) { _, err = inter.Invoke("test") require.Error(t, err) - assert.ErrorAs(t, err, &stdlib.AssertionError{}) + assert.ErrorAs(t, err, &AssertionError{}) assert.ErrorContains( t, err, - "assertion failed: not equal: expected: true, actual: 1", + "assertion failed: not equal types: expected: Bool, actual: Int", ) }) @@ -812,7 +841,7 @@ func TestAssertEqual(t *testing.T) { _, err = inter.Invoke("testNotEqual") require.Error(t, err) - assert.ErrorAs(t, err, &stdlib.AssertionError{}) + assert.ErrorAs(t, err, &AssertionError{}) assert.ErrorContains( t, err, @@ -860,7 +889,7 @@ func TestAssertEqual(t *testing.T) { _, err = inter.Invoke("testNotEqual") require.Error(t, err) - assert.ErrorAs(t, err, &stdlib.AssertionError{}) + assert.ErrorAs(t, err, &AssertionError{}) assert.ErrorContains( t, err, @@ -897,7 +926,7 @@ func TestAssertEqual(t *testing.T) { _, err = inter.Invoke("testNotEqual") require.Error(t, err) - assert.ErrorAs(t, err, &stdlib.AssertionError{}) + assert.ErrorAs(t, err, &AssertionError{}) assert.ErrorContains( t, err, @@ -934,7 +963,7 @@ func TestAssertEqual(t *testing.T) { _, err = inter.Invoke("testNotEqual") require.Error(t, err) - assert.ErrorAs(t, err, &stdlib.AssertionError{}) + assert.ErrorAs(t, err, &AssertionError{}) assert.ErrorContains( t, err, @@ -1001,7 +1030,7 @@ func TestAssertEqual(t *testing.T) { fun test() { let foo = Foo() let bar <- create Bar() - Test.expect(foo, Test.equal(<-bar)) + Test.assertEqual(foo, <-bar) } access(all) @@ -1842,7 +1871,7 @@ func TestTestExpect(t *testing.T) { _, err = inter.Invoke("test") require.Error(t, err) - assertionErr := &stdlib.AssertionError{} + assertionErr := &AssertionError{} assert.ErrorAs(t, err, assertionErr) assert.Equal(t, "given value is: \"this string\"", assertionErr.Message) assert.Equal(t, "test", assertionErr.LocationRange.Location.String()) @@ -1902,9 +1931,9 @@ func TestTestExpect(t *testing.T) { _, err := newTestContractInterpreter(t, script) - errs := checker.RequireCheckerErrors(t, err, 2) - assert.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + errs := checker.RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) t.Run("resource with resource matcher", func(t *testing.T) { @@ -2210,7 +2239,7 @@ func TestBlockchain(t *testing.T) { eventsInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ events: func(inter *interpreter.Interpreter, eventType interpreter.StaticType) interpreter.Value { eventsInvoked = true @@ -2259,7 +2288,7 @@ func TestBlockchain(t *testing.T) { eventsInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ events: func(inter *interpreter.Interpreter, eventType interpreter.StaticType) interpreter.Value { eventsInvoked = true @@ -2304,7 +2333,7 @@ func TestBlockchain(t *testing.T) { resetInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ reset: func(height uint64) { resetInvoked = true @@ -2338,7 +2367,7 @@ func TestBlockchain(t *testing.T) { resetInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ reset: func(height uint64) { resetInvoked = true @@ -2371,7 +2400,7 @@ func TestBlockchain(t *testing.T) { moveTimeInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ moveTime: func(timeDelta int64) { moveTimeInvoked = true @@ -2408,7 +2437,7 @@ func TestBlockchain(t *testing.T) { moveTimeInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ moveTime: func(timeDelta int64) { moveTimeInvoked = true @@ -2442,7 +2471,7 @@ func TestBlockchain(t *testing.T) { moveTimeInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ moveTime: func(timeDelta int64) { moveTimeInvoked = true @@ -2472,7 +2501,7 @@ func TestBlockchain(t *testing.T) { createSnapshotInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ createSnapshot: func(name string) error { createSnapshotInvoked = true @@ -2508,7 +2537,7 @@ func TestBlockchain(t *testing.T) { createSnapshotInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ createSnapshot: func(name string) error { createSnapshotInvoked = true @@ -2545,7 +2574,7 @@ func TestBlockchain(t *testing.T) { loadSnapshotInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ createSnapshot: func(name string) error { assert.Equal(t, "adminCreated", name) @@ -2587,7 +2616,7 @@ func TestBlockchain(t *testing.T) { loadSnapshotInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ createSnapshot: func(name string) error { assert.Equal(t, "adminCreated", name) @@ -2634,7 +2663,7 @@ func TestBlockchain(t *testing.T) { deployContractInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ deployContract: func( inter *interpreter.Interpreter, @@ -2688,7 +2717,7 @@ func TestBlockchain(t *testing.T) { deployContractInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ deployContract: func( inter *interpreter.Interpreter, @@ -2729,24 +2758,21 @@ func TestBlockchain(t *testing.T) { getAccountInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ - getAccount: func(address interpreter.AddressValue) (*stdlib.Account, error) { + getAccount: func(address interpreter.AddressValue) (*Account, error) { getAccountInvoked = true assert.Equal(t, "0000000000000009", address.Hex()) addr := common.Address(address) - return &stdlib.Account{ + return &Account{ Address: addr, - PublicKey: &stdlib.PublicKey{ + PublicKey: &PublicKey{ PublicKey: []byte{1, 2, 3}, SignAlgo: sema.SignatureAlgorithmECDSA_P256, }, }, nil }, - stdlibHandler: func() stdlib.StandardLibraryHandler { - return runtime.NewBaseInterpreterEnvironment(runtime.Config{}) - }, } }, } @@ -2775,17 +2801,14 @@ func TestBlockchain(t *testing.T) { getAccountInvoked := false testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ - getAccount: func(address interpreter.AddressValue) (*stdlib.Account, error) { + getAccount: func(address interpreter.AddressValue) (*Account, error) { getAccountInvoked = true assert.Equal(t, "0000000000000009", address.Hex()) return nil, fmt.Errorf("failed to retrieve account with address: %s", address) }, - stdlibHandler: func() stdlib.StandardLibraryHandler { - return runtime.NewBaseInterpreterEnvironment(runtime.Config{}) - }, } }, } @@ -2821,20 +2844,17 @@ func TestBlockchainAccount(t *testing.T) { ` testFramework := &mockedTestFramework{ - emulatorBackend: func() stdlib.Blockchain { + emulatorBackend: func() Blockchain { return &mockedBlockchain{ - createAccount: func() (*stdlib.Account, error) { - return &stdlib.Account{ - PublicKey: &stdlib.PublicKey{ + createAccount: func() (*Account, error) { + return &Account{ + PublicKey: &PublicKey{ PublicKey: []byte{1, 2, 3}, SignAlgo: sema.SignatureAlgorithmECDSA_P256, }, Address: common.Address{1}, }, nil }, - stdlibHandler: func() stdlib.StandardLibraryHandler { - return nil - }, } }, } @@ -2848,13 +2868,13 @@ func TestBlockchainAccount(t *testing.T) { } type mockedTestFramework struct { - emulatorBackend func() stdlib.Blockchain + emulatorBackend func() Blockchain readFile func(s string) (string, error) } -var _ stdlib.TestFramework = &mockedTestFramework{} +var _ TestFramework = &mockedTestFramework{} -func (m mockedTestFramework) EmulatorBackend() stdlib.Blockchain { +func (m mockedTestFramework) EmulatorBackend() Blockchain { if m.emulatorBackend == nil { panic("'NewEmulatorBackend' is not implemented") } @@ -2873,15 +2893,14 @@ func (m mockedTestFramework) ReadFile(fileName string) (string, error) { // mockedBlockchain is the implementation of `Blockchain` for testing purposes. type mockedBlockchain struct { runScript func(inter *interpreter.Interpreter, code string, arguments []interpreter.Value) - createAccount func() (*stdlib.Account, error) - getAccount func(interpreter.AddressValue) (*stdlib.Account, error) - addTransaction func(inter *interpreter.Interpreter, code string, authorizers []common.Address, signers []*stdlib.Account, arguments []interpreter.Value) error - executeTransaction func() *stdlib.TransactionResult + createAccount func() (*Account, error) + getAccount func(interpreter.AddressValue) (*Account, error) + addTransaction func(inter *interpreter.Interpreter, code string, authorizers []common.Address, signers []*Account, arguments []interpreter.Value) error + executeTransaction func() *TransactionResult commitBlock func() error deployContract func(inter *interpreter.Interpreter, name string, path string, arguments []interpreter.Value) error - stdlibHandler func() stdlib.StandardLibraryHandler logs func() []string - serviceAccount func() (*stdlib.Account, error) + serviceAccount func() (*Account, error) events func(inter *interpreter.Interpreter, eventType interpreter.StaticType) interpreter.Value reset func(uint64) moveTime func(int64) @@ -2889,13 +2908,13 @@ type mockedBlockchain struct { loadSnapshot func(string) error } -var _ stdlib.Blockchain = &mockedBlockchain{} +var _ Blockchain = &mockedBlockchain{} func (m mockedBlockchain) RunScript( inter *interpreter.Interpreter, code string, arguments []interpreter.Value, -) *stdlib.ScriptResult { +) *ScriptResult { if m.runScript == nil { panic("'RunScript' is not implemented") } @@ -2903,7 +2922,7 @@ func (m mockedBlockchain) RunScript( return m.RunScript(inter, code, arguments) } -func (m mockedBlockchain) CreateAccount() (*stdlib.Account, error) { +func (m mockedBlockchain) CreateAccount() (*Account, error) { if m.createAccount == nil { panic("'CreateAccount' is not implemented") } @@ -2911,7 +2930,7 @@ func (m mockedBlockchain) CreateAccount() (*stdlib.Account, error) { return m.createAccount() } -func (m mockedBlockchain) GetAccount(address interpreter.AddressValue) (*stdlib.Account, error) { +func (m mockedBlockchain) GetAccount(address interpreter.AddressValue) (*Account, error) { if m.getAccount == nil { panic("'getAccount' is not implemented") } @@ -2923,7 +2942,7 @@ func (m mockedBlockchain) AddTransaction( inter *interpreter.Interpreter, code string, authorizers []common.Address, - signers []*stdlib.Account, + signers []*Account, arguments []interpreter.Value, ) error { if m.addTransaction == nil { @@ -2933,7 +2952,7 @@ func (m mockedBlockchain) AddTransaction( return m.addTransaction(inter, code, authorizers, signers, arguments) } -func (m mockedBlockchain) ExecuteNextTransaction() *stdlib.TransactionResult { +func (m mockedBlockchain) ExecuteNextTransaction() *TransactionResult { if m.executeTransaction == nil { panic("'ExecuteNextTransaction' is not implemented") } @@ -2962,14 +2981,6 @@ func (m mockedBlockchain) DeployContract( return m.deployContract(inter, name, path, arguments) } -func (m mockedBlockchain) StandardLibraryHandler() stdlib.StandardLibraryHandler { - if m.stdlibHandler == nil { - panic("'StandardLibraryHandler' is not implemented") - } - - return m.stdlibHandler() -} - func (m mockedBlockchain) Logs() []string { if m.logs == nil { panic("'Logs' is not implemented") @@ -2978,7 +2989,7 @@ func (m mockedBlockchain) Logs() []string { return m.logs() } -func (m mockedBlockchain) ServiceAccount() (*stdlib.Account, error) { +func (m mockedBlockchain) ServiceAccount() (*Account, error) { if m.serviceAccount == nil { panic("'ServiceAccount' is not implemented") } diff --git a/runtime/stdlib/type-comparator.go b/runtime/stdlib/type-comparator.go index 642e118f36..53cf16e746 100644 --- a/runtime/stdlib/type-comparator.go +++ b/runtime/stdlib/type-comparator.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,12 +20,15 @@ package stdlib import ( "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/common" ) var _ ast.TypeEqualityChecker = &TypeComparator{} type TypeComparator struct { - RootDeclIdentifier *ast.Identifier + RootDeclIdentifier *ast.Identifier + expectedIdentifierImportLocations map[string]common.Location + foundIdentifierImportLocations map[string]common.Location } func (c *TypeComparator) CheckNominalTypeEquality(expected *ast.NominalType, found ast.Type) error { @@ -178,7 +181,15 @@ func (c *TypeComparator) checkNameEquality(expectedType *ast.NominalType, foundT // At this point, either both are qualified names, or both are simple names. // Thus, do a one-to-one match. - if expectedType.Identifier.Identifier != foundType.Identifier.Identifier { + expectedIdentifier := expectedType.Identifier.Identifier + foundIdentifier := foundType.Identifier.Identifier + + if expectedIdentifier != foundIdentifier { + return false + } + + // if the identifier is imported, then it must be imported from the same location in each type + if c.expectedIdentifierImportLocations[expectedIdentifier] != c.foundIdentifierImportLocations[foundIdentifier] { return false } diff --git a/runtime/stdlib/types.go b/runtime/stdlib/types.go index 0664c76275..7687e240b8 100644 --- a/runtime/stdlib/types.go +++ b/runtime/stdlib/types.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/value.go b/runtime/stdlib/value.go index ca31a3748f..507dbbbe97 100644 --- a/runtime/stdlib/value.go +++ b/runtime/stdlib/value.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/stdlib/webassembly.go b/runtime/stdlib/webassembly.go index cb641fdeb8..1e5a17d7ef 100644 --- a/runtime/stdlib/webassembly.go +++ b/runtime/stdlib/webassembly.go @@ -31,7 +31,7 @@ func newWebAssemblyCompileAndInstantiateFunction( gauge common.MemoryGauge, handler WebAssemblyContractHandler, ) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( + return interpreter.NewStaticHostFunctionValue( gauge, WebAssemblyTypeCompileAndInstantiateFunctionType, func(invocation interpreter.Invocation) interpreter.Value { @@ -56,18 +56,20 @@ func newWebAssemblyCompileAndInstantiateFunction( instanceValue := NewWebAssemblyInstanceValue(gauge, instance) instanceReferenceValue := interpreter.NewEphemeralReferenceValue( - gauge, + inter, interpreter.UnauthorizedAccess, instanceValue, WebAssembly_InstanceType, + locationRange, ) instantiatedSourceValue := NewWebAssemblyInstantiatedSourceValue(gauge, instanceReferenceValue) return interpreter.NewEphemeralReferenceValue( - gauge, + inter, interpreter.UnauthorizedAccess, instantiatedSourceValue, WebAssembly_InstantiatedSourceType, + locationRange, ) }, ) @@ -77,7 +79,8 @@ func newWebAssemblyInstanceGetExportFunction( gauge common.MemoryGauge, instance WebAssemblyInstance, ) *interpreter.HostFunctionValue { - return interpreter.NewHostFunctionValue( + // TODO: make bound + return interpreter.NewStaticHostFunctionValue( gauge, WebAssembly_InstanceTypeGetExportFunctionType, func(invocation interpreter.Invocation) interpreter.Value { diff --git a/runtime/storage.go b/runtime/storage.go index a679657406..1f82b278b7 100644 --- a/runtime/storage.go +++ b/runtime/storage.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package runtime import ( + "fmt" "runtime" "sort" @@ -228,6 +229,17 @@ func (s *Storage) writeContractUpdate( // Commit serializes/saves all values in the readCache in storage (through the runtime interface). func (s *Storage) Commit(inter *interpreter.Interpreter, commitContractUpdates bool) error { + return s.commit(inter, commitContractUpdates, true) +} + +// NondeterministicCommit serializes and commits all values in the deltas storage +// in nondeterministic order. This function is used when commit ordering isn't +// required (e.g. migration programs). +func (s *Storage) NondeterministicCommit(inter *interpreter.Interpreter, commitContractUpdates bool) error { + return s.commit(inter, commitContractUpdates, false) +} + +func (s *Storage) commit(inter *interpreter.Interpreter, commitContractUpdates bool, deterministic bool) error { if commitContractUpdates { s.commitContractUpdates(inter) @@ -251,7 +263,11 @@ func (s *Storage) Commit(inter *interpreter.Interpreter, commitContractUpdates b common.UseMemory(s.memoryGauge, common.NewAtreeEncodedSlabMemoryUsage(deltas)) // TODO: report encoding metric for all encoded slabs - return s.PersistentSlabStorage.FastCommit(runtime.NumCPU()) + if deterministic { + return s.PersistentSlabStorage.FastCommit(runtime.NumCPU()) + } else { + return s.PersistentSlabStorage.NondeterministicFastCommit(runtime.NumCPU()) + } } func (s *Storage) commitNewStorageMaps() error { @@ -347,8 +363,22 @@ func (s *Storage) CheckHealth() error { return a.Compare(b) < 0 }) - return errors.NewUnexpectedError("slabs not referenced from account Storage: %s", unreferencedRootSlabIDs) + return UnreferencedRootSlabsError{ + UnreferencedRootSlabIDs: unreferencedRootSlabIDs, + } } return nil } + +type UnreferencedRootSlabsError struct { + UnreferencedRootSlabIDs []atree.StorageID +} + +var _ errors.InternalError = UnreferencedRootSlabsError{} + +func (UnreferencedRootSlabsError) IsInternalError() {} + +func (e UnreferencedRootSlabsError) Error() string { + return fmt.Sprintf("slabs not referenced: %s", e.UnreferencedRootSlabIDs) +} diff --git a/runtime/storage_test.go b/runtime/storage_test.go index a0eadbaaca..053cd50cdc 100644 --- a/runtime/storage_test.go +++ b/runtime/storage_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -845,10 +845,6 @@ func TestRuntimeBatchMintAndTransfer(t *testing.T) { access(all) fun getIDs(): [UInt64] { return self.ownedNFTs.keys } - - destroy() { - destroy self.ownedNFTs - } } init() { @@ -1180,7 +1176,7 @@ func TestRuntimeStorageSaveCapability(t *testing.T) { signer.capabilities.publish(cap, at: /public/test) signer.storage.save(cap, to: %[2]s) - let cap2 = signer.capabilities.get<%[1]s>(/public/test)! + let cap2 = signer.capabilities.get<%[1]s>(/public/test) signer.storage.save(cap2, to: %[3]s) } } @@ -2371,10 +2367,6 @@ func TestRuntimeReferenceOwnerAccess(t *testing.T) { init () { self.nestedResources <- [<- create TestNestedResource()] } - - destroy () { - destroy self.nestedResources - } } access(all) fun makeTestNestingResource(): @TestNestingResource { @@ -2875,10 +2867,6 @@ func TestRuntimeStorageEnumCase(t *testing.T) { let oldR <- self.rs[r.id] <-! r destroy oldR } - - destroy() { - destroy self.rs - } } access(all) fun createEmptyCollection(): @Collection { @@ -3813,12 +3801,14 @@ func TestRuntimeStorageIteration(t *testing.T) { account.storage.forEachPublic(fun (path: PublicPath, type: Type): Bool { total = total + 1 - if var cap = account.capabilities.get<&[{Foo.Collection}]>(path) { - cap.check() - var refArray = cap.borrow()! - capTaken = true - } + var cap = account.capabilities.get<&[{Foo.Collection}]>(path) + if cap.id != 0 { + cap.check() + var refArray = cap.borrow()! + capTaken = true + } + return true }) @@ -4010,10 +4000,11 @@ func TestRuntimeStorageIteration(t *testing.T) { account.storage.forEachPublic(fun (path: PublicPath, type: Type): Bool { total = total + 1 - if var cap = account.capabilities.get<&{Foo.Collection}>(path) { - cap.check() - capTaken = true - } + var cap = account.capabilities.get<&{Foo.Collection}>(path) + if cap.id != 0 { + cap.check() + capTaken = true + } return true }) @@ -4219,7 +4210,7 @@ func TestRuntimeStorageIteration(t *testing.T) { prepare(account: &Account) { var total = 0 account.storage.forEachPublic(fun (path: PublicPath, type: Type): Bool { - var cap = account.capabilities.get<&String>(path)! + var cap = account.capabilities.get<&String>(path) cap.check() total = total + 1 return true @@ -5495,14 +5486,14 @@ func TestRuntimeAccountIterationMutation(t *testing.T) { access(all) fun foo (path: StoragePath, type: Type): Bool { return true - } + } access(all) fun main() { let account = getAuthAccount(0x1) - account.storage.forEachStored(foo) - } + account.storage.forEachStored(foo) + } ` _, err := runtime.ExecuteScript( @@ -5523,23 +5514,23 @@ func TestRuntimeAccountIterationMutation(t *testing.T) { runtime, runtimeInterface := newRuntime() const script = ` - access(all) - struct S { + access(all) + struct S { - access(all) - fun foo(path: StoragePath, type: Type): Bool { - return true - } - } + access(all) + fun foo(path: StoragePath, type: Type): Bool { + return true + } + } - access(all) + access(all) fun main() { let account = getAuthAccount(0x1) - let s = S() - account.storage.forEachStored(s.foo) - } - ` + let s = S() + account.storage.forEachStored(s.foo) + } + ` _, err := runtime.ExecuteScript( Script{ @@ -5553,3 +5544,572 @@ func TestRuntimeAccountIterationMutation(t *testing.T) { require.NoError(t, err) }) } + +func TestRuntimeTypeOrderInsignificance(t *testing.T) { + + t.Parallel() + + address := common.MustBytesToAddress([]byte{0x1}) + + newRuntime := func() (TestInterpreterRuntime, *TestRuntimeInterface) { + runtime := NewTestInterpreterRuntime() + accountCodes := map[common.Location][]byte{} + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnEmitEvent: func(event cadence.Event) error { + return nil + }, + } + return runtime, runtimeInterface + } + + t.Run("intersection types", func(t *testing.T) { + t.Parallel() + + runtime, runtimeInterface := newRuntime() + + deployTx := DeploymentTransaction("Test", []byte(` + access(all) + contract Test { + + access(all) + struct interface A {} + + + access(all) + struct interface B {} + } + `)) + + tx1 := []byte(` + import Test from 0x1 + + transaction { + prepare(account: auth(Storage) &Account) { + + let t1 = Type<&{Test.A, Test.B}>() + let t2 = Type<&{Test.B, Test.A}>() + + let dict: {Type: Bool} = {} + dict[t1] = true + + assert(dict[t1]!) + assert(dict[t2]!) + + account.storage.save(dict, to: /storage/dict) + } + } + `) + + tx2 := []byte(` + import Test from 0x1 + + transaction { + prepare(account: auth(Storage) &Account) { + + let t1 = Type<&{Test.A, Test.B}>() + let t2 = Type<&{Test.B, Test.A}>() + + let dict = account.storage.load<{Type: Bool}>(from: /storage/dict)! + + assert(dict[t1]!) + assert(dict[t2]!) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + for _, tx := range [][]byte{deployTx, tx1, tx2} { + + err := runtime.ExecuteTransaction( + Script{ + Source: tx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + } + }) + + t.Run("entitlements", func(t *testing.T) { + t.Parallel() + + runtime, runtimeInterface := newRuntime() + + deployTx := DeploymentTransaction("Test", []byte(` + access(all) + contract Test { + + access(all) + entitlement A + + + access(all) + entitlement B + } + `)) + + tx1 := []byte(` + import Test from 0x1 + + transaction { + prepare(account: auth(Storage) &Account) { + + let t1 = Type() + let t2 = Type() + + let dict: {Type: Bool} = {} + dict[t1] = true + + assert(dict[t1]!) + assert(dict[t2]!) + + account.storage.save(dict, to: /storage/dict) + } + } + `) + + tx2 := []byte(` + import Test from 0x1 + + transaction { + prepare(account: auth(Storage) &Account) { + + let t1 = Type() + let t2 = Type() + + let dict = account.storage.load<{Type: Bool}>(from: /storage/dict)! + + assert(dict[t1]!) + assert(dict[t2]!) + } + } + `) + + nextTransactionLocation := NewTransactionLocationGenerator() + + for _, tx := range [][]byte{deployTx, tx1, tx2} { + + err := runtime.ExecuteTransaction( + Script{ + Source: tx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + } + }) +} + +func TestRuntimeStorageReferenceBoundFunction(t *testing.T) { + + t.Parallel() + + t.Run("resource", func(t *testing.T) { + + runtime := NewTestInterpreterRuntime() + + signerAddress := common.MustBytesToAddress([]byte{0x42}) + + deployTx := DeploymentTransaction("Test", []byte(` + access(all) contract Test { + + access(all) resource R { + access(all) fun foo() {} + } + + access(all) fun createR(): @R { + return <-create R() + } + } + `)) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + var loggedMessages []string + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAddress}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract + + err := runtime.ExecuteTransaction( + Script{ + Source: deployTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Run test transaction + + const testTx = ` + import Test from 0x42 + + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.save(<-Test.createR(), to: /storage/r) + + let ref = signer.storage.borrow<&Test.R>(from: /storage/r)! + + var func = ref.foo + + let r <- signer.storage.load<@Test.R>(from: /storage/r)! + + // Should fail: Underlying value was removed from storage + func() + + destroy r + } + } + ` + + err = runtime.ExecuteTransaction( + Script{ + Source: []byte(testTx), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.ReferencedValueChangedError{}) + }) + + t.Run("struct", func(t *testing.T) { + t.Parallel() + + runtime := NewTestInterpreterRuntimeWithAttachments() + + tx := []byte(` + transaction { + + prepare(signer: auth(Storage, Capabilities) &Account) { + + signer.storage.save([] as [AnyStruct], to: /storage/zombieArray) + var borrowed = signer.storage.borrow(from: /storage/zombieArray)! + + var x: [Int] = [] + + var appendFunc = borrowed.append + + // If we were to call appendFunc() here, we wouldn't see a big effect as the + // next load() call will remove the array from storage + var throwaway = signer.storage.load<[AnyStruct]>(from: /storage/zombieArray) + + // Should be an error, since the value was moved out. + appendFunc(x) + } + } + `) + + signer := common.MustBytesToAddress([]byte{0x1}) + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signer}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + err := runtime.ExecuteTransaction( + Script{ + Source: tx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }) + + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.ReferencedValueChangedError{}) + }) + + t.Run("replace resource", func(t *testing.T) { + + runtime := NewTestInterpreterRuntime() + + signerAddress := common.MustBytesToAddress([]byte{0x42}) + + deployTx := DeploymentTransaction("Test", []byte(` + access(all) contract Test { + + access(all) resource Foo { + access(all) fun hello() {} + } + + access(all) fun createFoo(): @Foo { + return <-create Foo() + } + + access(all) resource Bar { + access(all) fun hello() {} + } + + access(all) fun createBar(): @Bar { + return <-create Bar() + } + } + `)) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + var loggedMessages []string + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{signerAddress}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + OnProgramLog: func(message string) { + loggedMessages = append(loggedMessages, message) + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract + + err := runtime.ExecuteTransaction( + Script{ + Source: deployTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + // Run test transaction + + const testTx = ` + import Test from 0x42 + + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.save(<-Test.createFoo(), to: /storage/xyz) + let ref = signer.storage.borrow<&Test.Foo>(from: /storage/xyz)! + + // Take a reference to 'Foo.hello' + var hello = ref.hello + + // Remove 'Foo' + let foo <- signer.storage.load<@Test.Foo>(from: /storage/xyz)! + + // Replace it with 'Bar' value + signer.storage.save(<-Test.createBar(), to: /storage/xyz) + + // Should be an error + hello() + + destroy foo + } + } + ` + + err = runtime.ExecuteTransaction( + Script{ + Source: []byte(testTx), + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.DereferenceError{}) + }) + +} + +func TestRuntimeStorageReferenceAccess(t *testing.T) { + + t.Parallel() + + runtime := NewTestInterpreterRuntime() + + address := common.MustBytesToAddress([]byte{0x1}) + + deployTx := DeploymentTransaction("Test", []byte(` + access(all) + contract Test { + + access(all) + resource R { + + access(all) + var balance: Int + + init() { + self.balance = 10 + } + } + + access(all) + fun createR(): @R { + return <-create R() + } + } + `)) + + accountCodes := map[Location][]byte{} + var events []cadence.Event + + runtimeInterface := &TestRuntimeInterface{ + Storage: NewTestLedger(nil, nil), + OnGetSigningAccounts: func() ([]Address, error) { + return []Address{address}, nil + }, + OnResolveLocation: NewSingleIdentifierLocationResolver(t), + OnUpdateAccountContractCode: func(location common.AddressLocation, code []byte) error { + accountCodes[location] = code + return nil + }, + OnGetAccountContractCode: func(location common.AddressLocation) (code []byte, err error) { + code = accountCodes[location] + return code, nil + }, + OnEmitEvent: func(event cadence.Event) error { + events = append(events, event) + return nil + }, + } + + nextTransactionLocation := NewTransactionLocationGenerator() + + // Deploy contract + + err := runtime.ExecuteTransaction( + Script{ + Source: deployTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + require.NoError(t, err) + + t.Run("top-level reference", func(t *testing.T) { + + transferTx := []byte(` + import Test from 0x1 + + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.save(<-Test.createR(), to: /storage/test) + let ref = signer.storage.borrow<&Test.R>(from: /storage/test)! + let value <- signer.storage.load<@Test.R>(from: /storage/test)! + destroy value + ref.balance + } + } + `) + + err = runtime.ExecuteTransaction( + Script{ + Source: transferTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.DereferenceError{}) + }) + + t.Run("optional reference", func(t *testing.T) { + + transferTx := []byte(` + import Test from 0x1 + + transaction { + prepare(signer: auth(Storage) &Account) { + signer.storage.save(<-Test.createR(), to: /storage/test) + let ref = signer.storage.borrow<&Test.R>(from: /storage/test) + let value <- signer.storage.load<@Test.R>(from: /storage/test)! + destroy value + ref?.balance + } + } + `) + + err = runtime.ExecuteTransaction( + Script{ + Source: transferTx, + }, + Context{ + Interface: runtimeInterface, + Location: nextTransactionLocation(), + }, + ) + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.DereferenceError{}) + }) +} diff --git a/runtime/tests/checker/access_test.go b/runtime/tests/checker/access_test.go index 2851d52214..12205133e3 100644 --- a/runtime/tests/checker/access_test.go +++ b/runtime/tests/checker/access_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,7 +28,6 @@ import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" - . "github.com/onflow/cadence/runtime/tests/utils" ) func expectSuccess(t *testing.T, err error) { @@ -772,7 +771,7 @@ func TestCheckAccessInterfaceFunction(t *testing.T) { if compositeKind == common.CompositeKindContract { identifier = "TestImpl" } else { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" setupCode = fmt.Sprintf( `let test: %[1]s%[2]s %[3]s %[4]s TestImpl%[5]s`, @@ -990,7 +989,7 @@ func TestCheckAccessInterfaceFieldRead(t *testing.T) { if compositeKind == common.CompositeKindContract { identifier = "TestImpl" } else { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" setupCode = fmt.Sprintf( `let test: %[1]s%[2]s %[3]s %[4]s TestImpl%[5]s`, @@ -1237,7 +1236,7 @@ func TestCheckAccessInterfaceFieldWrite(t *testing.T) { identifier = "TestImpl" } else { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" setupCode = fmt.Sprintf( `let test: %[1]s%[2]s %[3]s %[4]s TestImpl%[5]s`, @@ -1363,10 +1362,6 @@ func TestCheckAccessCompositeFieldVariableDeclarationWithSecondValue(t *testing. self.a <- create A() } - destroy() { - destroy self.a - } - access(all) fun test() { let oldA <- self.a <- create A() destroy oldA @@ -1471,10 +1466,6 @@ func TestCheckAccessInterfaceFieldVariableDeclarationWithSecondValue(t *testing. self.a <- create A() } - destroy() { - destroy self.a - } - access(all) fun test() { let oldA <- self.a <- create A() destroy oldA @@ -1835,6 +1826,7 @@ func TestCheckAccessImportGlobalValueVariableDeclarationWithSecondValue(t *testi `) require.NoError(t, err) + // these capture x and y because they are created in a different file _, err = ParseAndCheckWithOptions(t, ` import x, y, createR from "imported" @@ -1858,7 +1850,9 @@ func TestCheckAccessImportGlobalValueVariableDeclarationWithSecondValue(t *testi }, ) - errs := RequireCheckerErrors(t, err, 5) + errs := RequireCheckerErrors(t, err, 9) + + // For `x` require.IsType(t, &sema.InvalidAccessError{}, errs[0]) assert.Equal(t, @@ -1868,19 +1862,29 @@ func TestCheckAccessImportGlobalValueVariableDeclarationWithSecondValue(t *testi require.IsType(t, &sema.ResourceCapturingError{}, errs[1]) - require.IsType(t, &sema.AssignmentToConstantError{}, errs[2]) + require.IsType(t, &sema.ResourceCapturingError{}, errs[2]) + + require.IsType(t, &sema.AssignmentToConstantError{}, errs[3]) assert.Equal(t, "x", - errs[2].(*sema.AssignmentToConstantError).Name, + errs[3].(*sema.AssignmentToConstantError).Name, ) - require.IsType(t, &sema.ResourceCapturingError{}, errs[3]) + require.IsType(t, &sema.ResourceCapturingError{}, errs[4]) + + // For `y` + + require.IsType(t, &sema.ResourceCapturingError{}, errs[5]) - require.IsType(t, &sema.AssignmentToConstantError{}, errs[4]) + require.IsType(t, &sema.ResourceCapturingError{}, errs[6]) + + require.IsType(t, &sema.AssignmentToConstantError{}, errs[7]) assert.Equal(t, "y", - errs[4].(*sema.AssignmentToConstantError).Name, + errs[7].(*sema.AssignmentToConstantError).Name, ) + + require.IsType(t, &sema.ResourceCapturingError{}, errs[8]) } func TestCheckContractNestedDeclarationPrivateAccess(t *testing.T) { diff --git a/runtime/tests/checker/account_test.go b/runtime/tests/checker/account_test.go index 0876e90508..870e9f6731 100644 --- a/runtime/tests/checker/account_test.go +++ b/runtime/tests/checker/account_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -219,16 +219,14 @@ func TestCheckAccountStorageSave(t *testing.T) { if domain == common.PathDomainStorage { - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - require.IsType(t, &sema.TypeMismatchError{}, errs[1]) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) } else { - errs := RequireCheckerErrors(t, err, 3) + errs := RequireCheckerErrors(t, err, 2) - require.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) require.IsType(t, &sema.TypeMismatchError{}, errs[1]) - require.IsType(t, &sema.TypeMismatchError{}, errs[2]) } }) @@ -254,16 +252,14 @@ func TestCheckAccountStorageSave(t *testing.T) { if domain == common.PathDomainStorage { - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - require.IsType(t, &sema.TypeMismatchError{}, errs[1]) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) } else { - errs := RequireCheckerErrors(t, err, 3) + errs := RequireCheckerErrors(t, err, 2) - require.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) require.IsType(t, &sema.TypeMismatchError{}, errs[1]) - require.IsType(t, &sema.TypeMismatchError{}, errs[2]) } }) } @@ -980,10 +976,11 @@ func TestCheckAccountContractsNames(t *testing.T) { } `) - errors := RequireCheckerErrors(t, err, 2) + errors := RequireCheckerErrors(t, err, 3) assert.IsType(t, &sema.InvalidAssignmentAccessError{}, errors[0]) assert.IsType(t, &sema.AssignmentToConstantMemberError{}, errors[1]) + assert.IsType(t, &sema.NonReferenceTypeReferenceError{}, errors[2]) }) } @@ -1682,7 +1679,7 @@ func TestCheckAccountCapabilities(t *testing.T) { _, err := ParseAndCheck(t, ` fun test(capabilities: &Account.Capabilities) { - let cap: Capability<&Int> = capabilities.get<&Int>(/public/foo)! + let cap: Capability<&Int> = capabilities.get<&Int>(/public/foo) let ref: &Int = capabilities.borrow<&Int>(/public/foo)! } @@ -1697,7 +1694,7 @@ func TestCheckAccountCapabilities(t *testing.T) { _, err := ParseAndCheck(t, ` fun test(capabilities: auth(Capabilities) &Account.Capabilities) { - let cap: Capability<&Int> = capabilities.get<&Int>(/public/foo)! + let cap: Capability<&Int> = capabilities.get<&Int>(/public/foo) let ref: &Int = capabilities.borrow<&Int>(/public/foo)! @@ -1716,7 +1713,7 @@ func TestCheckAccountCapabilities(t *testing.T) { _, err := ParseAndCheck(t, ` fun test(capabilities: &Account.Capabilities) { - let cap: Capability<&Int> = capabilities.get<&Int>(/public/foo)! + let cap: Capability<&Int> = capabilities.get<&Int>(/public/foo) capabilities.publish(cap, at: /public/bar) @@ -1729,6 +1726,39 @@ func TestCheckAccountCapabilities(t *testing.T) { require.IsType(t, &sema.InvalidAccessError{}, errors[0]) require.IsType(t, &sema.InvalidAccessError{}, errors[1]) }) + + t.Run("Never type argument", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test(capabilities: &Account.Capabilities) { + capabilities.get(/public/foo) + } + `) + errs := RequireCheckerErrors(t, err, 1) + + var invalidTypeArgumentErr *sema.InvalidTypeArgumentError + require.ErrorAs(t, errs[0], &invalidTypeArgumentErr) + assert.Equal(t, + "Type argument for `get` cannot be `Never`", + invalidTypeArgumentErr.SecondaryError(), + ) + }) + + t.Run("missing type argument", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test(capabilities: &Account.Capabilities) { + capabilities.get(/public/foo) + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.TypeParameterTypeInferenceError{}, errs[0]) + }) } func TestCheckAccountStorageCapabilities(t *testing.T) { diff --git a/runtime/tests/checker/any_test.go b/runtime/tests/checker/any_test.go index fe23535774..e7d44fac46 100644 --- a/runtime/tests/checker/any_test.go +++ b/runtime/tests/checker/any_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/arrays_dictionaries_test.go b/runtime/tests/checker/arrays_dictionaries_test.go index 4d1d4da0fc..ce98e677f7 100644 --- a/runtime/tests/checker/arrays_dictionaries_test.go +++ b/runtime/tests/checker/arrays_dictionaries_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,6 @@ import ( "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" - . "github.com/onflow/cadence/runtime/tests/utils" ) func TestCheckDictionary(t *testing.T) { @@ -133,7 +132,11 @@ func TestCheckInvalidDictionaryKeys(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - let z = {"a": 1, true: 2} + let f = fun (_ x: Int): Int { + return x + 10 + } + + let z = {f: 1, true: 2} `) errs := RequireCheckerErrors(t, err, 1) @@ -1460,24 +1463,18 @@ func TestCheckArraySubtyping(t *testing.T) { t.Run(kind.Keyword(), func(t *testing.T) { - body := "{}" - if kind == common.CompositeKindEvent { - body = "()" - } - - interfaceType := AsInterfaceType("I", kind) + interfaceType := "{I}" _, err := ParseAndCheck(t, fmt.Sprintf( ` - %[1]s interface I %[2]s - %[1]s S: I %[2]s + %[1]s interface I {} + %[1]s S: I {} - let xs: %[3]s[S] %[4]s [] - let ys: %[3]s[%[5]s] %[4]s xs + let xs: %[2]s[S] %[3]s [] + let ys: %[2]s[%[4]s] %[3]s xs `, kind.Keyword(), - body, kind.Annotation(), kind.TransferOperator(), interfaceType, @@ -1519,8 +1516,6 @@ func TestCheckDictionarySubtyping(t *testing.T) { body = "()" } - interfaceType := AsInterfaceType("I", kind) - _, err := ParseAndCheck(t, fmt.Sprintf( ` @@ -1528,13 +1523,12 @@ func TestCheckDictionarySubtyping(t *testing.T) { %[1]s S: I %[2]s let xs: %[3]s{String: S} %[4]s {} - let ys: %[3]s{String: %[5]s} %[4]s xs + let ys: %[3]s{String: {I}} %[4]s xs `, kind.Keyword(), body, kind.Annotation(), kind.TransferOperator(), - interfaceType, ), ) @@ -2474,3 +2468,219 @@ func TestCheckDictionaryFunctionEntitlements(t *testing.T) { }) }) } + +func TestCheckArrayToVariableSized(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun testInt() { + let x: [Int; 4] = [1, 2, 3, 100] + let y: [Int] = x.toVariableSized() + } + + fun testString() { + let x: [String; 4] = ["ab", "cd", "ef", "gh"] + let y: [String] = x.toVariableSized() + } + `) + + require.NoError(t, err) +} + +func TestCheckArrayToVariableSizedInvalidArgs(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() { + let x: [Int16; 3] = [1, 2, 3] + let y = x.toVariableSized(100) + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ExcessiveArgumentsError{}, errs[0]) +} + +func TestCheckVariableSizedArrayToVariableSizedInvalid(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() : [Int] { + let xs: [Int] = [1, 2, 3] + + return xs.toVariableSized() + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.NotDeclaredMemberError{}, errs[0]) +} + +func TestCheckResourceArrayToVariableSizedInvalid(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource X {} + + fun test() : @[X] { + let xs: @[X; 1] <- [<-create X()] + + let varsized_xs <- xs.toVariableSized() + destroy xs + return <-varsized_xs + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidResourceArrayMemberError{}, errs[0]) +} + +func TestCheckArrayToConstantSized(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun testInt() { + let x: [Int] = [1, 2, 3, 100] + let y: [Int; 4]? = x.toConstantSized<[Int;4]>() + } + + fun testString() { + let x: [String] = ["ab", "cd", "ef", "gh"] + let y: [String; 4]? = x.toConstantSized<[String; 4]>() + let y_incorrect_size: [String; 3]? = x.toConstantSized<[String; 3]>() + } + `) + + require.NoError(t, err) +} + +func TestCheckArrayToConstantSizedInvalidArgs(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() { + let x: [Int16] = [1, 2, 3] + let y = x.toConstantSized<[Int16; 3]>(100) + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ExcessiveArgumentsError{}, errs[0]) +} + +func TestCheckArrayToConstantSizedInvalidTypeArgument(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() { + let x: [Int16] = [1, 2, 3] + let y = x.toConstantSized() + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[0]) +} + +func TestCheckArrayToConstantSizedInvalidTypeArgumentInnerType(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() { + let x: [Int16] = [1, 2, 3] + let y = x.toConstantSized<[Int; 3]>() + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[0]) +} + +func TestCheckConstantSizedArrayToConstantSizedInvalid(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() : [Int; 3]? { + let xs: [Int; 3] = [1, 2, 3] + + return xs.toConstantSized<[Int; 3]>() + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.NotDeclaredMemberError{}, errs[0]) +} + +func TestCheckResourceArrayToConstantSizedInvalid(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource X {} + + fun test() : @[X;1]? { + let xs: @[X] <- [<-create X()] + + let constsized_xs <- xs.toConstantSized<@[X; 1]>() + destroy xs + return <-constsized_xs + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidResourceArrayMemberError{}, errs[0]) +} + +func TestCheckArrayToConstantSizedMissingTypeArgument(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() { + let x: [Int16] = [1, 2, 3] + let y = x.toConstantSized() + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeParameterTypeInferenceError{}, errs[0]) +} + +func TestCheckArrayReferenceTypeInference(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement E + entitlement F + entitlement G + + fun test(): [auth(E) &Int] { + let ef = &1 as auth(E, F) &Int + let eg = &1 as auth(E, G) &Int + let arr = [ef, eg] + return arr + } + + `) + + require.NoError(t, err) +} diff --git a/runtime/tests/checker/assert_test.go b/runtime/tests/checker/assert_test.go index c41f0b1d1b..664ff49ced 100644 --- a/runtime/tests/checker/assert_test.go +++ b/runtime/tests/checker/assert_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import ( "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" ) @@ -42,7 +43,9 @@ func TestCheckAssertWithoutMessage(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -65,7 +68,9 @@ func TestCheckAssertWithMessage(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/tests/checker/assignment_test.go b/runtime/tests/checker/assignment_test.go index 5d3b93b2da..c26f4556a0 100644 --- a/runtime/tests/checker/assignment_test.go +++ b/runtime/tests/checker/assignment_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/attachments_test.go b/runtime/tests/checker/attachments_test.go index 4e22cca971..766e075e1d 100644 --- a/runtime/tests/checker/attachments_test.go +++ b/runtime/tests/checker/attachments_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -540,35 +540,12 @@ func TestCheckAttachmentWithMembers(t *testing.T) { init(x: @R) { self.x <- x } - destroy() { - destroy self.x - } }`, ) require.NoError(t, err) }) - t.Run("resource field no destroy", func(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, - ` - resource R {} - attachment Test for R { - let x: @R - init(x: @R) { - self.x <- x - } - }`, - ) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.MissingDestructorError{}, errs[0]) - }) - t.Run("resource field in struct", func(t *testing.T) { t.Parallel() @@ -581,16 +558,12 @@ func TestCheckAttachmentWithMembers(t *testing.T) { init(x: @R) { self.x <- x } - destroy() { - destroy self.x - } }`, ) - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.InvalidResourceFieldError{}, errs[0]) - assert.IsType(t, &sema.InvalidDestructorError{}, errs[1]) }) t.Run("field with same name as base type", func(t *testing.T) { @@ -639,29 +612,11 @@ func TestCheckAttachmentWithMembers(t *testing.T) { ` resource R {} attachment Test for R { - destroy() {} }`, ) require.NoError(t, err) }) - - t.Run("destroy in struct", func(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, - ` - struct S {} - attachment Test for S { - destroy() {} - }`, - ) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.InvalidDestructorError{}, errs[0]) - }) } func TestCheckAttachmentConformance(t *testing.T) { @@ -1025,25 +980,6 @@ func TestCheckAttachmentBase(t *testing.T) { require.NoError(t, err) }) - t.Run("destroy", func(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, - ` - resource R { - fun foo() {} - } - attachment Test for R { - destroy() { - base.foo() - } - }`, - ) - - require.NoError(t, err) - }) - t.Run("interface base", func(t *testing.T) { t.Parallel() @@ -1394,6 +1330,29 @@ func TestCheckAttachmentSelfTyping(t *testing.T) { require.NoError(t, err) }) + + t.Run("self access restricted", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + resource R { + access(E) fun foo() {} + } + attachment Test for R { + access(E) fun bar() {} + fun foo(t: &Test) { + t.bar() + } + }`, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidAccessError{}, errs[0]) + }) } func TestCheckAttachmentType(t *testing.T) { @@ -1539,11 +1498,11 @@ func TestCheckAttachmentIllegalInit(t *testing.T) { t.Parallel() - _, err := ParseAndCheck(t, - `attachment Test for AnyStruct {} - let t = Test() - `, - ) + _, err := ParseAndCheck(t, ` + attachment Test for AnyStruct {} + + let t = Test() + `) errs := RequireCheckerErrors(t, err, 1) @@ -1554,19 +1513,40 @@ func TestCheckAttachmentIllegalInit(t *testing.T) { t.Parallel() - _, err := ParseAndCheck(t, - `attachment Test for AnyResource {} - access(all) fun foo() { - let t <- Test() - destroy t - } - `, - ) + _, err := ParseAndCheck(t, ` + attachment Test for AnyResource {} + + fun foo() { + let t <- Test() + destroy t + } + `) errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.InvalidAttachmentUsageError{}, errs[0]) }) + + t.Run("optional", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract C { + attachment Test for AnyStruct {} + } + + let optContractRef: &C? = &C as &C + let t = optContractRef?.Test() + `) + + errs := RequireCheckerErrors(t, err, 2) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + + assert.IsType(t, &sema.InvalidAttachmentUsageError{}, errs[1]) + }) } func TestCheckAttachmentAttachNonAttachment(t *testing.T) { @@ -1678,9 +1658,12 @@ func TestCheckAttachmentAttachNonAttachment(t *testing.T) { `, ) - errs := RequireCheckerErrors(t, err, 1) + errs := RequireCheckerErrors(t, err, 2) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) - assert.IsType(t, &sema.NotCallableError{}, errs[0]) + assert.IsType(t, &sema.NotCallableError{}, errs[1]) }) } @@ -1796,9 +1779,12 @@ func TestCheckAttachmentAttachToNonComposite(t *testing.T) { `, ) - errs := RequireCheckerErrors(t, err, 1) + errs := RequireCheckerErrors(t, err, 2) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) - assert.IsType(t, &sema.NotCallableError{}, errs[0]) + assert.IsType(t, &sema.NotCallableError{}, errs[1]) }) t.Run("attachment", func(t *testing.T) { @@ -2624,7 +2610,7 @@ func TestCheckAttachmentAnyAttachmentTypes(t *testing.T) { }, { setupCode: "contract interface CI {}", - subType: "CI", + subType: "{CI}", expectedSuccess: false, }, } @@ -3865,14 +3851,12 @@ func TestCheckAttachmentsExternalMutation(t *testing.T) { _, err := ParseAndCheck(t, ` - access(all) resource R {} - - entitlement mapping M { - Mutate -> Insert + access(all) resource R { + access(Mutate) fun foo() {} } - access(M) attachment A for R { - access(Identity) let x: [String] + access(all) attachment A for R { + access(mapping Identity) let x: [String] init() { self.x = ["x"] } @@ -3886,7 +3870,8 @@ func TestCheckAttachmentsExternalMutation(t *testing.T) { `, ) - require.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) }) t.Run("in base", func(t *testing.T) { @@ -3897,6 +3882,7 @@ func TestCheckAttachmentsExternalMutation(t *testing.T) { ` access(all) resource R { access(all) fun foo() { + // this only works because A supports all the entitlements of R self[A]!.x.append("y") } } @@ -3939,24 +3925,20 @@ func TestCheckAttachmentsExternalMutation(t *testing.T) { ) }) - t.Run("in base, with entitlements", func(t *testing.T) { + t.Run("identity mapping in attachment", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement mapping M { - Mutate -> Insert - } - access(all) resource R { - access(all) fun foo() { + access(Insert) fun foo() { var xRef = self[A]!.x xRef.append("y") } } - access(M) attachment A for R { - access(Identity) let x: [String] + access(all) attachment A for R { + access(mapping Identity) let x: [String] init() { self.x = ["x"] } @@ -3964,7 +3946,8 @@ func TestCheckAttachmentsExternalMutation(t *testing.T) { `, ) - require.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) }) t.Run("in self, through base", func(t *testing.T) { @@ -4094,6 +4077,289 @@ func TestCheckAttachmentBaseNonMember(t *testing.T) { require.NoError(t, err) }) + + t.Run("entitlement mapped field", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + entitlement F + entitlement G + entitlement mapping M { + E -> F + } + + access(all) resource R { + access(E) fun foo() {} + access(G) fun bar() {} + } + access(all) attachment A for R { + access(mapping M) let x: [String] + init() { + self.x = ["x"] + } + } + fun foo() { + let r <- attach A() to <- create R() + let a = r[A]! + let x: auth(F) &[String] = a.x + destroy r + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + }) + + t.Run("entitlement mapped function self value cast", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + entitlement F + entitlement mapping M { + E -> F + } + + access(all) resource R { + access(E) fun foo() {} + access(F) fun bar() {} + } + access(all) attachment A for R { + access(F) let x: Int + init() { + self.x = 3 + } + access(mapping M) fun foo(): auth(mapping M) &Int { + if let concreteSelf = self as? auth(F) &A { + return &concreteSelf.x + } + return &1 + } + } + fun foo(): &Int { + let r <- attach A() to <- create R() + let a = r[A]! + let i = a.foo() + destroy r + return i + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + }) + + t.Run("entitlement mapped function self value cast invalid access", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + entitlement F + entitlement mapping M { + E -> F + } + + access(all) resource R { + access(E) fun foo() {} + access(F) fun bar() {} + } + access(all) attachment A for R { + access(E) let x: Int + init() { + self.x = 3 + } + access(mapping M) fun foo(): auth(mapping M) &Int { + if let concreteSelf = self as? auth(F) &A { + return &concreteSelf.x + } + return &1 + } + } + fun foo(): &Int { + let r <- attach A() to <- create R() + let a = r[A]! + let i = a.foo() + destroy r + return i + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + require.IsType(t, &sema.InvalidAccessError{}, errs[1]) + }) + + t.Run("entitlement mapped function base value cast", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + entitlement F + entitlement mapping M { + E -> F + } + + access(all) resource R { + access(F) let x: Int + init() { + self.x = 3 + } + access(E) fun bar() {} + } + access(all) attachment A for R { + access(mapping M) fun foo(): auth(mapping M) &Int { + if let concreteBase = base as? auth(F) &R { + return &concreteBase.x + } + return &1 + } + } + fun foo(): &Int { + let r <- attach A() to <- create R() + let a = r[A]! + let i = a.foo() + destroy r + return i + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + }) + + t.Run("entitlement mapped function base value cast invalid access", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + entitlement F + entitlement mapping M { + E -> F + } + + access(all) resource R { + access(E) let x: Int + init() { + self.x = 3 + } + access(F) fun bar() {} + } + access(all) attachment A for R { + access(mapping M) fun foo(): auth(mapping M) &Int { + if let concreteBase = base as? auth(F) &R { + return &concreteBase.x + } + return &1 + } + } + fun foo(): &Int { + let r <- attach A() to <- create R() + let a = r[A]! + let i = a.foo() + destroy r + return i + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + assert.IsType(t, &sema.InvalidAccessError{}, errs[1]) + }) + + t.Run("entitlement mapped function self value access", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + entitlement F + entitlement mapping M { + E -> F + } + + access(all) resource R { + access(E) fun foo() {} + access(F) fun bar() {} + } + access(all) attachment A for R { + access(E) let x: Int + init() { + self.x = 3 + } + access(mapping M) fun foo(): auth(mapping M) &Int { + return &self.x + } + } + fun foo(): &Int { + let r <- attach A() to <- create R() + let a = r[A]! + let i = a.foo() + destroy r + return i + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + assert.IsType(t, &sema.InvalidAccessError{}, errs[1]) + }) + + t.Run("entitlement mapped function base value access", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + entitlement E + entitlement F + entitlement mapping M { + E -> F + } + + access(all) resource R { + access(E) let x: Int + init() { + self.x = 3 + } + access(F) fun bar() {} + } + access(all) attachment A for R { + access(mapping M) fun foo(): auth(mapping M) &Int { + return &base.x + } + } + fun foo(): &Int { + let r <- attach A() to <- create R() + let a = r[A]! + let i = a.foo() + destroy r + return i + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + assert.IsType(t, &sema.InvalidAccessError{}, errs[1]) + }) } func TestCheckAttachmentsResourceReference(t *testing.T) { @@ -4515,16 +4781,15 @@ func TestCheckAttachmentForEachAttachment(t *testing.T) { ` entitlement F entitlement E - entitlement mapping M { - E -> F - } fun bar (attachmentRef: &AnyResourceAttachment) { if let a = attachmentRef as? auth(F) &A { a.foo() } } - resource R {} - access(M) attachment A for R { + resource R { + access(F) fun foo() {} + } + access(all) attachment A for R { access(F) fun foo() {} } access(all) fun foo(s: @R) { @@ -4578,3 +4843,183 @@ func TestCheckAttachmentRemoveLossTracking(t *testing.T) { assert.IsType(t, &sema.ResourceLossError{}, errs[0]) }) } + +func TestCheckAttachmentPurity(t *testing.T) { + + t.Parallel() + + t.Run("access", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + struct S {} + attachment Test for S {} + view fun foo(s: S) { + s[Test] + }`, + ) + + require.NoError(t, err) + }) + + t.Run("attach", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + struct S {} + attachment Test for S {} + view fun foo(s: S) { + let s2 = attach Test() to s + }`, + ) + + require.NoError(t, err) + }) + + t.Run("attach with constructor", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + struct S {} + attachment Test for S { + init() {} + } + view fun foo(s: S) { + let s2 = attach Test() to s + }`, + ) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.PurityError{}, errs[0]) + }) + + t.Run("attach with pure constructor", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + struct S {} + attachment Test for S { + view init() {} + } + view fun foo(s: S) { + let s2 = attach Test() to s + }`, + ) + + require.NoError(t, err) + }) + + t.Run("remove", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + struct S {} + attachment Test for S {} + view fun foo(s: S) { + remove Test from s + }`, + ) + + require.NoError(t, err) + }) + + t.Run("remove from global", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + struct S {} + attachment Test for S {} + var s: S = S() + view fun foo() { + remove Test from s + }`, + ) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.PurityError{}, errs[0]) + }) + + t.Run("remove from field", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + struct S {} + attachment Test for S {} + struct Container { + let s: S + init() { + self.s = S() + } + view fun foo() { + remove Test from self.s + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.PurityError{}, errs[0]) + }) + + t.Run("remove from resource", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + resource R {} + attachment Test for R {} + view fun foo(r: @R): @R { + remove Test from r + return <-r + }`, + ) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.PurityError{}, errs[0]) + }) +} + +func TestCheckAccessOnNonEntitlementSupportingBaseCreatesUnauthorizedReference(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) contract Test { + access(all) resource R {} + access(all) attachment A for R {} + access(all) fun makeRWithA(): @R { + return <- attach A() to <-create R() + } + } + access(all) fun main(): &Test.A? { + let r <- Test.makeRWithA() + var a = r[Test.A] + + a = returnSameRef(a) + + destroy r + return a + } + + access(all) fun returnSameRef(_ ref: &Test.A?): &Test.A? { + return ref + } + `) + + require.NoError(t, err) +} diff --git a/runtime/tests/checker/boolean_test.go b/runtime/tests/checker/boolean_test.go index 6714d4c0db..a6118fc174 100644 --- a/runtime/tests/checker/boolean_test.go +++ b/runtime/tests/checker/boolean_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/builtinfunctions_test.go b/runtime/tests/checker/builtinfunctions_test.go index 12e0cb4f14..c2ca8e39c6 100644 --- a/runtime/tests/checker/builtinfunctions_test.go +++ b/runtime/tests/checker/builtinfunctions_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import ( "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" ) func TestCheckToString(t *testing.T) { @@ -252,7 +253,7 @@ func TestCheckFromBigEndianBytes(t *testing.T) { for _, ty := range sema.AllNumberTypes { switch ty { case sema.NumberType, sema.SignedNumberType, - sema.IntegerType, sema.SignedIntegerType, + sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType, sema.FixedPointType, sema.SignedFixedPointType: continue @@ -268,3 +269,178 @@ func TestCheckFromBigEndianBytes(t *testing.T) { } } } + +type testRandomGenerator struct{} + +func (*testRandomGenerator) ReadRandom([]byte) error { + return nil +} + +func TestCheckRevertibleRandom(t *testing.T) { + + t.Parallel() + + newOptions := func() ParseAndCheckOptions { + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.NewRevertibleRandomFunction(&testRandomGenerator{})) + return ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + } + } + + runValidCase := func(t *testing.T, ty sema.Type, code string) { + + checker, err := ParseAndCheckWithOptions(t, code, newOptions()) + + require.NoError(t, err) + + resType := RequireGlobalValue(t, checker.Elaboration, "rand") + require.Equal(t, ty, resType) + } + + runValidCaseWithoutModulo := func(t *testing.T, ty sema.Type) { + t.Run(fmt.Sprintf("revertibleRandom<%s>, no modulo", ty), func(t *testing.T) { + t.Parallel() + + code := fmt.Sprintf("let rand = revertibleRandom<%s>()", ty) + runValidCase(t, ty, code) + }) + } + + runValidCaseWithModulo := func(t *testing.T, ty sema.Type) { + t.Run(fmt.Sprintf("revertibleRandom<%s>, modulo", ty), func(t *testing.T) { + t.Parallel() + + code := fmt.Sprintf("let rand = revertibleRandom<%[1]s>(modulo: %[1]s(1))", ty) + runValidCase(t, ty, code) + }) + } + + runInvalidCase := func(t *testing.T, testName string, code string, expectedErrors []error) { + t.Run(testName, func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, code, newOptions()) + + errs := RequireCheckerErrors(t, err, len(expectedErrors)) + for i := range expectedErrors { + assert.IsType(t, expectedErrors[i], errs[i]) + } + }) + } + + for _, ty := range sema.AllFixedSizeUnsignedIntegerTypes { + switch ty { + case sema.FixedSizeUnsignedIntegerType: + continue + + default: + runValidCaseWithoutModulo(t, ty) + runValidCaseWithModulo(t, ty) + } + } + + runInvalidCase( + t, + "revertibleRandom", + "let rand = revertibleRandom()", + []error{ + &sema.TypeMismatchError{}, + }, + ) + + runInvalidCase( + t, + "revertibleRandom", + `let rand = revertibleRandom(modulo: "abcd")`, + []error{ + &sema.TypeMismatchError{}, + }, + ) + + runInvalidCase( + t, + "missing_argument_label", + "let rand = revertibleRandom(UInt256(1))", + []error{ + &sema.MissingArgumentLabelError{}, + }, + ) + + runInvalidCase( + t, + "incorrect_argument_label", + "let rand = revertibleRandom(typo: UInt256(1))", + []error{ + &sema.IncorrectArgumentLabelError{}, + }, + ) + + runInvalidCase( + t, + "too_many_args", + "let rand = revertibleRandom(modulo: UInt256(1), 2, 3)", + []error{ + &sema.ExcessiveArgumentsError{}, + }, + ) + + runInvalidCase( + t, + "modulo type mismatch", + "let rand = revertibleRandom(modulo: UInt128(1))", + []error{ + &sema.TypeMismatchError{}, + }, + ) + + runInvalidCase( + t, + "string modulo", + `let rand = revertibleRandom(modulo: "abcd")`, + []error{ + &sema.TypeMismatchError{}, + }, + ) + + runInvalidCase( + t, + "invalid type argument Never", + `let rand = revertibleRandom(modulo: 1)`, + []error{ + &sema.TypeMismatchError{}, + &sema.InvalidTypeArgumentError{}, + }, + ) + runInvalidCase( + t, + "invalid type argument FixedSizeUnsignedInteger", + `let rand = revertibleRandom(modulo: 1)`, + []error{ + &sema.InvalidTypeArgumentError{}, + }, + ) + + runInvalidCase( + t, + "missing type argument", + `let rand = revertibleRandom()`, + []error{ + &sema.TypeParameterTypeInferenceError{}, + }, + ) + + t.Run("type parameter used for argument", func(t *testing.T) { + t.Parallel() + + runValidCase( + t, + sema.UInt256Type, + "let rand = revertibleRandom(modulo: 1)", + ) + }) +} diff --git a/runtime/tests/checker/capability_controller_test.go b/runtime/tests/checker/capability_controller_test.go index 717c4436a2..69418f7cdb 100644 --- a/runtime/tests/checker/capability_controller_test.go +++ b/runtime/tests/checker/capability_controller_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,7 +44,9 @@ func TestCheckStorageCapabilityController(t *testing.T) { code, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseActivation + }, }, }, ) @@ -105,7 +107,9 @@ func TestCheckAccountCapabilityController(t *testing.T) { code, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseActivation + }, }, }, ) diff --git a/runtime/tests/checker/capability_test.go b/runtime/tests/checker/capability_test.go index 35b6fc5b73..a8899d567d 100644 --- a/runtime/tests/checker/capability_test.go +++ b/runtime/tests/checker/capability_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/casting_test.go b/runtime/tests/checker/casting_test.go index 762d91e598..dfdea7f7f7 100644 --- a/runtime/tests/checker/casting_test.go +++ b/runtime/tests/checker/casting_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -4442,6 +4442,21 @@ func TestCheckStaticCastElaboration(t *testing.T) { } }) + t.Run("Fixed size unsigned integer literal", func(t *testing.T) { + t.Parallel() + + checker, err := ParseAndCheckWithAny(t, ` + let x = 45 as FixedSizeUnsignedInteger + `) + + require.NoError(t, err) + + require.Len(t, checker.Elaboration.AllStaticCastTypes(), 1) + for _, cast := range checker.Elaboration.AllStaticCastTypes() { // nolint:maprange + assert.Equal(t, sema.FixedSizeUnsignedIntegerType, cast.TargetType) + } + }) + t.Run("Fixed point literal", func(t *testing.T) { t.Parallel() diff --git a/runtime/tests/checker/character_test.go b/runtime/tests/checker/character_test.go index 8ede86e0c6..66bf35eb30 100644 --- a/runtime/tests/checker/character_test.go +++ b/runtime/tests/checker/character_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/composite_test.go b/runtime/tests/checker/composite_test.go index 962b5da695..fe4d0c5e5a 100644 --- a/runtime/tests/checker/composite_test.go +++ b/runtime/tests/checker/composite_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,7 +29,6 @@ import ( "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/sema" - . "github.com/onflow/cadence/runtime/tests/utils" ) func TestCheckInvalidCompositeRedeclaringType(t *testing.T) { @@ -162,47 +161,6 @@ func TestCheckInitializerName(t *testing.T) { } } -func TestCheckDestructor(t *testing.T) { - - t.Parallel() - - for _, kind := range common.CompositeKindsWithFieldsAndFunctions { - - var baseType string - if kind == common.CompositeKindAttachment { - baseType = "for AnyResource" - } - - t.Run(kind.Keyword(), func(t *testing.T) { - - _, err := ParseAndCheck(t, - fmt.Sprintf( - ` - %s Test %s { - destroy() {} - } - `, - kind.Keyword(), - baseType, - ), - ) - - switch kind { - case common.CompositeKindStructure, common.CompositeKindContract: - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.InvalidDestructorError{}, errs[0]) - - case common.CompositeKindResource, common.CompositeKindAttachment: - require.NoError(t, err) - - default: - panic(errors.NewUnreachableError()) - } - }) - } -} - func TestCheckInvalidUnknownSpecialFunction(t *testing.T) { t.Parallel() @@ -289,16 +247,14 @@ func TestCheckInvalidCompositeFieldNames(t *testing.T) { ) if isInterface { - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.InvalidNameError{}, errs[0]) - assert.IsType(t, &sema.InvalidNameError{}, errs[1]) } else { - errs := RequireCheckerErrors(t, err, 3) + errs := RequireCheckerErrors(t, err, 2) assert.IsType(t, &sema.InvalidNameError{}, errs[0]) - assert.IsType(t, &sema.InvalidNameError{}, errs[1]) - assert.IsType(t, &sema.MissingInitializerError{}, errs[2]) + assert.IsType(t, &sema.MissingInitializerError{}, errs[1]) } }) } @@ -597,7 +553,6 @@ func TestCheckInvalidCompositeSpecialFunction(t *testing.T) { ` %s Test %s { init() { X } - destroy() { Y } } `, kind.Keyword(), @@ -607,17 +562,15 @@ func TestCheckInvalidCompositeSpecialFunction(t *testing.T) { switch kind { case common.CompositeKindStructure, common.CompositeKindContract: - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) - assert.IsType(t, &sema.InvalidDestructorError{}, errs[1]) case common.CompositeKindResource, common.CompositeKindAttachment: - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) - assert.IsType(t, &sema.NotDeclaredError{}, errs[1]) default: panic(errors.NewUnreachableError()) @@ -672,7 +625,6 @@ func TestCheckCompositeInitializerSelfUse(t *testing.T) { ` %s Test %s { init() { self } - destroy() { self } } `, kind.Keyword(), @@ -681,18 +633,20 @@ func TestCheckCompositeInitializerSelfUse(t *testing.T) { ) switch kind { - case common.CompositeKindStructure, common.CompositeKindContract, common.CompositeKindAttachment: - errs := RequireCheckerErrors(t, err, 1) + case common.CompositeKindStructure, common.CompositeKindAttachment: + require.NoError(t, err) - assert.IsType(t, &sema.InvalidDestructorError{}, errs[0]) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 1) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) case common.CompositeKindResource: - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) // TODO: handle `self` properly assert.IsType(t, &sema.ResourceLossError{}, errs[0]) - assert.IsType(t, &sema.ResourceLossError{}, errs[1]) default: panic(errors.NewUnreachableError()) @@ -725,9 +679,14 @@ func TestCheckCompositeFunctionSelfUse(t *testing.T) { ) switch kind { - case common.CompositeKindStructure, common.CompositeKindContract, common.CompositeKindAttachment: + case common.CompositeKindStructure, common.CompositeKindAttachment: require.NoError(t, err) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 1) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + case common.CompositeKindResource: errs := RequireCheckerErrors(t, err, 1) @@ -773,25 +732,7 @@ func TestCheckInvalidCompositeMissingInitializer(t *testing.T) { } } -func TestCheckInvalidResourceMissingDestructor(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - resource Test { - let test: @Test - init(test: @Test) { - self.test <- test - } - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.MissingDestructorError{}, errs[0]) -} - -func TestCheckResourceWithDestructor(t *testing.T) { +func TestCheckResourceWithResourceField(t *testing.T) { t.Parallel() @@ -802,10 +743,6 @@ func TestCheckResourceWithDestructor(t *testing.T) { init(test: @Test) { self.test <- test } - - destroy() { - destroy self.test - } } `) @@ -836,15 +773,6 @@ func TestCheckInvalidResourceFieldWithMissingResourceAnnotation(t *testing.T) { ` } - destructorBody := "" - if !isInterface { - destructorBody = ` - { - destroy self.test - } - ` - } - annotationType := "Test" if isInterface { annotationType = "{Test}" @@ -857,14 +785,11 @@ func TestCheckInvalidResourceFieldWithMissingResourceAnnotation(t *testing.T) { let test: %[2]s init(test: @%[2]s) %[3]s - - destroy() %[4]s } `, interfaceKeyword, annotationType, initializerBody, - destructorBody, ), ) @@ -1320,15 +1245,30 @@ func TestCheckInvalidCompositeFunctionAssignment(t *testing.T) { ), ) - errs := RequireCheckerErrors(t, err, 2) + if kind == common.CompositeKindResource { + errs := RequireCheckerErrors(t, err, 3) - require.IsType(t, &sema.AssignmentToConstantMemberError{}, errs[0]) - assert.Equal(t, - "foo", - errs[0].(*sema.AssignmentToConstantMemberError).Name, - ) + require.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + require.IsType(t, &sema.AssignmentToConstantMemberError{}, errs[1]) + assert.Equal(t, + "foo", + errs[1].(*sema.AssignmentToConstantMemberError).Name, + ) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[2]) + + } else { + errs := RequireCheckerErrors(t, err, 2) + + require.IsType(t, &sema.AssignmentToConstantMemberError{}, errs[0]) + assert.Equal(t, + "foo", + errs[0].(*sema.AssignmentToConstantMemberError).Name, + ) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + } }) } } @@ -1987,221 +1927,6 @@ func TestCheckCompositeReferenceBeforeDeclaration(t *testing.T) { } } -func TestCheckInvalidDestructorParameters(t *testing.T) { - - t.Parallel() - - interfacePossibilities := []bool{true, false} - - for _, isInterface := range interfacePossibilities { - - interfaceKeyword := "" - if isInterface { - interfaceKeyword = "interface" - } - - destructorBody := "" - if !isInterface { - destructorBody = "{}" - } - - t.Run(interfaceKeyword, func(t *testing.T) { - - _, err := ParseAndCheck(t, - fmt.Sprintf( - ` - resource %[1]s Test { - destroy(x: Int) %[2]s - } - `, - interfaceKeyword, - destructorBody, - ), - ) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.InvalidDestructorParametersError{}, errs[0]) - }) - } -} - -func TestCheckInvalidResourceWithDestructorMissingFieldInvalidation(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - resource Test { - let test: @Test - - init(test: @Test) { - self.test <- test - } - - destroy() {} - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.ResourceFieldNotInvalidatedError{}, errs[0]) -} - -// This tests prevents a potential regression in `checkResourceFieldsInvalidated`: -// See https://github.com/dapperlabs/flow-go/issues/2533 -// -// The function contained a bug in which field invalidation was skipped for all remaining members -// once a non-resource member was encountered, instead of just skipping the non-resource member -// and continuing the check for the remaining members. - -func TestCheckInvalidResourceWithDestructorMissingFieldInvalidationFirstFieldNonResource(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - resource Test { - let a: Int - let b: @Test - - init(b: @Test) { - self.a = 1 - self.b <- b - } - - destroy() {} - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.ResourceFieldNotInvalidatedError{}, errs[0]) -} - -func TestCheckInvalidResourceWithDestructorMissingDefinitiveFieldInvalidation(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - resource Test { - let test: @Test - - init(test: @Test) { - self.test <- test - } - - destroy() { - if false { - destroy self.test - } - } - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.ResourceFieldNotInvalidatedError{}, errs[0]) -} - -func TestCheckResourceWithDestructorAndStructField(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - struct S {} - - resource Test { - let s: S - - init(s: S) { - self.s = s - } - - destroy() {} - } - `) - - require.NoError(t, err) -} - -func TestCheckInvalidResourceDestructorMoveInvalidation(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - resource Test { - let test: @Test - - init(test: @Test) { - self.test <- test - } - - destroy() { - absorb(<-self.test) - absorb(<-self.test) - } - } - - fun absorb(_ test: @Test) { - destroy test - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) -} - -func TestCheckInvalidResourceDestructorRepeatedDestruction(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - resource Test { - let test: @Test - - init(test: @Test) { - self.test <- test - } - - destroy() { - destroy self.test - destroy self.test - } - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) -} - -func TestCheckInvalidResourceDestructorCapturing(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - var duplicate: (fun(): @Test)? = nil - - resource Test { - let test: @Test - - init(test: @Test) { - self.test <- test - } - - destroy() { - duplicate = fun (): @Test { - return <-self.test - } - } - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) -} - func TestCheckInvalidStructureFunctionWithMissingBody(t *testing.T) { t.Parallel() @@ -2247,14 +1972,14 @@ func TestCheckMutualTypeUseTopLevel(t *testing.T) { firstTypeAnnotation := "A" if firstIsInterface { firstInterfaceKeyword = "interface" - firstTypeAnnotation = AsInterfaceType("A", firstKind) + firstTypeAnnotation = "{A}" } secondInterfaceKeyword := "" secondTypeAnnotation := "B" if secondIsInterface { secondInterfaceKeyword = "interface" - secondTypeAnnotation = AsInterfaceType("B", secondKind) + secondTypeAnnotation = "{B}" } testName := fmt.Sprintf( @@ -2266,19 +1991,36 @@ func TestCheckMutualTypeUseTopLevel(t *testing.T) { ) firstBody := "" + firstCallableFunc := "fun foo()" if !firstIsInterface { + usage := "b" + if secondKind == common.CompositeKindContract { + usage += ".foo()" + } + firstBody = fmt.Sprintf( - "{ %s b }", + "{ %s %s }", secondKind.DestructionKeyword(), + usage, ) + + firstCallableFunc += " {}" } secondBody := "" + secondCallableFunc := "fun foo()" if !secondIsInterface { + usage := "a" + if firstKind == common.CompositeKindContract { + usage += ".foo()" + } + secondBody = fmt.Sprintf( - "{ %s a }", + "{ %s %s }", firstKind.DestructionKeyword(), + usage, ) + secondCallableFunc += " {}" } t.Run(testName, func(t *testing.T) { @@ -2287,10 +2029,12 @@ func TestCheckMutualTypeUseTopLevel(t *testing.T) { ` %[1]s %[2]s A { fun use(_ b: %[3]s%[4]s) %[5]s + %[11]s } %[6]s %[7]s B { fun use(_ a: %[8]s%[9]s) %[10]s + %[12]s } `, firstKind.Keyword(), @@ -2303,6 +2047,8 @@ func TestCheckMutualTypeUseTopLevel(t *testing.T) { firstKind.Annotation(), firstTypeAnnotation, secondBody, + firstCallableFunc, + secondCallableFunc, ) _, err := ParseAndCheck(t, code) @@ -2520,3 +2266,35 @@ func TestCheckNativeFieldDeclaration(t *testing.T) { // TODO: native fields need no initializer assert.IsType(t, &sema.MissingInitializerError{}, errs[1]) } + +func TestCheckKeywordsAsFieldNames(t *testing.T) { + + t.Parallel() + + for _, keyword := range []string{ + "event", + "contract", + "default", + } { + keyword := keyword + + t.Run(keyword, func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, + fmt.Sprintf(` + contract C { + let %[1]s: Int + + init() { + self.%[1]s = 5 + } + }`, + keyword, + ), + ) + + require.NoError(t, err) + }) + } +} diff --git a/runtime/tests/checker/conditional_test.go b/runtime/tests/checker/conditional_test.go index e314988c89..6078d12fd0 100644 --- a/runtime/tests/checker/conditional_test.go +++ b/runtime/tests/checker/conditional_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -105,7 +105,7 @@ func TestCheckConditionalExpressionTypeInferring(t *testing.T) { require.NoError(t, err) xType := RequireGlobalValue(t, checker.Elaboration, "x") - assert.Equal(t, sema.AnyStructType, xType) + assert.Equal(t, sema.HashableStructType, xType) }) t.Run("optional", func(t *testing.T) { diff --git a/runtime/tests/checker/conditions_test.go b/runtime/tests/checker/conditions_test.go index d00d0a94ae..74979ccc91 100644 --- a/runtime/tests/checker/conditions_test.go +++ b/runtime/tests/checker/conditions_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -905,10 +905,6 @@ func TestCheckFunctionWithPostTestConditionAndResourceResult(t *testing.T) { self.resources["duplicate"] <-! r return true } - - destroy() { - destroy self.resources - } } `) diff --git a/runtime/tests/checker/conformance_test.go b/runtime/tests/checker/conformance_test.go index c50896d743..74a395ec33 100644 --- a/runtime/tests/checker/conformance_test.go +++ b/runtime/tests/checker/conformance_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,11 +19,13 @@ package checker import ( + "fmt" "testing" "github.com/stretchr/testify/require" "github.com/onflow/cadence/runtime/ast" + "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/sema" ) @@ -218,9 +220,9 @@ func TestCheckInitializerConformanceErrorMessages(t *testing.T) { errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.ConformanceError{}, errs[0]) + var conformanceErr *sema.ConformanceError + require.ErrorAs(t, errs[0], &conformanceErr) - conformanceErr := errs[0].(*sema.ConformanceError) require.NotNil(t, conformanceErr.InitializerMismatch) notes := conformanceErr.ErrorNotes() require.Len(t, notes, 1) @@ -238,19 +240,23 @@ func TestCheckInitializerConformanceErrorMessages(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - access(all) resource interface I { - fun foo(): Int - } + access(all) resource interface I { + fun foo(): Int + } - access(all) resource R: I { - } + access(all) resource R: I { + } `) errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.ConformanceError{}, errs[0]) - conformanceErr := errs[0].(*sema.ConformanceError) - require.Equal(t, "`R` is missing definitions for members: `foo`", conformanceErr.SecondaryError()) + var conformanceErr *sema.ConformanceError + require.ErrorAs(t, errs[0], &conformanceErr) + + require.Equal(t, + "`R` is missing definitions for members: `foo`", + conformanceErr.SecondaryError(), + ) }) t.Run("2 missing member", func(t *testing.T) { @@ -258,19 +264,150 @@ func TestCheckInitializerConformanceErrorMessages(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - access(all) resource interface I { - fun foo(): Int - fun bar(): Int - } + access(all) resource interface I { + fun foo(): Int + fun bar(): Int + } - access(all) resource R: I { - } + access(all) resource R: I { + } `) errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.ConformanceError{}, errs[0]) - conformanceErr := errs[0].(*sema.ConformanceError) - require.Equal(t, "`R` is missing definitions for members: `foo`, `bar`", conformanceErr.SecondaryError()) + var conformanceErr *sema.ConformanceError + require.ErrorAs(t, errs[0], &conformanceErr) + + require.Equal(t, + "`R` is missing definitions for members: `foo`, `bar`", + conformanceErr.SecondaryError(), + ) }) } + +func TestCheckConformanceAccessModifierMatches(t *testing.T) { + t.Parallel() + + e1 := &sema.EntitlementType{ + Identifier: "E1", + } + e2 := &sema.EntitlementType{ + Identifier: "E2", + } + + accessModifiers := []sema.Access{ + sema.PrimitiveAccess(ast.AccessSelf), + sema.PrimitiveAccess(ast.AccessAccount), + sema.PrimitiveAccess(ast.AccessContract), + sema.NewEntitlementSetAccess( + []*sema.EntitlementType{e1, e2}, + sema.Conjunction, + ), + sema.NewEntitlementSetAccess( + []*sema.EntitlementType{e1, e2}, + sema.Disjunction, + ), + sema.NewEntitlementSetAccess( + []*sema.EntitlementType{e1}, + sema.Conjunction, + ), + sema.PrimitiveAccess(ast.AccessAll), + } + + asASTAccess := func(access sema.Access) ast.Access { + switch access := access.(type) { + case sema.PrimitiveAccess: + return ast.PrimitiveAccess(access) + + case sema.EntitlementSetAccess: + + entitlementTypes := make([]*ast.NominalType, 0, access.Entitlements.Len()) + + access.Entitlements.Foreach(func(entitlementType *sema.EntitlementType, _ struct{}) { + entitlementTypes = append( + entitlementTypes, + &ast.NominalType{ + Identifier: ast.Identifier{ + Identifier: entitlementType.QualifiedIdentifier(), + }, + }, + ) + }) + + var entitlementSet ast.EntitlementSet + switch access.SetKind { + case sema.Conjunction: + entitlementSet = ast.NewConjunctiveEntitlementSet(entitlementTypes) + + case sema.Disjunction: + entitlementSet = ast.NewDisjunctiveEntitlementSet(entitlementTypes) + + default: + panic(errors.NewUnreachableError()) + } + + return ast.EntitlementAccess{ + EntitlementSet: entitlementSet, + } + + default: + panic(errors.NewUnreachableError()) + } + } + + test := func(t *testing.T, interfaceAccess, implementationAccess sema.Access) { + name := fmt.Sprintf("%s %s", interfaceAccess, implementationAccess) + t.Run(name, func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + fmt.Sprintf( + ` + entitlement E1 + entitlement E2 + + struct interface SI { + %s fun foo() + } + + struct S: SI { + %s fun foo() {} + } + `, + asASTAccess(interfaceAccess).Keyword(), + asASTAccess(implementationAccess).Keyword(), + ), + ) + + if interfaceAccess == sema.PrimitiveAccess(ast.AccessSelf) { + if implementationAccess == sema.PrimitiveAccess(ast.AccessSelf) { + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.InvalidAccessModifierError{}, errs[0]) + } else { + errs := RequireCheckerErrors(t, err, 2) + + require.IsType(t, &sema.InvalidAccessModifierError{}, errs[0]) + require.IsType(t, &sema.ConformanceError{}, errs[1]) + } + } else if !implementationAccess.Equal(interfaceAccess) { + errs := RequireCheckerErrors(t, err, 1) + + var conformanceErr *sema.ConformanceError + require.ErrorAs(t, errs[0], &conformanceErr) + + require.Len(t, conformanceErr.MemberMismatches, 1) + + } else { + require.NoError(t, err) + } + }) + } + + for _, access1 := range accessModifiers { + for _, access2 := range accessModifiers { + test(t, access1, access2) + } + } +} diff --git a/runtime/tests/checker/contract_test.go b/runtime/tests/checker/contract_test.go index 6f4a4ea847..0a2edbcb0d 100644 --- a/runtime/tests/checker/contract_test.go +++ b/runtime/tests/checker/contract_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -744,7 +744,12 @@ func TestCheckBadContractNesting(t *testing.T) { func TestCheckContractEnumAccessRestricted(t *testing.T) { t.Parallel() - _, err := ParseAndCheckWithOptions(t, "contract foo{}let x = foo!", + _, err := ParseAndCheckWithOptions(t, ` + contract foo { + access(all) fun bar() {} + } + let x = foo.bar()! + `, ParseAndCheckOptions{ Config: &sema.Config{ AccessCheckMode: sema.AccessCheckModeStrict, diff --git a/runtime/tests/checker/crypto_test.go b/runtime/tests/checker/crypto_test.go index b7174e2e34..1e3764c060 100644 --- a/runtime/tests/checker/crypto_test.go +++ b/runtime/tests/checker/crypto_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import ( "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" ) @@ -48,7 +49,9 @@ func TestCheckHashAlgorithmCases(t *testing.T) { ), ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -74,7 +77,9 @@ func TestCheckHashAlgorithmConstructor(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -97,7 +102,9 @@ func TestCheckHashAlgorithmHashFunctions(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -123,7 +130,9 @@ func TestCheckSignatureAlgorithmCases(t *testing.T) { ), ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -149,7 +158,9 @@ func TestCheckSignatureAlgorithmConstructor(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -176,7 +187,9 @@ func TestCheckVerifyPoP(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -203,7 +216,9 @@ func TestCheckVerifyPoPInvalidArgument(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -227,7 +242,9 @@ func TestCheckBLSAggregateSignatures(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -248,7 +265,9 @@ func TestCheckInvalidBLSAggregateSignatures(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -279,7 +298,9 @@ func TestCheckBLSAggregatePublicKeys(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -302,7 +323,9 @@ func TestCheckInvalidBLSAggregatePublicKeys(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/tests/checker/declaration_test.go b/runtime/tests/checker/declaration_test.go index ba6995e3c4..6cc48e17f1 100644 --- a/runtime/tests/checker/declaration_test.go +++ b/runtime/tests/checker/declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/dictionary_test.go b/runtime/tests/checker/dictionary_test.go index 5b8637e958..086315d76c 100644 --- a/runtime/tests/checker/dictionary_test.go +++ b/runtime/tests/checker/dictionary_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/dynamic_casting_test.go b/runtime/tests/checker/dynamic_casting_test.go index 1d15204a9f..14d0cd9f4c 100644 --- a/runtime/tests/checker/dynamic_casting_test.go +++ b/runtime/tests/checker/dynamic_casting_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/entitlements_test.go b/runtime/tests/checker/entitlements_test.go index 727c0f613d..fb2a5f18dd 100644 --- a/runtime/tests/checker/entitlements_test.go +++ b/runtime/tests/checker/entitlements_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -628,7 +628,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) let foo: auth(M) &String + access(mapping M) let foo: auth(mapping M) &String } `) @@ -642,7 +642,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) let foo: auth(M) &String? + access(mapping M) let foo: auth(mapping M) &String? } `) @@ -656,7 +656,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) let foo: String + access(mapping M) let foo: String } `) @@ -672,7 +672,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) let foo: &String + access(mapping M) let foo: &String } `) @@ -688,7 +688,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) let foo: [String] + access(mapping M) let foo: [String] } `) @@ -704,7 +704,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping N {} struct interface S { - access(M) let foo: auth(N) &String + access(mapping M) let foo: auth(mapping N) &String } `) @@ -723,7 +723,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement N struct interface S { - access(M) let foo: auth(N) &String + access(mapping M) let foo: auth(N) &String } `) @@ -739,7 +739,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) fun foo() + access(mapping M) fun foo() } `) @@ -755,7 +755,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} contract interface S { - access(M) fun foo(): auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int } `) @@ -770,8 +770,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } `) @@ -788,7 +788,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) fun foo(): auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int } `) @@ -804,7 +804,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) fun foo(): auth(X) &Int + access(mapping M) fun foo(): auth(X) &Int } `) @@ -822,7 +822,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(X) fun foo(): auth(M) &Int + access(X) fun foo(): auth(mapping M) &Int } `) @@ -838,7 +838,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct interface S { - access(M) fun foo(): auth(M) &Int? + access(mapping M) fun foo(): auth(mapping M) &Int? } `) @@ -852,8 +852,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping M {} struct S { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } `) @@ -870,8 +870,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { entitlement mapping N {} struct S { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(N) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping N) &Int } } `) @@ -898,7 +898,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &1 as auth(Y, Z) &Int } } @@ -925,8 +925,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { var x: [auth(Y) &Int] = [] struct S { - access(M) fun foo(): auth(M) &Int { - let r = &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + let r = &1 as auth(mapping M) &Int x[0] = r return r } @@ -951,8 +951,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { - let x = &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + let x = &1 as auth(mapping M) &Int // cannot cast, because M may be access(all) let y: auth(F) &Int = x return y @@ -969,7 +969,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { typeMismatchError.ExpectedType.QualifiedString(), ) assert.Equal(t, - "auth(M) &Int", + "auth(mapping M) &Int", typeMismatchError.ActualType.QualifiedString(), ) }) @@ -983,16 +983,16 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { var x: [AnyStruct] = [] struct S { - access(M) fun foo(cond: Bool): auth(M) &Int { + access(mapping M) fun foo(cond: Bool): auth(mapping M) &Int { if(cond) { let r = x[0] - if let ref = x as? auth(M) &Int { + if let ref = x as? auth(mapping M) &Int { return ref } else { - return &2 as auth(M) &Int + return &2 as auth(mapping M) &Int } } else { - let r = &3 as auth(M) &Int + let r = &3 as auth(mapping M) &Int x.append(r) return r } @@ -1023,8 +1023,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct S { - access(M) fun foo(cond: Bool): auth(M) &T { - let x = &T() as auth(M) &T + access(mapping M) fun foo(cond: Bool): auth(mapping M) &T { + let x = &T() as auth(mapping M) &T if let y = x as? auth(Y) &T { y.foo() } @@ -1054,8 +1054,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct S { - access(M) fun foo(cond: Bool): auth(M) &T { - let x = &T() as auth(M) &T + access(mapping M) fun foo(cond: Bool): auth(mapping M) &T { + let x = &T() as auth(mapping M) &T x.foo() return x } @@ -1110,8 +1110,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct S { - access(M) let t: auth(M) &T - access(M) fun foo(cond: Bool): auth(M) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping M) fun foo(cond: Bool): auth(mapping M) &Int { // success because we have self is fully entitled to the domain of M return self.t.getRef() } @@ -1146,8 +1146,8 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct S { - access(M) let t: auth(M) &T - access(M) fun foo(cond: Bool): auth(M) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping M) fun foo(cond: Bool): auth(mapping M) &Int { // invalid bc we have no Z entitlement return self.t.getRef() } @@ -1210,13 +1210,13 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T + access(mapping M) let t: auth(mapping M) &T access(X) fun foo(cond: Bool): auth(Z) &Int { return self.t.getRef() } @@ -1252,14 +1252,14 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(cond: Bool): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(cond: Bool): auth(mapping NM) &Int { return self.t.getRef() } @@ -1290,13 +1290,13 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { X -> Q } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(cond: Bool): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(cond: Bool): auth(mapping NM) &Int { return self.t.getRef() } init() { @@ -1310,7 +1310,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { var typeMismatchErr *sema.TypeMismatchError require.ErrorAs(t, errs[0], &typeMismatchErr) assert.Equal(t, - "auth(NM) &Int", + "auth(mapping NM) &Int", typeMismatchErr.ExpectedType.QualifiedString(), ) assert.Equal(t, @@ -1339,13 +1339,13 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { X -> Z } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(cond: Bool): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(cond: Bool): auth(mapping NM) &Int { return self.t.getRef() } init() { @@ -1377,13 +1377,13 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { A -> B } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(cond: Bool): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(cond: Bool): auth(mapping NM) &Int { // the B entitlement doesn't pass through the mapping N return self.t.getRef() } @@ -1397,7 +1397,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { var typeMismatchErr *sema.TypeMismatchError require.ErrorAs(t, errs[0], &typeMismatchErr) assert.Equal(t, - "auth(NM) &Int", + "auth(mapping NM) &Int", typeMismatchErr.ExpectedType.QualifiedString(), ) assert.Equal(t, @@ -1429,13 +1429,13 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { A -> B } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(cond: Bool): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(cond: Bool): auth(mapping NM) &Int { return self.t.getRef() } init() { @@ -1452,7 +1452,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} struct interface S { - access(M) fun foo(): [auth(M) &Int] + access(mapping M) fun foo(): [auth(mapping M) &Int] } `) @@ -1461,67 +1461,82 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { require.IsType(t, &sema.InvalidMappedEntitlementMemberError{}, errs[0]) }) - t.Run("accessor function with invalid mapped ref arg", func(t *testing.T) { + t.Run("accessor function with mapped ref arg", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement mapping M {} + entitlement E + entitlement F + entitlement G + entitlement H + entitlement mapping M { + E -> F + G -> H + } struct interface S { - access(M) fun foo(arg: auth(M) &Int): auth(M) &Int + access(mapping M) fun foo(_ arg: auth(mapping M) &Int): auth(mapping M) &Int } - `) - errs := RequireCheckerErrors(t, err, 1) + fun foo(s: auth(E) &{S}) { + s.foo(&1 as auth(F) &Int) + } + `) - require.IsType(t, &sema.InvalidMappedAuthorizationOutsideOfFieldError{}, errs[0]) + assert.NoError(t, err) }) - t.Run("multiple mappings conjunction", func(t *testing.T) { + t.Run("accessor function with full mapped ref arg", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement mapping M {} - entitlement mapping N {} - resource interface R { - access(M, N) let foo: String + entitlement E + entitlement F + entitlement G + entitlement H + entitlement mapping M { + E -> F + G -> H + } + struct interface S { + access(mapping M) fun foo(_ arg: auth(mapping M) &Int): auth(mapping M) &Int } - `) - errs := RequireCheckerErrors(t, err, 1) + fun foo(s: {S}) { + s.foo(&1 as auth(F, H) &Int) + } + `) - require.IsType(t, &sema.InvalidMultipleMappedEntitlementError{}, errs[0]) + assert.NoError(t, err) }) - t.Run("multiple mappings conjunction with regular", func(t *testing.T) { + t.Run("invalid mapping", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement mapping M {} - entitlement N + entitlement M resource interface R { - access(M, N) let foo: String + access(mapping M) let foo: String } `) errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.InvalidMultipleMappedEntitlementError{}, errs[0]) + require.IsType(t, &sema.InvalidEntitlementMappingTypeError{}, errs[0]) }) - t.Run("multiple mappings disjunction", func(t *testing.T) { + t.Run("mapping without keyword", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement mapping M {} entitlement mapping N {} resource interface R { - access(M | N) let foo: String + access(N) let foo: String } `) errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.InvalidMultipleMappedEntitlementError{}, errs[0]) + require.IsType(t, &sema.MappingAccessMissingKeywordError{}, errs[0]) }) t.Run("multiple mappings disjunction with regular", func(t *testing.T) { @@ -1537,7 +1552,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.InvalidNonEntitlementAccessError{}, errs[0]) + require.IsType(t, &sema.MappingAccessMissingKeywordError{}, errs[0]) }) t.Run("valid in contract", func(t *testing.T) { @@ -1547,7 +1562,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { contract C { entitlement mapping M {} struct interface S { - access(M) let foo: auth(M) &String + access(mapping M) let foo: auth(mapping M) &String } } `) @@ -1562,7 +1577,7 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { contract interface C { entitlement mapping M {} struct interface S { - access(M) let foo: auth(M) &String + access(mapping M) let foo: auth(mapping M) &String } } `) @@ -1577,11 +1592,11 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { contract C { entitlement mapping M {} struct interface S { - access(M) let foo: auth(M) &String + access(mapping M) let foo: auth(mapping M) &String } } resource interface R { - access(C.M) let bar: auth(C.M) &String + access(mapping C.M) let bar: auth(mapping C.M) &String } `) @@ -1594,12 +1609,35 @@ func TestCheckBasicEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource interface R { - access(M) let foo: [auth(M) &Int] + access(mapping M) let foo: [auth(mapping M) &Int] } `) assert.NoError(t, err) }) + + t.Run("enum field", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + enum Status: Int { + case On + case Off + } + + entitlement mapping M {} + + struct interface S { + // enum cases are public. + // Hence, using entitlement mappings for enum-typed variables are pointless. + // So reject this statically. + access(mapping M) let status: Status + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidMappedEntitlementMemberError{}, errs[0]) + }) } func TestCheckInvalidEntitlementAccess(t *testing.T) { @@ -1730,7 +1768,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - let x: auth(M) &Int = 3 + let x: auth(mapping M) &Int = 3 `) errs := RequireCheckerErrors(t, err, 2) @@ -1744,7 +1782,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - fun foo(x: auth(M) &Int) { + fun foo(x: auth(mapping M) &Int) { } `) @@ -1759,7 +1797,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - fun foo(): auth(M) &Int {} + fun foo(): auth(mapping M) &Int {} `) errs := RequireCheckerErrors(t, err, 2) @@ -1773,7 +1811,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - let x = &1 as auth(M) &Int + let x = &1 as auth(mapping M) &Int `) errs := RequireCheckerErrors(t, err, 1) @@ -1787,7 +1825,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} let x = &1 as &Int - let y = x as? auth(M) &Int + let y = x as? auth(mapping M) &Int `) errs := RequireCheckerErrors(t, err, 1) @@ -1800,7 +1838,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - fun foo(x: Capability) {} + fun foo(x: Capability) {} `) errs := RequireCheckerErrors(t, err, 1) @@ -1815,7 +1853,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { entitlement mapping M {} fun test(storage: auth(Storage) &Account.Storage) { - let x = storage.borrow(from: /storage/foo) + let x = storage.borrow(from: /storage/foo) } `) @@ -1830,7 +1868,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} let x = &1 as &Int - let y = x as auth(M) &Int + let y = x as auth(mapping M) &Int `) errs := RequireCheckerErrors(t, err, 1) @@ -1844,7 +1882,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource interface R { - access(M) let foo: Capability + access(mapping M) let foo: Capability } `) @@ -1859,7 +1897,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource interface R { - access(M) let foo: (auth(M) &Int)? + access(mapping M) let foo: (auth(mapping M) &Int)? } `) @@ -1873,7 +1911,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource interface R { - access(M) let foo: fun(auth(M) &Int): auth(M) &Int + access(mapping M) let foo: fun(auth(mapping M) &Int): auth(mapping M) &Int } `) @@ -1888,7 +1926,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource interface R { - access(M) let foo: fun((auth(M) &Int?)) + access(mapping M) let foo: fun((auth(mapping M) &Int?)) } `) @@ -1907,7 +1945,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { E -> F } struct interface S { - access(E) var x: auth(M) &String + access(E) var x: auth(mapping M) &String } `) @@ -1926,7 +1964,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { E -> F } struct interface S { - access(E) var x: fun(auth(M) &String): Int + access(E) var x: fun(auth(mapping M) &String): Int } `) @@ -1945,7 +1983,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { E -> F } struct interface S { - access(M) var x: auth(E) &String + access(mapping M) var x: auth(E) &String } `) @@ -1967,7 +2005,7 @@ func TestCheckInvalidEntitlementMappingAuth(t *testing.T) { E -> F } struct interface S { - access(M) var x: auth(N) &String + access(mapping M) var x: auth(mapping N) &String } `) @@ -1987,7 +2025,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - access(M) var x: String = "" + access(mapping M) var x: String = "" `) errs := RequireCheckerErrors(t, err, 1) @@ -2001,7 +2039,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource interface R { - access(M) let foo: Int + access(mapping M) let foo: Int } `) @@ -2016,7 +2054,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource interface R { - access(M) let foo: Int? + access(mapping M) let foo: Int? } `) @@ -2030,7 +2068,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} - access(M) fun foo() {} + access(mapping M) fun foo() {} `) errs := RequireCheckerErrors(t, err, 1) @@ -2044,7 +2082,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} contract C { - access(M) fun foo() {} + access(mapping M) fun foo() {} } `) @@ -2059,7 +2097,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} contract interface C { - access(M) fun foo() + access(mapping M) fun foo() } `) @@ -2074,7 +2112,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} resource I { - access(M) event Foo() + access(mapping M) event Foo() } `) @@ -2090,7 +2128,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement mapping M {} enum X: UInt8 { - access(M) case red + access(mapping M) case red } `) @@ -2104,7 +2142,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` resource R { - access(M) fun foo() {} + access(mapping M) fun foo() {} } `) @@ -2118,7 +2156,7 @@ func TestCheckInvalidEntitlementMappingAccess(t *testing.T) { _, err := ParseAndCheck(t, ` struct interface S { - access(M) let foo: String + access(mapping M) let foo: String } `) @@ -2314,10 +2352,10 @@ func TestCheckEntitlementInheritance(t *testing.T) { X -> Y } struct interface I { - access(M) let x: auth(M) &String + access(mapping M) let x: auth(mapping M) &String } struct S: I { - access(M) let x: auth(M) &String + access(mapping M) let x: auth(mapping M) &String init() { self.x = &"foo" as auth(Y) &String } @@ -2337,10 +2375,10 @@ func TestCheckEntitlementInheritance(t *testing.T) { X -> Y } struct interface I { - access(M) let x: auth(M) &String + access(mapping M) let x: auth(mapping M) &String } struct interface S: I { - access(M) let x: auth(M) &String + access(mapping M) let x: auth(mapping M) &String } `) @@ -2358,10 +2396,10 @@ func TestCheckEntitlementInheritance(t *testing.T) { X -> Y } struct interface I { - access(M) let x: auth(M) &String + access(mapping M) let x: auth(mapping M) &String } struct S: I { - access(N) let x: auth(N) &String + access(mapping N) let x: auth(mapping N) &String init() { self.x = &"foo" as auth(Y) &String } @@ -2384,10 +2422,10 @@ func TestCheckEntitlementInheritance(t *testing.T) { X -> Y } struct interface I { - access(M) let x: auth(M) &String + access(mapping M) let x: auth(mapping M) &String } struct interface S: I { - access(N) let x: auth(N) &String + access(mapping N) let x: auth(mapping N) &String } `) @@ -2579,7 +2617,7 @@ func TestCheckEntitlementInheritance(t *testing.T) { access(E, F) var x: auth(E, F) &String } struct S: I { - access(M) var x: auth(M) &String + access(mapping M) var x: auth(mapping M) &String init() { self.x = &"foo" as auth(F) &String @@ -2602,7 +2640,7 @@ func TestCheckEntitlementInheritance(t *testing.T) { E -> F } struct interface I { - access(M) var x: auth(M) &String + access(mapping M) var x: auth(mapping M) &String } struct S: I { access(E, F) var x: auth(E, F) &String @@ -2631,7 +2669,7 @@ func TestCheckEntitlementInheritance(t *testing.T) { access(E | F) var x: auth(E | F) &String } struct S: I { - access(M) var x: auth(M) &String + access(mapping M) var x: auth(mapping M) &String init() { self.x = &"foo" as auth(F) &String @@ -2654,7 +2692,7 @@ func TestCheckEntitlementInheritance(t *testing.T) { E -> F } struct interface I { - access(M) var x: auth(M) &String + access(mapping M) var x: auth(mapping M) &String } struct S: I { access(E | F) var x: auth(E | F) &String @@ -2687,7 +2725,10 @@ func TestCheckEntitlementInheritance(t *testing.T) { } `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 2) + + require.IsType(t, &sema.ConformanceError{}, errs[0]) + require.IsType(t, &sema.ConformanceError{}, errs[1]) }) t.Run("more expanded entitlements valid in disjunction", func(t *testing.T) { @@ -2705,7 +2746,9 @@ func TestCheckEntitlementInheritance(t *testing.T) { } `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.ConformanceError{}, errs[0]) }) t.Run("reduced entitlements valid with conjunction", func(t *testing.T) { @@ -2726,7 +2769,10 @@ func TestCheckEntitlementInheritance(t *testing.T) { } `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 2) + + require.IsType(t, &sema.ConformanceError{}, errs[0]) + require.IsType(t, &sema.ConformanceError{}, errs[1]) }) t.Run("more reduced entitlements valid with conjunction", func(t *testing.T) { @@ -2744,7 +2790,9 @@ func TestCheckEntitlementInheritance(t *testing.T) { } `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.ConformanceError{}, errs[0]) }) t.Run("expanded entitlements invalid in conjunction", func(t *testing.T) { @@ -2909,7 +2957,9 @@ func TestCheckEntitlementInheritance(t *testing.T) { } `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.ConformanceError{}, errs[0]) }) t.Run("overlapped entitlements valid with conjunction/disjunction subtype", func(t *testing.T) { @@ -2927,8 +2977,9 @@ func TestCheckEntitlementInheritance(t *testing.T) { } `) - // implementation is less specific because it only requires one, but interface guarantees both - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.ConformanceError{}, errs[0]) }) t.Run("different entitlements invalid", func(t *testing.T) { @@ -2949,9 +3000,10 @@ func TestCheckEntitlementInheritance(t *testing.T) { } `) - errs := RequireCheckerErrors(t, err, 1) + errs := RequireCheckerErrors(t, err, 2) require.IsType(t, &sema.ConformanceError{}, errs[0]) + require.IsType(t, &sema.ConformanceError{}, errs[1]) }) t.Run("default function entitlements", func(t *testing.T) { @@ -2965,8 +3017,8 @@ func TestCheckEntitlementInheritance(t *testing.T) { } entitlement G struct interface I { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } struct S: I {} @@ -2980,98 +3032,114 @@ func TestCheckEntitlementInheritance(t *testing.T) { assert.NoError(t, err) }) - t.Run("attachment default function entitlements", func(t *testing.T) { + t.Run("attachment inherited default entitled function entitlements on base", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement E entitlement F - entitlement G - entitlement mapping M { - E -> F - } - entitlement mapping N { - G -> E - } struct interface I { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(E) fun foo(): auth(F) &Int { + return &1 as auth(F) &Int } } - struct S {} - access(N) attachment A for S: I {} + struct interface I2: I {} + struct S { + access(E) fun foo() {} + } + access(all) attachment A for S: I2 {} fun test() { let s = attach A() to S() - let ref = &s as auth(G) &S - let i: auth(F) &Int = s[A]!.foo() + let ref = &s as auth(E) &S + let attachmentRef: auth(E) &A = s[A]! + let i: auth(F) &Int = attachmentRef.foo() } `) assert.NoError(t, err) }) - t.Run("attachment inherited default function entitlements", func(t *testing.T) { + t.Run("attachment inherited default mapped function entitlements on base", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement E entitlement F - entitlement G entitlement mapping M { E -> F } - entitlement mapping N { - G -> E - } struct interface I { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } struct interface I2: I {} - struct S {} - access(N) attachment A for S: I2 {} + struct S { + access(E) fun foo() {} + } + access(all) attachment A for S: I2 {} fun test() { let s = attach A() to S() - let ref = &s as auth(G) &S - let i: auth(F) &Int = s[A]!.foo() + let ref = &s as auth(E) &S + let attachmentRef: auth(E) &A = s[A]! + let i: auth(F) &Int = attachmentRef.foo() } `) assert.NoError(t, err) }) - t.Run("attachment default function entitlements no attachment mapping", func(t *testing.T) { + t.Run("attachment inherited default mapped function entitlements not on base", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement E entitlement F - entitlement G entitlement mapping M { E -> F } - entitlement mapping N { - G -> E - } struct interface I { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } + struct interface I2: I {} struct S {} - attachment A for S: I {} + access(all) attachment A for S: I2 {} fun test() { let s = attach A() to S() - let ref = &s as auth(G) &S - let i: auth(F) &Int = s[A]!.foo() // mismatch + let ref = &s as auth(E) &S + let i: auth(F) &Int = s[A]!.foo() } `) errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentEntitlementError{}, errs[0]) + }) - // because A is declared with no mapping, all its references are unentitled - require.IsType(t, &sema.TypeMismatchError{}, errs[0]) + t.Run("attachment inherited default entitled function entitlements not on base", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement E + entitlement F + struct interface I { + access(E) fun foo(): auth(F) &Int { + return &1 as auth(F) &Int + } + } + struct interface I2: I {} + struct S {} + access(all) attachment A for S: I2 {} + fun test() { + let s = attach A() to S() + let ref = &s as auth(E) &S + let i: auth(F) &Int = s[A]!.foo() + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentEntitlementError{}, errs[0]) }) } @@ -3568,16 +3636,18 @@ func TestCheckAttachmentEntitlementAccessAnnotation(t *testing.T) { t.Parallel() - t.Run("mapping allowed", func(t *testing.T) { + t.Run("mapping not allowed", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement mapping E {} - access(E) attachment A for AnyStruct {} + access(mapping E) attachment A for AnyStruct {} `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.InvalidMappedEntitlementMemberError{}, errs[0]) }) t.Run("entitlement set not allowed", func(t *testing.T) { @@ -3596,7 +3666,7 @@ func TestCheckAttachmentEntitlementAccessAnnotation(t *testing.T) { require.IsType(t, &sema.InvalidEntitlementAccessError{}, errs[0]) }) - t.Run("mapping allowed in contract", func(t *testing.T) { + t.Run("mapping not allowed in contract", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` @@ -3608,13 +3678,15 @@ func TestCheckAttachmentEntitlementAccessAnnotation(t *testing.T) { entitlement mapping E { X -> Y } - access(E) attachment A for AnyStruct { - access(Y) fun foo() {} + access(mapping E) attachment A for AnyStruct { + access(all) fun foo() {} } } `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.InvalidMappedEntitlementMemberError{}, errs[0]) }) t.Run("entitlement set not allowed in contract", func(t *testing.T) { @@ -3799,7 +3871,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { access(Y) fun foo() {} } struct interface S { - access(M) let x: auth(M) &Q + access(mapping M) let x: auth(mapping M) &Q } fun foo(s: auth(X) &{S}) { s.x.foo() @@ -3822,7 +3894,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { access(Y) fun foo() {} } struct interface S { - access(M) let x: auth(M) &Q + access(mapping M) let x: auth(mapping M) &Q } fun foo(s: auth(X) &{S}?) { s?.x?.foo() @@ -3843,7 +3915,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { } struct Q {} struct interface S { - access(M) let x: auth(M) &Q + access(mapping M) let x: auth(mapping M) &Q } fun foo(s: auth(X) &{S}?): auth(Y) &Q? { return s?.x @@ -3866,7 +3938,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { E -> F } struct S { - access(M) let foo: auth(M) &Int + access (mapping M) let foo: auth(mapping M) &Int init() { self.foo = &3 as auth(F, Y) &Int } @@ -3894,7 +3966,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { E -> F } struct S { - access(M) let foo: auth(M) &Int + access(mapping M) let foo: auth(mapping M) &Int init() { self.foo = &3 as auth(F, Y) &Int } @@ -3944,8 +4016,8 @@ func TestCheckEntitlementMapAccess(t *testing.T) { E -> F } struct S { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } fun foo(s: auth(X) &S?): auth(X, Y) &Int? { @@ -3980,7 +4052,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { E -> F } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(X | E) &{S}) { let x: auth(Y | F) &Int = ref.x @@ -4012,7 +4084,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Y } struct interface S { - access(M) let x: auth(M) &Int? + access(mapping M) let x: auth(mapping M) &Int? } fun foo(ref: auth(X) &{S}) { let x: auth(Y) &Int? = ref.x @@ -4032,7 +4104,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Y } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(X) &{S}) { let x: auth(X) &Int = ref.x @@ -4067,7 +4139,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { A -> B } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(A) &{S}) { let x: auth(Y) &Int = ref.x @@ -4102,7 +4174,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { A -> B } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(A | X) &{S}) { let x: auth(B | Y) &Int = ref.x @@ -4127,7 +4199,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { A -> B } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(A | X) &{S}) { let x = ref.x @@ -4154,7 +4226,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { A -> Y } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(A | X) &{S}) { let x = ref.x @@ -4181,7 +4253,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(X) &{S}) { let x: auth(Y, Z) &Int = ref.x @@ -4204,7 +4276,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(D) &{S}) { let x1: auth(D) &Int = ref.x @@ -4238,7 +4310,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(X) &{S}) { let x: auth(Z) &Int = ref.x @@ -4263,7 +4335,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { B -> C } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref1: auth(A) &{S}, ref2: auth(B) &{S}) { let x1: auth(C) &Int = ref1.x @@ -4291,7 +4363,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(A, X) &{S}) { let x: auth(B, C, Y, Z) &Int = ref.x @@ -4320,7 +4392,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: auth(A, X) &{S}) { let upRef = ref as auth(A) &{S} @@ -4353,7 +4425,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Y } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: &{S}) { let x: &Int = ref.x @@ -4373,7 +4445,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Y } struct interface S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int } fun foo(ref: &{S}) { let x: auth(Y) &Int = ref.x @@ -4407,7 +4479,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int init() { self.x = &1 as auth(Y, Z) &Int } @@ -4431,7 +4503,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct S { - access(M) var x: auth(M) &Int + access(mapping M) var x: auth(mapping M) &Int init() { self.x = &1 as auth(Y, Z) &Int } @@ -4456,7 +4528,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct S { - access(M) var x: auth(M) &Int + access(mapping M) var x: auth(mapping M) &Int init() { self.x = &1 as auth(Y, Z) &Int } @@ -4482,7 +4554,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Y } struct S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int init() { self.x = &1 as &Int } @@ -4509,7 +4581,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int init() { self.x = &1 as auth(Y) &Int } @@ -4536,7 +4608,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int init() { self.x = (&1 as auth(Y) &Int) as auth(Y | Z) &Int } @@ -4563,7 +4635,7 @@ func TestCheckEntitlementMapAccess(t *testing.T) { X -> Z } struct S { - access(M) let x: auth(M) &Int + access(mapping M) let x: auth(mapping M) &Int init() { self.x = 1 } @@ -4589,11 +4661,10 @@ func TestCheckAttachmentEntitlements(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement X entitlement Y - entitlement mapping M { - X -> Y + struct S { + access(Y) fun foo() {} } - struct S {} - access(M) attachment A for S { + access(all) attachment A for S { access(Y) fun entitled() { let a: auth(Y) &A = self let b: &S = base @@ -4614,7 +4685,7 @@ func TestCheckAttachmentEntitlements(t *testing.T) { typeMismatchErr.ExpectedType.QualifiedString(), ) assert.Equal(t, - "auth(Y) &A", + "&A", typeMismatchErr.ActualType.QualifiedString(), ) @@ -4635,12 +4706,8 @@ func TestCheckAttachmentEntitlements(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement X entitlement Y - entitlement mapping M { - X -> Y - } struct S {} - access(M) attachment A for S { - require entitlement X + access(all) attachment A for S { access(all) fun unentitled() { let b: &S = base } @@ -4659,43 +4726,30 @@ func TestCheckAttachmentEntitlements(t *testing.T) { typeMismatchErr.ExpectedType.QualifiedString(), ) assert.Equal(t, - "auth(X) &S", + "&S", typeMismatchErr.ActualType.QualifiedString(), ) }) - t.Run("base type with no requirements", func(t *testing.T) { + t.Run("base type with sufficient requirements", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement X - entitlement Y - entitlement mapping M { - X -> Y + struct S { + access(X) fun foo() {} } - struct S {} - access(M) attachment A for S { + access(all) attachment A for S { access(all) fun unentitled() { let b: &S = base } - access(all) fun entitled() { + access(X) fun entitled() { let b: auth(X) &S = base } } `) - errs := RequireCheckerErrors(t, err, 1) - - var typeMismatchErr *sema.TypeMismatchError - require.ErrorAs(t, errs[0], &typeMismatchErr) - assert.Equal(t, - typeMismatchErr.ExpectedType.QualifiedString(), - "auth(X) &S", - ) - assert.Equal(t, - "&S", - typeMismatchErr.ActualType.QualifiedString(), - ) + assert.NoError(t, err) }) t.Run("base type", func(t *testing.T) { @@ -4704,17 +4758,15 @@ func TestCheckAttachmentEntitlements(t *testing.T) { _, err := ParseAndCheck(t, ` entitlement X entitlement Y - entitlement mapping M { - X -> Y + struct S { + access(X) fun foo() {} + access(Y) fun bar() {} } - struct S {} - access(M) attachment A for S { - require entitlement X - require entitlement Y + access(all) attachment A for S { access(all) fun unentitled() { let b: &S = base } - access(all) fun entitled() { + access(X, Y) fun entitled() { let b: auth(X, Y) &S = base } } @@ -4723,46 +4775,80 @@ func TestCheckAttachmentEntitlements(t *testing.T) { assert.NoError(t, err) }) - t.Run("multiple mappings", func(t *testing.T) { + t.Run("base and self in mapped functions", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement X entitlement Y - entitlement E - entitlement F entitlement mapping M { X -> Y - E -> F } struct S { - access(E, X) fun foo() {} + access(X) fun foo() {} } - access(M) attachment A for S { - access(F, Y) fun entitled() { - let a: auth(F, Y) &A = self - } - access(all) fun unentitled() { - let a: auth(F, Y, E) &A = self // err + access(all) attachment A for S { + access(mapping M) fun foo(): auth(mapping M) &Int { + let b: auth(mapping M) &S = base + let a: auth(mapping M) &A = self + + return &1 } } `) errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + }) + + t.Run("invalid base and self in mapped functions", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + entitlement mapping M { + X -> Y + } + struct S { + access(X) fun foo() {} + } + access(all) attachment A for S { + access(mapping M) fun foo(): auth(mapping M) &Int { + let b: auth(Y) &S = base + let a: auth(Y) &A = self + + return &1 + } + } + `) + + errs := RequireCheckerErrors(t, err, 3) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) var typeMismatchErr *sema.TypeMismatchError - require.ErrorAs(t, errs[0], &typeMismatchErr) + require.ErrorAs(t, errs[1], &typeMismatchErr) + assert.Equal(t, + "auth(Y) &S", + typeMismatchErr.ExpectedType.QualifiedString(), + ) + assert.Equal(t, + "auth(mapping M) &S", + typeMismatchErr.ActualType.QualifiedString(), + ) + + require.ErrorAs(t, errs[2], &typeMismatchErr) assert.Equal(t, - "auth(F, Y, E) &A", + "auth(Y) &A", typeMismatchErr.ExpectedType.QualifiedString(), ) assert.Equal(t, - "auth(Y, F) &A", + "auth(mapping M) &A", typeMismatchErr.ActualType.QualifiedString(), ) }) - t.Run("missing in codomain", func(t *testing.T) { + t.Run("missing in S", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` @@ -4770,12 +4856,14 @@ func TestCheckAttachmentEntitlements(t *testing.T) { entitlement Y entitlement Z entitlement E - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(X) fun foo() {} + access(Y | Z) let bar: Int + init() { + self.bar = 1 + } } - struct S {} - access(M) attachment A for S { + access(all) attachment A for S { access(E) fun entitled() {} } `) @@ -4790,20 +4878,17 @@ func TestCheckAttachmentEntitlements(t *testing.T) { ) }) - t.Run("missing in codomain in set", func(t *testing.T) { + t.Run("missing in set", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement X entitlement Y entitlement Z entitlement E - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(Y, Z) fun foo() {} } - struct S {} - access(M) attachment A for S { + access(all) attachment A for S { access(Y | E | Z) fun entitled() {} } `) @@ -4825,11 +4910,10 @@ func TestCheckAttachmentEntitlements(t *testing.T) { entitlement X entitlement E entitlement F - entitlement mapping M { - E -> F + struct S { + access(F) fun foo() {} } - struct S {} - access(M) attachment A for S { + access(all) attachment A for S { access(F, X, E) fun entitled() {} } `) @@ -4860,17 +4944,18 @@ func TestCheckAttachmentEntitlements(t *testing.T) { X -> Y } struct S { - access(Y) fun foo() {} + access(X) fun foo() {} } - access(M) attachment A for S { - access(M) let x: auth(M) &S + access(all) attachment A for S { + access(mapping M) let x: auth(mapping M) &S init() { self.x = &S() as auth(Y) &S } } `) - assert.NoError(t, err) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) }) t.Run("access(all) decl", func(t *testing.T) { @@ -4949,12 +5034,10 @@ func TestCheckAttachmentAccessEntitlements(t *testing.T) { entitlement X entitlement Y entitlement Z - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(Y, Z) fun foo() {} } - struct S {} - access(M) attachment A for S { + access(all) attachment A for S { access(Y, Z) fun foo() {} } let s = attach A() to S() @@ -4964,20 +5047,41 @@ func TestCheckAttachmentAccessEntitlements(t *testing.T) { assert.NoError(t, err) }) - t.Run("basic owned intersection fully entitled", func(t *testing.T) { + t.Run("basic owned fully entitled missing X", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement X entitlement Y entitlement Z - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(Y, Z) fun foo() {} + } + access(all) attachment A for S { + access(Y, Z) fun foo() {} + } + let s = attach A() to S() + let a: auth(X, Y, Z) &A = s[A]! + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) + + t.Run("basic owned intersection fully entitled", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + entitlement Z + struct interface I { + access(Y, Z) fun foo() } - struct interface I {} - struct S: I {} - access(M) attachment A for I { + struct S: I { + access(Y, Z) fun foo() {} + } + access(all) attachment A for I { access(Y, Z) fun foo() {} } let s: {I} = attach A() to S() @@ -4987,33 +5091,51 @@ func TestCheckAttachmentAccessEntitlements(t *testing.T) { assert.NoError(t, err) }) - t.Run("basic reference mapping", func(t *testing.T) { + t.Run("basic owned intersection fully entitled missing X", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` entitlement X entitlement Y - entitlement E - entitlement F - entitlement mapping M { - X -> Y - E -> F + entitlement Z + struct interface I { + access(Y, Z) fun foo() + } + struct S: I { + access(Y, Z) fun foo() {} + } + access(all) attachment A for I { + access(Y, Z) fun foo() {} } + let s: {I} = attach A() to S() + let a: auth(X, Y, Z) &A = s[A]! + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) + + t.Run("basic reference mapping", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement X + entitlement E struct S { access(X, E) fun foo() {} } - access(M) attachment A for S { - access(Y, F) fun foo() {} + access(all) attachment A for S { + access(X, E) fun foo() {} } let s = attach A() to S() - let yRef = &s as auth(X) &S - let fRef = &s as auth(E) &S + let xRef = &s as auth(X) &S + let eRef = &s as auth(E) &S let bothRef = &s as auth(X, E) &S - let a1: auth(Y) &A = yRef[A]! - let a2: auth(F) &A = fRef[A]! - let a3: auth(F) &A = yRef[A]! // err - let a4: auth(Y) &A = fRef[A]! // err - let a5: auth(Y, F) &A = bothRef[A]! + let a1: auth(X) &A = xRef[A]! + let a2: auth(E) &A = eRef[A]! + let a3: auth(E) &A = xRef[A]! // err + let a4: auth(X) &A = eRef[A]! // err + let a5: auth(X, E) &A = bothRef[A]! `) errs := RequireCheckerErrors(t, err, 2) @@ -5021,21 +5143,21 @@ func TestCheckAttachmentAccessEntitlements(t *testing.T) { var typeMismatchErr *sema.TypeMismatchError require.ErrorAs(t, errs[0], &typeMismatchErr) assert.Equal(t, - "auth(F) &A?", + "auth(E) &A?", typeMismatchErr.ExpectedType.QualifiedString(), ) assert.Equal(t, - "auth(Y) &A?", + "auth(X) &A?", typeMismatchErr.ActualType.QualifiedString(), ) require.ErrorAs(t, errs[1], &typeMismatchErr) assert.Equal(t, - "auth(Y) &A?", + "auth(X) &A?", typeMismatchErr.ExpectedType.QualifiedString(), ) assert.Equal(t, - "auth(F) &A?", + "auth(E) &A?", typeMismatchErr.ActualType.QualifiedString(), ) }) @@ -5044,51 +5166,15 @@ func TestCheckAttachmentAccessEntitlements(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement X - entitlement Y - entitlement mapping M { - X -> Y - } - struct S {} - access(M) attachment A for S { - access(Y) fun foo() {} - } - let s = attach A() to S() - let ref = &s as &S - let a1: auth(Y) &A = ref[A]! - `) - - errs := RequireCheckerErrors(t, err, 1) - - var typeMismatchErr *sema.TypeMismatchError - require.ErrorAs(t, errs[0], &typeMismatchErr) - assert.Equal(t, - "auth(Y) &A?", - typeMismatchErr.ExpectedType.QualifiedString(), - ) - assert.Equal(t, - "&A?", - typeMismatchErr.ActualType.QualifiedString(), - ) - }) - - t.Run("entitled access access(all) attachment", func(t *testing.T) { - t.Parallel() - - _, err := ParseAndCheck(t, ` - entitlement X entitlement Y - entitlement mapping M { - X -> Y - } struct S { - access(X) fun foo() {} + access(Y) fun foo() {} } access(all) attachment A for S { - access(all) fun foo() {} + access(Y) fun foo() {} } let s = attach A() to S() - let ref = &s as auth(X) &S + let ref = &s as &S let a1: auth(Y) &A = ref[A]! `) @@ -5141,41 +5227,65 @@ func TestCheckAttachmentAccessEntitlements(t *testing.T) { ) }) - t.Run("unrepresentable access mapping", func(t *testing.T) { + t.Run("mapped function in attachment", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement X - entitlement Y - entitlement Z - entitlement E - entitlement F - entitlement G + entitlement X + entitlement Y + entitlement mapping M { + X -> Y + } + struct S { + access(X) fun foo() {} + } + access(all) attachment A for S { + access(mapping M) fun foo(): auth(mapping M) &Int { + let s: auth(mapping M) &A = base[A]! - entitlement mapping M { - X -> Y - X -> Z - E -> F - E -> G - } + return &1 + } + } + `) - struct S { - access(X, E) fun foo() {} - } + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) + }) - access(M) attachment A for S { - access(Y, Z, F, G) fun foo() {} - } + t.Run("invalid base attachment access in mapped function", func(t *testing.T) { + t.Parallel() - let s = attach A() to S() - let ref = (&s as auth(X) &S) as auth(X | E) &S - let a1 = ref[A]! + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + entitlement mapping M { + X -> Y + } + struct S { + access(X) fun foo() {} + } + access(all) attachment A for S { + access(mapping M) fun foo(): auth(mapping M) &Int { + let s: auth(Y) &A? = base[A] + + return &1 + } + } `) errs := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.InvalidAttachmentMappedEntitlementMemberError{}, errs[0]) - require.IsType(t, &sema.UnrepresentableEntitlementMapOutputError{}, errs[0]) - require.IsType(t, &sema.InvalidTypeIndexingError{}, errs[1]) + var typeMismatchErr *sema.TypeMismatchError + require.ErrorAs(t, errs[1], &typeMismatchErr) + assert.Equal(t, + "auth(Y) &A?", + typeMismatchErr.ExpectedType.QualifiedString(), + ) + assert.Equal(t, + "auth(mapping M) &A?", + typeMismatchErr.ActualType.QualifiedString(), + ) }) } @@ -5546,6 +5656,55 @@ func TestCheckEntitlementConditions(t *testing.T) { assert.NoError(t, err) }) + + t.Run("result value inherited interface entitlement resource", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + resource interface I { + access(X) view fun foo(): Bool { + return true + } + } + resource interface J: I { + access(Y) view fun bar(): Bool { + return true + } + } + fun bar(r: @{J}): @{J} { + post { + result.foo(): "" + result.bar(): "" + } + return <-r + } + `) + + assert.NoError(t, err) + }) + + t.Run("result inherited interface method", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + resource interface I { + access(X, Y) view fun foo(): Bool + } + resource interface J: I { + access(X, Y) view fun foo(): Bool + } + fun bar(r: @{J}): @{J} { + post { + result.foo(): "" + } + return <-r + } + `) + + assert.NoError(t, err) + }) } func TestCheckEntitledWriteAndMutateNotAllowed(t *testing.T) { @@ -5605,7 +5764,7 @@ func TestCheckEntitledWriteAndMutateNotAllowed(t *testing.T) { X -> Y } struct S { - access(M) var x: auth(M) &Int + access(mapping M) var x: auth(mapping M) &Int init() { self.x = &1 as auth(Y) &Int } @@ -5630,7 +5789,7 @@ func TestCheckEntitledWriteAndMutateNotAllowed(t *testing.T) { X -> Y } struct S { - access(M) var x: auth(M) &Int + access(mapping M) var x: auth(mapping M) &Int init() { self.x = &1 as auth(Y) &Int } @@ -5718,466 +5877,361 @@ func TestCheckEntitledWriteAndMutateNotAllowed(t *testing.T) { }) } -func TestCheckAttachmentRequireEntitlements(t *testing.T) { +func TestCheckBuiltinEntitlements(t *testing.T) { + t.Parallel() - t.Run("entitlements allowed", func(t *testing.T) { + t.Run("builtin", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - entitlement F - attachment A for AnyStruct { - require entitlement E - require entitlement F + struct S { + access(Mutate) fun foo() {} + access(Insert) fun bar() {} + access(Remove) fun baz() {} + } + + fun main() { + let s = S() + let mutableRef = &s as auth(Mutate) &S + let insertableRef = &s as auth(Insert) &S + let removableRef = &s as auth(Remove) &S } `) assert.NoError(t, err) }) - t.Run("entitlement mapping disallowed", func(t *testing.T) { + t.Run("redefine", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - entitlement mapping M {} - attachment A for AnyStruct { - require entitlement E - require entitlement M - } + entitlement Mutate + entitlement Insert + entitlement Remove `) - errs := RequireCheckerErrors(t, err, 1) + errs := RequireCheckerErrors(t, err, 3) - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) + require.IsType(t, &sema.RedeclarationError{}, errs[0]) + require.IsType(t, &sema.RedeclarationError{}, errs[1]) + require.IsType(t, &sema.RedeclarationError{}, errs[2]) }) - t.Run("event disallowed", func(t *testing.T) { - t.Parallel() - - _, err := ParseAndCheck(t, ` - entitlement E - event M() - attachment A for AnyStruct { - require entitlement E - require entitlement M - } - `) +} - errs := RequireCheckerErrors(t, err, 1) +func TestCheckIdentityMapping(t *testing.T) { - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) - }) + t.Parallel() - t.Run("struct disallowed", func(t *testing.T) { + t.Run("owned value", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - struct M {} - attachment A for AnyStruct { - require entitlement E - require entitlement M + struct S { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { + let a: AnyStruct = "hello" + return &a as auth(mapping Identity) &AnyStruct + } } - `) - - errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) - }) + fun main() { + let s = S() - t.Run("struct interface disallowed", func(t *testing.T) { - t.Parallel() + // OK + let resultRef1: &AnyStruct = s.foo() - _, err := ParseAndCheck(t, ` - entitlement E - struct interface M {} - attachment A for AnyStruct { - require entitlement E - require entitlement M + // Error: Must return an unauthorized ref + let resultRef2: auth(Mutate) &AnyStruct = s.foo() } `) - errs := RequireCheckerErrors(t, err, 1) + errors := RequireCheckerErrors(t, err, 1) + var typeMismatchError *sema.TypeMismatchError + require.ErrorAs(t, errors[0], &typeMismatchError) + + require.IsType(t, &sema.ReferenceType{}, typeMismatchError.ActualType) + actualReference := typeMismatchError.ActualType.(*sema.ReferenceType) + + require.IsType(t, sema.EntitlementSetAccess{}, actualReference.Authorization) + actualAuth := actualReference.Authorization.(sema.EntitlementSetAccess) - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) + assert.Equal(t, 0, actualAuth.Entitlements.Len()) }) - t.Run("resource disallowed", func(t *testing.T) { + t.Run("unauthorized ref", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - resource M {} - attachment A for AnyStruct { - require entitlement E - require entitlement M + struct S { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { + let a: AnyStruct = "hello" + return &a as auth(mapping Identity) &AnyStruct + } } - `) - errs := RequireCheckerErrors(t, err, 1) + fun main() { + let s = S() - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) - }) + let ref = &s as &S - t.Run("resource interface disallowed", func(t *testing.T) { - t.Parallel() + // OK + let resultRef1: &AnyStruct = ref.foo() - _, err := ParseAndCheck(t, ` - entitlement E - resource interface M {} - attachment A for AnyStruct { - require entitlement E - require entitlement M + // Error: Must return an unauthorized ref + let resultRef2: auth(Mutate) &AnyStruct = ref.foo() } `) - errs := RequireCheckerErrors(t, err, 1) - - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) }) - t.Run("attachment disallowed", func(t *testing.T) { + t.Run("basic entitled ref", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - attachment M for AnyResource {} - attachment A for AnyStruct { - require entitlement E - require entitlement M + struct S { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { + let a: AnyStruct = "hello" + return &a as auth(mapping Identity) &AnyStruct + } } - `) - errs := RequireCheckerErrors(t, err, 1) + fun main() { + let s = S() - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) - }) + let mutableRef = &s as auth(Mutate) &S + let ref1: auth(Mutate) &AnyStruct = mutableRef.foo() - t.Run("enum disallowed", func(t *testing.T) { - t.Parallel() + let insertableRef = &s as auth(Insert) &S + let ref2: auth(Insert) &AnyStruct = insertableRef.foo() - _, err := ParseAndCheck(t, ` - entitlement E - enum M: UInt8 {} - attachment A for AnyStruct { - require entitlement E - require entitlement M + let removableRef = &s as auth(Remove) &S + let ref3: auth(Remove) &AnyStruct = removableRef.foo() } `) - errs := RequireCheckerErrors(t, err, 1) - - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) + assert.NoError(t, err) }) - t.Run("int disallowed", func(t *testing.T) { + t.Run("entitlement set ref", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - attachment A for AnyStruct { - require entitlement E - require entitlement Int + struct S { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { + let a: AnyStruct = "hello" + return &a as auth(mapping Identity) &AnyStruct + } } - `) - - errs := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.InvalidNonEntitlementRequirement{}, errs[0]) - }) + fun main() { + let s = S() - t.Run("duplicates disallowed", func(t *testing.T) { - t.Parallel() + let ref1 = &s as auth(Insert | Remove) &S + let resultRef1: auth(Insert | Remove) &AnyStruct = ref1.foo() - _, err := ParseAndCheck(t, ` - entitlement E - attachment A for AnyStruct { - require entitlement E - require entitlement E + let ref2 = &s as auth(Insert, Remove) &S + let resultRef2: auth(Insert, Remove) &AnyStruct = ref2.foo() } `) - errs := RequireCheckerErrors(t, err, 1) - - require.IsType(t, &sema.DuplicateEntitlementRequirementError{}, errs[0]) + assert.NoError(t, err) }) -} - -func TestCheckAttachProvidedEntitlements(t *testing.T) { - t.Parallel() - t.Run("all provided", func(t *testing.T) { + t.Run("owned value, with entitlements", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - entitlement F - struct S {} - attachment A for S { - require entitlement E - require entitlement F - } - fun foo() { - let s = attach A() to S() with (E, F) - } + entitlement A + entitlement B + entitlement C - `) - assert.NoError(t, err) - }) + struct X { + access(A | B) var s: String - t.Run("extra provided", func(t *testing.T) { - t.Parallel() + init() { + self.s = "hello" + } - _, err := ParseAndCheck(t, ` - entitlement E - entitlement F - entitlement G - struct S {} - attachment A for S { - require entitlement E - require entitlement F - } - fun foo() { - let s = attach A() to S() with (E, F, G) + access(C) fun foo() {} } - `) - assert.NoError(t, err) - }) + struct Y { - t.Run("one missing", func(t *testing.T) { - t.Parallel() + // Reference + access(mapping Identity) var x1: auth(mapping Identity) &X - _, err := ParseAndCheck(t, ` - entitlement E - entitlement F - struct S {} - attachment A for S { - require entitlement E - require entitlement F - } - fun foo() { - let s = attach A() to S() with (E) + // Optional reference + access(mapping Identity) var x2: auth(mapping Identity) &X? + + // Function returning a reference + access(mapping Identity) fun getX(): auth(mapping Identity) &X { + let x = X() + return &x as auth(mapping Identity) &X + } + + // Function returning an optional reference + access(mapping Identity) fun getOptionalX(): auth(mapping Identity) &X? { + let x: X? = X() + return &x as auth(mapping Identity) &X? + } + + init() { + let x = X() + self.x1 = &x + self.x2 = nil + } } - `) - errs := RequireCheckerErrors(t, err, 1) + fun main() { + let y = Y() - var requiredEntitlementNotProvidedErr *sema.RequiredEntitlementNotProvidedError - require.ErrorAs(t, errs[0], &requiredEntitlementNotProvidedErr) - assert.Equal(t, - "F", - requiredEntitlementNotProvidedErr.RequiredEntitlement.Identifier, - ) - }) + let ref1: auth(A, B, C) &X = y.x1 - t.Run("one missing with extra provided", func(t *testing.T) { - t.Parallel() + let ref2: auth(A, B, C) &X? = y.x2 - _, err := ParseAndCheck(t, ` - entitlement E - entitlement F - entitlement G - struct S {} - attachment A for S { - require entitlement E - require entitlement F - } - fun foo() { - let s = attach A() to S() with (E, G) - } + let ref3: auth(A, B, C) &X = y.getX() + let ref4: auth(A, B, C) &X? = y.getOptionalX() + } `) - errs := RequireCheckerErrors(t, err, 1) - var requiredEntitlementNotProvidedErr *sema.RequiredEntitlementNotProvidedError - require.ErrorAs(t, errs[0], &requiredEntitlementNotProvidedErr) - assert.Equal(t, - "F", - requiredEntitlementNotProvidedErr.RequiredEntitlement.Identifier, - ) + assert.NoError(t, err) }) - t.Run("two missing", func(t *testing.T) { + t.Run("owned value, with insufficient entitlements", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - entitlement F - struct S {} - attachment A for S { - require entitlement E - require entitlement F - } - fun foo() { - let s = attach A() to S() + entitlement A + entitlement B + entitlement C + + struct X { + access(A | B) var s: String + + init() { + self.s = "hello" + } + + access(C) fun foo() {} } - `) - errs := RequireCheckerErrors(t, err, 2) + struct Y { - var requiredEntitlementNotProvidedErr *sema.RequiredEntitlementNotProvidedError - require.ErrorAs(t, errs[0], &requiredEntitlementNotProvidedErr) - assert.Equal(t, - "E", - requiredEntitlementNotProvidedErr.RequiredEntitlement.Identifier, - ) + // Reference + access(mapping Identity) var x1: auth(mapping Identity) &X - require.ErrorAs(t, errs[1], &requiredEntitlementNotProvidedErr) - assert.Equal(t, - "F", - requiredEntitlementNotProvidedErr.RequiredEntitlement.Identifier, - ) - }) + // Optional reference + access(mapping Identity) var x2: auth(mapping Identity) &X? - t.Run("mapping provided", func(t *testing.T) { - t.Parallel() + // Function returning a reference + access(mapping Identity) fun getX(): auth(mapping Identity) &X { + let x = X() + return &x as auth(mapping Identity) &X + } - _, err := ParseAndCheck(t, ` - entitlement E - entitlement mapping M {} - struct S {} - attachment A for S { - require entitlement E - } - fun foo() { - let s = attach A() to S() with (M) + // Function returning an optional reference + access(mapping Identity) fun getOptionalX(): auth(mapping Identity) &X? { + let x: X? = X() + return &x as auth(mapping Identity) &X? + } + + init() { + let x = X() + self.x1 = &x as auth(A, B, C) &X + self.x2 = nil + } } - `) - errs := RequireCheckerErrors(t, err, 2) + fun main() { + let y = Y() - require.IsType(t, &sema.InvalidNonEntitlementProvidedError{}, errs[0]) + let ref1: auth(A, B, C) &X = y.x1 - var requiredEntitlementNotProvidedErr *sema.RequiredEntitlementNotProvidedError - require.ErrorAs(t, errs[1], &requiredEntitlementNotProvidedErr) - assert.Equal(t, - "E", - requiredEntitlementNotProvidedErr.RequiredEntitlement.Identifier, - ) - }) + let ref2: auth(A, B, C) &X? = y.x2 - t.Run("int provided", func(t *testing.T) { - t.Parallel() + let ref3: auth(A, B, C) &X = y.getX() - _, err := ParseAndCheck(t, ` - entitlement E - struct S {} - attachment A for S { - require entitlement E - } - fun foo() { - let s = attach A() to S() with (UInt8) + let ref4: auth(A, B, C) &X? = y.getOptionalX() } - `) - errs := RequireCheckerErrors(t, err, 2) - require.IsType(t, &sema.InvalidNonEntitlementProvidedError{}, errs[0]) - - var requiredEntitlementNotProvidedErr *sema.RequiredEntitlementNotProvidedError - require.ErrorAs(t, errs[1], &requiredEntitlementNotProvidedErr) - assert.Equal(t, - "E", - requiredEntitlementNotProvidedErr.RequiredEntitlement.Identifier, - ) + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) }) - t.Run("struct provided", func(t *testing.T) { + t.Run("owned value, with entitlements, function typed field", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement E - struct S {} - attachment A for S { - require entitlement E - } - fun foo() { - let s = attach A() to S() with (S) - } - - `) - errs := RequireCheckerErrors(t, err, 2) + entitlement A + entitlement B + entitlement C - require.IsType(t, &sema.InvalidNonEntitlementProvidedError{}, errs[0]) + struct X { + access(A | B) var s: String - var requiredEntitlementNotProvidedErr *sema.RequiredEntitlementNotProvidedError - require.ErrorAs(t, errs[1], &requiredEntitlementNotProvidedErr) - assert.Equal(t, - "E", - requiredEntitlementNotProvidedErr.RequiredEntitlement.Identifier, - ) - }) -} + init() { + self.s = "hello" + } -func TestCheckBuiltinEntitlements(t *testing.T) { + access(C) fun foo() {} + } - t.Parallel() + struct Y { - t.Run("builtin", func(t *testing.T) { - t.Parallel() + access(mapping Identity) let fn: (fun (): X) - _, err := ParseAndCheck(t, ` - struct S { - access(Mutate) fun foo() {} - access(Insert) fun bar() {} - access(Remove) fun baz() {} + init() { + self.fn = fun(): X { + return X() + } + } } fun main() { - let s = S() - let mutableRef = &s as auth(Mutate) &S - let insertableRef = &s as auth(Insert) &S - let removableRef = &s as auth(Remove) &S + let y = Y() + let v = y.fn() } `) - assert.NoError(t, err) + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, errors[0], &sema.InvalidMappedEntitlementMemberError{}) }) - t.Run("redefine", func(t *testing.T) { + t.Run("owned value, with entitlements, function ref typed field", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement Mutate - entitlement Insert - entitlement Remove - `) - - errs := RequireCheckerErrors(t, err, 3) + entitlement A + entitlement B + entitlement C - require.IsType(t, &sema.RedeclarationError{}, errs[0]) - require.IsType(t, &sema.RedeclarationError{}, errs[1]) - require.IsType(t, &sema.RedeclarationError{}, errs[2]) - }) + struct X { + access(A | B) var s: String -} + init() { + self.s = "hello" + } -func TestCheckIdentityMapping(t *testing.T) { + access(C) fun foo() {} + } - t.Parallel() + struct Y { - t.Run("owned value", func(t *testing.T) { - t.Parallel() + access(mapping Identity) let fn: auth(mapping Identity) &(fun (): X)? - _, err := ParseAndCheck(t, ` - struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { - let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct + init() { + self.fn = nil } } fun main() { - let s = S() - - // OK - let resultRef1: &AnyStruct = s.foo() - - // Error: Must return an unauthorized ref - let resultRef2: auth(Mutate) &AnyStruct = s.foo() + let y = Y() + let v: auth(A, B, C) &(fun (): X) = y.fn } `) @@ -6185,246 +6239,96 @@ func TestCheckIdentityMapping(t *testing.T) { var typeMismatchError *sema.TypeMismatchError require.ErrorAs(t, errors[0], &typeMismatchError) - require.IsType(t, &sema.ReferenceType{}, typeMismatchError.ActualType) - actualReference := typeMismatchError.ActualType.(*sema.ReferenceType) - - require.IsType(t, sema.EntitlementSetAccess{}, actualReference.Authorization) - actualAuth := actualReference.Authorization.(sema.EntitlementSetAccess) - - assert.Equal(t, 0, actualAuth.Entitlements.Len()) - }) - - t.Run("unauthorized ref", func(t *testing.T) { - t.Parallel() - - _, err := ParseAndCheck(t, ` - struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { - let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct - } - } - - fun main() { - let s = S() - - let ref = &s as &S + actualType := typeMismatchError.ActualType + require.IsType(t, &sema.OptionalType{}, actualType) + optionalType := actualType.(*sema.OptionalType) - // OK - let resultRef1: &AnyStruct = ref.foo() + require.IsType(t, &sema.ReferenceType{}, optionalType.Type) + referenceType := optionalType.Type.(*sema.ReferenceType) - // Error: Must return an unauthorized ref - let resultRef2: auth(Mutate) &AnyStruct = ref.foo() - } - `) + require.IsType(t, sema.EntitlementSetAccess{}, referenceType.Authorization) + auth := referenceType.Authorization.(sema.EntitlementSetAccess) - errors := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + // Entitlements of function return type `X` must NOT be + // available for the reference typed field. + require.Equal(t, 0, auth.Entitlements.Len()) }) - t.Run("basic entitled ref", func(t *testing.T) { + t.Run("initializer", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { - let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct - } - } - - fun main() { - let s = S() - - let mutableRef = &s as auth(Mutate) &S - let ref1: auth(Mutate) &AnyStruct = mutableRef.foo() - - let insertableRef = &s as auth(Insert) &S - let ref2: auth(Insert) &AnyStruct = insertableRef.foo() - - let removableRef = &s as auth(Remove) &S - let ref3: auth(Remove) &AnyStruct = removableRef.foo() - } - `) - - assert.NoError(t, err) - }) - - t.Run("entitlement set ref", func(t *testing.T) { - t.Parallel() + entitlement X - _, err := ParseAndCheck(t, ` struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { - let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct + access(mapping Identity) let x: auth(mapping Identity) &String + init(_ str: auth(X) &String) { + self.x = str // this should not be possible, as Identity may grant any entitlement, not just X } } - - fun main() { - let s = S() - - let ref1 = &s as auth(Insert | Remove) &S - let resultRef1: auth(Insert | Remove) &AnyStruct = ref1.foo() - - let ref2 = &s as auth(Insert, Remove) &S - let resultRef2: auth(Insert, Remove) &AnyStruct = ref2.foo() - } `) - assert.NoError(t, err) + errors := RequireCheckerErrors(t, err, 1) + var typeMismatchError *sema.TypeMismatchError + require.ErrorAs(t, errors[0], &typeMismatchError) }) - t.Run("owned value, with entitlements", func(t *testing.T) { + t.Run("initializer with owned value", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement A - entitlement B - entitlement C - - struct X { - access(A | B) var s: String - - init() { - self.s = "hello" - } - - access(C) fun foo() {} - } - - struct Y { - - // Reference - access(Identity) var x1: auth(Identity) &X - - // Optional reference - access(Identity) var x2: auth(Identity) &X? - - // Function returning a reference - access(Identity) fun getX(): auth(Identity) &X { - let x = X() - return &x as auth(Identity) &X - } - - // Function returning an optional reference - access(Identity) fun getOptionalX(): auth(Identity) &X? { - let x: X? = X() - return &x as auth(Identity) &X? - } + entitlement X - init() { - let x = X() - self.x1 = &x as auth(A, B, C) &X - self.x2 = nil + struct S { + access(mapping Identity) let x: [String] + init(_ str: [String]) { + self.x = str // this should be possible, as the string array is owned here } } - - fun main() { - let y = Y() - - let ref1: auth(A, B, C) &X = y.x1 - - let ref2: auth(A, B, C) &X? = y.x2 - - let ref3: auth(A, B, C) &X = y.getX() - - let ref4: auth(A, B, C) &X? = y.getOptionalX() - } `) - assert.NoError(t, err) + require.NoError(t, err) }) - t.Run("owned value, with entitlements, function typed field", func(t *testing.T) { + t.Run("initializer with inferred reference type", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement A - entitlement B - entitlement C - - struct X { - access(A | B) var s: String - - init() { - self.s = "hello" - } - - access(C) fun foo() {} - } - - struct Y { - - access(Identity) let fn: (fun (): X) + entitlement X - init() { - self.fn = fun(): X { - return X() - } + struct S { + access(mapping Identity) let x: auth(mapping Identity) &String + init(_ str: String) { + self.x = &str // this should be possible, as we own the string and thus inference is able to give the &str + // reference the appropriate type } } - - fun main() { - let y = Y() - let v = y.fn() - } `) - errors := RequireCheckerErrors(t, err, 1) - require.IsType(t, errors[0], &sema.InvalidMappedEntitlementMemberError{}) + require.NoError(t, err) }) - t.Run("owned value, with entitlements, function ref typed field", func(t *testing.T) { + t.Run("initializer with included Identity", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement A - entitlement B - entitlement C - - struct X { - access(A | B) var s: String - - init() { - self.s = "hello" - } + entitlement X - access(C) fun foo() {} + entitlement mapping M { + include Identity } - struct Y { - - access(Identity) let fn: auth(Identity) &(fun (): X)? - - init() { - self.fn = nil + struct S { + access(mapping M) let x: auth(mapping M) &String + init(_ str: auth(X) &String) { + self.x = str // this should not be possible, as Identity may grant any entitlement, not just X } } - - fun main() { - let y = Y() - let v: auth(A, B, C) &(fun (): X) = y.fn - } `) errors := RequireCheckerErrors(t, err, 1) var typeMismatchError *sema.TypeMismatchError require.ErrorAs(t, errors[0], &typeMismatchError) - - actualType := typeMismatchError.ActualType - require.IsType(t, &sema.OptionalType{}, actualType) - optionalType := actualType.(*sema.OptionalType) - - require.IsType(t, &sema.ReferenceType{}, optionalType.Type) - referenceType := optionalType.Type.(*sema.ReferenceType) - - require.IsType(t, sema.EntitlementSetAccess{}, referenceType.Authorization) - auth := referenceType.Authorization.(sema.EntitlementSetAccess) - - // Entitlements of function return type `X` must NOT be - // available for the reference typed field. - require.Equal(t, 0, auth.Entitlements.Len()) }) } @@ -6610,7 +6514,7 @@ func TestCheckIdentityIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6636,7 +6540,7 @@ func TestCheckIdentityIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6669,7 +6573,7 @@ func TestCheckIdentityIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6703,7 +6607,7 @@ func TestCheckIdentityIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6741,7 +6645,7 @@ func TestCheckGeneralIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6777,7 +6681,7 @@ func TestCheckGeneralIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6816,7 +6720,7 @@ func TestCheckGeneralIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6853,7 +6757,7 @@ func TestCheckGeneralIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6895,7 +6799,7 @@ func TestCheckGeneralIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -6933,7 +6837,7 @@ func TestCheckGeneralIncludedMaps(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -7180,263 +7084,839 @@ func TestCheckEntitlementErrorReporting(t *testing.T) { ) }) - t.Run("no suggestion for self access requirement", func(t *testing.T) { + t.Run("no suggestion for self access requirement", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheckWithOptions(t, ` + entitlement A + entitlement B + + struct S { + view access(self) fun foo(): Bool { + return true + } + } + + fun bar(r: auth(A, B) &S) { + r.foo() + } + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + SuggestionsEnabled: true, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + var invalidAccessErr *sema.InvalidAccessError + require.ErrorAs(t, errs[0], &invalidAccessErr) + assert.Equal(t, + sema.PrimitiveAccess(ast.AccessSelf), + invalidAccessErr.RestrictingAccess, + ) + assert.Equal(t, + nil, + invalidAccessErr.PossessedAccess, + ) + assert.Equal( + t, + "", + invalidAccessErr.SecondaryError(), + ) + }) +} + +func TestCheckEntitlementOptionalChaining(t *testing.T) { + + t.Parallel() + + t.Run("optional chain function call", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` + entitlement X + + struct S { + access(X) fun foo() {} + } + + fun bar(r: &S?) { + r?.foo() + } + `) + + errs := RequireCheckerErrors(t, err, 1) + var invalidAccessErr *sema.InvalidAccessError + require.ErrorAs(t, errs[0], &invalidAccessErr) + }) + + t.Run("optional chain field access", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + + struct S { + access(X, Y) let foo: Int + init() { + self.foo = 0 + } + } + + fun bar(r: auth(X) &S?) { + r?.foo + } + `) + + errs := RequireCheckerErrors(t, err, 1) + var invalidAccessErr *sema.InvalidAccessError + require.ErrorAs(t, errs[0], &invalidAccessErr) + }) + + t.Run("optional chain non reference", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + + struct S { + access(X, Y) let foo: Int + init() { + self.foo = 0 + } + } + + fun bar(r: S?) { + r?.foo + } + `) + + require.NoError(t, err) + }) + + t.Run("optional chain mapping", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + + entitlement mapping E { + X -> Y + } + + struct S { + access(mapping E) let foo: auth(mapping E) &Int + init() { + self.foo = &0 as auth(Y) &Int + } + } + + fun bar(r: (auth(X) &S)?): (auth(Y) &Int)? { + return r?.foo + } + `) + + require.NoError(t, err) + }) +} + +func TestCheckEntitlementMissingInMap(t *testing.T) { + + t.Parallel() + + t.Run("missing type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) entitlement X + access(all) entitlement mapping M { + X -> X + NonExistingEntitlement -> X + } + access(all) struct S { + access(mapping M) var foo: auth(mapping M) &Int + init() { + self.foo = &3 as auth(X) &Int + var selfRef = &self as auth(X) &S + selfRef.foo + } + } + `) + + errors := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.NotDeclaredError{}, errors[0]) + require.IsType(t, &sema.InvalidNonEntitlementTypeInMapError{}, errors[1]) + }) + + t.Run("non entitlement type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) entitlement X + access(all) entitlement mapping M { + X -> X + Int -> X + } + access(all) struct S { + access(mapping M) var foo: auth(mapping M) &Int + init() { + self.foo = &3 as auth(X) &Int + var selfRef = &self as auth(X) &S + selfRef.foo + } + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidNonEntitlementTypeInMapError{}, errors[0]) + }) +} + +func TestInterpretMappingEscalation(t *testing.T) { + + t.Parallel() + + t.Run("escalate", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + entitlement mapping M { + X -> Insert + Y -> Remove + } + struct S { + access(mapping M) var member: auth(mapping M) &[Int]? + init() { + self.member = nil; + } + access(all) fun grantRemovePrivileges(param: auth(Insert) &[Int]): Void{ + var selfRef = &self as auth(X) &S; + selfRef.member = param; + } + } + fun main(): Void { + var arr: [Int] = [123]; + var arrRef = &arr as auth(Insert) &[Int]; + let s = S() + s.grantRemovePrivileges(param: arrRef); + s.member?.removeLast() + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + }) + + t.Run("escalate", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + entitlement Z + + entitlement mapping M { + X -> Z + X -> Y + } + + access(all) struct Attacker { + access(mapping Identity) var s: auth(mapping Identity) &AnyStruct + + init(_ a: auth(Z) &AnyStruct){ + self.s = a + } + } + + struct Nested { + access(X | Y) fun foo() {} + access(X | Z) fun bar() {} + } + + struct Attackee { + access(mapping M) let nested: Nested + init() { + self.nested = Nested() + } + } + + fun main(): Void { + let attackee = Attackee() + let attackeeRef = &attackee as auth(Z) &Attackee + let attacker = Attacker(attackeeRef) + let attackerRef = &attacker as auth(X) &Attacker + let exploit: auth(X) &Attackee = attackerRef.s as! auth(X) &Attackee + exploit.nested.foo() + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + + }) + + t.Run("field assign", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + entitlement mapping M { + X -> Insert + Y -> Remove + } + struct S { + access(mapping M) var member: auth(mapping M) &[Int]? + init() { + self.member = nil; + } + access(all) fun grantRemovePrivileges(sRef: auth(X) &S, param: auth(Insert) &[Int]): Void{ + sRef.member = param; + } + } + fun main(): Void { + var arr: [Int] = [123]; + var arrRef = &arr as auth(Insert) &[Int]; + let s = S() + s.grantRemovePrivileges(sRef: &s as auth(X) &S, param: arrRef); + s.member?.removeLast() + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + }) + + t.Run("double nesting", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement X + entitlement Y + entitlement mapping M { + X -> Y + } + struct S { + access(Y) var i: Int + init() { + self.i = 11 + } + fun bar(_ t: &T) { + // the t.s here should produce an unauthorized s reference which cannot modify i + // i.e. this should be the same as + // let ref = t.s + // ref. i =2 + t.s.i = 2 + } + } + struct T { + access(mapping M) var s: auth(mapping M) &S + init() { + self.s = &S() + } + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAccessError{}, errors[0]) + }) + + t.Run("member expression in indexing assignment", func(t *testing.T) { + + t.Parallel() + _, err := ParseAndCheck(t, ` + + access(all) entitlement X + access(all) entitlement mapping M { + X -> Insert + } + + access(all) struct S { + access(mapping M) var arrayRefMember: auth(mapping M) &[Int] + init() { + self.arrayRefMember = &[123] + } + } + + access(all) fun main() { + var unauthedStructRef = &S() as &S + unauthedStructRef.arrayRefMember[0] = 456 + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.UnauthorizedReferenceAssignmentError{}, errors[0]) + }) + + t.Run("function call in indexer", func(t *testing.T) { + + t.Parallel() + _, err := ParseAndCheck(t, ` + + access(all) entitlement X + access(all) entitlement Y + access(all) entitlement mapping M { + X -> Y + } + + struct A { + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 + } + } + + fun bar(_ ref: auth(Y) &Int): Int { + return *ref + } + + access(all) fun main() { + var x: [Int] = [] + let a = &A() as &A + x[bar(a.foo())] = 456 + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + }) + + t.Run("member expression in indexer", func(t *testing.T) { + + t.Parallel() + _, err := ParseAndCheck(t, ` + + access(all) entitlement X + access(all) entitlement Y + access(all) entitlement mapping M { + X -> Y + } + + struct A { + access(mapping M) let b: B + init() { + self.b = B() + } + } + + struct B {} + + fun bar(_ b: auth(Y) &B): Int { + return 1 + } + + access(all) fun main() { + var x: [Int] = [] + let a = &A() as &A + x[bar(a.b)] = 456 + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + }) + + t.Run("capture function", func(t *testing.T) { + + t.Parallel() + _, err := ParseAndCheck(t, ` + + access(all) entitlement X + access(all) entitlement mapping M { + X -> Insert + } + + access(all) struct S { + access(mapping M) var arrayRefMember: auth(mapping M) &[Int] + init() { + self.arrayRefMember = &[123] + } + } + + fun captureFunction(_ f: fun(): Int): Int { + f() + return 1 + } + + access(all) fun main() { + var unauthedStructRef = &S() as &S + var dict: {Int: Int} = {} + dict[captureFunction(unauthedStructRef.arrayRefMember.removeLast)] = 1 + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAccessError{}, errors[0]) + }) + + t.Run("capture reference", func(t *testing.T) { + t.Parallel() - _, err := ParseAndCheckWithOptions(t, ` - entitlement A - entitlement B + _, err := ParseAndCheck(t, ` - struct S { - view access(self) fun foo(): Bool { - return true + access(all) entitlement X + access(all) entitlement mapping M { + X -> Insert } - } - fun bar(r: auth(A, B) &S) { - r.foo() - } - `, - ParseAndCheckOptions{ - Config: &sema.Config{ - SuggestionsEnabled: true, - }, - }, - ) + access(all) struct S { + access(mapping M) var arrayRefMember: auth(mapping M) &[Int] + init() { + self.arrayRefMember = &[123] + } + } - errs := RequireCheckerErrors(t, err, 1) + fun captureReference( _ ref: auth(Insert, Remove) &[Int]): Int { + ref.removeLast() + return 1 + } - var invalidAccessErr *sema.InvalidAccessError - require.ErrorAs(t, errs[0], &invalidAccessErr) - assert.Equal(t, - sema.PrimitiveAccess(ast.AccessSelf), - invalidAccessErr.RestrictingAccess, - ) - assert.Equal(t, - nil, - invalidAccessErr.PossessedAccess, - ) - assert.Equal( - t, - "", - invalidAccessErr.SecondaryError(), - ) + access(all) fun main() { + var unauthedStructRef = &S() as &S + var dict: {Int: Int} = {} + dict[captureReference(unauthedStructRef.arrayRefMember)] = 1 + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) }) + } -func TestCheckEntitlementOptionalChaining(t *testing.T) { +func TestCheckEntitlementMappingComplexFields(t *testing.T) { t.Parallel() - t.Run("optional chain function call", func(t *testing.T) { + t.Run("array mapped field", func(t *testing.T) { t.Parallel() + _, err := ParseAndCheck(t, ` - entitlement X + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 - struct S { - access(X) fun foo() {} + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } } - fun bar(r: &S?) { - r?.foo() + struct Carrier { + access(mapping MyMap) let arr: [auth(mapping MyMap) &InnerObj] + init() { + self.arr = [&InnerObj()] + } + } + + fun foo() { + let x: auth(Inner1, Inner2) &InnerObj = Carrier().arr[0] + x.first() + x.second() } `) - errs := RequireCheckerErrors(t, err, 1) - var invalidAccessErr *sema.InvalidAccessError - require.ErrorAs(t, errs[0], &invalidAccessErr) + require.NoError(t, err) }) - t.Run("optional chain field access", func(t *testing.T) { + t.Run("array mapped field via reference", func(t *testing.T) { t.Parallel() + _, err := ParseAndCheck(t, ` - entitlement X - entitlement Y + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 - struct S { - access(X, Y) let foo: Int + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } + } + + struct Carrier { + access(mapping MyMap) let arr: [auth(mapping MyMap) &InnerObj] init() { - self.foo = 0 + self.arr = [&InnerObj()] } - } + } - fun bar(r: auth(X) &S?) { - r?.foo + fun foo() { + let x = (&Carrier() as auth(Outer1) &Carrier).arr[0] + x.first() // ok + x.second() // fails } `) - errs := RequireCheckerErrors(t, err, 1) - var invalidAccessErr *sema.InvalidAccessError - require.ErrorAs(t, errs[0], &invalidAccessErr) + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAccessError{}, errors[0]) }) - t.Run("optional chain non reference", func(t *testing.T) { + t.Run("array mapped function", func(t *testing.T) { t.Parallel() + _, err := ParseAndCheck(t, ` - entitlement X - entitlement Y + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 - struct S { - access(X, Y) let foo: Int - init() { - self.foo = 0 - } + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } } - fun bar(r: S?) { - r?.foo + struct Carrier { + access(mapping MyMap) fun getArr(): [auth(mapping MyMap) &InnerObj] { + return [&InnerObj()] + } } `) - require.NoError(t, err) + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidMappedEntitlementMemberError{}, errors[0]) }) - t.Run("optional chain mapping", func(t *testing.T) { + t.Run("array mapped field escape", func(t *testing.T) { t.Parallel() + _, err := ParseAndCheck(t, ` - entitlement X - entitlement Y + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 - entitlement mapping E { - X -> Y + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } } - struct S { - access(E) let foo: auth(E) &Int + struct Carrier { + access(mapping MyMap) let arr: [auth(mapping MyMap) &InnerObj] init() { - self.foo = &0 as auth(Y) &Int + self.arr = [&InnerObj()] } + } + + struct TranslatorStruct { + access(self) var carrier: &Carrier; + access(mapping MyMap) fun translate(): auth(mapping MyMap) &InnerObj { + return self.carrier.arr[0] // type mismatch + } + init(_ carrier: &Carrier) { + self.carrier = carrier + } + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + }) + + t.Run("dictionary mapped field", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 + + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } } - fun bar(r: (auth(X) &S)?): (auth(Y) &Int)? { - return r?.foo + struct Carrier { + access(mapping MyMap) let dict: {String: auth(mapping MyMap) &InnerObj} + init() { + self.dict = {"": &InnerObj()} + } + } + + fun foo() { + let x: auth(Inner1, Inner2) &InnerObj = Carrier().dict[""]! + x.first() + x.second() } `) require.NoError(t, err) }) -} -func TestCheckEntitlementMissingInMap(t *testing.T) { + t.Run("dictionary mapped field via reference", func(t *testing.T) { + t.Parallel() - t.Parallel() + _, err := ParseAndCheck(t, ` + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 - t.Run("missing type", func(t *testing.T) { + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } + } - t.Parallel() + struct Carrier { + access(mapping MyMap) let dict: {String: auth(mapping MyMap) &InnerObj} + init() { + self.dict = {"": &InnerObj()} + } + } - _, err := ParseAndCheck(t, ` - access(all) entitlement X - access(all) entitlement mapping M { - X -> X - NonExistingEntitlement -> X - } - access(all) struct S { - access(M) var foo: auth(M) &Int - init() { - self.foo = &3 as auth(X) &Int - var selfRef = &self as auth(X) &S - selfRef.foo + fun foo() { + let x = (&Carrier() as auth(Outer1) &Carrier).dict[""]! + x.first() // ok + x.second() // fails } - } - `) + `) - errors := RequireCheckerErrors(t, err, 2) - require.IsType(t, &sema.NotDeclaredError{}, errors[0]) - require.IsType(t, &sema.InvalidNonEntitlementTypeInMapError{}, errors[1]) + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidAccessError{}, errors[0]) }) - t.Run("non entitlement type", func(t *testing.T) { - + t.Run("array mapped function", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - access(all) entitlement X - access(all) entitlement mapping M { - X -> X - Int -> X - } - access(all) struct S { - access(M) var foo: auth(M) &Int - init() { - self.foo = &3 as auth(X) &Int - var selfRef = &self as auth(X) &S - selfRef.foo + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 + + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } } - } - `) - errors := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.InvalidNonEntitlementTypeInMapError{}, errors[0]) - }) -} + struct Carrier { + access(mapping MyMap) fun getDict(): {String: auth(mapping MyMap) &InnerObj} { + return {"": &InnerObj()} + } + } -func TestInterpretMappingEscalation(t *testing.T) { + + `) - t.Parallel() + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.InvalidMappedEntitlementMemberError{}, errors[0]) + }) - t.Run("escalate", func(t *testing.T) { + t.Run("lambda mapped array field", func(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - entitlement X - entitlement Y - entitlement mapping M { - X -> Insert - Y -> Remove - } - struct S { - access(M) var member: auth(M) &[Int]? - init() { - self.member = nil; - } - access(all) fun grantRemovePrivileges(param: auth(Insert) &[Int]): Void{ - var selfRef = &self as auth(X) &S; - selfRef.member = param; - } - } - fun main(): Void { - var arr: [Int] = [123]; - var arrRef = &arr as auth(Insert) &[Int]; - let s = S() - s.grantRemovePrivileges(param: arrRef); - s.member?.removeLast() - } + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 + + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } + } + + struct Carrier { + access(mapping MyMap) let fnArr: [fun(auth(mapping MyMap) &InnerObj): auth(mapping MyMap) &InnerObj] + init() { + let innerObj = &InnerObj() as auth(Inner1, Inner2) &InnerObj + self.fnArr = [ + fun(_ x: &InnerObj): auth(Inner1, Inner2) &InnerObj { + return innerObj + } + ] + } + + } + + fun foo() { + let x = (&Carrier() as auth(Outer1) &Carrier).fnArr[0] + + x(&InnerObj() as auth(Inner1) &InnerObj).first() // ok + + x(&InnerObj() as auth(Inner2) &InnerObj).first() // mismatch + + x(&InnerObj() as auth(Inner1) &InnerObj).second() // fails + } + `) - errors := RequireCheckerErrors(t, err, 1) + errors := RequireCheckerErrors(t, err, 2) require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + require.IsType(t, &sema.InvalidAccessError{}, errors[1]) }) - t.Run("field assign", func(t *testing.T) { + t.Run("lambda escape", func(t *testing.T) { + t.Parallel() _, err := ParseAndCheck(t, ` - entitlement X - entitlement Y - entitlement mapping M { - X -> Insert - Y -> Remove + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 + + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 } - struct S { - access(M) var member: auth(M) &[Int]? - init() { - self.member = nil; - } - access(all) fun grantRemovePrivileges(sRef: auth(X) &S, param: auth(Insert) &[Int]): Void{ - sRef.member = param; + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } + } + + struct FuncGenerator { + access(mapping MyMap) fun generate(): auth(mapping MyMap) &Int? { + // cannot declare lambda with mapped entitlement + fun innerFunc(_ param: auth(mapping MyMap) &InnerObj): Int { + return 123; + } + var f = innerFunc; // will fail if we're called via a reference + return nil; } + } + + fun test() { + (&FuncGenerator() as auth(Outer1) &FuncGenerator).generate() } - fun main(): Void { - var arr: [Int] = [123]; - var arrRef = &arr as auth(Insert) &[Int]; - let s = S() - s.grantRemovePrivileges(sRef: &s as auth(X) &S, param: arrRef); - s.member?.removeLast() - } - `) + `) errors := RequireCheckerErrors(t, err, 1) - require.IsType(t, &sema.TypeMismatchError{}, errors[0]) + require.IsType(t, &sema.InvalidMappedAuthorizationOutsideOfFieldError{}, errors[0]) }) - } diff --git a/runtime/tests/checker/entrypoint_test.go b/runtime/tests/checker/entrypoint_test.go index 9fb5798b27..08f76c8f19 100644 --- a/runtime/tests/checker/entrypoint_test.go +++ b/runtime/tests/checker/entrypoint_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/enum_test.go b/runtime/tests/checker/enum_test.go index 6c8bab19cf..fd1ee6b896 100644 --- a/runtime/tests/checker/enum_test.go +++ b/runtime/tests/checker/enum_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/errors_test.go b/runtime/tests/checker/errors_test.go index 5426028f10..968a42a91d 100644 --- a/runtime/tests/checker/errors_test.go +++ b/runtime/tests/checker/errors_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" @@ -107,3 +108,95 @@ func TestCheckErrorShortCircuiting(t *testing.T) { assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) }) } + +func TestCheckEntitlementsErrorMessage(t *testing.T) { + + t.Parallel() + + t.Run("reference subtyping", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + access(all) entitlement E + fun foo() { + let x = 1 + let refX: auth(E) &Int = &x as auth(F) &Int + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + + var mismatchError *sema.TypeMismatchError + + require.IsType(t, &sema.NotDeclaredError{}, errs[0]) + require.ErrorAs(t, errs[1], &mismatchError) + require.Equal(t, "expected `auth(E) &Int`, got `auth(F) &Int`", mismatchError.SecondaryError()) + }) + + t.Run("invalid access", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + access(all) entitlement E + access(all) resource R { + access(E) fun foo() {} + } + fun foo() { + let r <- create R() + let refR = &r as auth(F) &R + refR.foo() + destroy r + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + + var invalidAccess *sema.InvalidAccessError + + require.IsType(t, &sema.NotDeclaredError{}, errs[0]) + require.ErrorAs(t, errs[1], &invalidAccess) + require.Equal(t, + "cannot access `foo`: function requires `E` authorization, but reference only has `F` authorization", + invalidAccess.Error(), + ) + }) + + t.Run("interface as type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, + ` + access(all) entitlement E + access(all) resource interface I { + access(E) fun foo() + } + access(all) resource R: I { + access(E) fun foo() {} + } + fun foo() { + let r <- create R() + let refR = &r as auth(F) &I + destroy r + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + + var invalidInterface *sema.InvalidInterfaceTypeError + + require.IsType(t, &sema.NotDeclaredError{}, errs[0]) + require.ErrorAs(t, errs[1], &invalidInterface) + require.Equal(t, + "got `auth(F) &I`; consider using `auth(F) &{I}`", + invalidInterface.SecondaryError(), + ) + }) +} diff --git a/runtime/tests/checker/events_test.go b/runtime/tests/checker/events_test.go index 62d6428648..d4e34f3e99 100644 --- a/runtime/tests/checker/events_test.go +++ b/runtime/tests/checker/events_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,12 +22,13 @@ import ( "fmt" "testing" + "github.com/stretchr/testify/assert" + "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/errors" "github.com/onflow/cadence/runtime/tests/utils" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/onflow/cadence/runtime/sema" @@ -75,9 +76,9 @@ func TestCheckEventDeclaration(t *testing.T) { case common.CompositeKindResource: errs := RequireCheckerErrors(t, err, 3) - assert.IsType(t, &sema.ResourceLossError{}, errs[0]) - assert.IsType(t, &sema.InvalidEventParameterTypeError{}, errs[1]) - assert.IsType(t, &sema.InvalidResourceFieldError{}, errs[2]) + require.IsType(t, &sema.ResourceLossError{}, errs[0]) + require.IsType(t, &sema.InvalidEventParameterTypeError{}, errs[1]) + require.IsType(t, &sema.InvalidResourceFieldError{}, errs[2]) case common.CompositeKindStructure: require.NoError(t, err) @@ -85,8 +86,8 @@ func TestCheckEventDeclaration(t *testing.T) { case common.CompositeKindAttachment: errs := RequireCheckerErrors(t, err, 2) - assert.IsType(t, &sema.InvalidEventParameterTypeError{}, errs[1]) - assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) + require.IsType(t, &sema.InvalidEventParameterTypeError{}, errs[1]) + require.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) default: panic(errors.NewUnreachableError()) @@ -136,7 +137,7 @@ func TestCheckEventDeclaration(t *testing.T) { }, ) - if sema.IsValidDictionaryKeyType(ty) { + if sema.IsSubType(ty, sema.HashableStructType) { tests = append(tests, &sema.DictionaryType{ KeyType: ty, @@ -195,8 +196,8 @@ func TestCheckEventDeclaration(t *testing.T) { errs := RequireCheckerErrors(t, err, 2) - assert.IsType(t, &sema.RedeclarationError{}, errs[0]) - assert.IsType(t, &sema.RedeclarationError{}, errs[1]) + require.IsType(t, &sema.RedeclarationError{}, errs[0]) + require.IsType(t, &sema.RedeclarationError{}, errs[1]) }) } @@ -205,7 +206,9 @@ func TestCheckEmitEvent(t *testing.T) { t.Parallel() - t.Run("ValidEvent", func(t *testing.T) { + t.Run("valid", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` event Transfer(to: Int, from: Int) @@ -217,7 +220,9 @@ func TestCheckEmitEvent(t *testing.T) { require.NoError(t, err) }) - t.Run("MissingEmitStatement", func(t *testing.T) { + t.Run("missing emit statement", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` event Transfer(to: Int, from: Int) @@ -228,10 +233,34 @@ func TestCheckEmitEvent(t *testing.T) { errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.InvalidEventUsageError{}, errs[0]) + require.IsType(t, &sema.InvalidEventUsageError{}, errs[0]) + }) + + t.Run("missing emit statement, optional chaining", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract C { + event Transfer(to: Int, from: Int) + } + + fun test() { + let optContractRef: &C? = &C as &C + optContractRef?.Transfer(to: 1, from: 2) + } + `) + + errs := RequireCheckerErrors(t, err, 2) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + + assert.IsType(t, &sema.InvalidEventUsageError{}, errs[1]) }) - t.Run("EmitNonEvent", func(t *testing.T) { + t.Run("emit non-event", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` fun notAnEvent(): Int { return 1 } @@ -242,10 +271,12 @@ func TestCheckEmitEvent(t *testing.T) { errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.EmitNonEventError{}, errs[0]) + require.IsType(t, &sema.EmitNonEventError{}, errs[0]) }) - t.Run("EmitNotDeclared", func(t *testing.T) { + t.Run("emit not-declared", func(t *testing.T) { + t.Parallel() + _, err := ParseAndCheck(t, ` fun test() { emit notAnEvent() @@ -254,10 +285,11 @@ func TestCheckEmitEvent(t *testing.T) { errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) + require.IsType(t, &sema.NotDeclaredError{}, errs[0]) }) - t.Run("EmitImported", func(t *testing.T) { + t.Run("emit imported", func(t *testing.T) { + t.Parallel() importedChecker, err := ParseAndCheckWithOptions(t, ` @@ -289,7 +321,7 @@ func TestCheckEmitEvent(t *testing.T) { errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.EmitImportedEventError{}, errs[0]) + require.IsType(t, &sema.EmitImportedEventError{}, errs[0]) }) } @@ -369,7 +401,7 @@ func TestCheckDeclareEventInInterface(t *testing.T) { `) errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) + require.IsType(t, &sema.NotDeclaredError{}, errs[0]) }) t.Run("declare and emit type mismatch", func(t *testing.T) { @@ -388,7 +420,7 @@ func TestCheckDeclareEventInInterface(t *testing.T) { `) errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) t.Run("declare and emit qualified", func(t *testing.T) { @@ -409,7 +441,7 @@ func TestCheckDeclareEventInInterface(t *testing.T) { `) errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) + require.IsType(t, &sema.NotDeclaredError{}, errs[0]) }) t.Run("declare and emit in pre-condition", func(t *testing.T) { @@ -481,3 +513,998 @@ func TestCheckDeclareEventInInterface(t *testing.T) { }) } + +func TestCheckDefaultEventDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("empty", func(t *testing.T) { + + t.Parallel() + + checker, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed() + } + `) + require.NoError(t, err) + + variable, exists := checker.Elaboration.GetGlobalType("R") + require.True(t, exists) + + require.IsType(t, variable.Type, &sema.CompositeType{}) + require.Equal(t, "ResourceDestroyed", variable.Type.(*sema.CompositeType).DefaultDestroyEvent.Identifier) + }) + + t.Run("allowed in resource interface", func(t *testing.T) { + + t.Parallel() + + checker, err := ParseAndCheck(t, ` + resource interface R { + event ResourceDestroyed() + } + `) + require.NoError(t, err) + + variable, exists := checker.Elaboration.GetGlobalType("R") + require.True(t, exists) + + require.IsType(t, variable.Type, &sema.InterfaceType{}) + require.Equal(t, "ResourceDestroyed", variable.Type.(*sema.InterfaceType).DefaultDestroyEvent.Identifier) + }) + + t.Run("fail in struct", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct R { + event ResourceDestroyed() + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyEventInNonResourceError{}, errs[0]) + }) + + t.Run("fail in struct interface", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct interface R { + event ResourceDestroyed() + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyEventInNonResourceError{}, errs[0]) + }) + + t.Run("fail in contract", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract R { + event ResourceDestroyed() + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyEventInNonResourceError{}, errs[0]) + }) + + t.Run("fail in contract interface", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract interface R { + event ResourceDestroyed() + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyEventInNonResourceError{}, errs[0]) + }) + + t.Run("allowed in resource attachment", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + attachment A for AnyResource { + event ResourceDestroyed() + } + `) + require.NoError(t, err) + }) + + t.Run("not allowed in struct attachment", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + attachment A for AnyStruct { + event ResourceDestroyed() + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyEventInNonResourceError{}, errs[0]) + }) + + t.Run("nested declarations after first disallowed", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed() + event OtherEvent() + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.InvalidNestedDeclarationError{}, errs[0]) + }) + + t.Run("cannot declare two default events", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed() + event ResourceDestroyed() + } + `) + errs := RequireCheckerErrors(t, err, 4) + + require.IsType(t, &sema.InvalidNestedDeclarationError{}, errs[0]) + require.IsType(t, &sema.RedeclarationError{}, errs[1]) + require.IsType(t, &sema.RedeclarationError{}, errs[2]) + require.IsType(t, &sema.RedeclarationError{}, errs[3]) + }) + + t.Run("explicit emit disallowed", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed() + fun foo() { + emit ResourceDestroyed() + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.EmitDefaultDestroyEventError{}, errs[0]) + }) + + t.Run("explicit emit disallowed outside", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed() + } + + fun foo() { + emit R.ResourceDestroyed() + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.EmitDefaultDestroyEventError{}, errs[0]) + }) +} + +func TestCheckDefaultEventParamChecking(t *testing.T) { + + t.Parallel() + + t.Run("basic", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: String = "foo") + } + `) + require.NoError(t, err) + }) + + t.Run("3 param", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: String = "foo", id: UInt16? = 4, condition: Bool = true) + } + `) + require.NoError(t, err) + }) + + t.Run("type error", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: Int = "foo") + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) + + t.Run("field", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + let field : String + event ResourceDestroyed(name: String = self.field) + + init() { + self.field = "" + } + } + `) + require.NoError(t, err) + }) + + t.Run("address", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + let field : Address + event ResourceDestroyed(name: Address? = self.field) + + init() { + self.field = 0x1 + } + } + `) + require.NoError(t, err) + }) + + t.Run("nil", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: Address? = nil) + } + `) + require.NoError(t, err) + }) + + t.Run("type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: Type = Type<@R>()) + } + `) + errs := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.DefaultDestroyInvalidParameterError{}, errs[0]) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[1]) + require.Equal(t, errs[1].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidExpression) + }) + + t.Run("raw type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: Type = R) + } + `) + errs := RequireCheckerErrors(t, err, 3) + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) + require.IsType(t, &sema.DefaultDestroyInvalidParameterError{}, errs[1]) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[2]) + }) + + t.Run("address expr", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: Address = 0x1) + } + `) + require.NoError(t, err) + }) + + t.Run("path expr", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: PublicPath = /public/foo) + } + `) + require.NoError(t, err) + }) + + t.Run("float", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: UFix64 = 0.0034) + } + `) + require.NoError(t, err) + }) + + t.Run("field type mismatch", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: String = self.field) + + let field : Int + + init() { + self.field = 3 + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) + + t.Run("self", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: @R = self) + } + `) + errs := RequireCheckerErrors(t, err, 4) + + require.IsType(t, &sema.DefaultDestroyInvalidParameterError{}, errs[0]) + require.IsType(t, &sema.ResourceLossError{}, errs[1]) + require.IsType(t, &sema.InvalidEventParameterTypeError{}, errs[2]) + require.IsType(t, &sema.InvalidResourceFieldError{}, errs[3]) + }) + + t.Run("array field", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + let field : [Int] + event ResourceDestroyed(name: [Int] = self.field) + + init() { + self.field = [3] + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyInvalidParameterError{}, errs[0]) + }) + + t.Run("function call", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: Int = self.fn()) + + fun fn(): Int { + return 3 + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidExpression) + }) + + t.Run("external field", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let r2 <- create R2() + let ref = &r2 as &R2 + + resource R { + event ResourceDestroyed(name: UFix64 = ref.field) + } + + resource R2 { + let field : UFix64 + init() { + self.field = 0.0034 + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidIdentifier) + }) + + t.Run("double nested field", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + let s: S + event ResourceDestroyed(name: UFix64 = self.s.field) + init() { + self.s = S() + } + } + + struct S { + let field : UFix64 + init() { + self.field = 0.0034 + } + } + `) + require.NoError(t, err) + }) + + t.Run("function call member", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun getS(): S { + return S() + } + + resource R { + event ResourceDestroyed(name: UFix64 = getS().field) + } + + struct S { + let field : UFix64 + init() { + self.field = 0.0034 + } + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidExpression) + }) + + t.Run("method call member", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + fun getS(): S { + return S() + } + event ResourceDestroyed(name: UFix64 = self.getS().field) + } + + struct S { + let field : UFix64 + init() { + self.field = 0.0034 + } + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidExpression) + }) + + t.Run("array index expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + var arr : [String] + event ResourceDestroyed(name: String? = self.arr[0]) + + init() { + self.arr = [] + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.NonDictionaryIndexExpression) + }) + + t.Run("array reference index expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + var arr : &[String] + event ResourceDestroyed(name: String? = self.arr[0]) + + init() { + self.arr = &[] + } + } + `) + errs := RequireCheckerErrors(t, err, 2) + + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[1]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.ReferenceTypedMemberAccess) + require.Equal(t, errs[1].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.NonDictionaryIndexExpression) + }) + + t.Run("dict index expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + let dict : {Int: String} + event ResourceDestroyed(name: String? = self.dict[0]) + + init() { + self.dict = {} + } + } + `) + require.NoError(t, err) + }) + + t.Run("dict reference index expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + let dict : &{Int: String} + event ResourceDestroyed(name: String? = self.dict[0]) + + init() { + self.dict = &{} + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.ReferenceTypedMemberAccess) + }) + + t.Run("function call dict index expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + event ResourceDestroyed(name: String? = self.get()[0]) + fun get(): {Int: String} { + return {} + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidExpression) + }) + + t.Run("function call dict indexed expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + let dict : {Int: String} + event ResourceDestroyed(name: String? = self.dict[0+1]) + + init() { + self.dict = {} + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidExpression) + }) + + t.Run("external var expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + var index: Int = 3 + resource R { + let dict : {Int: String} + event ResourceDestroyed(name: String? = self.dict[index]) + + init() { + self.dict = {} + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidIdentifier) + }) + + t.Run("attachment index expression", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + attachment A for R { + let name: String + init() { + self.name = "foo" + } + } + + resource R { + event ResourceDestroyed(name: String? = self[A]?.name) + } + `) + require.NoError(t, err) + }) + + t.Run("attachment with base", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + attachment A for R { + event ResourceDestroyed(name: Int = base.field) + } + + resource R { + let field : Int + + init() { + self.field = 3 + } + } + `) + require.NoError(t, err) + }) + + t.Run("field name conflict", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + attachment A for R { + event ResourceDestroyed(name: Int = self.self, x: String = base.base) + let self: Int + let base: String + init() { + self.base = "foo" + self.self = 3 + } + } + resource R { + let base: String + init() { + self.base = "foo" + } + event ResourceDestroyed(name: String? = self[A]?.base, x: Int? = self[A]?.self) + } + `) + require.NoError(t, err) + }) + + t.Run("attachment with entitled base", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement E + + attachment A for R { + event ResourceDestroyed(name: Int = base.field) + } + + resource R { + access(E) let field : Int + + init() { + self.field = 3 + } + } + `) + require.NoError(t, err) + }) + + t.Run("attachment with entitled self", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + entitlement E + + access(all) attachment A for R { + access(E) let field : Int + event ResourceDestroyed(name: Int = self.field) + init() { + self.field = 3 + } + } + + resource R { + access(E) fun foo() {} + } + `) + require.NoError(t, err) + }) + + t.Run("dead reference", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource InnerResource { + access(all) var i: Int + access(all) init() { self.i = 123 } + } + + access(all) resource IndestructibleTroll { + access(all) var ref: &InnerResource + + access(all) init() { + var r <- create InnerResource() + self.ref = &r as &InnerResource + destroy r + } + + // Make the event parameter dependent on the dead reference + access(all) event ResourceDestroyed(x: Int? = self.ref.i) + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.ReferenceTypedMemberAccess) + }) + + t.Run("dead reference in dict", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource InnerResource { + access(all) var i: Int + access(all) init() { self.i = 123 } + } + + access(all) resource IndestructibleTroll { + access(all) var dict: {Int: &InnerResource} + + access(all) init() { + self.dict = {} + } + + // Make the event parameter dependent on the dead reference + access(all) event ResourceDestroyed(x: Int? = self.dict[0]?.i) + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.ReferenceTypedMemberAccess) + }) + + t.Run("nested dead reference", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource InnerInnerResource { + access(all) var i: Int + access(all) init() { self.i = 123 } + } + + access(all) resource InnerResource { + access(all) var innerRef: &InnerInnerResource + access(all) init() { + var r <- create InnerInnerResource() + self.innerRef = &r + destroy r + } + } + + access(all) resource IndestructibleTroll { + access(all) var dict: @{Int: InnerResource} + + access(all) init() { + self.dict <- {} + } + + // Make the event parameter dependent on the dead reference + access(all) event ResourceDestroyed(x: Int? = self.dict[0]?.innerRef?.i) + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.ReferenceTypedMemberAccess) + }) + + t.Run("nested dead reference attachment", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) attachment Attachment for InnerResource { + access(all) var i: Int + access(all) init() { self.i = 123 } + } + + access(all) resource InnerResource {} + + access(all) resource IndestructibleTroll { + access(all) var ref: &InnerResource + + access(all) init() { + var r <- create InnerResource() + self.ref = &r + destroy r + } + + // Make the event parameter dependent on the dead reference + access(all) event ResourceDestroyed(x: Int? = self.ref[Attachment]?.i ) + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.ReferenceTypedMemberAccess) + }) + + t.Run("base outside attachment", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + + access(all) resource R { + access(all) var i: Int + access(all) init() { + self.i = 123 + } + } + access(all) var globalArray: @[R] <- [<- create R()] + access(all) var base: &R = &globalArray[0] // strategically named variable + access(all) var dummy: @R <- globalArray.removeLast() // invalidate the ref + + access(all) resource IndestructibleTroll { + // Reference the fake "base" variable + access(all) event ResourceDestroyed( x: Int? = base.i) + } + access(all) fun main() { + var troll <- create IndestructibleTroll() + destroy troll + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidIdentifier) + }) + + t.Run("non-attachment type name", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) contract Contract { + access(all) var i: Int + access(all) init() { self.i = 1} + } + access(all) resource IndestructibleTroll { + access(all) event ResourceDestroyed( x: Int? = Contract.i) + } + access(all) fun main() { + var troll <- create IndestructibleTroll() + destroy troll + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidIdentifier) + }) + + t.Run("base contract type name", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) contract base { + access(all) var i: Int + access(all) init() { self.i = 1} + } + access(all) resource IndestructibleTroll { + access(all) event ResourceDestroyed( x: Int? = base.i) + } + access(all) fun main() { + var troll <- create IndestructibleTroll() + destroy troll + } + `) + + errs := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + require.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidIdentifier) + }) + + t.Run("attachment same name as variable", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) attachment varName for IndestructibleTroll { + access(all) var i: Int + access(all) init() { self.i = 1} + } + + access(all) resource R { + access(all) var i: Int + access(all) init() { + self.i = 123 + } + } + access(all) var globalArray: @[R] <- [<- create R()] + access(all) var varName: &R = &globalArray[0] // strategically named variable + access(all) var dummy: @R <- globalArray.removeLast() // invalidate the ref + + access(all) resource IndestructibleTroll { + access(all) event ResourceDestroyed( x: Int? = varName.i) + } + access(all) fun main() { + var troll <- create IndestructibleTroll() + destroy troll + } + `) + + errs := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.RedeclarationError{}, errs[0]) + require.IsType(t, &sema.NotDeclaredMemberError{}, errs[1]) + }) +} diff --git a/runtime/tests/checker/external_mutation_test.go b/runtime/tests/checker/external_mutation_test.go index 71ea9fe869..201dfd9f94 100644 --- a/runtime/tests/checker/external_mutation_test.go +++ b/runtime/tests/checker/external_mutation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/fixedpoint_test.go b/runtime/tests/checker/fixedpoint_test.go index 18d1be7708..99b0ed5cf0 100644 --- a/runtime/tests/checker/fixedpoint_test.go +++ b/runtime/tests/checker/fixedpoint_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/for_test.go b/runtime/tests/checker/for_test.go index 9ed443c605..0806412ada 100644 --- a/runtime/tests/checker/for_test.go +++ b/runtime/tests/checker/for_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,11 +19,15 @@ package checker import ( + "fmt" "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" ) func TestCheckForVariableSized(t *testing.T) { @@ -76,6 +80,60 @@ func TestCheckForString(t *testing.T) { assert.NoError(t, err) } +func TestCheckForInclusiveRange(t *testing.T) { + + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + test := func(typ sema.Type) { + t.Run(typ.String(), func(t *testing.T) { + t.Parallel() + + code := fmt.Sprintf( + ` + fun test() { + let start : %[1]s = 1 + let end : %[1]s = 2 + let step : %[1]s = 1 + let range: InclusiveRange<%[1]s> = InclusiveRange(start, end, step: step) + + for value in range { + var typedValue: %[1]s = value + } + } + `, + typ.String(), + ) + + _, err := ParseAndCheckWithOptions(t, code, + ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + }, + ) + require.NoError(t, err) + }) + } + + for _, typ := range sema.AllIntegerTypes { + // Only test leaf integer types + switch typ { + case sema.IntegerType, + sema.SignedIntegerType, + sema.FixedSizeUnsignedIntegerType: + continue + } + + test(typ) + } + +} + func TestCheckForEmpty(t *testing.T) { t.Parallel() @@ -273,3 +331,202 @@ func TestCheckInvalidForShadowing(t *testing.T) { assert.IsType(t, &sema.RedeclarationError{}, errs[0]) } + +func TestCheckReferencesInForLoop(t *testing.T) { + + t.Parallel() + + t.Run("Primitive array", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + var array = ["Hello", "World", "Foo", "Bar"] + var arrayRef = &array as &[String] + + for element in arrayRef { + let e: String = element + } + } + `) + + require.NoError(t, err) + }) + + t.Run("Struct array", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct Foo{} + + fun main() { + var array = [Foo(), Foo()] + var arrayRef = &array as &[Foo] + + for element in arrayRef { + let e: &Foo = element + } + } + `) + + require.NoError(t, err) + }) + + t.Run("Resource array", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource Foo{} + + fun main() { + var array <- [ <- create Foo(), <- create Foo()] + var arrayRef = &array as &[Foo] + + for element in arrayRef { + let e: &Foo = element + } + + destroy array + } + `) + + require.NoError(t, err) + }) + + t.Run("Dictionary", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct Foo{} + + fun main() { + var foo = {"foo": Foo()} + var fooRef = &foo as &{String: Foo} + + for element in fooRef { + let e: &Foo = element + } + } + `) + + errors := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.TypeMismatchWithDescriptionError{}, errors[0]) + }) + + t.Run("Non iterable", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct Foo{} + + fun main() { + var foo = Foo() + var fooRef = &foo as &Foo + + for element in fooRef { + let e: &Foo = element + } + } + `) + + errors := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.TypeMismatchWithDescriptionError{}, errors[0]) + }) + + t.Run("Non existing type", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + var foo = Foo() + var fooRef = &foo as &Foo + + for element in fooRef {} + } + `) + + errors := RequireCheckerErrors(t, err, 2) + assert.IsType(t, &sema.NotDeclaredError{}, errors[0]) + assert.IsType(t, &sema.NotDeclaredError{}, errors[1]) + }) + + t.Run("Auth ref", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct Foo{} + + fun main() { + var array = [Foo(), Foo()] + var arrayRef = &array as auth(Mutate) &[Foo] + + for element in arrayRef { + let e: &Foo = element // should be non-auth + } + } + `) + + require.NoError(t, err) + }) + + t.Run("Auth ref invalid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct Foo{} + + fun main() { + var array = [Foo(), Foo()] + var arrayRef = &array as auth(Mutate) &[Foo] + + for element in arrayRef { + let e: auth(Mutate) &Foo = element // should be non-auth + } + } + `) + + errors := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.TypeMismatchError{}, errors[0]) + }) + + t.Run("Optional array", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct Foo{} + + fun main() { + var array: [Foo?] = [Foo(), Foo()] + var arrayRef = &array as &[Foo?] + + for element in arrayRef { + let e: &Foo? = element // Should be an optional reference + } + } + `) + + require.NoError(t, err) + }) + + t.Run("Enum array", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + enum Status: Int { + case On + case Off + } + + fun main() { + var array = [Status.On, Status.Off] + var arrayRef = &array as &[Status] + + for element in arrayRef { + let e: Status = element + } + } + `) + + require.NoError(t, err) + }) +} diff --git a/runtime/tests/checker/force_test.go b/runtime/tests/checker/force_test.go index 96a147f351..fa562cd9b1 100644 --- a/runtime/tests/checker/force_test.go +++ b/runtime/tests/checker/force_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/function_expression_test.go b/runtime/tests/checker/function_expression_test.go index a8aeccb45c..285746c532 100644 --- a/runtime/tests/checker/function_expression_test.go +++ b/runtime/tests/checker/function_expression_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/function_test.go b/runtime/tests/checker/function_test.go index 5e1facb8cb..568c20c87f 100644 --- a/runtime/tests/checker/function_test.go +++ b/runtime/tests/checker/function_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/genericfunction_test.go b/runtime/tests/checker/genericfunction_test.go index a6b99e38f6..ce52b291da 100644 --- a/runtime/tests/checker/genericfunction_test.go +++ b/runtime/tests/checker/genericfunction_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" ) @@ -44,13 +45,15 @@ func parseAndCheckWithTestValue(t *testing.T, code string, ty sema.Type) (*sema. code, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) } -func TestCheckGenericFunction(t *testing.T) { +func TestCheckGenericFunctionInvocation(t *testing.T) { t.Parallel() @@ -280,10 +283,9 @@ func TestCheckGenericFunction(t *testing.T) { }, ) - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) t.Run("valid: one type parameter, one type argument, one parameter, one arguments", func(t *testing.T) { @@ -420,10 +422,9 @@ func TestCheckGenericFunction(t *testing.T) { }, ) - errs := RequireCheckerErrors(t, err, 2) + errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) t.Run("invalid: one type parameter, no type argument, no parameters, no arguments, return type", func(t *testing.T) { @@ -896,7 +897,7 @@ func TestCheckBorrowOfCapabilityWithoutTypeArgument(t *testing.T) { require.NoError(t, err) } -func TestCheckUnparameterizedTypeInstantiationE(t *testing.T) { +func TestCheckInvalidUnparameterizedTypeInstantiation(t *testing.T) { t.Parallel() @@ -910,3 +911,210 @@ func TestCheckUnparameterizedTypeInstantiationE(t *testing.T) { assert.IsType(t, &sema.UnparameterizedTypeInstantiationError{}, errs[0]) } + +func TestCheckGenericFunctionDeclaration(t *testing.T) { + + t.Parallel() + + t.Run("global, non-native", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, ` + fun head(_ items: [T]): T? { return nil } + + let x: Int? = head([1, 2, 3]) + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: false, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: false, + TypeParametersEnabled: true, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidTypeParameterizedNonNativeFunctionError{}, errs[0]) + }) + + t.Run("global, native", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, ` + native fun head(_ items: [T]): T? {} + + let x: Int? = head([1, 2, 3]) + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: true, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: true, + TypeParametersEnabled: true, + }, + }, + ) + + require.NoError(t, err) + }) + + t.Run("composite function, non-native", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, ` + struct S { + fun head(_ items: [T]): T? { return nil } + } + + let x: Int? = S().head([1, 2, 3]) + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: false, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: false, + TypeParametersEnabled: true, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidTypeParameterizedNonNativeFunctionError{}, errs[0]) + }) + + t.Run("composite function, non-native", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, ` + struct S { + native fun head(_ items: [T]): T? {} + } + + let x: Int? = S().head([1, 2, 3]) + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: true, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: true, + TypeParametersEnabled: true, + }, + }, + ) + + require.NoError(t, err) + }) + + t.Run("too many type arguments", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, + ` + native fun test() {} + + let x = test() + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: true, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: true, + TypeParametersEnabled: true, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.InvalidTypeArgumentCountError{}, errs[0]) + }) + + t.Run("too few type arguments", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, + ` + native fun test() {} + + let x = test() + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: true, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: true, + TypeParametersEnabled: true, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.TypeParameterTypeInferenceError{}, errs[0]) + }) + + t.Run("type parameter usage in following type parameter", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, + ` + native fun test(_ u: U): U {} + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: true, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: true, + TypeParametersEnabled: true, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) + }) + + t.Run("type bound is checked", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, + ` + native fun test() {} + + let x = test() + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + AllowNativeDeclarations: true, + }, + ParseOptions: parser.Config{ + NativeModifierEnabled: true, + TypeParametersEnabled: true, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) +} diff --git a/runtime/tests/checker/hashable_struct_test.go b/runtime/tests/checker/hashable_struct_test.go new file mode 100644 index 0000000000..4d5d69e999 --- /dev/null +++ b/runtime/tests/checker/hashable_struct_test.go @@ -0,0 +1,58 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package checker + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/onflow/cadence/runtime/sema" +) + +func TestCheckHashableStruct(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a: HashableStruct = 1 + let b: HashableStruct = true + `) + + assert.NoError(t, err) +} + +func TestCheckInvalidHashableStruct(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + let a: HashableStruct = <-create R() + let b: HashableStruct = [<-create R()] + let c: HashableStruct = {1: true} + `) + + errs := RequireCheckerErrors(t, err, 3) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + assert.IsType(t, &sema.TypeMismatchError{}, errs[2]) +} diff --git a/runtime/tests/checker/if_test.go b/runtime/tests/checker/if_test.go index b399aa51bb..a231e71fbb 100644 --- a/runtime/tests/checker/if_test.go +++ b/runtime/tests/checker/if_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/import_test.go b/runtime/tests/checker/import_test.go index b012968957..de971dd7c3 100644 --- a/runtime/tests/checker/import_test.go +++ b/runtime/tests/checker/import_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -716,3 +716,110 @@ func TestCheckImportVirtual(t *testing.T) { require.NoError(t, err) } + +func TestCheckImportContract(t *testing.T) { + + t.Parallel() + + t.Run("valid", func(t *testing.T) { + + importedChecker, err := ParseAndCheckWithOptions(t, + ` + access(all) contract Foo { + access(all) let x: [Int] + + access(all) fun answer(): Int { + return 42 + } + + access(all) struct Bar {} + + init() { + self.x = [] + } + }`, + ParseAndCheckOptions{ + Location: utils.ImportedLocation, + }, + ) + + require.NoError(t, err) + + _, err = ParseAndCheckWithOptions(t, + ` + import Foo from "imported" + + access(all) fun main() { + var foo: &Foo = Foo + var x: &[Int] = Foo.x + var bar: Foo.Bar = Foo.Bar() + } + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + ImportHandler: func(_ *sema.Checker, _ common.Location, _ ast.Range) (sema.Import, error) { + return sema.ElaborationImport{ + Elaboration: importedChecker.Elaboration, + }, nil + }, + }, + }, + ) + + require.NoError(t, err) + }) + + t.Run("invalid", func(t *testing.T) { + + importedChecker, err := ParseAndCheckWithOptions(t, + ` + access(all) contract Foo { + access(all) let x: [Int] + + access(all) fun answer(): Int { + return 42 + } + + access(all) struct Bar {} + + init() { + self.x = [] + } + }`, + ParseAndCheckOptions{ + Location: utils.ImportedLocation, + }, + ) + + require.NoError(t, err) + + _, err = ParseAndCheckWithOptions(t, + ` + import Foo from "imported" + + access(all) fun main() { + Foo.x[0] = 3 + Foo.x.append(4) + } + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + ImportHandler: func(_ *sema.Checker, _ common.Location, _ ast.Range) (sema.Import, error) { + return sema.ElaborationImport{ + Elaboration: importedChecker.Elaboration, + }, nil + }, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 2) + + assignmentError := &sema.UnauthorizedReferenceAssignmentError{} + assert.ErrorAs(t, errs[0], &assignmentError) + + accessError := &sema.InvalidAccessError{} + assert.ErrorAs(t, errs[1], &accessError) + }) + +} diff --git a/runtime/tests/checker/indexing_test.go b/runtime/tests/checker/indexing_test.go index 8552054395..e2501629e2 100644 --- a/runtime/tests/checker/indexing_test.go +++ b/runtime/tests/checker/indexing_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/initialization_test.go b/runtime/tests/checker/initialization_test.go index 25411eeb97..e660f7ef86 100644 --- a/runtime/tests/checker/initialization_test.go +++ b/runtime/tests/checker/initialization_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -205,10 +205,6 @@ func TestCheckInvalidRepeatedFieldInitialization(t *testing.T) { self.r <- create R() self.r <- create R() } - - destroy() { - destroy self.r - } } `) @@ -233,10 +229,6 @@ func TestCheckInvalidResourceMoveAfterInitialization(t *testing.T) { let r <- self.r destroy r } - - destroy() { - destroy self.r - } } `) diff --git a/runtime/tests/checker/integer_test.go b/runtime/tests/checker/integer_test.go index 6f55526aba..ea5063a93f 100644 --- a/runtime/tests/checker/integer_test.go +++ b/runtime/tests/checker/integer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -458,7 +458,7 @@ func TestCheckInvalidIntegerConversionFunctionWithoutArgs(t *testing.T) { for _, ty := range allIntegerTypesAndAddressType { // Only test leaf types switch ty { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -488,7 +488,7 @@ func TestCheckFixedPointToIntegerConversion(t *testing.T) { for _, ty := range sema.AllIntegerTypes { // Only test leaf types switch ty { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -531,7 +531,8 @@ func TestCheckIntegerLiteralArguments(t *testing.T) { switch ty { case sema.IntegerType, - sema.SignedIntegerType: + sema.SignedIntegerType, + sema.FixedSizeUnsignedIntegerType: errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.InvalidBinaryOperandsError{}, errs[0]) default: @@ -567,7 +568,7 @@ func TestCheckIntegerMinMax(t *testing.T) { for _, ty := range sema.AllIntegerTypes { // Only test leaf types switch ty { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } diff --git a/runtime/tests/checker/interface_test.go b/runtime/tests/checker/interface_test.go index 3fcd079df7..36d99a24e6 100644 --- a/runtime/tests/checker/interface_test.go +++ b/runtime/tests/checker/interface_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -281,7 +281,7 @@ func TestCheckInterfaceUse(t *testing.T) { body = "()" } - annotationType := AsInterfaceType("Test", kind) + annotationType := "{Test}" t.Run(kind.Keyword(), func(t *testing.T) { @@ -320,7 +320,7 @@ func TestCheckInterfaceConformanceNoRequirements(t *testing.T) { body = "()" } - annotationType := AsInterfaceType("Test", compositeKind) + annotationType := "{Test}" var useCode string if compositeKind != common.CompositeKindContract { @@ -386,7 +386,7 @@ func TestCheckInvalidInterfaceConformanceIncompatibleCompositeKinds(t *testing.T secondBody = "()" } - firstKindInterfaceType := AsInterfaceType("Test", firstKind) + firstKindInterfaceType := "{Test}" // NOTE: type mismatch is only tested when both kinds are not contracts // (which can not be passed by value) @@ -455,7 +455,7 @@ func TestCheckInvalidInterfaceConformanceUndeclared(t *testing.T) { continue } - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" var useCode string if compositeKind != common.CompositeKindContract { @@ -557,7 +557,7 @@ func TestCheckInterfaceFieldUse(t *testing.T) { t.Run(compositeKind.Keyword(), func(t *testing.T) { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" _, err := ParseAndCheck(t, fmt.Sprintf( @@ -602,7 +602,7 @@ func TestCheckInvalidInterfaceUndeclaredFieldUse(t *testing.T) { continue } - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" t.Run(compositeKind.Keyword(), func(t *testing.T) { @@ -648,7 +648,7 @@ func TestCheckInterfaceFunctionUse(t *testing.T) { if compositeKind != common.CompositeKindContract { identifier = "test" - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" setupCode = fmt.Sprintf( `let test: %[1]s%[2]s %[3]s %[4]s TestImpl%[5]s`, @@ -704,7 +704,7 @@ func TestCheckInvalidInterfaceUndeclaredFunctionUse(t *testing.T) { t.Run(compositeKind.Keyword(), func(t *testing.T) { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" _, err := ParseAndCheck(t, fmt.Sprintf( @@ -1695,6 +1695,13 @@ func BenchmarkCheckContractInterfaceFungibleTokenConformance(b *testing.B) { baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) baseValueActivation.DeclareValue(stdlib.PanicFunction) + config := &sema.Config{ + AccessCheckMode: sema.AccessCheckModeNotSpecifiedUnrestricted, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + } + b.ReportAllocs() b.ResetTimer() @@ -1703,10 +1710,7 @@ func BenchmarkCheckContractInterfaceFungibleTokenConformance(b *testing.B) { program, TestLocation, nil, - &sema.Config{ - AccessCheckMode: sema.AccessCheckModeNotSpecifiedUnrestricted, - BaseValueActivation: baseValueActivation, - }, + config, ) if err != nil { b.Fatal(err) @@ -1894,9 +1898,7 @@ func TestCheckMultipleInterfaceSingleInterfaceDefaultImplementation(t *testing.T } `) - errs := RequireCheckerErrors(t, err, 1) - - require.IsType(t, &sema.DefaultFunctionConflictError{}, errs[0]) + require.NoError(t, err) }) } @@ -3017,12 +3019,28 @@ func TestCheckInterfaceDefaultMethodsInheritance(t *testing.T) { } `) - errs := RequireCheckerErrors(t, err, 1) + require.NoError(t, err) + }) - memberConflictError := &sema.InterfaceMemberConflictError{} - require.ErrorAs(t, errs[0], &memberConflictError) - assert.Equal(t, "hello", memberConflictError.MemberName) - assert.Equal(t, "A", memberConflictError.ConflictingInterfaceType.QualifiedIdentifier()) + t.Run("default impl in child, declaration in parent, concrete type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct interface A { + access(all) fun hello() + } + + struct interface B: A { + access(all) fun hello() { + var a = 1 + } + } + + struct C: B {} + `) + + require.NoError(t, err) }) t.Run("default impl in both", func(t *testing.T) { @@ -3073,7 +3091,7 @@ func TestCheckInterfaceDefaultMethodsInheritance(t *testing.T) { } `) - errs := RequireCheckerErrors(t, err, 3) + errs := RequireCheckerErrors(t, err, 2) memberConflictError := &sema.InterfaceMemberConflictError{} require.ErrorAs(t, errs[0], &memberConflictError) @@ -3084,11 +3102,6 @@ func TestCheckInterfaceDefaultMethodsInheritance(t *testing.T) { require.ErrorAs(t, errs[1], &memberConflictError) assert.Equal(t, "C", memberConflictError.InterfaceType.QualifiedIdentifier()) assert.Equal(t, "hello", memberConflictError.MemberName) - assert.Equal(t, "B", memberConflictError.ConflictingInterfaceType.QualifiedIdentifier()) - - require.ErrorAs(t, errs[2], &memberConflictError) - assert.Equal(t, "C", memberConflictError.InterfaceType.QualifiedIdentifier()) - assert.Equal(t, "hello", memberConflictError.MemberName) assert.Equal(t, "A", memberConflictError.ConflictingInterfaceType.QualifiedIdentifier()) }) @@ -3360,13 +3373,7 @@ func TestCheckInterfaceDefaultMethodsInheritance(t *testing.T) { struct interface D: A, B, C {} `) - errs := RequireCheckerErrors(t, err, 1) - - memberConflictError := &sema.InterfaceMemberConflictError{} - require.ErrorAs(t, errs[0], &memberConflictError) - assert.Equal(t, "hello", memberConflictError.MemberName) - assert.Equal(t, "A", memberConflictError.ConflictingInterfaceType.QualifiedIdentifier()) - assert.Equal(t, "C", memberConflictError.InterfaceType.QualifiedIdentifier()) + require.NoError(t, err) }) t.Run("all three formats of function, concrete type", func(t *testing.T) { @@ -3393,10 +3400,7 @@ func TestCheckInterfaceDefaultMethodsInheritance(t *testing.T) { struct D: A, B, C {} `) - errs := RequireCheckerErrors(t, err, 1) - - defaultFunctionConflictError := &sema.DefaultFunctionConflictError{} - require.ErrorAs(t, errs[0], &defaultFunctionConflictError) + require.NoError(t, err) }) } @@ -3693,7 +3697,7 @@ func TestCheckInheritedInterfacesSubtyping(t *testing.T) { contract S: B {} - fun foo(a: [S]): [A] { + fun foo(a: [S]): [{A}] { return a // must be covariant } `) @@ -3712,7 +3716,7 @@ func TestCheckInheritedInterfacesSubtyping(t *testing.T) { contract S: B {} - fun foo(a: [B]): [A] { + fun foo(a: [{B}]): [{A}] { return a // must be covariant } `) diff --git a/runtime/tests/checker/intersection_test.go b/runtime/tests/checker/intersection_test.go index d3395b740c..df007b5b4d 100644 --- a/runtime/tests/checker/intersection_test.go +++ b/runtime/tests/checker/intersection_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package checker import ( + "fmt" "testing" "github.com/stretchr/testify/assert" @@ -264,6 +265,109 @@ func TestCheckIntersectionType(t *testing.T) { assert.IsType(t, &sema.AmbiguousIntersectionTypeError{}, errs[0]) }) + + t.Run("contract interface", func(t *testing.T) { + + _, err := ParseAndCheck(t, ` + contract interface CI {} + + fun test (_ c: {CI}) {} + `) + + require.NoError(t, err) + }) + + t.Run("contract", func(t *testing.T) { + + _, err := ParseAndCheck(t, ` + contract C {} + + fun test (_ c: {C}) {} + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidIntersectedTypeError{}, errs[0]) + // Checker is not able to infer valid composite kind based on intersection's types + assert.IsType(t, &sema.AmbiguousIntersectionTypeError{}, errs[1]) + }) + + t.Run("enum", func(t *testing.T) { + + _, err := ParseAndCheck(t, ` + enum E: UInt8 {} + + fun test (_ e: {E}) {} + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidIntersectedTypeError{}, errs[0]) + // Checker is not able to infer valid composite kind based on intersection's types + assert.IsType(t, &sema.AmbiguousIntersectionTypeError{}, errs[1]) + }) + + t.Run("event", func(t *testing.T) { + + _, err := ParseAndCheck(t, ` + event E() + + fun test (_ e: {E}) {} + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidIntersectedTypeError{}, errs[0]) + // Checker is not able to infer valid composite kind based on intersection's types + assert.IsType(t, &sema.AmbiguousIntersectionTypeError{}, errs[1]) + }) + + t.Run("attachment", func(t *testing.T) { + + _, err := ParseAndCheck(t, ` + resource R {} + + attachment A for R {} + + fun test (_ a: {A}) {} + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidIntersectedTypeError{}, errs[0]) + // Checker is not able to infer valid composite kind based on intersection's types + assert.IsType(t, &sema.AmbiguousIntersectionTypeError{}, errs[1]) + }) + + t.Run("entitlement", func(t *testing.T) { + + _, err := ParseAndCheck(t, ` + entitlement E + + fun test (_ e: {E}) {} + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidIntersectedTypeError{}, errs[0]) + // Checker is not able to infer valid composite kind based on intersection's types + assert.IsType(t, &sema.AmbiguousIntersectionTypeError{}, errs[1]) + }) + + t.Run("entitlement mapping", func(t *testing.T) { + + _, err := ParseAndCheck(t, ` + entitlement mapping M {} + + fun test (_ m: {M}) {} + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidIntersectedTypeError{}, errs[0]) + // Checker is not able to infer valid composite kind based on intersection's types + assert.IsType(t, &sema.AmbiguousIntersectionTypeError{}, errs[1]) + }) } func TestCheckIntersectionTypeMemberAccess(t *testing.T) { @@ -442,6 +546,116 @@ func TestCheckIntersectionTypeMemberAccess(t *testing.T) { }) } +func TestCheckIntersectionTypeWithInheritanceMemberClash(t *testing.T) { + + t.Parallel() + + const firstMember = `let n: Int` + const secondMember = `let n: Bool` + + test := func( + memberInA, memberInC bool, + firstType, secondType string, + ) { + + testName := fmt.Sprintf( + "memberInA: %v, memberInC: %v, firstType: %s, secondType: %s", + memberInA, memberInC, firstType, secondType, + ) + + t.Run(testName, func(t *testing.T) { + t.Parallel() + + bodyA := "" + bodyB := "" + bodyC := "" + bodyD := "" + + if memberInA { + bodyA = firstMember + } else { + bodyB = firstMember + } + + if memberInC { + bodyC = secondMember + } else { + bodyD = secondMember + } + + _, err := ParseAndCheck(t, + fmt.Sprintf( + ` + struct interface A { + %s + } + + struct interface B: A { + %s + } + + struct interface C { + %s + } + + struct interface D: C { + %s + } + + fun test(_ v: {%s, %s}) {} + `, + bodyA, + bodyB, + bodyC, + bodyD, + firstType, + secondType, + ), + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.IntersectionMemberClashError{}, errs[0]) + }) + } + + for _, memberInA := range []bool{true, false} { + for _, memberInC := range []bool{true, false} { + for _, firstType := range []string{"A", "B"} { + for _, secondType := range []string{"C", "D"} { + + if (firstType == "A" && !memberInA) || + (secondType == "C" && !memberInC) { + + continue + } + + test(memberInA, memberInC, firstType, secondType) + } + } + } + } +} + +func TestCheckIntersectionTypeWithInheritedMember(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct interface A { + let n: Int + } + + struct interface B: A {} + + struct interface C: A {} + + fun test(_ v: {B, C}) {} + `) + + require.NoError(t, err) +} + func TestCheckIntersectionTypeSubtyping(t *testing.T) { t.Parallel() diff --git a/runtime/tests/checker/invalid_test.go b/runtime/tests/checker/invalid_test.go index 5d1616ca4b..42fd6953f8 100644 --- a/runtime/tests/checker/invalid_test.go +++ b/runtime/tests/checker/invalid_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/invocation_test.go b/runtime/tests/checker/invocation_test.go index f084e6b198..b55d20d668 100644 --- a/runtime/tests/checker/invocation_test.go +++ b/runtime/tests/checker/invocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -315,7 +315,7 @@ func TestCheckInvocationWithOnlyVarargs(t *testing.T) { t.Parallel() baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) - baseValueActivation.DeclareValue(stdlib.NewStandardLibraryFunction( + baseValueActivation.DeclareValue(stdlib.NewStandardLibraryStaticFunction( "foo", &sema.FunctionType{ ReturnTypeAnnotation: sema.VoidTypeAnnotation, @@ -333,7 +333,9 @@ func TestCheckInvocationWithOnlyVarargs(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -354,8 +356,8 @@ func TestCheckArgumentLabels(t *testing.T) { _, err := ParseAndCheck(t, ` fun test(foo bar: Int, baz: String) {} - let t = test(x: 1, "2") - `) + let t = test(x: 1, "2") + `) errs := RequireCheckerErrors(t, err, 2) @@ -409,12 +411,12 @@ func TestCheckArgumentLabels(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - struct Test { + struct Test { fun test(foo bar: Int, baz: String) {} - } + } - let t = Test().test(x: 1, "2") - `) + let t = Test().test(x: 1, "2") + `) errs := RequireCheckerErrors(t, err, 2) @@ -428,9 +430,9 @@ func TestCheckArgumentLabels(t *testing.T) { importedChecker, err := ParseAndCheckWithOptions(t, ` - struct Test { + struct Test { fun test(foo bar: Int, baz: String) {} - } + } `, ParseAndCheckOptions{ Location: utils.ImportedLocation, @@ -474,8 +476,8 @@ func TestCheckArgumentLabels(t *testing.T) { init(foo bar: Int, baz: String) {} } - let t = Test(x: 1, "2") - `) + let t = Test(x: 1, "2") + `) errs := RequireCheckerErrors(t, err, 2) @@ -531,14 +533,14 @@ func TestCheckArgumentLabels(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - contract C { + contract C { struct S { init(foo bar: Int, baz: String) {} } - } + } - let t = C.S(x: 1, "2") - `) + let t = C.S(x: 1, "2") + `) errs := RequireCheckerErrors(t, err, 2) @@ -552,11 +554,11 @@ func TestCheckArgumentLabels(t *testing.T) { importedChecker, err := ParseAndCheckWithOptions(t, ` - contract C { + contract C { struct S { init(foo bar: Int, baz: String) {} } - } + } `, ParseAndCheckOptions{ Location: utils.ImportedLocation, diff --git a/runtime/tests/checker/member_test.go b/runtime/tests/checker/member_test.go index 92715d07c9..b3a0ab4464 100644 --- a/runtime/tests/checker/member_test.go +++ b/runtime/tests/checker/member_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -764,7 +764,7 @@ func TestCheckMemberAccess(t *testing.T) { } struct S { - access(M) let foo: [String] + access(mapping M) let foo: [String] init() { self.foo = [] } @@ -796,13 +796,13 @@ func TestCheckMemberAccess(t *testing.T) { C -> D } struct Foo { - access(FooMapping) let bars: [Bar] + access(mapping FooMapping) let bars: [Bar] init() { self.bars = [Bar()] } } struct Bar { - access(BarMapping) let baz: Baz + access(mapping BarMapping) let baz: Baz init() { self.baz = Baz() } @@ -843,14 +843,14 @@ func TestCheckMemberAccess(t *testing.T) { } struct Foo { - access(FooMapping) let bars: [Bar] + access(mapping FooMapping) let bars: [Bar] init() { self.bars = [Bar()] } } struct Bar { - access(BarMapping) let baz: Baz + access(mapping BarMapping) let baz: Baz init() { self.baz = Baz() } @@ -940,19 +940,12 @@ func TestCheckMemberAccess(t *testing.T) { // Test all built-in composite types for ty := interpreter.PrimitiveStaticType(1); ty < interpreter.PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } semaType := ty.SemaType() - // Some primitive static types are deprecated, - // and only exist for migration purposes, - // so do not have an equivalent sema type - if semaType == nil { - continue - } - if !semaType.ContainFieldsOrElements() || semaType.IsResourceType() { @@ -968,4 +961,52 @@ func TestCheckMemberAccess(t *testing.T) { }) } }) + + t.Run("composite reference, enum field", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + struct Test { + var status: Status + init() { + self.status = Status.Off + } + } + + enum Status: Int { + case On + case Off + } + + fun test() { + let test = Test() + let testRef = &test as &Test + var x: Status = testRef.status + } + `) + + require.NoError(t, err) + }) +} + +func TestCheckContractFieldAccessInSameContract(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract Foo { + + var array: [Int] + + init() { + self.array = [] + } + + access(all) fun bar() { + // Should return the concrete value, not a reference. + var foo: [Int] = Foo.array + } + }`, + ) + + require.NoError(t, err) } diff --git a/runtime/tests/checker/metatype_test.go b/runtime/tests/checker/metatype_test.go index 44f65b4b6d..53e176d9ae 100644 --- a/runtime/tests/checker/metatype_test.go +++ b/runtime/tests/checker/metatype_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/move_test.go b/runtime/tests/checker/move_test.go new file mode 100644 index 0000000000..29aa214ce4 --- /dev/null +++ b/runtime/tests/checker/move_test.go @@ -0,0 +1,154 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package checker + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/sema" +) + +func TestCheckInvalidMoves(t *testing.T) { + + t.Parallel() + + t.Run("contract", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) contract Foo { + access(all) fun moveSelf() { + var x = self! + } + } + `) + + errors := RequireCheckerErrors(t, err, 1) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errors[0], &invalidMoveError) + }) + + t.Run("transaction", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + transaction { + prepare() { + var x = true ? self : self + } + execute {} + } + `) + + errors := RequireCheckerErrors(t, err, 2) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errors[0], &invalidMoveError) + require.ErrorAs(t, errors[1], &invalidMoveError) + }) +} + +func TestCheckCastedMove(t *testing.T) { + + t.Parallel() + + t.Run("force", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun foo(): @R { + let r: @AnyResource <- create R() + return <-r as! @R + } + `) + + require.NoError(t, err) + }) + + t.Run("static", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun foo(): @AnyResource { + let r <- create R() + return <-r as @AnyResource + } + `) + + require.NoError(t, err) + }) + + t.Run("parenthesized", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun foo(): @R { + let r: @AnyResource <- create R() + return <-(r as! @R) + } + `) + + require.NoError(t, err) + }) + + t.Run("function call", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun bar(_ r: @R) { + destroy r + } + + fun foo() { + let r: @AnyResource <- create R() + bar(<-r as! @R) + } + `) + + require.NoError(t, err) + }) + + t.Run("function call, parenthesized", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun bar(_ r: @R) { + destroy r + } + + fun foo() { + let r: @AnyResource <- create R() + bar(<-(r as! @R)) + } + `) + + require.NoError(t, err) + }) +} diff --git a/runtime/tests/checker/nesting_test.go b/runtime/tests/checker/nesting_test.go index 273915aa34..fda0d70f50 100644 --- a/runtime/tests/checker/nesting_test.go +++ b/runtime/tests/checker/nesting_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -197,9 +197,11 @@ func TestCheckCompositeDeclarationNestedTypeScopingInsideNestedOuter(t *testing. struct X { fun test() { - Test + Test.foo() } } + + fun foo() {} } `) @@ -328,7 +330,9 @@ func TestCheckNestedTypeInvalidChildType(t *testing.T) { `let u: T.U = nil`, ParseAndCheckOptions{ Config: &sema.Config{ - BaseTypeActivation: baseTypeActivation, + BaseTypeActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseTypeActivation + }, }, }, ) diff --git a/runtime/tests/checker/never_test.go b/runtime/tests/checker/never_test.go index 3216389d7b..bdc417e902 100644 --- a/runtime/tests/checker/never_test.go +++ b/runtime/tests/checker/never_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/nft_test.go b/runtime/tests/checker/nft_test.go index 6be756487c..41374e7903 100644 --- a/runtime/tests/checker/nft_test.go +++ b/runtime/tests/checker/nft_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -517,12 +517,6 @@ access(all) contract TopShot: NonFungibleToken { emit MomentMinted(momentID: self.id, playID: playID, setID: self.data.setID, serialNumber: self.data.serialNumber) } - - // If the Moment is destroyed, emit an event to indicate - // to outside ovbservers that it has been destroyed - destroy() { - emit MomentDestroyed(id: self.id) - } } // Admin is a special authorization resource that @@ -754,15 +748,6 @@ access(all) contract TopShot: NonFungibleToken { return nil } } - - // If a transaction destroys the Collection object, - // All the NFTs contained within are also destroyed! - // Much like when Damien Lillard destroys the hopes and - // dreams of the entire city of Houston. - // - destroy() { - destroy self.ownedNFTs - } } // ----------------------------------------------------------------------- @@ -997,7 +982,9 @@ access(all) contract TopShot: NonFungibleToken { Elaboration: nftChecker.Elaboration, }, nil }, - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/tests/checker/nil_coalescing_test.go b/runtime/tests/checker/nil_coalescing_test.go index 98105b74fe..4abd505de8 100644 --- a/runtime/tests/checker/nil_coalescing_test.go +++ b/runtime/tests/checker/nil_coalescing_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -159,14 +159,29 @@ func TestCheckInvalidNilCoalescingNonMatchingTypes(t *testing.T) { t.Parallel() - _, err := ParseAndCheck(t, ` - let x: Int? = 1 - let y = x ?? false - `) + t.Run("with super type", func(t *testing.T) { + t.Parallel() - errs := RequireCheckerErrors(t, err, 1) + _, err := ParseAndCheck(t, ` + let x: Int? = 1 + let y = x ?? false + `) + + require.NoError(t, err) + }) + + t.Run("no super type", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let x: Int? = 1 + let y: Int = x ?? false + `) - assert.IsType(t, &sema.InvalidBinaryOperandError{}, errs[0]) + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }) } func TestCheckNilCoalescingAny(t *testing.T) { diff --git a/runtime/tests/checker/occurrences_test.go b/runtime/tests/checker/occurrences_test.go index e034f774ee..f01f96ebd3 100644 --- a/runtime/tests/checker/occurrences_test.go +++ b/runtime/tests/checker/occurrences_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/operations_test.go b/runtime/tests/checker/operations_test.go index 8f9f9d3091..d9255bbcc9 100644 --- a/runtime/tests/checker/operations_test.go +++ b/runtime/tests/checker/operations_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" ) func TestCheckInvalidUnaryBooleanNegationOfInteger(t *testing.T) { @@ -337,6 +338,9 @@ type operationWithTypeTests struct { func TestCheckNonIntegerComparisonOperations(t *testing.T) { t.Parallel() + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + allOperationTests := []operationWithTypeTests{ { operations: []ast.Operation{ @@ -363,6 +367,16 @@ func TestCheckNonIntegerComparisonOperations(t *testing.T) { {sema.BoolType, "1.2", "\"bcd\"", "Fix64", "String", []error{ &sema.InvalidBinaryOperandsError{}, }}, + { + sema.BoolType, + "InclusiveRange(1, 2)", + "InclusiveRange(3, 4)", + "InclusiveRange", + "InclusiveRange", + []error{ + &sema.InvalidBinaryOperandsError{}, + }, + }, }, }, } @@ -378,7 +392,7 @@ func TestCheckNonIntegerComparisonOperations(t *testing.T) { t.Run(testName, func(t *testing.T) { - _, err := ParseAndCheck(t, + _, err := ParseAndCheckWithOptions(t, fmt.Sprintf( `fun test(): %s { let a: %s = %s @@ -387,6 +401,13 @@ func TestCheckNonIntegerComparisonOperations(t *testing.T) { }`, test.ty, test.leftType, test.left, test.rightType, test.right, operation.Symbol(), ), + ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + }, ) errs := RequireCheckerErrors(t, err, len(test.expectedErrors)) @@ -563,9 +584,10 @@ func TestCheckInvalidCompositeEquality(t *testing.T) { ), ) - if compositeKind == common.CompositeKindEnum { + switch compositeKind { + case common.CompositeKindEnum: require.NoError(t, err) - } else if compositeKind == common.CompositeKindAttachment { + case common.CompositeKindAttachment: errs := RequireCheckerErrors(t, err, 5) assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) @@ -573,7 +595,17 @@ func TestCheckInvalidCompositeEquality(t *testing.T) { assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[2]) assert.IsType(t, &sema.InvalidAttachmentUsageError{}, errs[3]) assert.IsType(t, &sema.InvalidBinaryOperandsError{}, errs[4]) - } else { + + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 3) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + require.ErrorAs(t, errs[1], &invalidMoveError) + + assert.IsType(t, &sema.InvalidBinaryOperandsError{}, errs[2]) + + default: errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.InvalidBinaryOperandsError{}, errs[0]) @@ -600,6 +632,7 @@ func TestCheckNumericSuperTypeBinaryOperations(t *testing.T) { sema.SignedNumberType, sema.IntegerType, sema.SignedIntegerType, + sema.FixedSizeUnsignedIntegerType, sema.FixedPointType, sema.SignedFixedPointType, } diff --git a/runtime/tests/checker/optional_test.go b/runtime/tests/checker/optional_test.go index 0a40571461..db377c8120 100644 --- a/runtime/tests/checker/optional_test.go +++ b/runtime/tests/checker/optional_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -264,7 +264,14 @@ func TestCheckCompositeNilEquality(t *testing.T) { ), ) - require.NoError(t, err) + if compositeKind == common.CompositeKindContract { + errs := RequireCheckerErrors(t, err, 2) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + require.ErrorAs(t, errs[1], &invalidMoveError) + } else { + require.NoError(t, err) + } }) } @@ -338,9 +345,20 @@ func TestCheckInvalidCompositeNilEquality(t *testing.T) { ), ) - if compositeKind == common.CompositeKindEnum { + switch compositeKind { + case common.CompositeKindEnum: require.NoError(t, err) - } else { + + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 3) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + require.ErrorAs(t, errs[1], &invalidMoveError) + + assert.IsType(t, &sema.InvalidBinaryOperandsError{}, errs[2]) + + default: errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.InvalidBinaryOperandsError{}, errs[0]) diff --git a/runtime/tests/checker/overloading_test.go b/runtime/tests/checker/overloading_test.go index 75c4313a74..70b0ebe481 100644 --- a/runtime/tests/checker/overloading_test.go +++ b/runtime/tests/checker/overloading_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,41 +83,3 @@ func TestCheckInvalidCompositeInitializerOverloading(t *testing.T) { } } } - -func TestCheckInvalidResourceDestructorOverloading(t *testing.T) { - - t.Parallel() - - interfacePossibilities := []bool{true, false} - - for _, isInterface := range interfacePossibilities { - - interfaceKeyword := "" - body := "" - if isInterface { - interfaceKeyword = "interface" - } else { - body = "{}" - } - - t.Run(interfaceKeyword, func(t *testing.T) { - - _, err := ParseAndCheck(t, - fmt.Sprintf( - ` - resource %[1]s X { - destroy() %[2]s - destroy(y: Int) %[2]s - } - `, - interfaceKeyword, - body, - ), - ) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.UnsupportedOverloadingError{}, errs[0]) - }) - } -} diff --git a/runtime/tests/checker/path_test.go b/runtime/tests/checker/path_test.go index b17a6296f1..197daeb008 100644 --- a/runtime/tests/checker/path_test.go +++ b/runtime/tests/checker/path_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/pragma_test.go b/runtime/tests/checker/pragma_test.go index d6904f484c..00200cb652 100644 --- a/runtime/tests/checker/pragma_test.go +++ b/runtime/tests/checker/pragma_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package checker import ( + "fmt" "testing" "github.com/stretchr/testify/assert" @@ -27,37 +28,101 @@ import ( "github.com/onflow/cadence/runtime/sema" ) -func TestCheckPragmaInvalidExpr(t *testing.T) { +func TestCheckPragmaExpression(t *testing.T) { t.Parallel() - _, err := ParseAndCheck(t, ` - #"string" - `) - - errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.InvalidPragmaError{}, errs[0]) -} - -func TestCheckPragmaValidIdentifierExpr(t *testing.T) { - - t.Parallel() - _, err := ParseAndCheck(t, ` - #pedantic - `) - - require.NoError(t, err) -} - -func TestCheckPragmaValidInvocationExpr(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - #version("1.0") - `) - - require.NoError(t, err) + type testCase struct { + name string + code string + valid bool + } + + test := func(testCase testCase) { + t.Run(testCase.name, func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, fmt.Sprintf(`#%s`, testCase.code)) + + if testCase.valid { + require.NoError(t, err) + } else { + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.InvalidPragmaError{}, errs[0]) + } + }) + } + + testCases := []testCase{ + {"string", `"string"`, false}, + {"bool", `true`, false}, + {"integer", `1`, false}, + {"fixed-point", `1.2`, false}, + {"unary, minus", `-1`, false}, + {"unary, move", `<-r`, false}, + {"array", `[1, 2, 3]`, false}, + {"dictionary", `{1: 2}`, false}, + {"nil", `nil`, false}, + {"path", `/storage/foo`, false}, + {"reference", `&x`, false}, + {"index", `xs[0]`, false}, + {"binary", `a + b`, false}, + {"conditional", `a ? b : c`, false}, + {"force", `a!`, false}, + {"function", `fun() {}`, false}, + {"create", `create R()`, false}, + {"destroy", `destroy r`, false}, + {"identifier", `foo`, true}, + // invocations + {"invocation of member", `foo.bar()`, false}, + {"invocation with type arguments", `foo()`, false}, + {"invocation without arguments", `foo()`, true}, + {"invocation with identifier argument", `foo(bar)`, false}, + {"invocation with string argument", `foo("string")`, true}, + {"invocation with bool argument", `foo(true)`, true}, + {"invocation with integer argument", `foo(1)`, true}, + {"invocation with fixed-point argument", `foo(1.2)`, true}, + {"invocation with unary (minus) argument", `foo(-1)`, true}, + {"invocation with unary (move) argument", `foo(<-r)`, false}, + {"invocation with array argument", `foo([1, 2, 3])`, true}, + {"invocation with dictionary argument", `foo({1: 2})`, true}, + {"invocation with nil argument", `foo(nil)`, true}, + {"invocation with path argument", `foo(/storage/foo)`, true}, + {"invocation with reference argument", `foo(&x)`, false}, + {"invocation with index argument", `foo(xs[0])`, false}, + {"invocation with binary argument", `foo(a + b)`, false}, + {"invocation with conditional argument", `foo(a ? b : c)`, false}, + {"invocation with force argument", `foo(a!)`, false}, + {"invocation with function argument", `foo(fun() {})`, false}, + {"invocation with create argument", `foo(create R())`, false}, + {"invocation with destroy argument", `destroy r`, false}, + // nested invocations + {"nested invocation without argument", `foo(bar())`, true}, + {"nested invocation with identifier argument", `foo(bar(baz))`, false}, + {"nested invocation with string argument", `foo(bar("string"))`, true}, + // FLIX + { + "FLIX", + `interaction( + version: "1.1.0", + title: "Flow Token Balance", + description: "Get account Flow Token balance", + language: "en-US", + parameters: [ + Parameter( + name: "address", + title: "Address", + description: "Get Flow token balance of Flow account" + ) + ], + )`, + true, + }, + } + + for _, testCase := range testCases { + test(testCase) + } } func TestCheckPragmaInvalidLocation(t *testing.T) { @@ -73,27 +138,3 @@ func TestCheckPragmaInvalidLocation(t *testing.T) { errs := RequireCheckerErrors(t, err, 1) assert.IsType(t, &sema.InvalidDeclarationError{}, errs[0]) } - -func TestCheckPragmaInvalidInvocationExprNonStringExprArgument(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - #version(y) - `) - - errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.InvalidPragmaError{}, errs[0]) -} - -func TestCheckPragmaInvalidInvocationExprTypeArgs(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - #version() - `) - - errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.InvalidPragmaError{}, errs[0]) -} diff --git a/runtime/tests/checker/predeclaredvalues_test.go b/runtime/tests/checker/predeclaredvalues_test.go index cd69920f4f..bd1691f16a 100644 --- a/runtime/tests/checker/predeclaredvalues_test.go +++ b/runtime/tests/checker/predeclaredvalues_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import ( "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" ) @@ -33,7 +34,7 @@ func TestCheckPredeclaredValues(t *testing.T) { baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "foo", &sema.FunctionType{ ReturnTypeAnnotation: sema.VoidTypeAnnotation, @@ -51,7 +52,9 @@ func TestCheckPredeclaredValues(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/tests/checker/purity_test.go b/runtime/tests/checker/purity_test.go index 3cb43d7214..517ed0c1d8 100644 --- a/runtime/tests/checker/purity_test.go +++ b/runtime/tests/checker/purity_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/range_test.go b/runtime/tests/checker/range_test.go index 44db25575c..59d346d7e8 100644 --- a/runtime/tests/checker/range_test.go +++ b/runtime/tests/checker/range_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/range_value_test.go b/runtime/tests/checker/range_value_test.go new file mode 100644 index 0000000000..b80be3b453 --- /dev/null +++ b/runtime/tests/checker/range_value_test.go @@ -0,0 +1,482 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package checker + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" +) + +type inclusiveRangeConstructionTest struct { + ty sema.Type + s, e, step int64 +} + +func TestCheckInclusiveRangeConstructionValid(t *testing.T) { + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + validTestCases := []inclusiveRangeConstructionTest{ + // Int* + { + ty: sema.IntType, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.IntType, + s: 10, + e: -10, + step: -2, + }, + { + ty: sema.Int8Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Int8Type, + s: 10, + e: -10, + step: -2, + }, + { + ty: sema.Int16Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Int16Type, + s: 10, + e: -10, + step: -2, + }, + { + ty: sema.Int32Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Int32Type, + s: 10, + e: -10, + step: -2, + }, + { + ty: sema.Int64Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Int64Type, + s: 10, + e: -10, + step: -2, + }, + { + ty: sema.Int128Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Int128Type, + s: 10, + e: -10, + step: -2, + }, + { + ty: sema.Int256Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Int256Type, + s: 10, + e: -10, + step: -2, + }, + + // UInt* + { + ty: sema.UIntType, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.UInt8Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.UInt16Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.UInt32Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.UInt64Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.UInt128Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.UInt256Type, + s: 0, + e: 10, + step: 2, + }, + + // Word* + { + ty: sema.Word8Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Word16Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Word32Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Word64Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Word128Type, + s: 0, + e: 10, + step: 2, + }, + { + ty: sema.Word256Type, + s: 0, + e: 10, + step: 2, + }, + } + + runValidCase := func(t *testing.T, testCase inclusiveRangeConstructionTest, withStep bool) { + t.Run(testCase.ty.String(), func(t *testing.T) { + t.Parallel() + + var code string + if withStep { + code = fmt.Sprintf( + ` + let s : %s = %d + let e : %s = %d + let step : %s = %d + let r: InclusiveRange<%s> = InclusiveRange(s, e, step: step) + + let rs = r.start + let re = r.end + let rstep = r.step + let contains_res = r.contains(s) + `, + testCase.ty.String(), testCase.s, testCase.ty.String(), testCase.e, testCase.ty.String(), testCase.step, testCase.ty.String()) + } else { + code = fmt.Sprintf( + ` + let s : %s = %d + let e : %s = %d + let r: InclusiveRange<%s> = InclusiveRange(s, e) + + let rs = r.start + let re = r.end + let rstep = r.step + let contains_res = r.contains(s) + `, + testCase.ty.String(), testCase.s, testCase.ty.String(), testCase.e, testCase.ty.String()) + } + + checker, err := ParseAndCheckWithOptions(t, code, + ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + }, + ) + + require.NoError(t, err) + + checkType := func(t *testing.T, name string, expectedType sema.Type) { + resType := RequireGlobalValue(t, checker.Elaboration, name) + assert.IsType(t, expectedType, resType) + } + + checkType(t, "r", &sema.InclusiveRangeType{ + MemberType: testCase.ty, + }) + checkType(t, "rs", testCase.ty) + checkType(t, "re", testCase.ty) + checkType(t, "rstep", testCase.ty) + checkType(t, "contains_res", sema.BoolType) + }) + } + + // Run each test case with and without step. + for _, testCase := range validTestCases { + runValidCase(t, testCase, true) + runValidCase(t, testCase, false) + } +} + +func TestCheckInclusiveRangeConstructionInvalid(t *testing.T) { + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + runInvalidCase := func(t *testing.T, label, code string, expectedErrorTypes []error) { + t.Run(label, func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, code, + ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, len(expectedErrorTypes)) + for i, err := range expectedErrorTypes { + assert.IsType(t, err, errs[i]) + } + }) + } + + for _, integerType := range sema.AllIntegerTypes { + // Only test leaf types + switch integerType { + case sema.IntegerType, + sema.SignedIntegerType, + sema.FixedSizeUnsignedIntegerType: + continue + } + + typeString := integerType.String() + + // Wrong type of arguments + + // Any integer type name other than the integerType is sufficient. + // There is nothing special about the Int128 and Int256 types here. + differentTypeString := sema.Int128TypeName + if typeString == differentTypeString { + differentTypeString = sema.Int256TypeName + } + + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(1), %s(2))", typeString, differentTypeString), + []error{ + &sema.TypeMismatchError{}, + }, + ) + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(1), %s(10), step: %s(2))", typeString, typeString, differentTypeString), + []error{ + &sema.TypeMismatchError{}, + }, + ) + + // Not enough arguments + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(1))", typeString), + []error{&sema.InsufficientArgumentsError{}}, + ) + + // Label for step not provided + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(1), %s(0), %s(10))", typeString, typeString, typeString), + []error{&sema.MissingArgumentLabelError{}}, + ) + + // Label for start and end provided + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(start: %s(1), %s(0))", typeString, typeString), + []error{&sema.IncorrectArgumentLabelError{}}, + ) + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(1), end: %s(0))", typeString, typeString), + []error{&sema.IncorrectArgumentLabelError{}}, + ) + } + + runInvalidCase( + t, + "without_inner_type_annotation", + "let r: InclusiveRange<> = InclusiveRange(1, 10)", + []error{ + &sema.InvalidTypeArgumentCountError{}, + &sema.MissingTypeArgumentError{}, + }, + ) + + runInvalidCase( + t, + "without instantiation type", + "let r: InclusiveRange = InclusiveRange(1, 10)", + []error{&sema.MissingTypeArgumentError{}}, + ) + + runInvalidCase( + t, + "same_supertype_different_subtype_start_end", + ` + let a: Integer = UInt8(0) + let b: Integer = Int16(10) + let r = InclusiveRange(a, b) + `, + []error{&sema.InvalidTypeArgumentError{}}, + ) + runInvalidCase( + t, + "same_supertype_different_subtype_start_step", + ` + let a: Integer = UInt8(0) + let b: Integer = UInt8(10) + let s: Integer = UInt16(2) + let r = InclusiveRange(a, b, step: s) + `, + []error{&sema.InvalidTypeArgumentError{}}, + ) +} + +func TestInclusiveRangeNonLeafIntegerTypes(t *testing.T) { + + t.Parallel() + + newOptions := func() ParseAndCheckOptions { + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + return ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + } + } + + test := func(t *testing.T, ty sema.Type) { + t.Run(fmt.Sprintf("InclusiveRange<%s> infer from args", ty), func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, fmt.Sprintf(` + let a: %[1]s = 0 + let b: %[1]s = 10 + var range = InclusiveRange<%[1]s>(a, b) + `, ty), newOptions()) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[0]) + }) + + t.Run(fmt.Sprintf("InclusiveRange<%s> infer from lhs", ty), func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, fmt.Sprintf(` + let a: %[1]s = 0 + let b: %[1]s = 10 + var range: InclusiveRange<%[1]s> = InclusiveRange<%[1]s>(a, b) + `, ty), newOptions()) + + // One for the invocation and another for the type. + errs := RequireCheckerErrors(t, err, 2) + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[0]) + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[1]) + }) + + t.Run(fmt.Sprintf("InclusiveRange<%s> assignment", ty), func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheckWithOptions(t, fmt.Sprintf(` + let a: InclusiveRange = InclusiveRange(0, 10) + let b: InclusiveRange<%s> = a + `, ty), newOptions()) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.InvalidTypeArgumentError{}, errs[0]) + }) + } + + for _, ty := range []sema.Type{ + sema.IntegerType, + sema.SignedIntegerType, + } { + test(t, ty) + } +} diff --git a/runtime/tests/checker/reference_test.go b/runtime/tests/checker/reference_test.go index 061a07002d..c9b970f887 100644 --- a/runtime/tests/checker/reference_test.go +++ b/runtime/tests/checker/reference_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1180,7 +1180,7 @@ func TestCheckReferenceExpressionOfOptional(t *testing.T) { `) errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.NonReferenceTypeReferenceError{}, errs[0]) + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) t.Run("mismatched type", func(t *testing.T) { @@ -1313,15 +1313,15 @@ func TestCheckInvalidDictionaryAccessOptionalReference(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - access(all) struct S { - access(all) let foo: Number - init() { - self.foo = 0 - } - } - let dict: {String: S} = {} - let s = &dict[""] as &S? - let n = s.foo + access(all) struct S { + access(all) let foo: Number + init() { + self.foo = 0 + } + } + let dict: {String: S} = {} + let s = &dict[""] as &S? + let n = s.foo `) errs := RequireCheckerErrors(t, err, 1) @@ -1334,14 +1334,14 @@ func TestCheckInvalidDictionaryAccessNonOptionalReference(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - access(all) struct S { - access(all) let foo: Number - init() { - self.foo = 0 - } - } - let dict: {String: S} = {} - let s = &dict[""] as &S + access(all) struct S { + access(all) let foo: Number + init() { + self.foo = 0 + } + } + let dict: {String: S} = {} + let s = &dict[""] as &S `) errs := RequireCheckerErrors(t, err, 1) @@ -1354,15 +1354,15 @@ func TestCheckArrayAccessReference(t *testing.T) { t.Parallel() _, err := ParseAndCheck(t, ` - access(all) struct S { - access(all) let foo: Number - init() { - self.foo = 0 - } - } - let dict: [S] = [] - let s = &dict[0] as &S - let n = s.foo + access(all) struct S { + access(all) let foo: Number + init() { + self.foo = 0 + } + } + let dict: [S] = [] + let s = &dict[0] as &S + let n = s.foo `) require.NoError(t, err) @@ -1854,9 +1854,6 @@ func TestCheckInvalidatedReferenceUse(t *testing.T) { init() { self.r2 <- create R2() } - destroy() { - destroy self.r2 - } } access(all) resource R2 { @@ -1864,9 +1861,6 @@ func TestCheckInvalidatedReferenceUse(t *testing.T) { init() { self.r3 <- create R3() } - destroy() { - destroy self.r3 - } } access(all) resource R3 { @@ -1947,7 +1941,7 @@ func TestCheckInvalidatedReferenceUse(t *testing.T) { import Foo from "imported" access(all) fun test() { - let xRef = &Foo.field as &AnyResource + let xRef: &AnyResource = Foo.field xRef } `, @@ -2602,9 +2596,6 @@ func TestCheckInvalidatedReferenceUse(t *testing.T) { init() { self.bar <-create Bar() } - destroy() { - destroy self.bar - } } resource Bar { @@ -2672,9 +2663,6 @@ func TestCheckInvalidatedReferenceUse(t *testing.T) { init() { self.bar <-create Bar() } - destroy() { - destroy self.bar - } } resource Bar { @@ -2951,9 +2939,9 @@ func TestCheckResourceReferenceMethodInvocationAfterMove(t *testing.T) { // Moving the resource should update the tracking var newFoo <- foo - fooRef.id + fooRef.id - destroy newFoo + destroy newFoo } `) @@ -2998,3 +2986,958 @@ func TestCheckReferenceCreationWithInvalidType(t *testing.T) { require.ErrorAs(t, errs[0], &nonReferenceTypeReferenceError) }) } + +func TestCheckResourceReferenceFieldNilAssignment(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource Outer { + access(all) var inner : @Inner? + + init(_ v: @Inner){ + self.inner <- v + var outerRef = &self as &Outer + outerRef.inner = nil + } + } + + access(all) resource Inner {} + + fun main() { + let inner <- create Inner() + let outer <- create Outer(<- inner) + destroy outer + } + `) + + errors := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.IncorrectTransferOperationError{}, errors[0]) + require.IsType(t, &sema.InvalidResourceAssignmentError{}, errors[1]) +} + +func TestCheckResourceReferenceIndexNilAssignment(t *testing.T) { + t.Parallel() + + t.Run("one level", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource Foo {} + + fun main() { + let array: @[Foo?] <- [<- create Foo()] + let arrayRef = &array as auth(Mutate) &[Foo?] + + arrayRef[0] = nil + + destroy array + } + `) + + errors := RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.IncorrectTransferOperationError{}, errors[0]) + require.IsType(t, &sema.InvalidResourceAssignmentError{}, errors[1]) + }) + + t.Run("nested", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource Foo {} + + fun main() { + let array: @[[Foo?]] <- [<- [<- create Foo()]] + let arrayRef = &array as auth(Mutate) &[[Foo?]] + + arrayRef[0][0] = nil + + destroy array + } + `) + + errors := RequireCheckerErrors(t, err, 3) + require.IsType(t, &sema.UnauthorizedReferenceAssignmentError{}, errors[0]) + require.IsType(t, &sema.IncorrectTransferOperationError{}, errors[1]) + require.IsType(t, &sema.InvalidResourceAssignmentError{}, errors[2]) + }) +} + +func TestCheckNestedReference(t *testing.T) { + t.Parallel() + + t.Run("basic", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + let x = &1 as &Int + let y = &x as & &Int + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.NestedReferenceError{}, errors[0]) + }) + + t.Run("type of underlying value checked", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + let x = &1 as &Int + let y = &x as &AnyStruct + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.NestedReferenceError{}, errors[0]) + }) + + t.Run("optional", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + let x: &Int? = &1 as &Int + let y = &x as &AnyStruct? + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.NestedReferenceError{}, errors[0]) + }) + + t.Run("nested optional", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + let x: &Int?? = &1 as &Int + let y = &x as &AnyStruct? + } + `) + + errors := RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.NestedReferenceError{}, errors[0]) + }) +} + +func TestCheckDereference(t *testing.T) { + + t.Parallel() + + type testCase struct { + ty sema.Type + initializer string + } + + runValidTestCase := func(t *testing.T, name, code string, expectedTy sema.Type) { + t.Run(name, func(t *testing.T) { + t.Parallel() + + checker, err := ParseAndCheck(t, code) + + require.NoError(t, err) + + derefType := RequireGlobalValue(t, checker.Elaboration, "deref") + + assert.True(t, expectedTy.Equal(derefType)) + }) + } + + runInvalidTestCase := func(t *testing.T, name, code string) { + t.Run(name, func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, code) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.InvalidUnaryOperandError{}, errs[0]) + }) + } + + t.Run("Numeric Types", func(t *testing.T) { + t.Parallel() + + for _, typ := range sema.AllIntegerTypes { + integerType := typ + typString := typ.QualifiedString() + + runValidTestCase( + t, + typString, + fmt.Sprintf( + ` + let ref: &%[1]s = &1 + let deref: %[1]s = *ref + `, + integerType, + ), + integerType, + ) + } + + for _, typ := range sema.AllFixedPointTypes { + fixedPointType := typ + typString := typ.QualifiedString() + + runValidTestCase( + t, + typString, + fmt.Sprintf( + ` + let ref: &%[1]s = &1.0 + let deref: %[1]s = *ref + `, + fixedPointType, + ), + fixedPointType, + ) + } + }) + + t.Run("Simple types", func(t *testing.T) { + t.Parallel() + + for _, testCase := range []testCase{ + { + ty: sema.CharacterType, + initializer: `"\u{FC}"`, + }, + { + ty: sema.StringType, + initializer: `"\u{FC}"`, + }, + { + ty: sema.BoolType, + initializer: "false", + }, + { + ty: sema.TheAddressType, + initializer: "0x0000000000000001", + }, + { + ty: sema.PrivatePathType, + initializer: "/private/foo", + }, + { + ty: sema.PublicPathType, + initializer: "/public/foo", + }, + } { + runValidTestCase( + t, + testCase.ty.QualifiedString(), + fmt.Sprintf( + ` + let value: %[1]s = %[2]s + let ref: &%[1]s = &value + let deref: %[1]s = *ref + `, + testCase.ty, + testCase.initializer, + ), + testCase.ty, + ) + } + }) + + t.Run("Arrays", func(t *testing.T) { + t.Parallel() + + for _, testCase := range []testCase{ + { + ty: &sema.VariableSizedType{Type: sema.IntType}, + initializer: "[1, 2, 3]", + }, + { + ty: &sema.VariableSizedType{Type: sema.Fix64Type}, + initializer: "[1.0, 5.7]", + }, + { + ty: &sema.VariableSizedType{Type: sema.StringType}, + initializer: `["abc", "def"]`, + }, + { + ty: &sema.VariableSizedType{ + Type: &sema.VariableSizedType{ + Type: sema.StringType, + }, + }, + initializer: `[ ["abc", "def"], ["xyz"]]`, + }, + { + ty: &sema.VariableSizedType{ + Type: &sema.DictionaryType{ + KeyType: sema.IntType, + ValueType: sema.StringType, + }}, + initializer: `[{1: "abc", 2: "def"}, {3: "xyz"}]`, + }, + { + ty: &sema.ConstantSizedType{Type: sema.IntType, Size: 3}, + initializer: "[1, 2, 3]", + }, + { + ty: &sema.ConstantSizedType{Type: sema.Fix64Type, Size: 2}, + initializer: "[1.0, 5.7]", + }, + { + ty: &sema.ConstantSizedType{Type: sema.StringType, Size: 2}, + initializer: `["abc", "def"]`, + }, + { + ty: &sema.ConstantSizedType{ + Type: &sema.VariableSizedType{ + Type: sema.StringType, + }, + Size: 2, + }, + initializer: `[ ["abc", "def"], ["xyz"]]`, + }, + { + ty: &sema.ConstantSizedType{ + Type: &sema.DictionaryType{ + KeyType: sema.IntType, + ValueType: sema.StringType, + }, + Size: 1, + }, + initializer: `[{1: "abc", 2: "def"}]`, + }, + } { + runValidTestCase( + t, + testCase.ty.QualifiedString(), + fmt.Sprintf( + ` + struct S {} + + let value: %[1]s = %[2]s + let ref: &%[1]s = &value + let deref: %[1]s = *ref + `, + testCase.ty, + testCase.initializer, + ), + testCase.ty, + ) + } + + // Arrays of structs cannot be dereferenced. + runInvalidTestCase( + t, + "[Struct]", + ` + struct S {} + + let value: [S] = [S(), S()] + let ref: &[S] = &value + let deref: [S] = *ref + `, + ) + + runInvalidTestCase( + t, + "[Struct; 2]", + ` + struct S {} + + let value: [S; 2] = [S(), S()] + let ref: &[S; 2] = &value + let deref: [S; 2] = *ref + `, + ) + + runInvalidTestCase( + t, + "[AnyStruct]", + ` + struct S {} + + let value: [AnyStruct] = [S(), S()] + let ref: &[AnyStruct] = &value + let deref: [AnyStruct] = *ref + `, + ) + + runInvalidTestCase( + t, + "[AnyStruct; 2]", + ` + struct S {} + + let value: [AnyStruct; 2] = [S(), S()] + let ref: &[AnyStruct; 2] = &value + let deref: [AnyStruct; 2] = *ref + `, + ) + + // Arrays of resources cannot be dereferenced. + runInvalidTestCase( + t, + "[Resource]", + ` + resource R {} + + fun test() { + let array: @[R] <- [<-create R(), <-create R()] + let ref: &[R] = &array + let deref: @[R] <- *ref + destroy array + destroy deref + } + `, + ) + + runInvalidTestCase( + t, + "[Resource; 2]", + ` + resource R {} + + fun test() { + let array: @[R; 2] <- [<-create R(), <-create R()] + let ref: &[R; 2] = &array + let deref: @[R; 2] <- *ref + destroy array + destroy deref + } + `, + ) + + }) + + t.Run("Dictionary", func(t *testing.T) { + t.Parallel() + + for _, testCase := range []testCase{ + { + ty: &sema.DictionaryType{KeyType: sema.IntType, ValueType: sema.IntType}, + initializer: "{1: 1, 2: 2, 3: 3}", + }, + { + ty: &sema.DictionaryType{KeyType: sema.IntType, ValueType: sema.Fix64Type}, + initializer: "{1: 1.2, 2: 2.4, 3: 3.0}", + }, + { + ty: &sema.DictionaryType{KeyType: sema.StringType, ValueType: sema.StringType}, + initializer: `{"123": "abc", "456": "def"}`, + }, + { + ty: &sema.DictionaryType{ + KeyType: sema.StringType, + ValueType: &sema.VariableSizedType{ + Type: sema.IntType, + }, + }, + initializer: `{"123": [1, 2, 3], "456": [4, 5, 6]}`, + }, + { + ty: &sema.DictionaryType{ + KeyType: sema.StringType, + ValueType: &sema.ConstantSizedType{ + Type: sema.IntType, + Size: 3, + }, + }, + initializer: `{"123": [1, 2, 3], "456": [4, 5, 6]}`, + }, + } { + runValidTestCase( + t, + testCase.ty.QualifiedString(), + fmt.Sprintf( + ` + struct S {} + + let value: %[1]s = %[2]s + let ref: &%[1]s = &value + let deref: %[1]s = *ref + `, + testCase.ty, + testCase.initializer, + ), + testCase.ty, + ) + } + + // Dictionaries of structs cannot be dereferenced. + runInvalidTestCase( + t, + "{Int: S}", + ` + struct S {} + + let dict: {Int: S} = { + 1: S() , + 2: S() + } + let ref: &{Int: S} = &dict + let deref: {Int: S} = *ref + `, + ) + + runInvalidTestCase( + t, + "{Int: AnyStruct}", + ` + struct S {} + + let dict: {Int: AnyStruct} = { + 1: S() , + 2: S() + } + let ref: &{Int: AnyStruct} = &dict + let deref: {Int: AnyStruct} = *ref + `, + ) + + // Dictionaries of resources cannot be dereferenced. + runInvalidTestCase( + t, + "{Int: Resource}", + ` + resource R {} + + fun test() { + let dict: @{Int: R} <- { + 1: <-create R(), + 2: <-create R() + } + let ref: &{Int: R} = &dict + let deref: @{Int: R} <- *ref + destroy dict + destroy deref + } + `, + ) + + // Dictionaries with composite typed keys cannot be dereferenced. + runInvalidTestCase( + t, + "{Enum: Int}", + ` + access(all) enum E:Int { + access(all) case first + } + + access(all) fun main() { + var dict = {E.first: 0} + var ref = &dict as &{E: Int} + var deref = *ref + } + `, + ) + }) + + runInvalidTestCase( + t, + "Resource", + ` + resource interface I { + fun foo() + } + + resource R: I { + fun foo() {} + } + + fun test() { + let r <- create R() + let ref = &r as &{I} + let deref <- *ref + destroy r + destroy deref + } + `, + ) + + runInvalidTestCase( + t, + "Struct", + ` + struct S {} + + fun test() { + let s = S() + let ref = &s as &S + let deref = *ref + } + `, + ) + + t.Run("built-in", func(t *testing.T) { + + t.Parallel() + + runInvalidTestCase( + t, + "Account", + ` + fun test(ref: &Account): Account { + return *ref + } + `, + ) + }) + + t.Run("Optional", func(t *testing.T) { + t.Parallel() + + runValidTestCase( + t, + "valid", + ` + let ref: &Int? = &1 as &Int + let deref = *ref + `, + &sema.OptionalType{ + Type: sema.IntType, + }, + ) + + runInvalidTestCase( + t, + "invalid", + ` + struct S {} + + fun test() { + let s = S() + let ref: &S? = &s as &S + let deref = *ref + } + `, + ) + }) + + runInvalidTestCase( + t, + "non-reference", + ` + fun test(foo: Int): AnyStruct { + return *foo + } + `, + ) + + t.Run("invalid type", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + let x = *y + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.NotDeclaredError{}, errs[0]) + }) +} + +func TestCheckReferenceRequiredTypeAnnotation(t *testing.T) { + t.Parallel() + + test := func( + t *testing.T, + gen func(expr, ty string) (string, string), + nestingLevel int, + ) { + + test := func( + t *testing.T, + expr, ty string, + check func(t *testing.T, requiresTypeAnnotation bool, err error), + ) { + expr, ty = gen(expr, ty) + + t.Run("argument", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, + fmt.Sprintf( + ` + entitlement X + entitlement Y + + fun test(_ v: %s) {} + + let x = test(%s) + `, + ty, + expr, + ), + ) + check(t, true, err) + }) + + t.Run("variable declaration", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, + fmt.Sprintf( + ` + entitlement X + entitlement Y + + let x: %s = %s + `, + ty, + expr, + ), + ) + check(t, false, err) + }) + + t.Run("self field assignment", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, + fmt.Sprintf( + ` + entitlement X + entitlement Y + + struct S { + let v: %s + + init() { + self.v = %s + } + } + `, + ty, + expr, + ), + ) + check(t, false, err) + }) + + t.Run("external field assignment", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, + fmt.Sprintf( + ` + entitlement X + entitlement Y + + struct S { + var v: %s? + + init() { + self.v = nil + } + } + + fun test() { + let s = S() + s.v = %s + } + `, + ty, + expr, + ), + ) + check(t, true, err) + }) + } + + t.Run("missing type annotation", func(t *testing.T) { + t.Parallel() + + test(t, + "&1", + "&Int", + func(t *testing.T, requiresTypeAnnotation bool, err error) { + + if requiresTypeAnnotation { + + errs := RequireCheckerErrors(t, err, 1+nestingLevel) + + assert.IsType(t, &sema.TypeAnnotationRequiredError{}, errs[0]) + } else { + require.NoError(t, err) + } + }, + ) + }) + + t.Run("missing type annotation, with authorization", func(t *testing.T) { + t.Parallel() + + test(t, + "&1", + "auth(X) &Int", + func(t *testing.T, requiresTypeAnnotation bool, err error) { + + if requiresTypeAnnotation { + + errs := RequireCheckerErrors(t, err, 1+nestingLevel) + + assert.IsType(t, &sema.TypeAnnotationRequiredError{}, errs[0]) + } else { + require.NoError(t, err) + } + }, + ) + }) + + t.Run("matching type annotation", func(t *testing.T) { + t.Parallel() + + test(t, + "&1 as &Int", + "&Int", + func(t *testing.T, _ bool, err error) { + + require.NoError(t, err) + }, + ) + }) + + t.Run("matching type annotation, with authorization", func(t *testing.T) { + t.Parallel() + + test( + t, + "&1 as auth(X) &Int", + "auth(X) &Int", + func(t *testing.T, _ bool, err error) { + + require.NoError(t, err) + }, + ) + }) + + t.Run("non-matching type annotation, reference with different authorization", func(t *testing.T) { + t.Parallel() + + test( + t, + "&1 as auth(Y) &Int", + "auth(X) &Int", + func(t *testing.T, _ bool, err error) { + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }, + ) + }) + + t.Run("non-matching type, non-reference", func(t *testing.T) { + t.Parallel() + + test( + t, + "1", + "&Int", + func(t *testing.T, _ bool, err error) { + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + }, + ) + + }) + } + + t.Run("top-level", func(t *testing.T) { + t.Parallel() + + test(t, + func(expr, ty string) (string, string) { + return expr, ty + }, + 0, + ) + }) + + t.Run("nested, array", func(t *testing.T) { + t.Parallel() + + test(t, + func(expr, ty string) (string, string) { + return fmt.Sprintf("[%s]", expr), + fmt.Sprintf("[%s]", ty) + }, + 1, + ) + }) + + t.Run("nested, dictionary", func(t *testing.T) { + t.Parallel() + + test(t, + func(expr, ty string) (string, string) { + return fmt.Sprintf("{true: %s}", expr), + fmt.Sprintf("{Bool: %s}", ty) + }, + 1, + ) + }) + + t.Run("double nested, array", func(t *testing.T) { + t.Parallel() + + test(t, + func(expr, ty string) (string, string) { + return fmt.Sprintf("[[%s]]", expr), + fmt.Sprintf("[[%s]]", ty) + }, + 2, + ) + }) +} + +func TestCheckOptionalReference(t *testing.T) { + t.Parallel() + + t.Run("nested optional reference", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + var dict: {String: Foo?} = {} + var ref: (&Foo)?? = &dict["foo"] as &Foo?? + } + + struct Foo {} + `) + + require.NoError(t, err) + }) + + t.Run("reference to optional", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + var dict: {String: Foo} = {} + var ref: &(Foo?) = &dict["foo"] as &(Foo?) + } + + struct Foo {} + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ReferenceToAnOptionalError{}, errs[0]) + }) + + t.Run("reference to nested optional", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun main() { + var dict: {String: Foo?} = {} + var ref: &(Foo??) = &dict["foo"] as &(Foo??) + } + + struct Foo {} + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ReferenceToAnOptionalError{}, errs[0]) + }) +} diff --git a/runtime/tests/checker/resources_test.go b/runtime/tests/checker/resources_test.go index db9726e67a..987d3f07b3 100644 --- a/runtime/tests/checker/resources_test.go +++ b/runtime/tests/checker/resources_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -93,13 +93,19 @@ func TestCheckFailableCastingWithResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidAttachmentUsageError{}, errs[1]) case common.CompositeKindStructure, - common.CompositeKindContract, common.CompositeKindEnum: errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) + + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 2) assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[1], &invalidMoveError) + case common.CompositeKindEvent: errs := RequireCheckerErrors(t, err, 2) @@ -171,7 +177,6 @@ func TestCheckFunctionDeclarationParameterWithResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) case common.CompositeKindStructure, - common.CompositeKindContract, common.CompositeKindEvent, common.CompositeKindEnum: @@ -179,6 +184,14 @@ func TestCheckFunctionDeclarationParameterWithResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[1], &invalidMoveError) + default: panic(errors.NewUnreachableError()) } @@ -244,12 +257,16 @@ func TestCheckFunctionDeclarationParameterWithoutResourceAnnotation(t *testing.T assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) case common.CompositeKindStructure, - common.CompositeKindContract, common.CompositeKindEvent, common.CompositeKindEnum: require.NoError(t, err) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 1) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + default: panic(errors.NewUnreachableError()) } @@ -618,15 +635,6 @@ func TestCheckFieldDeclarationWithResourceAnnotation(t *testing.T) { t.Parallel() - destructor := "" - if kind == common.CompositeKindResource { - destructor = ` - destroy() { - destroy self.t - } - ` - } - _, err := ParseAndCheck(t, fmt.Sprintf( ` @@ -637,13 +645,10 @@ func TestCheckFieldDeclarationWithResourceAnnotation(t *testing.T) { init(t: @T) { self.t %[2]s t } - - %[3]s } `, kind.Keyword(), kind.TransferOperator(), - destructor, ), ) @@ -690,15 +695,6 @@ func TestCheckFieldDeclarationWithoutResourceAnnotation(t *testing.T) { t.Parallel() - destructor := "" - if kind == common.CompositeKindResource { - destructor = ` - destroy() { - destroy self.t - } - ` - } - _, err := ParseAndCheck(t, fmt.Sprintf( ` @@ -709,13 +705,10 @@ func TestCheckFieldDeclarationWithoutResourceAnnotation(t *testing.T) { init(t: T) { self.t %[2]s t } - - %[3]s } `, kind.Keyword(), kind.TransferOperator(), - destructor, ), ) @@ -803,7 +796,6 @@ func TestCheckFunctionExpressionParameterWithResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) case common.CompositeKindStructure, - common.CompositeKindContract, common.CompositeKindEvent, common.CompositeKindEnum: @@ -811,6 +803,14 @@ func TestCheckFunctionExpressionParameterWithResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[1], &invalidMoveError) + default: panic(errors.NewUnreachableError()) } @@ -878,12 +878,17 @@ func TestCheckFunctionExpressionParameterWithoutResourceAnnotation(t *testing.T) assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) case common.CompositeKindStructure, - common.CompositeKindContract, common.CompositeKindEvent, common.CompositeKindEnum: require.NoError(t, err) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 1) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + default: panic(errors.NewUnreachableError()) } @@ -1121,7 +1126,6 @@ func TestCheckFunctionTypeParameterWithResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[0]) case common.CompositeKindStructure, - common.CompositeKindContract, common.CompositeKindEvent, common.CompositeKindEnum: @@ -1130,6 +1134,15 @@ func TestCheckFunctionTypeParameterWithResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[1]) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 3) + + assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[0]) + assert.IsType(t, &sema.InvalidResourceAnnotationError{}, errs[1]) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[2], &invalidMoveError) + default: panic(errors.NewUnreachableError()) } @@ -1199,12 +1212,16 @@ func TestCheckFunctionTypeParameterWithoutResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidAttachmentAnnotationError{}, errs[1]) case common.CompositeKindStructure, - common.CompositeKindContract, common.CompositeKindEvent, common.CompositeKindEnum: require.NoError(t, err) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 1) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + default: panic(errors.NewUnreachableError()) } @@ -1432,11 +1449,14 @@ func TestCheckFailableCastingWithoutResourceAnnotation(t *testing.T) { assert.IsType(t, &sema.InvalidFailableResourceDowncastOutsideOptionalBindingError{}, errs[1]) assert.IsType(t, &sema.InvalidNonIdentifierFailableResourceDowncast{}, errs[2]) - case common.CompositeKindStructure, - common.CompositeKindContract: - + case common.CompositeKindStructure: require.NoError(t, err) + case common.CompositeKindContract: + errs := RequireCheckerErrors(t, err, 1) + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) + case common.CompositeKindEvent: errs := RequireCheckerErrors(t, err, 1) @@ -3121,7 +3141,7 @@ func testResourceNesting( innerTypeAnnotation := "T" if innerIsInterface { - innerTypeAnnotation = AsInterfaceType("T", innerCompositeKind) + innerTypeAnnotation = "{T}" } // Prepare the initializer, if needed. @@ -3142,18 +3162,6 @@ func testResourceNesting( ) } - destructor := "" - if !outerIsInterface && - outerCompositeKind == common.CompositeKindResource && - innerCompositeKind == common.CompositeKindResource { - - destructor = ` - destroy() { - destroy self.t - } - ` - } - innerBody := "{}" if innerCompositeKind == common.CompositeKindEvent { innerBody = "()" @@ -3169,12 +3177,11 @@ func testResourceNesting( program := fmt.Sprintf( ` - %[1]s %[2]s T%[10]s %[3]s + %[1]s %[2]s T%[9]s %[3]s %[4]s %[5]s U { let t: %[6]s%[7]s %[8]s - %[9]s } `, innerCompositeKind.Keyword(), @@ -3185,7 +3192,6 @@ func testResourceNesting( innerCompositeKind.Annotation(), innerTypeAnnotation, initializer, - destructor, innerConformances, ) @@ -3383,7 +3389,7 @@ func TestCheckInvalidResourceInterfaceUseAsType(t *testing.T) { } // TestCheckResourceInterfaceUseAsType test if a resource -// is a subtype of a intersection AnyResource type. +// is a subtype of an intersection AnyResource type. func TestCheckResourceInterfaceUseAsType(t *testing.T) { t.Parallel() @@ -3538,10 +3544,6 @@ func TestCheckInvalidResourceFieldMoveThroughVariableDeclaration(t *testing.T) { init(foo: @Foo) { self.foo <- foo } - - destroy() { - destroy self.foo - } } fun test(): @[Foo] { @@ -3577,10 +3579,6 @@ func TestCheckInvalidResourceFieldMoveThroughParameter(t *testing.T) { init(foo: @Foo) { self.foo <- foo } - - destroy() { - destroy self.foo - } } fun identity(_ foo: @Foo): @Foo { @@ -3621,10 +3619,6 @@ func TestCheckInvalidResourceFieldMoveSelf(t *testing.T) { fun test() { absorb(<-self.y) } - - destroy() { - destroy self.y - } } fun absorb(_ y: @Y) { @@ -3637,33 +3631,6 @@ func TestCheckInvalidResourceFieldMoveSelf(t *testing.T) { assert.IsType(t, &sema.InvalidNestedResourceMoveError{}, errs[0]) } -func TestCheckInvalidResourceFieldUseAfterDestroy(t *testing.T) { - - t.Parallel() - - _, err := ParseAndCheck(t, ` - resource Y {} - - resource X { - - var y: @Y - - init() { - self.y <- create Y() - } - - destroy() { - destroy self.y - destroy self.y - } - } - `) - - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) -} - func TestCheckResourceArrayAppend(t *testing.T) { t.Parallel() @@ -4042,10 +4009,6 @@ func TestCheckInvalidResourceConstantResourceFieldSwap(t *testing.T) { init(foo: @Foo) { self.foo <- foo } - - destroy() { - destroy self.foo - } } fun test() { @@ -4077,9 +4040,6 @@ func TestCheckResourceVariableResourceFieldSwap(t *testing.T) { self.foo <- foo } - destroy() { - destroy self.foo - } } fun test() { @@ -4108,10 +4068,6 @@ func TestCheckInvalidResourceFieldDestroy(t *testing.T) { init(foo: @Foo) { self.foo <- foo } - - destroy() { - destroy self.foo - } } fun test() { @@ -4205,10 +4161,6 @@ func TestCheckResourceFieldUseAndDestruction(t *testing.T) { let ri <- self.ris.remove(key: "first") absorb(<-ri) } - - destroy() { - destroy self.ris - } } fun absorb(_ ri: @{RI}?) { @@ -5763,10 +5715,6 @@ func TestCheckOptionalResourceBindingWithSecondValue(t *testing.T) { self.r <- create R() } - destroy () { - destroy self.r - } - fun duplicate(): @R? { if let r <- self.r <- nil { let r2 <- self.r <- nil @@ -9513,3 +9461,959 @@ func TestCheckInvalidResourceDestructionInFunction(t *testing.T) { assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) } + +func TestCheckInvalidNestedResourceCaptureOnLeft(t *testing.T) { + + t.Parallel() + + t.Run("on right", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + transaction { + var x: @AnyResource? + prepare() { + self.x <- nil + } + execute { + fun() { + let y <- self.x + destroy y + } + } + } + `) + require.NoError(t, err) + }) + + t.Run("resource field on right", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + var x: @AnyResource? + init() { + self.x <- nil + } + fun foo() { + fun() { + let y <- self.x <- nil + destroy y + } + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) + }) + + t.Run("on left", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + transaction { + var x: @AnyResource? + prepare() { + self.x <- nil + } + execute { + fun() { + self.x <-! nil + } + + destroy self.x + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) + }) + + t.Run("on left method scope", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + transaction { + var x: @AnyResource? + prepare() { + self.x <- nil + } + execute { + self.x <-! nil + + destroy self.x + } + } + `) + require.NoError(t, err) + }) + + t.Run("contract self variable on left", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract C { + var x: @AnyResource? + + init() { + self.x <- nil + } + + fun foo() { + fun() { + self.x <-! nil + } + } + } + `) + require.NoError(t, err) + }) + + t.Run("contract self variable on left method scope", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract C { + var x: @AnyResource? + + init() { + self.x <- nil + } + + fun foo() { + self.x <-! nil + } + } + `) + require.NoError(t, err) + }) +} + +func TestCheckInvalidationInCondition(t *testing.T) { + + t.Parallel() + + testKind := func(kind ast.ConditionKind) { + t.Run(kind.Name(), func(t *testing.T) { + + t.Parallel() + + t.Run("global function", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, fmt.Sprintf( + ` + resource R {} + + fun drop(_ r: @R): Bool { + destroy r + return true + } + + fun test(_ r: @R) { + %s { + drop(<-r) + } + } + `, + kind.Keyword(), + )) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.PurityError{}, errs[0]) + }) + + t.Run("in composite", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, fmt.Sprintf( + ` + resource R {} + + fun drop(_ r: @R): Bool { + destroy r + return true + } + + struct S { + fun test(_ r: @R) { + %s { + drop(<-r) + } + } + } + `, + kind.Keyword(), + )) + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.PurityError{}, errs[0]) + }) + + t.Run("in interface, definite invalidation", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, fmt.Sprintf( + ` + resource R {} + + fun drop(_ r: @R): Bool { + destroy r + return true + } + + struct interface S { + fun test(_ r: @R) { + %s { + drop(<-r) + } + } + } + `, + kind.Keyword(), + )) + + errs := RequireCheckerErrors(t, err, 2) + assert.IsType(t, &sema.PurityError{}, errs[0]) + assert.IsType(t, &sema.InvalidInterfaceConditionResourceInvalidationError{}, errs[1]) + }) + + t.Run("in interface, temporary invalidation", func(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, fmt.Sprintf( + ` + resource R {} + + struct interface SI { + fun drop(_ r: @R) { + %s { + r.isInstance(Type<@R>()) + } + } + } + `, + kind.Keyword(), + )) + require.NoError(t, err) + }) + }) + } + + for kind := ast.ConditionKindUnknown + 1; int(kind) < ast.ConditionKindCount(); kind++ { + testKind(kind) + } +} + +func TestCheckBoundFunctionToResource(t *testing.T) { + + t.Parallel() + + t.Run("simple invalid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + + let bypass = fun(x: (fun(): Void)): (fun(): Void) { + return x + } + + // This is forbidden (ResourceMethodBindingError): + // var f = r.sayHi + // Passing to a function invocation as an argument should also be forbidden + var f = bypass(r.sayHi) + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) + }) + + t.Run("nested invalid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + + let bypass = fun(x: (fun(): Void)): (fun(): (fun(): Void)) { + return fun(): (fun(): Void) { + return x + } + } + + // This is forbidden (ResourceMethodBindingError): + // var f = r.sayHi + // Passing to a function invocation as an argument should also be forbidden + var f = bypass(r.sayHi)() + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) + }) + + t.Run("nested valid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + + let bypass = fun(x: Void): (fun(): Void) { + return fun(): Void { + return x + } + } + + // It's okay to use in an argument, as long as it's another invocation. + bypass(r.sayHi())() + + destroy r + } + `) + + require.NoError(t, err) + }) + + t.Run("inside index expr", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + var array: [(fun(): Void)] = [] + + let bypass = fun(x: (fun(): Void)): Int { + return 0 + } + + array[bypass(r.sayHi)]() + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) + }) + + t.Run("as index", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + var array: [(fun(): Void)] = [] + + let bypass = fun(x: (fun(): Void)): Int { + return 0 + } + + array[r.sayHi]() + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 2) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) + assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) + }) + + t.Run("function expression", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + var array: [(fun(): Void)] = [] + + let bypass = fun(x: (fun(): Void)): Int { + return 0 + } + + var i = fun(): Int { + var f = r.sayHi + return 0 + }() + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 2) + assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[1]) + }) + + t.Run("array expression", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + var array: [(fun(): Void)] = [] + + let bypass = fun(x: (fun(): Void)): Int { + return 0 + } + + [r.sayHi, r.sayHi][0]() + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 2) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[1]) + }) + + t.Run("array expression map function", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun sayHi() {} + } + + access(all) fun main() { + var r <- create R() + var f: fun(): Void = fun() {} + + // ArrayExpression trick to capture the bound function + [r.sayHi].map(fun(element: fun(): Void): Void { + f = element + }) + + f() // Bound resource method called here + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) + }) +} + +func TestCheckBoundFunctionToResourceInAssignment(t *testing.T) { + + t.Parallel() + + t.Run("valid assignment", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + var f: (fun(): Void) + + init() { + self.f = fun() {} + } + + fun assignNewValue() { + self.f = fun() {} + } + } + + access(all) fun someFunc(_ f: (fun(): Void)): Int { + return 0 + } + + access(all) fun main() { + var r <- create R() + var arr: [Int] = [1] + + // Must not report an error + r.f = fun(): Void {} + + destroy r + } + `) + + require.NoError(t, err) + }) + + t.Run("simple invalid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R { + access(all) fun f() {} + } + + access(all) fun someFunc(_ f: (fun(): Void)): Int { + return 0 + } + + access(all) fun main() { + var r <- create R() + var arr: [Int] = [1] + + // Must report an error! + arr[someFunc(r.f)] = 2 + + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceMethodBindingError{}, errs[0]) + }) +} + +func TestCheckIfLetElseBranchConfusion(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource Victim{} + + access(all) fun main() { + var r: @Victim? <- nil + var r2: @Victim? <- create Victim() + if let dummy <- r <- r2 { + // unreachable token destroys to please checker + destroy dummy + destroy r + } else { + // Error: r2 is invalid here + + var ref = &r as &Victim? + var arr: @[Victim?]<- [<- r, <- r2] + destroy arr + } + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) +} + +func TestCheckOptionalBindingElseBranch(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource Victim {} + + access(all) fun main() { + + var r: @Victim? <- nil + var r2: @Victim? <- create Victim() + + if let dummy <- r <- r2 { + // unreachable token destroys to please checker + destroy dummy + destroy r + } else { + // checker failed to notice that r2 is invalid here + var ref = &r as &Victim? + var arr: @[Victim?]<- [ + <- r, + <- r2 + ] + destroy arr + } + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) +} + +func TestCheckResourceSecondValueTransfer(t *testing.T) { + + t.Parallel() + + t.Run("basic array invalid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + access(all) fun main() { + let vaults: @[AnyResource] <- [<-[]] + let old <- vaults[0] <- vaults + destroy old + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) + }) + + t.Run("basic array", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + access(all) fun main() { + let vaults: @[AnyResource] <- [<-[]] + let bar <- create R() + let old <- vaults[0] <- bar + destroy old + destroy vaults + } + `) + + require.NoError(t, err) + }) + + t.Run("basic function call invalid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + access(all) fun foo(_ r: @R): @R { + return <-r + } + + access(all) fun main() { + var r <- create R() + let r2 <- r <- foo(<-r) + destroy r2 + // note that r is still "valid" after the two value transfer so we must destroy it + destroy r + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) + }) + + t.Run("basic function call valid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + access(all) fun foo(_ r: @R): @R { + return <-r + } + + access(all) fun main() { + var r <- create R() + var bar <- create R() + let r2 <- r <- foo(<-bar) + destroy r2 + destroy r + } + `) + + require.NoError(t, err) + }) + + t.Run("invalid", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R{} + + access(all) fun collect(copy2: @R?, _ arrRef: auth(Mutate) &[R]): @R { + arrRef.append(<- copy2!) + return <- create R() + } + + access(all) fun main() { + var victim: @R? <- create R() + var arr: @[R] <- [] + + // In the optional binding below, the 'victim' must be invalidated + // before evaluation of the collect() call + let copy1 <- victim <- collect(copy2: <- victim, &arr as auth(Mutate) &[R]) + + // Panics when trying to destroy + destroy copy1 + destroy arr + destroy victim + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) + }) + + t.Run("regression", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R{} + + access(all) fun collect(copy2: @R?, _ arrRef: auth(Mutate) &[R]): @R { + arrRef.append(<- copy2!) + return <- create R() + } + + access(all) fun main() { + var victim: @R? <- create R() + var arr: @[R] <- [] + + if let copy1 <- victim <- collect(copy2: <- victim, &arr as auth(Mutate) &[R]) { + var ignore = &victim as &R? + arr.append(<- copy1) + destroy victim + } else { + destroy victim // Never executed + } + + destroy arr + } + `) + + errs := RequireCheckerErrors(t, err, 1) + // we'd like to only report one error here (i.e. in `copy2: <- victim`, not `&victim as &R?`) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) + }) +} + +func TestCheckIndexingResourceLoss(t *testing.T) { + t.Parallel() + + t.Run("type indexing", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + attachment A for R {} + + fun createR(): @R { + return <- create R() + } + + fun test() { + createR()[A] + } + `) + + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceLossError{}, errs[0]) + }) + + t.Run("value indexing", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun createArray(): @[R] { + return <-[ + <-create R(), + <-create R() + ] + } + + fun test() { + let first <- createArray()[0] + destroy first + } + `) + + errs := RequireCheckerErrors(t, err, 2) + assert.IsType(t, &sema.ResourceLossError{}, errs[0]) + assert.IsType(t, &sema.InvalidNestedResourceMoveError{}, errs[1]) + }) +} + +func TestCheckInvalidResourceCaptureOnLeft(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() { + var x: @AnyResource? <- nil + fun () { + x <-! [] + } + destroy x + } + `) + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) +} + +func TestCheckInvalidNestedResourceCapture(t *testing.T) { + + t.Parallel() + + t.Run("on right", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + transaction { + var x: @AnyResource? + prepare() { + self.x <- nil + } + execute { + fun() { + let y <- self.x + destroy y + } + } + } + `) + require.NoError(t, err) + }) + + t.Run("resource field on right", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R { + var x: @AnyResource? + init() { + self.x <- nil + } + fun foo() { + fun() { + let y <- self.x <- nil + destroy y + } + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) + }) + + t.Run("on left", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + transaction { + var x: @AnyResource? + prepare() { + self.x <- nil + } + execute { + fun() { + self.x <-! nil + } + destroy self.x + } + } + `) + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) + }) + + t.Run("on left method scope", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + transaction { + var x: @AnyResource? + prepare() { + self.x <- nil + } + execute { + self.x <-! nil + destroy self.x + } + } + `) + require.NoError(t, err) + }) + + t.Run("contract self variable on left", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract C { + var x: @AnyResource? + init() { + self.x <- nil + } + fun foo() { + fun() { + self.x <-! nil + } + } + } + `) + require.NoError(t, err) + }) + + t.Run("contract self variable on left method scope", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + contract C { + var x: @AnyResource? + init() { + self.x <- nil + } + fun foo() { + self.x <-! nil + } + } + `) + require.NoError(t, err) + }) +} + +func TestCheckInvalidOptionalResourceCoalescingRightSideNilLeftSide(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + fun test() { + let rs: @[R?] <- [nil, nil] + rs[0] <-! create R() + rs[1] <-! nil ?? rs[0] + destroy rs + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidNilCoalescingRightResourceOperandError{}, errs[0]) +} diff --git a/runtime/tests/checker/return_test.go b/runtime/tests/checker/return_test.go index 6c5ad9649c..61607904e4 100644 --- a/runtime/tests/checker/return_test.go +++ b/runtime/tests/checker/return_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" ) @@ -209,7 +210,9 @@ func testExits(t *testing.T, test exitTest) { code, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/tests/checker/rlp_test.go b/runtime/tests/checker/rlp_test.go index 65c93ef822..0790fb577e 100644 --- a/runtime/tests/checker/rlp_test.go +++ b/runtime/tests/checker/rlp_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import ( "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" ) @@ -40,7 +41,9 @@ func TestCheckRLPDecodeString(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -60,7 +63,9 @@ func TestCheckInvalidRLPDecodeString(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -84,7 +89,9 @@ func TestCheckRLPDecodeList(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -104,7 +111,9 @@ func TestCheckInvalidRLPDecodeList(t *testing.T) { `, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) diff --git a/runtime/tests/checker/runtimetype_test.go b/runtime/tests/checker/runtimetype_test.go index 3942dd2ff7..10ec8aaf1a 100644 --- a/runtime/tests/checker/runtimetype_test.go +++ b/runtime/tests/checker/runtimetype_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -429,63 +429,6 @@ func TestCheckCompositeTypeConstructor(t *testing.T) { } } -func TestCheckInterfaceTypeConstructor(t *testing.T) { - - t.Parallel() - - cases := []struct { - name string - code string - expectedError error - }{ - { - name: "R", - code: ` - let result = InterfaceType("R") - `, - expectedError: nil, - }, - { - name: "type mismatch", - code: ` - let result = InterfaceType(3) - `, - expectedError: &sema.TypeMismatchError{}, - }, - { - name: "too many args", - code: ` - let result = InterfaceType("", 3) - `, - expectedError: &sema.ExcessiveArgumentsError{}, - }, - { - name: "no args", - code: ` - let result = InterfaceType() - `, - expectedError: &sema.InsufficientArgumentsError{}, - }, - } - - for _, testCase := range cases { - t.Run(testCase.name, func(t *testing.T) { - checker, err := ParseAndCheck(t, testCase.code) - - if testCase.expectedError == nil { - require.NoError(t, err) - assert.Equal(t, - &sema.OptionalType{Type: sema.MetaType}, - RequireGlobalValue(t, checker.Elaboration, "result"), - ) - } else { - errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, testCase.expectedError, errs[0]) - } - }) - } -} - func TestCheckFunctionTypeConstructor(t *testing.T) { t.Parallel() @@ -831,3 +774,75 @@ func TestCheckCapabilityTypeConstructor(t *testing.T) { }) } } + +func TestCheckInclusiveRangeTypeConstructor(t *testing.T) { + + t.Parallel() + + cases := []struct { + name string + code string + expectedError error + }{ + { + name: "Int", + code: ` + let result = InclusiveRangeType(Type()) + `, + expectedError: nil, + }, + { + name: "UInt16", + code: ` + let result = InclusiveRangeType(Type()) + `, + expectedError: nil, + }, + { + name: "resource", + code: ` + resource R {} + let result = InclusiveRangeType(Type<@R>()) + `, + expectedError: nil, + }, + { + name: "type mismatch", + code: ` + let result = InclusiveRangeType(3) + `, + expectedError: &sema.TypeMismatchError{}, + }, + { + name: "too many args", + code: ` + let result = InclusiveRangeType(Type(), Type()) + `, + expectedError: &sema.ExcessiveArgumentsError{}, + }, + { + name: "too few args", + code: ` + let result = InclusiveRangeType() + `, + expectedError: &sema.InsufficientArgumentsError{}, + }, + } + + for _, testCase := range cases { + t.Run(testCase.name, func(t *testing.T) { + checker, err := ParseAndCheck(t, testCase.code) + + if testCase.expectedError == nil { + require.NoError(t, err) + assert.Equal(t, + &sema.OptionalType{Type: sema.MetaType}, + RequireGlobalValue(t, checker.Elaboration, "result"), + ) + } else { + errs := RequireCheckerErrors(t, err, 1) + assert.IsType(t, testCase.expectedError, errs[0]) + } + }) + } +} diff --git a/runtime/tests/checker/storable_test.go b/runtime/tests/checker/storable_test.go index 1126507fee..d7a283217c 100644 --- a/runtime/tests/checker/storable_test.go +++ b/runtime/tests/checker/storable_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,8 +44,10 @@ func TestCheckStorable(t *testing.T) { code, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, - AttachmentsEnabled: true, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AttachmentsEnabled: true, }, }, ) @@ -85,7 +87,7 @@ func TestCheckStorable(t *testing.T) { ) } - if sema.IsValidDictionaryKeyType(ty) { + if sema.IsSubType(ty, sema.HashableStructType) { nestedTypes = append(nestedTypes, &sema.DictionaryType{ KeyType: ty, @@ -134,6 +136,7 @@ func TestCheckStorable(t *testing.T) { sema.NeverType, sema.VoidType, sema.AccountType, + &sema.InclusiveRangeType{MemberType: sema.IntType}, } // Capabilities of non-storable types are storable @@ -270,7 +273,6 @@ func TestCheckStorable(t *testing.T) { var interfaceKeyword string var baseType string var initializer string - var destructor string if isInterface { interfaceKeyword = "interface" @@ -297,14 +299,6 @@ func TestCheckStorable(t *testing.T) { typeName, transferOperation.Operator(), ) - - if isResource { - destructor = ` - destroy() { - destroy self.value - } - ` - } } if compositeKind == common.CompositeKindAttachment { @@ -320,14 +314,11 @@ func TestCheckStorable(t *testing.T) { let value: %[1]s%[2]s %[3]s - - %[4]s } `, typeAnnotation, typeName, initializer, - destructor, ) } diff --git a/runtime/tests/checker/string_test.go b/runtime/tests/checker/string_test.go index 5d94c0c077..1291a66441 100644 --- a/runtime/tests/checker/string_test.go +++ b/runtime/tests/checker/string_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -451,3 +451,86 @@ func TestCheckStringSplitTypeMissingArgumentLabelSeparator(t *testing.T) { assert.IsType(t, &sema.MissingArgumentLabelError{}, errs[0]) } + +func TestCheckStringReplaceAll(t *testing.T) { + + t.Parallel() + + checker, err := ParseAndCheck(t, ` + let s = "👪.❤️.Abc".replaceAll(of: "❤️", with: "|") + `) + require.NoError(t, err) + + assert.Equal(t, + sema.StringType, + RequireGlobalValue(t, checker.Elaboration, "s"), + ) +} + +func TestCheckStringReplaceAllTypeMismatchOf(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let s = "Abc:1".replaceAll(of: 1234, with: "/") + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) +} + +func TestCheckStringReplaceAllTypeMismatchWith(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let s = "Abc:1".replaceAll(of: "1", with: true) + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) +} + +func TestCheckStringReplaceAllTypeMismatchCharacters(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let a: Character = "x" + let b: Character = "y" + let s = "Abc:1".replaceAll(of: a, with: b) + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) + assert.IsType(t, &sema.TypeMismatchError{}, errs[1]) +} + +func TestCheckStringReplaceAllTypeMissingArgumentLabelOf(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let s = "👪Abc".replaceAll("/", with: "abc") + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingArgumentLabelError{}, errs[0]) +} + +func TestCheckStringReplaceAllTypeMissingArgumentLabelWith(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + let s = "👪Abc".replaceAll(of: "/", "abc") + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingArgumentLabelError{}, errs[0]) +} diff --git a/runtime/tests/checker/swap_test.go b/runtime/tests/checker/swap_test.go index ccb93a38ad..0bf6a73215 100644 --- a/runtime/tests/checker/swap_test.go +++ b/runtime/tests/checker/swap_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -253,10 +253,6 @@ func TestCheckSwapResourceFields(t *testing.T) { init(x: @X) { self.x <- x } - - destroy() { - destroy self.x - } } fun test() { @@ -302,10 +298,6 @@ func TestCheckInvalidSwapConstantResourceFields(t *testing.T) { init(x: @X) { self.x <- x } - - destroy() { - destroy self.x - } } resource Z { @@ -314,10 +306,6 @@ func TestCheckInvalidSwapConstantResourceFields(t *testing.T) { init(x: @X) { self.x <- x } - - destroy() { - destroy self.x - } } fun test() { @@ -402,3 +390,22 @@ func TestCheckInvalidTwoConstantsSwap(t *testing.T) { assignmentError = errs[1].(*sema.AssignmentToConstantError) assert.Equal(t, "y", assignmentError.Name) } + +func TestCheckIndexSwapWithInvalidExpression(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + fun test() { + let xs = [1] + + // NOTE: ys is not declared + xs[0] <-> ys[0] + } + `) + + errs := RequireCheckerErrors(t, err, 2) + + require.IsType(t, &sema.NotDeclaredError{}, errs[0]) + require.IsType(t, &sema.NotDeclaredError{}, errs[1]) +} diff --git a/runtime/tests/checker/switch_test.go b/runtime/tests/checker/switch_test.go index 7bfa03bf31..7300beecf0 100644 --- a/runtime/tests/checker/switch_test.go +++ b/runtime/tests/checker/switch_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -482,3 +482,130 @@ func TestCheckCaseExpressionTypeInference(t *testing.T) { require.NoError(t, err) }) } + +func TestCheckSwitchResourceInvalidation(t *testing.T) { + t.Parallel() + + t.Run("in first test", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun drop(_ r: @AnyResource): Bool { + destroy r + return true + } + + fun test() { + let r <- create R() + switch true { + case drop(<-r): + return + } + } + `) + + require.NoError(t, err) + }) + + t.Run("in first case", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun test() { + let r <- create R() + switch true { + case false: + destroy r + } + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceLossError{}, errs[0]) + }) + + t.Run("in second test, not invalidated in first", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun drop(_ r: @AnyResource): Bool { + destroy r + return true + } + + fun test() { + let r <- create R() + switch true { + case false: + return + case drop(<-r): + return + } + } + `) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.ResourceLossError{}, errs[0]) + assert.IsType(t, &sema.ResourceLossError{}, errs[1]) + }) + + t.Run("in second test, but invalidated in first case", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun drop(_ r: @AnyResource): Bool { + destroy r + return true + } + + fun test() { + let r <- create R() + switch true { + case false: + destroy r + return + case drop(<-r): + return + } + } + `) + require.NoError(t, err) + }) + + t.Run("invalidations in multiple tests", func(t *testing.T) { + t.Parallel() + + _, err := ParseAndCheck(t, ` + resource R {} + + fun drop(_ r: @AnyResource): Bool { + destroy r + return true + } + + fun test() { + let r <- create R() + switch true { + case drop(<-r): + return + case drop(<-r): + return + } + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) + }) +} diff --git a/runtime/tests/checker/transactions_test.go b/runtime/tests/checker/transactions_test.go index 7262162c33..7bd8642e05 100644 --- a/runtime/tests/checker/transactions_test.go +++ b/runtime/tests/checker/transactions_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -477,10 +477,13 @@ func TestCheckInvalidTransactionSelfMoveReturnFromFunction(t *testing.T) { } `) - errs := RequireCheckerErrors(t, err, 1) + errs := RequireCheckerErrors(t, err, 2) + + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, errs[0], &invalidMoveError) - require.IsType(t, &sema.TypeMismatchError{}, errs[0]) - typeMismatchErr := errs[0].(*sema.TypeMismatchError) + require.IsType(t, &sema.TypeMismatchError{}, errs[1]) + typeMismatchErr := errs[1].(*sema.TypeMismatchError) assert.Equal(t, sema.VoidType, typeMismatchErr.ExpectedType) assert.IsType(t, &sema.TransactionType{}, typeMismatchErr.ActualType) @@ -523,3 +526,34 @@ func TestCheckInvalidTransactionSelfMoveIntoDictionaryLiteral(t *testing.T) { assert.IsType(t, &sema.InvalidMoveError{}, errs[0]) } + +func TestCheckInvalidTransactionResourceLoss(t *testing.T) { + + t.Parallel() + + _, err := ParseAndCheck(t, ` + access(all) resource R{} + transaction { + var r: @R? + + prepare() { + self.r <- nil + } + + execute { + let writeback = fun() { + self.r <-! create R() + } + + var x <- self.r + + destroy x + writeback() + } + } + `) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.ResourceCapturingError{}, errs[0]) +} diff --git a/runtime/tests/checker/type_inference_test.go b/runtime/tests/checker/type_inference_test.go index 5c6f69c615..cf191c2879 100644 --- a/runtime/tests/checker/type_inference_test.go +++ b/runtime/tests/checker/type_inference_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -335,7 +335,7 @@ func TestCheckFunctionArgumentTypeInference(t *testing.T) { require.NoError(t, err) }) - t.Run("with generics", func(t *testing.T) { + t.Run("with generics, void return type", func(t *testing.T) { t.Parallel() @@ -367,46 +367,146 @@ func TestCheckFunctionArgumentTypeInference(t *testing.T) { }, ) - errs := RequireCheckerErrors(t, err, 2) + require.NoError(t, err) + }) - require.IsType(t, &sema.TypeParameterTypeMismatchError{}, errs[0]) - typeParamMismatchErr := errs[0].(*sema.TypeParameterTypeMismatchError) - assert.Equal( - t, - &sema.VariableSizedType{ - Type: sema.Int8Type, - }, - typeParamMismatchErr.ExpectedType, - ) + t.Run("with generics, generic return type", func(t *testing.T) { - assert.Equal( - t, - &sema.VariableSizedType{ - Type: sema.IntType, + t.Parallel() + + typeParameter := &sema.TypeParameter{ + Name: "T", + TypeBound: nil, + } + + _, err := parseAndCheckWithTestValue(t, + ` + let res: [Int8] = test<[Int8]>([1, 2, 3]) + `, + &sema.FunctionType{ + TypeParameters: []*sema.TypeParameter{ + typeParameter, + }, + Parameters: []sema.Parameter{ + { + Label: sema.ArgumentLabelNotRequired, + Identifier: "value", + TypeAnnotation: sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ), + }, + }, + ReturnTypeAnnotation: sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ), }, - typeParamMismatchErr.ActualType, ) - require.IsType(t, &sema.TypeMismatchError{}, errs[1]) - typeMismatchErr := errs[1].(*sema.TypeMismatchError) + require.NoError(t, err) + }) - assert.Equal( - t, - &sema.VariableSizedType{ - Type: sema.Int8Type, + t.Run("with generics, argument type propagation, simple", func(t *testing.T) { + + t.Parallel() + + typeParameter := &sema.TypeParameter{ + Name: "T", + TypeBound: nil, + } + + _, err := parseAndCheckWithTestValue(t, + ` + let res: UInt8 = test(1 as UInt8, 2) + `, + &sema.FunctionType{ + TypeParameters: []*sema.TypeParameter{ + typeParameter, + }, + Parameters: []sema.Parameter{ + { + Label: sema.ArgumentLabelNotRequired, + Identifier: "a", + TypeAnnotation: sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ), + }, + { + Label: sema.ArgumentLabelNotRequired, + Identifier: "b", + TypeAnnotation: sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ), + }, + }, + ReturnTypeAnnotation: sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ), }, - typeMismatchErr.ExpectedType, ) - assert.Equal( - t, - &sema.VariableSizedType{ - Type: sema.IntType, + require.NoError(t, err) + }) + + t.Run("with generics, argument type propagation, nested", func(t *testing.T) { + + t.Parallel() + + typeParameter := &sema.TypeParameter{ + Name: "T", + TypeBound: nil, + } + + _, err := parseAndCheckWithTestValue(t, + ` + let res: UInt8 = test(1 as UInt8, [2]) + `, + &sema.FunctionType{ + TypeParameters: []*sema.TypeParameter{ + typeParameter, + }, + Parameters: []sema.Parameter{ + { + Label: sema.ArgumentLabelNotRequired, + Identifier: "a", + TypeAnnotation: sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ), + }, + { + Label: sema.ArgumentLabelNotRequired, + Identifier: "b", + TypeAnnotation: sema.NewTypeAnnotation( + &sema.VariableSizedType{ + Type: &sema.GenericType{ + TypeParameter: typeParameter, + }, + }, + ), + }, + }, + ReturnTypeAnnotation: sema.NewTypeAnnotation( + &sema.GenericType{ + TypeParameter: typeParameter, + }, + ), }, - typeMismatchErr.ActualType, ) + require.NoError(t, err) }) + } func TestCheckBinaryExpressionTypeInference(t *testing.T) { @@ -787,7 +887,7 @@ func TestCheckArraySupertypeInference(t *testing.T) { { name: "mixed simple values", code: `let x = [0, true]`, - expectedElementType: sema.AnyStructType, + expectedElementType: sema.HashableStructType, }, { name: "signed integer values", @@ -890,7 +990,7 @@ func TestCheckArraySupertypeInference(t *testing.T) { code: `let x = [[[1, 2]], [["foo", "bar"]], [[5.3, 6.4]]]`, expectedElementType: &sema.VariableSizedType{ Type: &sema.VariableSizedType{ - Type: sema.AnyStructType, + Type: sema.HashableStructType, }, }, }, @@ -899,7 +999,7 @@ func TestCheckArraySupertypeInference(t *testing.T) { code: `let x = [[[1, 2] as [Int; 2]], [["foo", "bar"] as [String; 2]], [[5.3, 6.4] as [Fix64; 2]]]`, expectedElementType: &sema.VariableSizedType{ Type: &sema.ConstantSizedType{ - Type: sema.AnyStructType, + Type: sema.HashableStructType, Size: 2, }, }, @@ -974,7 +1074,7 @@ func TestCheckDictionarySupertypeInference(t *testing.T) { name: "mixed simple values", code: `let x = {0: 0, 1: true}`, expectedKeyType: sema.IntType, - expectedValueType: sema.AnyStructType, + expectedValueType: sema.HashableStructType, }, { name: "signed integer values", @@ -1008,6 +1108,12 @@ func TestCheckDictionarySupertypeInference(t *testing.T) { Type: sema.StringType, }, }, + { + name: "int and string keys", + code: `let x = {0: 1, "hello": 2}`, + expectedKeyType: sema.HashableStructType, + expectedValueType: sema.IntType, + }, { name: "common interfaced values", code: ` @@ -1088,10 +1194,13 @@ func TestCheckDictionarySupertypeInference(t *testing.T) { }, }, { - name: "no supertype for inner keys", - code: `let x = {0: {10: 1, 20: 2}, 1: {"one": 1, "two": 2}}`, - expectedKeyType: sema.IntType, - expectedValueType: sema.AnyStructType, + name: "no supertype for inner keys", + code: `let x = {0: {10: 1, 20: 2}, 1: {"one": 1, "two": 2}}`, + expectedKeyType: sema.IntType, + expectedValueType: &sema.DictionaryType{ + KeyType: sema.HashableStructType, + ValueType: sema.IntType, + }, }, { name: "no supertype for inner keys with resource values", @@ -1100,8 +1209,15 @@ func TestCheckDictionarySupertypeInference(t *testing.T) { access(all) resource Foo {} `, - expectedKeyType: sema.IntType, - expectedValueType: sema.AnyResourceType, + expectedKeyType: sema.IntType, + expectedValueType: &sema.DictionaryType{ + KeyType: sema.HashableStructType, + ValueType: &sema.InterfaceType{ + Location: common.StringLocation("test"), + Identifier: "Foo", + CompositeKind: common.CompositeKindStructure, + }, + }, }, } @@ -1137,33 +1253,6 @@ func TestCheckDictionarySupertypeInference(t *testing.T) { assert.IsType(t, &sema.TypeAnnotationRequiredError{}, errs[0]) }) - t.Run("no supertype for keys", func(t *testing.T) { - t.Parallel() - - code := ` - let x = {1: 1, "two": 2} - ` - _, err := ParseAndCheck(t, code) - errs := RequireCheckerErrors(t, err, 1) - - assert.IsType(t, &sema.InvalidDictionaryKeyTypeError{}, errs[0]) - }) - - t.Run("unsupported supertype for keys", func(t *testing.T) { - t.Parallel() - - code := ` - let x = {0: 1, "hello": 2} - ` - _, err := ParseAndCheck(t, code) - errs := RequireCheckerErrors(t, err, 1) - - require.IsType(t, &sema.InvalidDictionaryKeyTypeError{}, errs[0]) - invalidKeyError := errs[0].(*sema.InvalidDictionaryKeyTypeError) - - assert.Equal(t, sema.AnyStructType, invalidKeyError.Type) - }) - t.Run("empty dictionary", func(t *testing.T) { t.Parallel() diff --git a/runtime/tests/checker/typeargument_test.go b/runtime/tests/checker/typeargument_test.go index c78ff6f160..c76d58eade 100644 --- a/runtime/tests/checker/typeargument_test.go +++ b/runtime/tests/checker/typeargument_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" ) func TestCheckTypeArguments(t *testing.T) { @@ -53,6 +55,32 @@ func TestCheckTypeArguments(t *testing.T) { require.Nil(t, capType.(*sema.CapabilityType).BorrowType) }) + t.Run("inclusive range, instantiation with more than arguments", func(t *testing.T) { + + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + _, err := ParseAndCheckWithOptions(t, + ` + let inclusiveRange: InclusiveRange = InclusiveRange(1, 10) + `, + ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + }, + ) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidTypeArgumentCountError{}, errs[0]) + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[1]) + }) + t.Run("capability, instantiation with no arguments", func(t *testing.T) { t.Parallel() @@ -132,6 +160,796 @@ func TestCheckTypeArguments(t *testing.T) { }) } +func TestCheckParameterizedTypeIsInstantiated(t *testing.T) { + + t.Parallel() + + test := func(t *testing.T, code string) error { + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + options := ParseAndCheckOptions{ + Config: &sema.Config{ + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + } + + _, err := ParseAndCheckWithOptions(t, code, options) + return err + } + + t.Run("InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let inclusiveRange: InclusiveRange = InclusiveRange(1, 10)", + ) + + require.NoError(t, err) + }) + + t.Run("InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let inclusiveRange: InclusiveRange = InclusiveRange(1, 10)", + ) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.InvalidTypeArgumentCountError{}, errs[0]) + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[1]) + }) + + t.Run("InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let inclusiveRange: InclusiveRange = InclusiveRange(1, 10)", + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("VariableSizedArray with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: [InclusiveRange] = []", + ) + + require.NoError(t, err) + }) + + t.Run("VariableSizedArray with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: [InclusiveRange] = []", + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("ConstantSizedType with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: [InclusiveRange; 2] = [InclusiveRange(1, 2), InclusiveRange(3, 4)]", + ) + + require.NoError(t, err) + }) + + t.Run("ConstantSizedType with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: [InclusiveRange; 2] = [InclusiveRange(1, 2), InclusiveRange(3, 4)]", + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("OptionalType with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: InclusiveRange? = nil", + ) + + require.NoError(t, err) + }) + + t.Run("OptionalType with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: InclusiveRange? = nil", + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("DictionaryType with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: {Int: InclusiveRange} = {}", + ) + + require.NoError(t, err) + }) + + t.Run("DictionaryType with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "let r: {Int: InclusiveRange} = {}", + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Struct with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct Foo { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Struct with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct Foo { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Nested Struct with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct Bar { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + + struct Foo { + let bar: Bar + + init(b : Bar) { + self.bar = b + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Nested Struct with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct Bar { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + + struct Foo { + let bar: Bar + + init(b : Bar) { + self.bar = b + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Contract with Struct with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + contract C { + struct Foo { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Contract with Struct with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + contract C { + struct Foo { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Struct with function returning InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct Bar { + let f: (fun(): InclusiveRange) + + init() { + self.f = fun(): InclusiveRange { + return InclusiveRange(1, 10) + } + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Struct with function returning InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct Bar { + let f: (fun(): InclusiveRange) + + init() { + self.f = fun(): InclusiveRange { + return InclusiveRange(1, 10) + } + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 2) + + // 2 errors for the two occurrences of InclusiveRange. + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[1]) + }) + + t.Run("StructInterface with function returning InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct interface Bar { + fun getRange(): InclusiveRange + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("StructInterface with function returning InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + struct interface Bar { + fun getRange(): InclusiveRange + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Resource with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + resource Foo { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Contract with StructInterface with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + contract C { + struct interface Foo { + fun getRange(): InclusiveRange + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Contract with StructInterface with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + contract C { + struct interface Foo { + fun getRange(): InclusiveRange + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Resource with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + resource Foo { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Nested Resource with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + resource Bar { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + + resource Foo { + let bar: @Bar + + init(b : @Bar) { + self.bar <- b + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Nested Resource with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + resource Bar { + let a: InclusiveRange + + init() { + self.a = InclusiveRange(1, 10) + } + } + + resource Foo { + let bar: @Bar + + init(b : @Bar) { + self.bar <- b + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("ResourceInterface with function returning InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + resource interface Bar { + fun getRange(): InclusiveRange + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("ResourceInterface with function returning InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + resource interface Bar { + fun getRange(): InclusiveRange + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Contract with ResourceInterface with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + contract C { + resource interface Foo { + fun getRange(): InclusiveRange + } + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Contract with ResourceInterface with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + contract C { + resource interface Foo { + fun getRange(): InclusiveRange + } + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Type with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + access(all) fun main(): Type { + return Type>() + } + `, + ) + + require.NoError(t, err) + }) + + t.Run("Type with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + access(all) fun main(): Type { + return Type() + } + `, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Event with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "event Foo(bar: InclusiveRange)", + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.InvalidEventParameterTypeError{}, errs[0]) + }) + + t.Run("Event with InclusiveRange", func(t *testing.T) { + + t.Parallel() + + err := test(t, + "event Foo(bar: InclusiveRange)", + ) + + errs := RequireCheckerErrors(t, err, 2) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + assert.IsType(t, &sema.InvalidEventParameterTypeError{}, errs[1]) + }) + + t.Run("Enum Declaration", func(t *testing.T) { + + t.Parallel() + + err := test(t, + ` + access(all) fun main(): Direction { + return Direction.RIGHT + } + + access(all) enum Direction: Int { + access(all) case UP + access(all) case DOWN + access(all) case LEFT + access(all) case RIGHT + } + `, + ) + + require.NoError(t, err) + }) + + testFunctionTpe := func(t *testing.T, functionType *sema.FunctionType) error { + baseTypeActivation := sema.NewVariableActivation(sema.BaseTypeActivation) + baseTypeActivation.DeclareType(stdlib.StandardLibraryType{ + Name: "TestFunc", + Kind: common.DeclarationKindType, + Type: functionType, + }) + + options := ParseAndCheckOptions{ + Config: &sema.Config{ + BaseTypeActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseTypeActivation + }, + }, + } + + _, err := ParseAndCheckWithOptions(t, "fun test(testFunc: TestFunc) {}", options) + return err + } + + t.Run("Function type, return type not instantiated", func(t *testing.T) { + + t.Parallel() + err := testFunctionTpe(t, + &sema.FunctionType{ + ReturnTypeAnnotation: sema.NewTypeAnnotation( + &sema.InclusiveRangeType{}, + ), + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Function type, return type instantiated", func(t *testing.T) { + + t.Parallel() + err := testFunctionTpe(t, + &sema.FunctionType{ + ReturnTypeAnnotation: sema.NewTypeAnnotation( + &sema.InclusiveRangeType{ + MemberType: sema.IntType, + }, + ), + }, + ) + + require.NoError(t, err) + }) + + t.Run("Function type, parameter type not instantiated", func(t *testing.T) { + + t.Parallel() + err := testFunctionTpe(t, + &sema.FunctionType{ + Parameters: []sema.Parameter{ + { + Identifier: "a", + TypeAnnotation: sema.NewTypeAnnotation( + &sema.InclusiveRangeType{}, + ), + }, + }, + ReturnTypeAnnotation: sema.VoidTypeAnnotation, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Function type, parameter type instantiated", func(t *testing.T) { + + t.Parallel() + err := testFunctionTpe(t, + &sema.FunctionType{ + Parameters: []sema.Parameter{ + { + Identifier: "a", + TypeAnnotation: sema.NewTypeAnnotation( + &sema.InclusiveRangeType{ + MemberType: sema.IntType, + }, + ), + }, + }, + ReturnTypeAnnotation: sema.VoidTypeAnnotation, + }, + ) + + require.NoError(t, err) + }) + + t.Run("Function type, type parameter type bound not instantiated", func(t *testing.T) { + + t.Parallel() + err := testFunctionTpe(t, + &sema.FunctionType{ + TypeParameters: []*sema.TypeParameter{ + { + Name: "T", + TypeBound: &sema.InclusiveRangeType{}, + }, + }, + ReturnTypeAnnotation: sema.VoidTypeAnnotation, + }, + ) + + errs := RequireCheckerErrors(t, err, 1) + + assert.IsType(t, &sema.MissingTypeArgumentError{}, errs[0]) + }) + + t.Run("Function type,type parameter type bound instantiated", func(t *testing.T) { + + t.Parallel() + err := testFunctionTpe(t, + &sema.FunctionType{ + TypeParameters: []*sema.TypeParameter{ + { + Name: "T", + TypeBound: &sema.InclusiveRangeType{ + MemberType: sema.IntType, + }, + }, + }, + ReturnTypeAnnotation: sema.VoidTypeAnnotation, + }, + ) + + require.NoError(t, err) + }) + +} + func TestCheckTypeArgumentSubtyping(t *testing.T) { t.Parallel() @@ -250,7 +1068,6 @@ func TestCheckTypeArgumentSubtyping(t *testing.T) { ) errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) @@ -293,7 +1110,6 @@ func TestCheckTypeArgumentSubtyping(t *testing.T) { ) errs := RequireCheckerErrors(t, err, 1) - assert.IsType(t, &sema.TypeMismatchError{}, errs[0]) }) } diff --git a/runtime/tests/checker/utils.go b/runtime/tests/checker/utils.go index 7d12072002..9849a13d66 100644 --- a/runtime/tests/checker/utils.go +++ b/runtime/tests/checker/utils.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/checker/utils_test.go b/runtime/tests/checker/utils_test.go index 5e49dc708d..d6ce4398d8 100644 --- a/runtime/tests/checker/utils_test.go +++ b/runtime/tests/checker/utils_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,7 +35,9 @@ func ParseAndCheckWithPanic(t *testing.T, code string) (*sema.Checker, error) { code, ParseAndCheckOptions{ Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -54,7 +56,9 @@ func ParseAndCheckWithAny(t *testing.T, code string) (*sema.Checker, error) { code, ParseAndCheckOptions{ Config: &sema.Config{ - BaseTypeActivation: baseTypeActivation, + BaseTypeActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseTypeActivation + }, }, }, ) diff --git a/runtime/tests/checker/while_test.go b/runtime/tests/checker/while_test.go index af7e2c3e47..cf3864ce6f 100644 --- a/runtime/tests/checker/while_test.go +++ b/runtime/tests/checker/while_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/errors_test.go b/runtime/tests/errors_test.go index 8539db090e..3fd9a588c7 100644 --- a/runtime/tests/errors_test.go +++ b/runtime/tests/errors_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/examples/examples.go b/runtime/tests/examples/examples.go index 855b9e5ccb..7a96b68337 100644 --- a/runtime/tests/examples/examples.go +++ b/runtime/tests/examples/examples.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/fuzz/crashers_test.go b/runtime/tests/fuzz/crashers_test.go index c24a5cff48..b52a889d73 100644 --- a/runtime/tests/fuzz/crashers_test.go +++ b/runtime/tests/fuzz/crashers_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/account_test.go b/runtime/tests/interpreter/account_test.go index 142eab408d..163dee590b 100644 --- a/runtime/tests/interpreter/account_test.go +++ b/runtime/tests/interpreter/account_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -373,6 +373,19 @@ func (t *testAccountHandler) GetAccountContractNames(address common.Address) ([] return t.getAccountContractNames(address) } +func (t *testAccountHandler) StartContractAddition(common.AddressLocation) { + // NO-OP +} + +func (t *testAccountHandler) EndContractAddition(common.AddressLocation) { + // NO-OP +} + +func (t *testAccountHandler) IsContractBeingAdded(common.AddressLocation) bool { + // NO-OP + return false +} + func testAccountWithErrorHandler( t *testing.T, address interpreter.AddressValue, @@ -397,6 +410,7 @@ func testAccountWithErrorHandler( interpreter.FullyEntitledAccountAccess, account, sema.AccountType, + interpreter.EmptyLocationRange, ), Kind: common.DeclarationKindConstant, } @@ -412,6 +426,7 @@ func testAccountWithErrorHandler( interpreter.UnauthorizedAccess, account, sema.AccountType, + interpreter.EmptyLocationRange, ), Kind: common.DeclarationKindConstant, } @@ -429,14 +444,17 @@ func testAccountWithErrorHandler( accountValueDeclaration.Name = "account" valueDeclarations = append(valueDeclarations, accountValueDeclaration) - if checkerConfig.BaseValueActivation == nil { - checkerConfig.BaseValueActivation = sema.BaseValueActivation - } - baseValueActivation := sema.NewVariableActivation(checkerConfig.BaseValueActivation) + valueDeclarations = append(valueDeclarations, stdlib.InclusiveRangeConstructorFunction) + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) for _, valueDeclaration := range valueDeclarations { baseValueActivation.DeclareValue(valueDeclaration) } - checkerConfig.BaseValueActivation = baseValueActivation + + require.Nil(t, checkerConfig.BaseValueActivationHandler) + checkerConfig.BaseValueActivationHandler = func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + } baseActivation := activations.NewActivation(nil, interpreter.BaseActivation) for _, valueDeclaration := range valueDeclarations { @@ -448,11 +466,12 @@ func testAccountWithErrorHandler( ParseCheckAndInterpretOptions{ CheckerConfig: &checkerConfig, Config: &interpreter.Config{ - BaseActivation: baseActivation, - ContractValueHandler: makeContractValueHandler(nil, nil, nil), - InvalidatedResourceValidationEnabled: true, - AccountHandler: func(address interpreter.AddressValue) interpreter.Value { - return stdlib.NewAccountValue(nil, nil, address) + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, + ContractValueHandler: makeContractValueHandler(nil, nil, nil), + AccountHandler: func(inter *interpreter.Interpreter, address interpreter.AddressValue) interpreter.Value { + return stdlib.NewAccountValue(inter, nil, address) }, }, HandleCheckerError: checkerErrorHandler, diff --git a/runtime/tests/interpreter/arithmetic_test.go b/runtime/tests/interpreter/arithmetic_test.go index d108ca90b1..c863831c59 100644 --- a/runtime/tests/interpreter/arithmetic_test.go +++ b/runtime/tests/interpreter/arithmetic_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func init() { for _, integerType := range sema.AllIntegerTypes { switch integerType { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -95,7 +95,7 @@ func TestInterpretPlusOperator(t *testing.T) { t, inter, value, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -124,7 +124,7 @@ func TestInterpretMinusOperator(t *testing.T) { t, inter, value, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -153,7 +153,7 @@ func TestInterpretMulOperator(t *testing.T) { t, inter, value, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -182,7 +182,7 @@ func TestInterpretDivOperator(t *testing.T) { t, inter, value, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -211,7 +211,7 @@ func TestInterpretModOperator(t *testing.T) { t, inter, value, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } diff --git a/runtime/tests/interpreter/array_test.go b/runtime/tests/interpreter/array_test.go index 88e65f20d9..2617403b0f 100644 --- a/runtime/tests/interpreter/array_test.go +++ b/runtime/tests/interpreter/array_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,8 @@ import ( "testing" "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/interpreter" ) func TestInterpretArrayFunctionEntitlements(t *testing.T) { @@ -132,3 +134,26 @@ func TestInterpretArrayFunctionEntitlements(t *testing.T) { require.NoError(t, err) }) } + +func TestCheckArrayReferenceTypeInferenceWithDowncasting(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement E + entitlement F + entitlement G + + fun test() { + let ef = &1 as auth(E, F) &Int + let eg = &1 as auth(E, G) &Int + let arr = [ef, eg] + let ref = arr[0] + let downcastRef = ref as! auth(E, F) &Int + } + + `) + + _, err := inter.Invoke("test") + require.ErrorAs(t, err, &interpreter.ForceCastTypeMismatchError{}) +} diff --git a/runtime/tests/interpreter/attachments_test.go b/runtime/tests/interpreter/attachments_test.go index 6d6d4ccc92..500699266b 100644 --- a/runtime/tests/interpreter/attachments_test.go +++ b/runtime/tests/interpreter/attachments_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright 2019-2022 Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import ( "testing" "github.com/onflow/cadence/runtime/activations" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" @@ -596,9 +597,6 @@ func TestInterpretNestedAttach(t *testing.T) { self.y <- y self.i = base.i } - destroy() { - destroy self.y - } } attachment B for Y { } fun test(): Int { @@ -638,9 +636,6 @@ func TestInterpretNestedAttachFunction(t *testing.T) { self.y <- y self.i = base.i } - destroy() { - destroy self.y - } } attachment B for Y { } fun foo(): @Y { @@ -1245,109 +1240,157 @@ func TestInterpretAttachmentDestructor(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var destructorRun = false - resource R {} + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource R { + event ResourceDestroyed() + } attachment A for R { - destroy() { - destructorRun = true - } + event ResourceDestroyed() } fun test() { let r <- create R() let r2 <- attach A() to <-r destroy r2 } - `) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func( + _ *interpreter.Interpreter, + _ interpreter.LocationRange, + event *interpreter.CompositeValue, + _ *sema.CompositeType, + ) error { + events = append(events, event) + return nil + }, + }, + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual(t, inter, interpreter.TrueValue, inter.Globals.Get("destructorRun").GetValue()) + require.Len(t, events, 2) + require.Equal(t, "A.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, "R.ResourceDestroyed", events[1].QualifiedIdentifier) }) t.Run("base destructor executed last", func(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var lastDestructorRun = "" + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` resource R { - destroy() { - lastDestructorRun = "R" - } + event ResourceDestroyed() } - attachment A for R { - destroy() { - lastDestructorRun = "A" - } + attachment A for R { + event ResourceDestroyed() } attachment B for R { - destroy() { - lastDestructorRun = "B" - } + event ResourceDestroyed() } attachment C for R { - destroy() { - lastDestructorRun = "C" - } + event ResourceDestroyed() } fun test() { let r <- create R() let r2 <- attach A() to <- attach B() to <- attach C() to <-r destroy r2 } - `) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func( + _ *interpreter.Interpreter, + _ interpreter.LocationRange, + event *interpreter.CompositeValue, + _ *sema.CompositeType, + ) error { + events = append(events, event) + return nil + }, + }, + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual(t, inter, interpreter.NewUnmeteredStringValue("R"), inter.Globals.Get("lastDestructorRun").GetValue()) + require.Len(t, events, 4) + // the only part of this order that is important is that `R` is last + require.Equal(t, "B.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, "C.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, "A.ResourceDestroyed", events[2].QualifiedIdentifier) + require.Equal(t, "R.ResourceDestroyed", events[3].QualifiedIdentifier) }) - t.Run("base destructor cannot add mutate attachments mid-destroy", func(t *testing.T) { + t.Run("remove runs destroy", func(t *testing.T) { - t.Parallel() + var events []*interpreter.CompositeValue - inter := parseCheckAndInterpret(t, ` + inter, err := parseCheckAndInterpretWithOptions(t, ` resource R { - fun foo() { - remove B from self - } - destroy() {} + event ResourceDestroyed() } attachment A for R { - destroy() { - - } + event ResourceDestroyed() } - attachment B for R { - destroy() {} - } - attachment C for R { - destroy() { - base.foo() - } - } - fun test() { + fun test(): @R { let r <- create R() - let r2 <- attach A() to <- attach B() to <- attach C() to <-r - destroy r2 + let r2 <- attach A() to <-r + remove A from r2 + return <-r2 } - `) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func( + _ *interpreter.Interpreter, + _ interpreter.LocationRange, + event *interpreter.CompositeValue, + _ *sema.CompositeType, + ) error { + events = append(events, event) + return nil + }, + }, + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") - require.ErrorAs(t, err, &interpreter.AttachmentIterationMutationError{}) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 1) + require.Equal(t, "A.ResourceDestroyed", events[0].QualifiedIdentifier) }) - t.Run("remove runs destroy", func(t *testing.T) { + t.Run("remove runs resource field destroy", func(t *testing.T) { - inter := parseCheckAndInterpret(t, ` - var destructorRun = false - resource R {} + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource R { + event ResourceDestroyed() + } + resource R2 { + event ResourceDestroyed() + } attachment A for R { - destroy() { - destructorRun = true + event ResourceDestroyed() + let r2: @R2 + init() { + self.r2 <- create R2() } } fun test(): @R { @@ -1356,31 +1399,51 @@ func TestInterpretAttachmentDestructor(t *testing.T) { remove A from r2 return <-r2 } - `) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func( + _ *interpreter.Interpreter, + _ interpreter.LocationRange, + event *interpreter.CompositeValue, + _ *sema.CompositeType, + ) error { + events = append(events, event) + return nil + }, + }, + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual(t, inter, interpreter.TrueValue, inter.Globals.Get("destructorRun").GetValue()) + require.Len(t, events, 2) + require.Equal(t, "R2.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, "A.ResourceDestroyed", events[1].QualifiedIdentifier) }) - t.Run("remove runs resource field destroy", func(t *testing.T) { + t.Run("nested attachments destroyed", func(t *testing.T) { - inter := parseCheckAndInterpret(t, ` - var destructorRun = false - resource R {} + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource R { + event ResourceDestroyed() + } resource R2 { - destroy() { - destructorRun = true - } + event ResourceDestroyed() + } + attachment B for R2 { + event ResourceDestroyed() } attachment A for R { + event ResourceDestroyed() let r2: @R2 init() { - self.r2 <- create R2() - } - destroy() { - destroy self.r2 + self.r2 <- attach B() to <-create R2() } } fun test(): @R { @@ -1389,46 +1452,93 @@ func TestInterpretAttachmentDestructor(t *testing.T) { remove A from r2 return <-r2 } - `) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func( + _ *interpreter.Interpreter, + _ interpreter.LocationRange, + event *interpreter.CompositeValue, + _ *sema.CompositeType, + ) error { + events = append(events, event) + return nil + }, + }, + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual(t, inter, interpreter.TrueValue, inter.Globals.Get("destructorRun").GetValue()) + require.Len(t, events, 3) + require.Equal(t, "B.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, "R2.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, "A.ResourceDestroyed", events[2].QualifiedIdentifier) }) - t.Run("nested attachments destroyed", func(t *testing.T) { + t.Run("attachment default args properly scoped", func(t *testing.T) { - inter := parseCheckAndInterpret(t, ` - var destructorRun = false - resource R {} - resource R2 {} - attachment B for R2 { - destroy() { - destructorRun = true + t.Parallel() + + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource R { + var foo: String + event ResourceDestroyed() + init() { + self.foo = "baz" + } + fun setFoo(arg: String) { + self.foo = arg } } attachment A for R { - let r2: @R2 + var bar: Int + event ResourceDestroyed(foo: String = base.foo, bar: Int = self.bar) init() { - self.r2 <- attach B() to <-create R2() + self.bar = 1 } - destroy() { - destroy self.r2 + fun setBar(arg: Int) { + self.bar = arg } } - fun test(): @R { + fun test() { let r <- create R() let r2 <- attach A() to <-r - remove A from r2 - return <-r2 + r2.setFoo(arg: "foo") + r2[A]!.setBar(arg: 2) + destroy r2 } - `) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func( + _ *interpreter.Interpreter, + _ interpreter.LocationRange, + event *interpreter.CompositeValue, + _ *sema.CompositeType, + ) error { + events = append(events, event) + return nil + }, + }, + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual(t, inter, interpreter.TrueValue, inter.Globals.Get("destructorRun").GetValue()) + require.Len(t, events, 2) + require.Equal(t, "A.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewUnmeteredStringValue("foo"), events[0].GetField(inter, interpreter.EmptyLocationRange, "foo")) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 2), events[0].GetField(inter, interpreter.EmptyLocationRange, "bar")) + require.Equal(t, "R.ResourceDestroyed", events[1].QualifiedIdentifier) }) } @@ -1507,7 +1617,7 @@ func TestInterpretAttachmentResourceReferenceInvalidation(t *testing.T) { }) _, err := inter.Invoke("test") - require.ErrorAs(t, err, &interpreter.DestroyedResourceError{}) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) }) t.Run("nested", func(t *testing.T) { @@ -1523,9 +1633,6 @@ func TestInterpretAttachmentResourceReferenceInvalidation(t *testing.T) { init(r: @R) { self.r <- r } - destroy() { - destroy self.r - } } attachment A for R { access(all) var id: UInt8 @@ -1621,9 +1728,6 @@ func TestInterpretAttachmentResourceReferenceInvalidation(t *testing.T) { init(r: @R) { self.r <- r } - destroy() { - destroy self.r - } } attachment A for R { fun foo(): Int { return 3 } @@ -1642,7 +1746,7 @@ func TestInterpretAttachmentResourceReferenceInvalidation(t *testing.T) { }) _, err := inter.Invoke("test") - require.ErrorAs(t, err, &interpreter.DestroyedResourceError{}) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) }) t.Run("self reference", func(t *testing.T) { @@ -1845,6 +1949,45 @@ func TestInterpretAttachmentDefensiveCheck(t *testing.T) { }) } +func TestInterpretAttachmentSelfAccessMembers(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R{ + access(all) fun baz() {} + } + access(all) attachment A for R{ + access(all) fun foo() {} + access(self) fun qux1() { + self.foo() + base.baz() + } + access(contract) fun qux2() { + self.foo() + base.baz() + } + access(account) fun qux3() { + self.foo() + base.baz() + } + access(all) fun bar() { + self.qux1() + self.qux2() + self.qux3() + } + } + + access(all) fun main() { + var r <- attach A() to <- create R() + r[A]!.bar() + destroy r + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) +} + func TestInterpretForEachAttachment(t *testing.T) { t.Parallel() @@ -1942,32 +2085,23 @@ func TestInterpretForEachAttachment(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` - entitlement E entitlement F - entitlement X entitlement Y - entitlement mapping M { - E -> F - } - entitlement mapping N { - X -> Y - } - entitlement mapping O { - E -> Y + struct S { + access(F, Y) fun foo() {} } - struct S {} - access(M) attachment A for S { + access(all) attachment A for S { access(F) fun foo(_ x: Int): Int { return 7 + x } } - access(N) attachment B for S { + access(all) attachment B for S { access(Y) fun foo(): Int { return 10 } } - access(O) attachment C for S { + access(all) attachment C for S { access(Y) fun foo(_ x: Int): Int { return 8 + x } } fun test(): Int { var s = attach C() to attach B() to attach A() to S() - let ref = &s as auth(E) &S + let ref = &s as auth(F, Y) &S var i = 0 ref.forEachAttachment(fun(attachmentRef: &AnyStructAttachment) { if let a = attachmentRef as? auth(F) &A { @@ -1989,6 +2123,49 @@ func TestInterpretForEachAttachment(t *testing.T) { AssertValuesEqual(t, inter, interpreter.NewUnmeteredIntValueFromInt64(0), value) }) + t.Run("bound function", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement F + + access(all) struct S { + access(F) let x: Int + init() { + self.x = 3 + } + } + access(all) attachment A for S { + access(F) var funcPtr: fun(): auth(F) ∬ + init() { + self.funcPtr = self.foo + } + access(F) fun foo(): auth(F) &Int { + return &base.x + } + } + fun test(): &Int { + let r = attach A() to S() + let rRef = &r as auth(F) &S + let a = rRef[A]! + let i = a.foo() + return i + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.IsType(t, &interpreter.EphemeralReferenceValue{}, value) + AssertValuesEqual( + t, + inter, + interpreter.NewUnmeteredIntValueFromInt64(3), + value.(*interpreter.EphemeralReferenceValue).Value, + ) + }) + t.Run("access fields", func(t *testing.T) { t.Parallel() @@ -2006,9 +2183,6 @@ func TestInterpretForEachAttachment(t *testing.T) { init(_ name: String) { self.r <- create Sub(name) } - destroy() { - destroy self.r - } } attachment B for R {} attachment C for R { @@ -2016,9 +2190,6 @@ func TestInterpretForEachAttachment(t *testing.T) { init(_ name: String) { self.r <- create Sub(name) } - destroy() { - destroy self.r - } } fun test(): String { var r <- attach C("World") to <- attach B() to <- attach A("Hello") to <- create R() @@ -2282,8 +2453,6 @@ func TestInterpretBuiltinCompositeAttachment(t *testing.T) { for _, valueDeclaration := range []stdlib.StandardLibraryValue{ stdlib.NewPublicKeyConstructor( assumeValidPublicKeyValidator{}, - nil, - nil, ), stdlib.SignatureAlgorithmConstructor, } { @@ -2310,11 +2479,15 @@ func TestInterpretBuiltinCompositeAttachment(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, - AttachmentsEnabled: true, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AttachmentsEnabled: true, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -2323,3 +2496,40 @@ func TestInterpretBuiltinCompositeAttachment(t *testing.T) { _, err = inter.Invoke("main") require.NoError(t, err) } + +func TestInterpretAttachmentSelfInvalidationInIteration(t *testing.T) { + t.Parallel() + + t.Run("with iteration", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R{ + init() {} + } + access(all) attachment A for R{ + access(all) fun zombieFunction() {} + } + + access(all) fun main() { + var r <- create R() + var r2 <- attach A() to <- r + var aRef: &A? = nil + r2.forEachAttachment(fun(a: &AnyResourceAttachment) { + aRef = (a as! &A) + }) + remove A from r2 + + // Should not succeed, the attachment pointed to by aRef was destroyed + aRef!.zombieFunction() + destroy r2 + } + `) + + _, err := inter.Invoke("main") + require.Error(t, err) + + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) +} diff --git a/runtime/tests/interpreter/bitwise_test.go b/runtime/tests/interpreter/bitwise_test.go index ad44a095ca..8c71f7fda5 100644 --- a/runtime/tests/interpreter/bitwise_test.go +++ b/runtime/tests/interpreter/bitwise_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -97,7 +97,7 @@ func init() { for _, integerType := range sema.AllIntegerTypes { switch integerType { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -130,7 +130,7 @@ func TestInterpretBitwiseOr(t *testing.T) { t, inter, valueFunc(0b00010101), - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -159,7 +159,7 @@ func TestInterpretBitwiseXor(t *testing.T) { t, inter, valueFunc(0b00000101), - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -188,7 +188,7 @@ func TestInterpretBitwiseAnd(t *testing.T) { t, inter, valueFunc(0b00010000), - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -217,7 +217,7 @@ func TestInterpretBitwiseLeftShift(t *testing.T) { t, inter, valueFunc(0b01100000), - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } @@ -246,7 +246,7 @@ func TestInterpretBitwiseRightShift(t *testing.T) { t, inter, valueFunc(0b00001100), - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) }) } diff --git a/runtime/tests/interpreter/builtinfunctions_test.go b/runtime/tests/interpreter/builtinfunctions_test.go index ffecb3e172..00baa3364b 100644 --- a/runtime/tests/interpreter/builtinfunctions_test.go +++ b/runtime/tests/interpreter/builtinfunctions_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,7 +54,7 @@ func TestInterpretToString(t *testing.T) { t, inter, interpreter.NewUnmeteredStringValue("42"), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -72,7 +72,7 @@ func TestInterpretToString(t *testing.T) { t, inter, interpreter.NewUnmeteredStringValue("0x0000000000000042"), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) @@ -108,7 +108,7 @@ func TestInterpretToString(t *testing.T) { t, inter, expected, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -146,7 +146,7 @@ func TestInterpretToBytes(t *testing.T) { interpreter.NewUnmeteredUInt8Value(0x34), interpreter.NewUnmeteredUInt8Value(0x56), ), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -559,7 +559,7 @@ func TestInterpretToBigEndianBytes(t *testing.T) { for _, integerType := range sema.AllNumberTypes { switch integerType { case sema.NumberType, sema.SignedNumberType, - sema.IntegerType, sema.SignedIntegerType, + sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType, sema.FixedPointType, sema.SignedFixedPointType: continue } @@ -588,7 +588,7 @@ func TestInterpretToBigEndianBytes(t *testing.T) { ), ) - result := inter.Globals.Get("result").GetValue() + result := inter.Globals.Get("result").GetValue(inter) AssertValuesEqual( t, @@ -894,7 +894,7 @@ func TestInterpretFromBigEndianBytes(t *testing.T) { for _, integerType := range sema.AllNumberTypes { switch integerType { case sema.NumberType, sema.SignedNumberType, - sema.IntegerType, sema.SignedIntegerType, + sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType, sema.FixedPointType, sema.SignedFixedPointType: continue } @@ -930,13 +930,13 @@ func TestInterpretFromBigEndianBytes(t *testing.T) { t, inter, expected, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("roundTripEqual").GetValue(), + inter.Globals.Get("roundTripEqual").GetValue(inter), ) }) } @@ -960,7 +960,7 @@ func TestInterpretFromBigEndianBytes(t *testing.T) { t, inter, interpreter.NilValue{}, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) } diff --git a/runtime/tests/interpreter/character_test.go b/runtime/tests/interpreter/character_test.go index e291629417..08eed89630 100644 --- a/runtime/tests/interpreter/character_test.go +++ b/runtime/tests/interpreter/character_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/composite_value_test.go b/runtime/tests/interpreter/composite_value_test.go index 97c824fd46..4a4bc949db 100644 --- a/runtime/tests/interpreter/composite_value_test.go +++ b/runtime/tests/interpreter/composite_value_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -56,14 +56,14 @@ func TestInterpretCompositeValue(t *testing.T) { t, inter, interpreter.NewUnmeteredStringValue("Apple"), - inter.Globals.Get("name").GetValue(), + inter.Globals.Get("name").GetValue(inter), ) RequireValuesEqual( t, inter, interpreter.NewUnmeteredStringValue("Red"), - inter.Globals.Get("color").GetValue(), + inter.Globals.Get("color").GetValue(inter), ) }) } @@ -145,8 +145,12 @@ func testCompositeValue(t *testing.T, code string) *interpreter.Interpreter { code, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, - BaseTypeActivation: baseTypeActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + BaseTypeActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseTypeActivation + }, CheckHandler: func(checker *sema.Checker, check func()) { if checker.Location == TestLocation { checker.Elaboration.SetCompositeType( @@ -158,8 +162,10 @@ func testCompositeValue(t *testing.T, code string) *interpreter.Interpreter { }, }, Config: &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -188,7 +194,17 @@ func TestInterpretContractTransfer(t *testing.T) { `, value, ) - inter, _ := testAccount(t, address, true, nil, code, sema.Config{}) + inter, _ := testAccountWithErrorHandler( + t, + address, + true, + nil, + code, + sema.Config{}, + func(err error) { + var invalidMoveError *sema.InvalidMoveError + require.ErrorAs(t, err, &invalidMoveError) + }) _, err := inter.Invoke("test") RequireError(t, err) diff --git a/runtime/tests/interpreter/condition_test.go b/runtime/tests/interpreter/condition_test.go index 41ed2f404d..0d17d9d275 100644 --- a/runtime/tests/interpreter/condition_test.go +++ b/runtime/tests/interpreter/condition_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -620,7 +620,7 @@ func TestInterpretInterfaceFunctionUseWithPreCondition(t *testing.T) { if compositeKind == common.CompositeKindContract { identifier = "TestImpl" } else { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" setupCode = fmt.Sprintf( `let test: %[1]s%[2]s %[3]s %[4]s TestImpl%[5]s`, @@ -835,11 +835,11 @@ func TestInterpretInitializerWithInterfacePreCondition(t *testing.T) { // use the contract singleton, so it is loaded testFunction = ` access(all) fun test() { - TestImpl + TestImpl.NoOpFunc() } ` } else { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" testFunction = fmt.Sprintf( @@ -878,6 +878,8 @@ func TestInterpretInitializerWithInterfacePreCondition(t *testing.T) { emit Foo(x: x) } } + + access(all) fun NoOpFunc() {} } %[2]s @@ -983,7 +985,7 @@ func TestInterpretInitializerWithInterfacePreCondition(t *testing.T) { } } -func TestInterpretResourceInterfaceInitializerAndDestructorPreConditions(t *testing.T) { +func TestInterpretResourceInterfaceInitializerPreConditions(t *testing.T) { t.Parallel() @@ -1004,13 +1006,6 @@ func TestInterpretResourceInterfaceInitializerAndDestructorPreConditions(t *test emit InitPre(x: x) } } - - destroy() { - pre { - self.x < 3: "invalid destroy" - emit DestroyPre(x: self.x) - } - } } resource R: RI { @@ -1062,30 +1057,6 @@ func TestInterpretResourceInterfaceInitializerAndDestructorPreConditions(t *test _, err := inter.Invoke("test", interpreter.NewUnmeteredIntValueFromInt64(2)) require.NoError(t, err) - require.Len(t, getEvents(), 2) - }) - - t.Run("3", func(t *testing.T) { - t.Parallel() - - inter, getEvents := newInterpreter(t) - _, err := inter.Invoke("test", interpreter.NewUnmeteredIntValueFromInt64(3)) - RequireError(t, err) - - require.IsType(t, - interpreter.Error{}, - err, - ) - interpreterErr := err.(interpreter.Error) - - require.IsType(t, - interpreter.ConditionError{}, - interpreterErr.Err, - ) - conditionError := interpreterErr.Err.(interpreter.ConditionError) - - assert.Equal(t, "invalid destroy", conditionError.Message) - require.Len(t, getEvents(), 1) }) } @@ -1359,7 +1330,7 @@ func TestInterpretFunctionWithPostConditionAndResourceResult(t *testing.T) { valueDeclaration := stdlib.StandardLibraryValue{ Name: "check", Type: checkFunctionType, - Value: interpreter.NewHostFunctionValue( + Value: interpreter.NewStaticHostFunctionValue( nil, checkFunctionType, func(invocation interpreter.Invocation) interpreter.Value { @@ -1403,10 +1374,6 @@ func TestInterpretFunctionWithPostConditionAndResourceResult(t *testing.T) { check(r) return true } - - destroy() { - destroy self.resources - } } fun test(): Bool { @@ -1426,10 +1393,14 @@ func TestInterpretFunctionWithPostConditionAndResourceResult(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) diff --git a/runtime/tests/interpreter/container_mutation_test.go b/runtime/tests/interpreter/container_mutation_test.go index 904ff2ece3..cb3d6d42c1 100644 --- a/runtime/tests/interpreter/container_mutation_test.go +++ b/runtime/tests/interpreter/container_mutation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -261,7 +261,7 @@ func TestInterpetArrayMutation(t *testing.T) { // Check original array - namesVal := inter.Globals.Get("names").GetValue() + namesVal := inter.Globals.Get("names").GetValue(inter) require.IsType(t, &interpreter.ArrayValue{}, namesVal) namesValArray := namesVal.(*interpreter.ArrayValue) @@ -308,7 +308,7 @@ func TestInterpetArrayMutation(t *testing.T) { invoked := false - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "log", stdlib.LogFunctionType, "", @@ -336,10 +336,14 @@ func TestInterpetArrayMutation(t *testing.T) { }`, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -450,7 +454,7 @@ func TestInterpetArrayMutation(t *testing.T) { t.Parallel() - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "log", stdlib.LogFunctionType, "", @@ -475,10 +479,14 @@ func TestInterpetArrayMutation(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -698,7 +706,7 @@ func TestInterpretDictionaryMutation(t *testing.T) { invoked := false - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "log", stdlib.LogFunctionType, "", @@ -726,10 +734,14 @@ func TestInterpretDictionaryMutation(t *testing.T) { }`, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -840,7 +852,7 @@ func TestInterpretDictionaryMutation(t *testing.T) { t.Parallel() - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "log", stdlib.LogFunctionType, "", @@ -865,10 +877,14 @@ func TestInterpretDictionaryMutation(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -923,6 +939,7 @@ func TestInterpretDictionaryMutation(t *testing.T) { nil, interpreter.AddressValue{1}, interpreter.UnauthorizedAccess, + interpreter.EmptyLocationRange, ) _, err := inter.Invoke("test", owner) @@ -956,6 +973,133 @@ func TestInterpretContainerMutationAfterNilCoalescing(t *testing.T) { ) } +func TestInterpretContainerMutationWhileIterating(t *testing.T) { + + t.Run("array, append", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun test(): [String] { + let array: [String] = ["foo", "bar"] + + var i = 0 + for element in array { + if i == 0 { + array.append("baz") + } + array[i] = "hello" + i = i + 1 + } + + return array + } + `) + + _, err := inter.Invoke("test") + RequireError(t, err) + assert.ErrorAs(t, err, &interpreter.ContainerMutatedDuringIterationError{}) + }) + + t.Run("array, remove", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun test() { + let array: [String] = ["foo", "bar", "baz"] + + var i = 0 + for element in array { + if i == 0 { + array.remove(at: 1) + } + } + } + `) + + _, err := inter.Invoke("test") + RequireError(t, err) + assert.ErrorAs(t, err, &interpreter.ContainerMutatedDuringIterationError{}) + }) + + t.Run("dictionary, add", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun test(): {String: String} { + let dictionary: {String: String} = {"a": "foo", "b": "bar"} + + var i = 0 + dictionary.forEachKey(fun (key: String): Bool { + if i == 0 { + dictionary["c"] = "baz" + } + + dictionary[key] = "hello" + return true + }) + + return dictionary + } + `) + + _, err := inter.Invoke("test") + RequireError(t, err) + assert.ErrorAs(t, err, &interpreter.ContainerMutatedDuringIterationError{}) + }) + + t.Run("dictionary, remove", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun test(): {String: String} { + let dictionary: {String: String} = {"a": "foo", "b": "bar", "c": "baz"} + + var i = 0 + dictionary.forEachKey(fun (key: String): Bool { + if i == 0 { + dictionary.remove(key: "b") + } + return true + }) + + return dictionary + } + `) + + _, err := inter.Invoke("test") + RequireError(t, err) + assert.ErrorAs(t, err, &interpreter.ContainerMutatedDuringIterationError{}) + }) + + t.Run("resource dictionary, remove", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource Foo {} + + fun test(): @{String: Foo} { + let dictionary: @{String: Foo} <- {"a": <- create Foo(), "b": <- create Foo(), "c": <- create Foo()} + + var dictionaryRef = &dictionary as auth(Mutate) &{String: Foo} + + var i = 0 + dictionary.forEachKey(fun (key: String): Bool { + if i == 0 { + destroy dictionaryRef.remove(key: "b") + } + return true + }) + + return <- dictionary + } + `) + + _, err := inter.Invoke("test") + RequireError(t, err) + assert.ErrorAs(t, err, &interpreter.ContainerMutatedDuringIterationError{}) + }) +} + func TestInterpretInnerContainerMutationWhileIteratingOuter(t *testing.T) { t.Parallel() diff --git a/runtime/tests/interpreter/contract_test.go b/runtime/tests/interpreter/contract_test.go index 720ce3e12a..f22f3ae89d 100644 --- a/runtime/tests/interpreter/contract_test.go +++ b/runtime/tests/interpreter/contract_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/declaration_test.go b/runtime/tests/interpreter/declaration_test.go index 3587912e75..3bc3cac4c4 100644 --- a/runtime/tests/interpreter/declaration_test.go +++ b/runtime/tests/interpreter/declaration_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/dictionary_test.go b/runtime/tests/interpreter/dictionary_test.go index 8186aae9ec..553844fdc8 100644 --- a/runtime/tests/interpreter/dictionary_test.go +++ b/runtime/tests/interpreter/dictionary_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/dynamic_casting_test.go b/runtime/tests/interpreter/dynamic_casting_test.go index 71c581cab2..933e4f12f8 100644 --- a/runtime/tests/interpreter/dynamic_casting_test.go +++ b/runtime/tests/interpreter/dynamic_casting_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -113,14 +113,14 @@ func TestInterpretDynamicCastingNumber(t *testing.T) { t, inter, test.expected, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, test.expected, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( @@ -129,7 +129,7 @@ func TestInterpretDynamicCastingNumber(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( test.expected, ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) }) } @@ -219,7 +219,7 @@ func TestInterpretDynamicCastingVoid(t *testing.T) { t, inter, interpreter.Void, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( @@ -228,7 +228,7 @@ func TestInterpretDynamicCastingVoid(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.Void, ), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -313,7 +313,7 @@ func TestInterpretDynamicCastingString(t *testing.T) { t, inter, interpreter.NewUnmeteredStringValue("test"), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( @@ -322,7 +322,7 @@ func TestInterpretDynamicCastingString(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("test"), ), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -406,7 +406,7 @@ func TestInterpretDynamicCastingBool(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( @@ -415,7 +415,7 @@ func TestInterpretDynamicCastingBool(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.TrueValue, ), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -503,7 +503,7 @@ func TestInterpretDynamicCastingAddress(t *testing.T) { t, inter, addressValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( @@ -512,7 +512,7 @@ func TestInterpretDynamicCastingAddress(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( addressValue, ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) }) } @@ -597,17 +597,17 @@ func TestInterpretDynamicCastingStruct(t *testing.T) { assert.IsType(t, &interpreter.CompositeValue{}, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) require.IsType(t, &interpreter.SomeValue{}, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) require.IsType(t, &interpreter.CompositeValue{}, - inter.Globals.Get("y").GetValue().(*interpreter.SomeValue). + inter.Globals.Get("y").GetValue(inter).(*interpreter.SomeValue). InnerValue(inter, interpreter.EmptyLocationRange), ) }) @@ -1100,7 +1100,7 @@ func TestInterpretDynamicCastingSome(t *testing.T) { t, inter, expectedValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) if targetType == sema.AnyStructType && !returnsOptional { @@ -1109,7 +1109,7 @@ func TestInterpretDynamicCastingSome(t *testing.T) { t, inter, expectedValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } else { @@ -1119,7 +1119,7 @@ func TestInterpretDynamicCastingSome(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( expectedValue, ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -1206,7 +1206,7 @@ func TestInterpretDynamicCastingArray(t *testing.T) { interpreter.NewUnmeteredIntValueFromInt64(42), } - yValue := inter.Globals.Get("y").GetValue() + yValue := inter.Globals.Get("y").GetValue(inter) require.IsType(t, yValue, &interpreter.ArrayValue{}) yArray := yValue.(*interpreter.ArrayValue) @@ -1217,7 +1217,7 @@ func TestInterpretDynamicCastingArray(t *testing.T) { ArrayElements(inter, yArray), ) - zValue := inter.Globals.Get("z").GetValue() + zValue := inter.Globals.Get("z").GetValue(inter) require.IsType(t, zValue, &interpreter.SomeValue{}) zSome := zValue.(*interpreter.SomeValue) @@ -1377,7 +1377,7 @@ func TestInterpretDynamicCastingDictionary(t *testing.T) { t, inter, expectedDictionary, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( @@ -1386,7 +1386,7 @@ func TestInterpretDynamicCastingDictionary(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( expectedDictionary, ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) }) } @@ -1467,6 +1467,68 @@ func TestInterpretDynamicCastingDictionary(t *testing.T) { } } +func TestInterpretDynamicCastingInclusiveRange(t *testing.T) { + + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + baseActivation := activations.NewActivation(nil, interpreter.BaseActivation) + interpreter.Declare(baseActivation, stdlib.InclusiveRangeConstructorFunction) + + options := ParseCheckAndInterpretOptions{ + CheckerConfig: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + Config: &interpreter.Config{ + BaseActivationHandler: func(common.Location) *interpreter.VariableActivation { + return baseActivation + }, + }, + } + + for operation, returnsOptional := range dynamicCastingOperations { + + t.Run(operation.Symbol(), func(t *testing.T) { + t.Run("invalid cast", func(t *testing.T) { + + inter, err := parseCheckAndInterpretWithOptions(t, + fmt.Sprintf( + ` + fun test(): InclusiveRange? { + let x: InclusiveRange = InclusiveRange(10, 20) + return x %s InclusiveRange + } + `, + operation.Symbol(), + ), + options, + ) + require.NoError(t, err) + + result, err := inter.Invoke("test") + + if returnsOptional { + require.NoError(t, err) + AssertValuesEqual( + t, + inter, + interpreter.Nil, + result, + ) + } else { + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.ForceCastTypeMismatchError{}) + } + }) + }) + } +} + func TestInterpretDynamicCastingResourceType(t *testing.T) { t.Parallel() @@ -3326,7 +3388,7 @@ func TestInterpretDynamicCastingCapability(t *testing.T) { test := func( name string, - newCapabilityValue func(borrowType interpreter.StaticType) *interpreter.CapabilityValue, + newCapabilityValue func(borrowType interpreter.StaticType) *interpreter.IDCapabilityValue, ) { t.Run(name, func(t *testing.T) { t.Parallel() @@ -3384,10 +3446,14 @@ func TestInterpretDynamicCastingCapability(t *testing.T) { options := ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, } @@ -3419,7 +3485,7 @@ func TestInterpretDynamicCastingCapability(t *testing.T) { t, inter, capabilityValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( @@ -3428,7 +3494,7 @@ func TestInterpretDynamicCastingCapability(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( capabilityValue, ), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -3483,7 +3549,7 @@ func TestInterpretDynamicCastingCapability(t *testing.T) { } test("capability", - func(borrowType interpreter.StaticType) *interpreter.CapabilityValue { + func(borrowType interpreter.StaticType) *interpreter.IDCapabilityValue { return interpreter.NewUnmeteredCapabilityValue( 4, interpreter.AddressValue{}, @@ -3493,7 +3559,7 @@ func TestInterpretDynamicCastingCapability(t *testing.T) { ) } -func TestInterpretResourceConstructorCast(t *testing.T) { +func TestInterpretDynamicCastingResourceConstructor(t *testing.T) { t.Parallel() @@ -3520,7 +3586,7 @@ func TestInterpretResourceConstructorCast(t *testing.T) { } } -func TestInterpretFunctionTypeCasting(t *testing.T) { +func TestInterpretDynamicCastingFunctionType(t *testing.T) { t.Parallel() @@ -3647,11 +3713,32 @@ func TestInterpretFunctionTypeCasting(t *testing.T) { }) } -func TestInterpretReferenceCasting(t *testing.T) { +func TestInterpretDynamicCastingReferenceCasting(t *testing.T) { t.Parallel() - t.Run("array", func(t *testing.T) { + t.Run("top-level", func(t *testing.T) { + t.Parallel() + + code := ` + fun test() { + let x = bar() + let y = &x as &AnyStruct + let z = y as! &{foo} + } + + struct interface foo {} + + struct bar: foo {} + ` + + inter := parseCheckAndInterpret(t, code) + + _, err := inter.Invoke("test") + require.NoError(t, err) + }) + + t.Run("nested in array", func(t *testing.T) { t.Parallel() code := ` @@ -3674,7 +3761,7 @@ func TestInterpretReferenceCasting(t *testing.T) { assert.ErrorAs(t, err, &interpreter.ForceCastTypeMismatchError{}) }) - t.Run("dictionary", func(t *testing.T) { + t.Run("nested in dictionary", func(t *testing.T) { t.Parallel() code := ` @@ -3696,4 +3783,90 @@ func TestInterpretReferenceCasting(t *testing.T) { assert.ErrorAs(t, err, &interpreter.ForceCastTypeMismatchError{}) }) + + t.Run("use of storage reference", func(t *testing.T) { + + t.Parallel() + + type testCase struct { + operation ast.Operation + returnsOptional bool + } + + test := func(testCase testCase) { + + t.Run(testCase.operation.Symbol(), func(t *testing.T) { + t.Parallel() + + address := interpreter.NewUnmeteredAddressValueFromBytes([]byte{42}) + + memberAccessOperation := "." + if testCase.returnsOptional { + memberAccessOperation = "?." + } + + inter, _ := testAccount( + t, + address, + true, + nil, + fmt.Sprintf( + ` + resource FakeArray { + fun reverse(): @[AnyResource] { + return <- [] + } + } + + fun test() { + account.storage.save(<-create FakeArray(), to: /storage/flipflop) + + // Instead of borrowing as FakeArray, borrow as AnyResource + let ref = account.storage.borrow<&AnyResource>(from: /storage/flipflop)! + + // NOTE: dynamically cast. This succeeds as expected + let ref2 = ref %s &FakeArray + + // replace fake array with proper array + destroy <- account.storage.load<@FakeArray>(from: /storage/flipflop) + account.storage.save(<- ([] as @[AnyResource]), to: /storage/flipflop) + + // NOTE: USE the casted array. the dereference SHOULD FAIL + let reversed <- ref2%sreverse() + destroy reversed + } + `, + testCase.operation.Symbol(), + memberAccessOperation, + ), + sema.Config{}, + ) + + _, err := inter.Invoke("test") + RequireError(t, err) + + // StorageReferenceValue.ReferencedValue turns the ForceCastTypeMismatchError + // of the failed dereference into a DereferenceError + var dereferenceError interpreter.DereferenceError + require.ErrorAs(t, err, &dereferenceError) + + assert.Equal(t, 22, dereferenceError.LocationRange.StartPosition().Line) + }) + } + + testCases := []testCase{ + { + operation: ast.OperationForceCast, + returnsOptional: false, + }, + { + operation: ast.OperationFailableCast, + returnsOptional: true, + }, + } + + for _, testCase := range testCases { + test(testCase) + } + }) } diff --git a/runtime/tests/interpreter/entitlements_test.go b/runtime/tests/interpreter/entitlements_test.go index 42e7c57f60..a7a88d0aba 100644 --- a/runtime/tests/interpreter/entitlements_test.go +++ b/runtime/tests/interpreter/entitlements_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1124,7 +1124,7 @@ func TestInterpretEntitlementMappingFields(t *testing.T) { X -> Y } struct S { - access(M) let foo: auth(M) &Int + access(mapping M) let foo: auth(mapping M) &Int init() { self.foo = &2 as auth(Y) &Int } @@ -1174,7 +1174,7 @@ func TestInterpretEntitlementMappingFields(t *testing.T) { E -> F } struct S { - access(M) let foo: auth(M) &Int + access(mapping M) let foo: auth(mapping M) &Int init() { self.foo = &3 as auth(F, Y) &Int } @@ -1225,7 +1225,7 @@ func TestInterpretEntitlementMappingFields(t *testing.T) { E -> F } struct S { - access(M) let foo: auth(M) &Int + access(mapping M) let foo: auth(mapping M) &Int init() { self.foo = &3 as auth(F, Y) &Int } @@ -1275,7 +1275,7 @@ func TestInterpretEntitlementMappingFields(t *testing.T) { E -> F } struct S { - access(M) let foo: auth(M) &Int + access(mapping M) let foo: auth(mapping M) &Int init() { self.foo = &3 as auth(F, Y) &Int } @@ -1325,7 +1325,7 @@ func TestInterpretEntitlementMappingFields(t *testing.T) { E -> F } struct S { - access(M) let foo: auth(M) &Int + access(mapping M) let foo: auth(mapping M) &Int init() { self.foo = &3 as auth(F, Y, Q) &Int } @@ -1374,7 +1374,7 @@ func TestInterpretEntitlementMappingFields(t *testing.T) { E -> F } struct S { - access(M) let foo: auth(M) &Int + access(mapping M) let foo: auth(mapping M) &Int init() { self.foo = &3 as auth(F, Y) &Int } @@ -1427,8 +1427,8 @@ func TestInterpretEntitlementMappingFields(t *testing.T) { } struct S { access(self) let myFoo: Int - access(M) fun foo(): auth(M) &Int { - return &self.myFoo as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &self.myFoo as auth(mapping M) &Int } init() { self.myFoo = 3 @@ -1484,8 +1484,8 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { X -> Y } struct S { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } fun test(): auth(Y) &Int { @@ -1522,7 +1522,7 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { X -> Y } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &1 as auth(Y, Z) &Int } } @@ -1557,8 +1557,8 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { X -> Z } struct S { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } fun test(): auth(Y, Z) &Int { @@ -1596,8 +1596,8 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { X -> Z } struct S { - access(M) fun foo(): auth(M) &Int { - return &1 as auth(M) &Int + access(mapping M) fun foo(): auth(mapping M) &Int { + return &1 as auth(mapping M) &Int } } fun test(): auth(Y, Z) &Int { @@ -1636,10 +1636,10 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { E -> F } struct S { - access(M) fun foo(): auth(M) &Int? { + access(mapping M) fun foo(): auth(mapping M) &Int? { let ref = &1 as auth(F) &Int // here M is substituted for F, so this works - if let r = ref as? auth(M) &Int { + if let r = ref as? auth(mapping M) &Int { return r } else { return nil @@ -1682,10 +1682,10 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { E -> F } struct S { - access(M) fun foo(): auth(M) &Int? { + access(mapping M) fun foo(): auth(mapping M) &Int? { let ref = &1 as auth(F) &Int // here M is substituted for Y, so this fails - if let r = ref as? auth(M) &Int { + if let r = ref as? auth(mapping M) &Int { return r } else { return nil @@ -1724,9 +1724,9 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { E -> F } struct S { - access(M) fun foo(): auth(M) &Int? { + access(mapping M) fun foo(): auth(mapping M) &Int? { let x = [&1 as auth(Y) &Int] - let y = x as! [auth(M) &Int] + let y = x as! [auth(mapping M) &Int] return y[0] } } @@ -1761,9 +1761,9 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { E -> F } struct S { - access(M) fun foo(): auth(M) &Int? { + access(mapping M) fun foo(): auth(mapping M) &Int? { let x = [&1 as auth(Y) &Int] - let y = x as! [auth(M) &Int] + let y = x as! [auth(mapping M) &Int] return y[0] } } @@ -1794,9 +1794,9 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { E -> F } struct S { - access(M) fun foo(): auth(M) &Int? { + access(mapping M) fun foo(): auth(mapping M) &Int? { let ref = &1 as auth(F) &Int - if let r = ref as? auth(M) &Int { + if let r = ref as? auth(mapping M) &Int { return r } else { return nil @@ -1837,8 +1837,8 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { } } struct S { - access(M) let t: auth(M) &T - access(M) fun foo(): auth(M) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping M) fun foo(): auth(mapping M) &Int { // success because we have self is fully entitled to the domain of M return self.t.getRef() } @@ -1882,12 +1882,12 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { Y -> Z } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T + access(mapping M) let t: auth(mapping M) &T access(X) fun foo(): auth(Z) &Int { return self.t.getRef() } @@ -1934,13 +1934,13 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { X -> Z } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(): auth(mapping NM) &Int { return self.t.getRef() } init() { @@ -1989,13 +1989,13 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { X -> Z } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(): auth(mapping NM) &Int { return self.t.getRef() } init() { @@ -2046,13 +2046,13 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { A -> B } struct T { - access(N) fun getRef(): auth(N) &Int { - return &1 as auth(N) &Int + access(mapping N) fun getRef(): auth(mapping N) &Int { + return &1 as auth(mapping N) &Int } } struct S { - access(M) let t: auth(M) &T - access(NM) fun foo(): auth(NM) &Int { + access(mapping M) let t: auth(mapping M) &T + access(mapping NM) fun foo(): auth(mapping NM) &Int { return self.t.getRef() } init() { @@ -2079,6 +2079,83 @@ func TestInterpretEntitlementMappingAccessors(t *testing.T) { ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) }) + + t.Run("accessor function with mapped ref arg", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement E + entitlement F + entitlement G + entitlement H + entitlement mapping M { + E -> F + G -> H + } + struct S { + access(mapping M) fun foo(_ arg: auth(mapping M) &Int): auth(mapping M) &Int { + return arg + } + } + + fun test(): auth(F) &Int { + let s = S() + let sRef = &s as auth(E) &S + return sRef.foo(&1 as auth(F) &Int) + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.True( + t, + interpreter.NewEntitlementSetAuthorization( + nil, + func() []common.TypeID { return []common.TypeID{"S.test.F"} }, + 1, + sema.Conjunction, + ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), + ) + }) + + t.Run("accessor function with full mapped ref arg", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement E + entitlement F + entitlement G + entitlement H + entitlement mapping M { + E -> F + G -> H + } + struct S { + access(mapping M) fun foo(_ arg: auth(mapping M) &Int): auth(mapping M) &Int { + return arg + } + } + + fun test(): auth(F, H) &Int { + let s = S() + return s.foo(&1 as auth(F, H) &Int) + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.True( + t, + interpreter.NewEntitlementSetAuthorization( + nil, + func() []common.TypeID { return []common.TypeID{"S.test.F", "S.test.H"} }, + 2, + sema.Conjunction, + ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), + ) + }) } func TestInterpretEntitledAttachments(t *testing.T) { @@ -2089,15 +2166,12 @@ func TestInterpretEntitledAttachments(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` - entitlement X entitlement Y entitlement Z - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(Y, Z) fun foo() {} } - struct S {} - access(M) attachment A for S {} + access(all) attachment A for S {} fun test(): auth(Y, Z) &A { let s = attach A() to S() return s[A]! @@ -2123,20 +2197,17 @@ func TestInterpretEntitledAttachments(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` - entitlement X entitlement Y entitlement Z - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(Y | Z) fun foo() {} } - struct S {} - access(M) attachment A for S { - access(Y | Z) fun entitled(): auth(Y, Z) &A { + access(all) attachment A for S { + access(Y | Z) fun entitled(): auth(Y | Z) &A { return self } } - fun test(): auth(Y, Z) &A { + fun test(): auth(Y | Z) &A { let s = attach A() to S() return s[A]!.entitled() } @@ -2151,7 +2222,7 @@ func TestInterpretEntitledAttachments(t *testing.T) { nil, func() []common.TypeID { return []common.TypeID{"S.test.Y", "S.test.Z"} }, 2, - sema.Conjunction, + sema.Disjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) }) @@ -2161,20 +2232,17 @@ func TestInterpretEntitledAttachments(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` - entitlement X entitlement Y entitlement Z - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(Y | Z) fun foo() {} } - struct S {} - access(M) attachment A for S { - access(Y | Z) fun entitled(): &S { + access(all) attachment A for S { + access(Y | Z) fun entitled(): auth(Y | Z) &S { return base } } - fun test(): &S { + fun test(): auth(Y | Z) &S { let s = attach A() to S() return s[A]!.entitled() } @@ -2185,32 +2253,70 @@ func TestInterpretEntitledAttachments(t *testing.T) { require.True( t, - interpreter.UnauthorizedAccess.Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), + interpreter.NewEntitlementSetAuthorization( + nil, + func() []common.TypeID { return []common.TypeID{"S.test.Y", "S.test.Z"} }, + 2, + sema.Disjunction, + ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) }) - t.Run("basic call return authorized base", func(t *testing.T) { + t.Run("basic call unbound method", func(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` - entitlement X entitlement Y entitlement Z - entitlement mapping M { - X -> Y - X -> Z + struct S { + access(Y | Z) fun foo() {} + } + access(all) attachment A for S { + access(Y | Z) fun entitled(): auth(Y | Z) &A { + return self + } + } + fun test(): auth(Y | Z) &A { + let s = attach A() to S() + let foo = s[A]!.entitled + return foo() + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + require.True( + t, + interpreter.NewEntitlementSetAuthorization( + nil, + func() []common.TypeID { return []common.TypeID{"S.test.Y", "S.test.Z"} }, + 2, + sema.Disjunction, + ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), + ) + }) + + t.Run("basic call unbound method base", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement Y + entitlement Z + struct S { + access(Y | Z) fun foo() {} } - struct S {} - access(M) attachment A for S { - require entitlement X - access(Y | Z) fun entitled(): auth(X) &S { + access(all) attachment A for S { + access(Y | Z) fun entitled(): auth(Y | Z) &S { return base } } - fun test(): auth(X) &S { - let s = attach A() to S() with (X) - return s[A]!.entitled() + fun test(): auth(Y | Z) &S { + let s = attach A() to S() + let foo = s[A]!.entitled + return foo() } `) @@ -2221,9 +2327,9 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.X"} }, - 1, - sema.Conjunction, + func() []common.TypeID { return []common.TypeID{"S.test.Y", "S.test.Z"} }, + 2, + sema.Disjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) }) @@ -2234,21 +2340,13 @@ func TestInterpretEntitledAttachments(t *testing.T) { inter := parseCheckAndInterpret(t, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + struct S { + access(X, E, G) fun foo() {} } - struct S {} - access(M) attachment A for S {} - fun test(): auth(F, G) &A { + access(all) attachment A for S {} + fun test(): auth(E) &A { let s = attach A() to S() let ref = &s as auth(E) &S return ref[A]! @@ -2262,8 +2360,8 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.F", "S.test.G"} }, - 2, + func() []common.TypeID { return []common.TypeID{"S.test.E"} }, + 1, sema.Conjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) @@ -2275,25 +2373,17 @@ func TestInterpretEntitledAttachments(t *testing.T) { inter := parseCheckAndInterpret(t, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + struct S { + access(X, E, G) fun foo() {} } - struct S {} - access(M) attachment A for S { - access(F | Z) fun entitled(): auth(Y, Z, F, G) &A { + access(all) attachment A for S { + access(E | G) fun entitled(): auth(E | G) &A { return self } } - fun test(): auth(Y, Z, F, G) &A { + fun test(): auth(E | G) &A { let s = attach A() to S() let ref = &s as auth(E) &S return ref[A]!.entitled() @@ -2307,40 +2397,32 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.F", "S.test.G", "S.test.Y", "S.test.Z"} }, - 4, - sema.Conjunction, + func() []common.TypeID { return []common.TypeID{"S.test.E", "S.test.G"} }, + 2, + sema.Disjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) }) - t.Run("basic ref call return base", func(t *testing.T) { + t.Run("basic ref call conjunction", func(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + struct S { + access(X, E, G) fun foo() {} } - struct S {} - access(M) attachment A for S { - access(F | Z) fun entitled(): &S { - return base + access(all) attachment A for S { + access(E) fun entitled(): auth(E) &A { + return self } } - fun test(): &S { + fun test(): auth(E) &A { let s = attach A() to S() - let ref = &s as auth(E) &S + let ref = &s as auth(E, G) &S return ref[A]!.entitled() } `) @@ -2350,37 +2432,33 @@ func TestInterpretEntitledAttachments(t *testing.T) { require.True( t, - interpreter.UnauthorizedAccess.Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), + interpreter.NewEntitlementSetAuthorization( + nil, + func() []common.TypeID { return []common.TypeID{"S.test.E"} }, + 1, + sema.Conjunction, + ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) }) - t.Run("basic ref call return entitled base", func(t *testing.T) { + t.Run("basic ref call return base", func(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + struct S { + access(X, E, G) fun foo() {} } - struct S {} - access(M) attachment A for S { - require entitlement E - access(F | Z) fun entitled(): auth(E) &S { + access(all) attachment A for S { + access(X | E) fun entitled(): auth(X | E) &S { return base } } - fun test(): auth(E) &S { - let s = attach A() to S() with(E) + fun test(): auth(X | E) &S { + let s = attach A() to S() let ref = &s as auth(E) &S return ref[A]!.entitled() } @@ -2393,9 +2471,9 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.E"} }, - 1, - sema.Conjunction, + func() []common.TypeID { return []common.TypeID{"S.test.E", "S.test.X"} }, + 2, + sema.Disjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) }) @@ -2406,24 +2484,18 @@ func TestInterpretEntitledAttachments(t *testing.T) { inter := parseCheckAndInterpret(t, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + struct S: I { + access(X, E, G) fun foo() {} + } + struct interface I { + access(X, E, G) fun foo() } - struct S: I {} - struct interface I {} - access(M) attachment A for I {} - fun test(): auth(F, G) &A { + access(all) attachment A for I {} + fun test(): auth(G) &A { let s = attach A() to S() - let ref = &s as auth(E) &{I} + let ref = &s as auth(G) &{I} return ref[A]! } `) @@ -2435,8 +2507,8 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.F", "S.test.G"} }, - 2, + func() []common.TypeID { return []common.TypeID{"S.test.G"} }, + 1, sema.Conjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) @@ -2450,21 +2522,13 @@ func TestInterpretEntitledAttachments(t *testing.T) { inter, _ := testAccount(t, address, true, nil, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + resource R { + access(X, E, G) fun foo() {} } - resource R {} - access(M) attachment A for R {} - fun test(): auth(F, G) &A { + access(all) attachment A for R {} + fun test(): auth(E) &A { let r <- attach A() to <-create R() account.storage.save(<-r, to: /storage/foo) let ref = account.storage.borrow(from: /storage/foo)! @@ -2481,8 +2545,8 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.F", "S.test.G"} }, - 2, + func() []common.TypeID { return []common.TypeID{"S.test.E"} }, + 1, sema.Conjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) @@ -2496,28 +2560,20 @@ func TestInterpretEntitledAttachments(t *testing.T) { inter, _ := testAccount(t, address, true, nil, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + resource R { + access(X, E, G) fun foo() {} } - resource R {} - access(M) attachment A for R { - access(F | Z) fun entitled(): auth(F, G, Y, Z) &A { + access(all) attachment A for R { + access(X, E) fun entitled(): auth(X, E) &A { return self } } - fun test(): auth(F, G, Y, Z) &A { + fun test(): auth(X, E) &A { let r <- attach A() to <-create R() account.storage.save(<-r, to: /storage/foo) - let ref = account.storage.borrow(from: /storage/foo)! + let ref = account.storage.borrow(from: /storage/foo)! return ref[A]!.entitled() } `, sema.Config{ @@ -2531,8 +2587,8 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.F", "S.test.G", "S.test.Y", "S.test.Z"} }, - 4, + func() []common.TypeID { return []common.TypeID{"S.test.X", "S.test.E"} }, + 2, sema.Conjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), ) @@ -2546,29 +2602,20 @@ func TestInterpretEntitledAttachments(t *testing.T) { inter, _ := testAccount(t, address, true, nil, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + resource R { + access(X, E, G) fun foo() {} } - resource R {} - access(M) attachment A for R { - require entitlement X - access(F | Z) fun entitled(): auth(X) &R { + access(all) attachment A for R { + access(X) fun entitled(): auth(X) &R { return base } } fun test(): auth(X) &R { - let r <- attach A() to <-create R() with (X) + let r <- attach A() to <-create R() account.storage.save(<-r, to: /storage/foo) - let ref = account.storage.borrow(from: /storage/foo)! + let ref = account.storage.borrow(from: /storage/foo)! return ref[A]!.entitled() } `, sema.Config{ @@ -2589,39 +2636,25 @@ func TestInterpretEntitledAttachments(t *testing.T) { ) }) - t.Run("fully entitled in init and destroy", func(t *testing.T) { + t.Run("fully entitled in init", func(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` entitlement X - entitlement Y - entitlement Z entitlement E - entitlement F entitlement G - entitlement mapping M { - X -> Y - X -> Z - E -> F - X -> F - E -> G + resource R { + access(X, E, G) fun foo() {} } - resource R {} - access(M) attachment A for R { - require entitlement E - require entitlement X + access(all) attachment A for R { init() { - let x = self as! auth(Y, Z, F, G) &A - let y = base as! auth(X, E) &R - } - destroy() { - let x = self as! auth(Y, Z, F, G) &A - let y = base as! auth(X, E) &R + let x = self as! auth(X, E, G) &A + let y = base as! auth(X, E, G) &R } } fun test() { - let r <- attach A() to <-create R() with (E, X) + let r <- attach A() to <-create R() destroy r } `) @@ -2630,28 +2663,20 @@ func TestInterpretEntitledAttachments(t *testing.T) { require.NoError(t, err) }) - t.Run("composed mapped attachment access", func(t *testing.T) { + t.Run("composed attachment access", func(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` - entitlement X - entitlement Y entitlement Z - entitlement E - entitlement F - entitlement G - entitlement mapping M { - X -> Y - E -> F + entitlement Y + struct S { + access(Y) fun foo() {} } - entitlement mapping N { - Z -> X - G -> F + struct T { + access(Z) fun foo() {} } - struct S {} - struct T {} - access(M) attachment A for S { + access(all) attachment A for S { access(self) let t: T init(t: T) { self.t = t @@ -2660,10 +2685,10 @@ func TestInterpretEntitledAttachments(t *testing.T) { return &self.t as auth(Z) &T } } - access(N) attachment B for T {} - fun test(): auth(X) &B { + access(all) attachment B for T {} + fun test(): auth(Z) &B { let s = attach A(t: attach B() to T()) to S() - let ref = &s as auth(X) &S + let ref = &s as auth(Y) &S return ref[A]!.getT()[B]! } `) @@ -2675,7 +2700,7 @@ func TestInterpretEntitledAttachments(t *testing.T) { t, interpreter.NewEntitlementSetAuthorization( nil, - func() []common.TypeID { return []common.TypeID{"S.test.X"} }, + func() []common.TypeID { return []common.TypeID{"S.test.Z"} }, 1, sema.Conjunction, ).Equal(value.(*interpreter.EphemeralReferenceValue).Authorization), @@ -2695,9 +2720,9 @@ func TestInterpretEntitledAttachments(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &AnyStruct { + access(mapping M) fun foo(): auth(mapping M) &AnyStruct { let a: AnyStruct = "hello" - return &a as auth(M) &AnyStruct + return &a as auth(mapping M) &AnyStruct } } @@ -2863,9 +2888,9 @@ func TestInterpretIdentityMapping(t *testing.T) { inter := parseCheckAndInterpret(t, ` struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct + return &a as auth(mapping Identity) &AnyStruct } } @@ -2886,9 +2911,9 @@ func TestInterpretIdentityMapping(t *testing.T) { inter := parseCheckAndInterpret(t, ` struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct + return &a as auth(mapping Identity) &AnyStruct } } @@ -2911,9 +2936,9 @@ func TestInterpretIdentityMapping(t *testing.T) { inter := parseCheckAndInterpret(t, ` struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct + return &a as auth(mapping Identity) &AnyStruct } } @@ -2940,9 +2965,9 @@ func TestInterpretIdentityMapping(t *testing.T) { inter := parseCheckAndInterpret(t, ` struct S { - access(Identity) fun foo(): auth(Identity) &AnyStruct { + access(mapping Identity) fun foo(): auth(mapping Identity) &AnyStruct { let a: AnyStruct = "hello" - return &a as auth(Identity) &AnyStruct + return &a as auth(mapping Identity) &AnyStruct } } @@ -2980,26 +3005,26 @@ func TestInterpretIdentityMapping(t *testing.T) { struct Y { // Reference - access(Identity) var x1: auth(Identity) &X + access(mapping Identity) var x1: auth(mapping Identity) &X // Optional reference - access(Identity) var x2: auth(Identity) &X? + access(mapping Identity) var x2: auth(mapping Identity) &X? // Function returning a reference - access(Identity) fun getX(): auth(Identity) &X { + access(mapping Identity) fun getX(): auth(mapping Identity) &X { let x = X() - return &x as auth(Identity) &X + return &x as auth(mapping Identity) &X } // Function returning an optional reference - access(Identity) fun getOptionalX(): auth(Identity) &X? { + access(mapping Identity) fun getOptionalX(): auth(mapping Identity) &X? { let x: X? = X() - return &x as auth(Identity) &X? + return &x as auth(mapping Identity) &X? } init() { let x = X() - self.x1 = &x as auth(A, B, C) &X + self.x1 = &x self.x2 = nil } } @@ -3022,7 +3047,7 @@ func TestInterpretIdentityMapping(t *testing.T) { }) } -func TestInterpretMappingInclude(t *testing.T) { +func NoTestInterpretMappingInclude(t *testing.T) { t.Parallel() @@ -3039,7 +3064,7 @@ func TestInterpretMappingInclude(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -3083,7 +3108,7 @@ func TestInterpretMappingInclude(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -3133,7 +3158,7 @@ func TestInterpretMappingInclude(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -3189,7 +3214,7 @@ func TestInterpretMappingInclude(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -3249,7 +3274,7 @@ func TestInterpretMappingInclude(t *testing.T) { } struct S { - access(M) fun foo(): auth(M) &Int { + access(mapping M) fun foo(): auth(mapping M) &Int { return &3 } } @@ -3280,3 +3305,143 @@ func TestInterpretMappingInclude(t *testing.T) { ) }) } + +func TestInterpretEntitlementMappingComplexFields(t *testing.T) { + t.Parallel() + + t.Run("array field", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 + + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } + } + + struct Carrier { + access(mapping MyMap) let arr: [auth(mapping MyMap) &InnerObj] + init() { + self.arr = [&InnerObj()] + } + } + + fun test(): Int { + let x = Carrier().arr[0] + return x.first() + x.second() + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewUnmeteredIntValueFromInt64(9999+8888), + value, + ) + }) + + t.Run("dictionary field", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 + + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } + } + + struct Carrier { + access(mapping MyMap) let dict: {String: auth(mapping MyMap) &InnerObj} + init() { + self.dict = {"": &InnerObj()} + } + } + + fun test(): Int { + let x = Carrier().dict[""]! + return x.first() + x.second() + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewUnmeteredIntValueFromInt64(9999+8888), + value, + ) + }) + + t.Run("lambda array field", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + entitlement Inner1 + entitlement Inner2 + entitlement Outer1 + entitlement Outer2 + + entitlement mapping MyMap { + Outer1 -> Inner1 + Outer2 -> Inner2 + } + struct InnerObj { + access(Inner1) fun first(): Int { return 9999 } + access(Inner2) fun second(): Int { return 8888 } + } + + struct Carrier { + access(mapping MyMap) let fnArr: [fun(auth(mapping MyMap) &InnerObj): auth(mapping MyMap) &InnerObj] + init() { + let innerObj = &InnerObj() as auth(Inner1, Inner2) &InnerObj + self.fnArr = [fun(_ x: &InnerObj): auth(Inner1, Inner2) &InnerObj { + return innerObj + }] + } + + } + + fun test(): Int { + let carrier = Carrier() + let ref1 = &carrier as auth(Outer1) &Carrier + let ref2 = &carrier as auth(Outer2) &Carrier + return ref1.fnArr[0](&InnerObj() as auth(Inner1) &InnerObj).first() + + ref2.fnArr[0](&InnerObj() as auth(Inner2) &InnerObj).second() + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewUnmeteredIntValueFromInt64(9999+8888), + value, + ) + }) +} diff --git a/runtime/tests/interpreter/enum_test.go b/runtime/tests/interpreter/enum_test.go index 9f1f36ffa3..09e1bbc9bf 100644 --- a/runtime/tests/interpreter/enum_test.go +++ b/runtime/tests/interpreter/enum_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ func TestInterpretEnum(t *testing.T) { assert.IsType(t, &interpreter.HostFunctionValue{}, - inter.Globals.Get("E").GetValue(), + inter.Globals.Get("E").GetValue(inter), ) } @@ -61,7 +61,7 @@ func TestInterpretEnumCaseUse(t *testing.T) { let b = E.b `) - a := inter.Globals.Get("a").GetValue() + a := inter.Globals.Get("a").GetValue(inter) require.IsType(t, &interpreter.CompositeValue{}, a, @@ -72,7 +72,7 @@ func TestInterpretEnumCaseUse(t *testing.T) { a.(*interpreter.CompositeValue).Kind, ) - b := inter.Globals.Get("b").GetValue() + b := inter.Globals.Get("b").GetValue(inter) require.IsType(t, &interpreter.CompositeValue{}, b, @@ -102,14 +102,14 @@ func TestInterpretEnumCaseRawValue(t *testing.T) { t, inter, interpreter.NewUnmeteredInt64Value(0), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) RequireValuesEqual( t, inter, interpreter.NewUnmeteredInt64Value(1), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) } @@ -144,7 +144,7 @@ func TestInterpretEnumCaseEquality(t *testing.T) { interpreter.TrueValue, interpreter.TrueValue, ), - inter.Globals.Get("res").GetValue(), + inter.Globals.Get("res").GetValue(inter), ) } @@ -181,7 +181,7 @@ func TestInterpretEnumConstructor(t *testing.T) { interpreter.TrueValue, interpreter.TrueValue, ), - inter.Globals.Get("res").GetValue(), + inter.Globals.Get("res").GetValue(inter), ) } @@ -214,7 +214,7 @@ func TestInterpretEnumInstance(t *testing.T) { interpreter.TrueValue, interpreter.TrueValue, ), - inter.Globals.Get("res").GetValue(), + inter.Globals.Get("res").GetValue(inter), ) } @@ -245,7 +245,7 @@ func TestInterpretEnumInContract(t *testing.T) { ) require.NoError(t, err) - c := inter.Globals.Get("C").GetValue() + c := inter.Globals.Get("C").GetValue(inter) require.IsType(t, &interpreter.CompositeValue{}, c) contract := c.(*interpreter.CompositeValue) diff --git a/runtime/tests/interpreter/equality_test.go b/runtime/tests/interpreter/equality_test.go index 834b3c91be..a76a49152a 100644 --- a/runtime/tests/interpreter/equality_test.go +++ b/runtime/tests/interpreter/equality_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -70,10 +70,14 @@ func TestInterpretEquality(t *testing.T) { `, ParseCheckAndInterpretOptions{ Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -83,14 +87,14 @@ func TestInterpretEquality(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("res1").GetValue(), + inter.Globals.Get("res1").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("res2").GetValue(), + inter.Globals.Get("res2").GetValue(inter), ) }) @@ -111,14 +115,14 @@ func TestInterpretEquality(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("res1").GetValue(), + inter.Globals.Get("res1").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("res2").GetValue(), + inter.Globals.Get("res2").GetValue(inter), ) }) @@ -135,7 +139,7 @@ func TestInterpretEquality(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("res").GetValue(), + inter.Globals.Get("res").GetValue(inter), ) }) } @@ -221,6 +225,70 @@ func TestInterpretEqualityOnNumericSuperTypes(t *testing.T) { } }) + t.Run("FixedSizeUnsignedInteger subtypes", func(t *testing.T) { + t.Parallel() + + subtypes := []interpreter.StaticType{ + interpreter.PrimitiveStaticTypeUInt8, + interpreter.PrimitiveStaticTypeUInt16, + interpreter.PrimitiveStaticTypeUInt32, + interpreter.PrimitiveStaticTypeUInt64, + interpreter.PrimitiveStaticTypeUInt128, + interpreter.PrimitiveStaticTypeUInt256, + interpreter.PrimitiveStaticTypeWord8, + interpreter.PrimitiveStaticTypeWord16, + interpreter.PrimitiveStaticTypeWord32, + interpreter.PrimitiveStaticTypeWord64, + interpreter.PrimitiveStaticTypeWord128, + interpreter.PrimitiveStaticTypeWord256, + } + + for _, subtype := range subtypes { + rhsType := interpreter.PrimitiveStaticTypeUInt8 + if subtype == rhsType { + rhsType = interpreter.PrimitiveStaticTypeWord128 + } + + for _, op := range operations { + t.Run(fmt.Sprintf("%s,%s", op.String(), subtype.String()), func(t *testing.T) { + + code := fmt.Sprintf(` + fun test(): Bool { + let x: FixedSizeUnsignedInteger = 5 as %s + let y: FixedSizeUnsignedInteger = 2 as %s + return x %s y + }`, + subtype.String(), + rhsType.String(), + op.Symbol(), + ) + + inter := parseCheckAndInterpret(t, code) + + result, err := inter.Invoke("test") + + switch op { + case ast.OperationEqual: + require.NoError(t, err) + assert.Equal(t, interpreter.FalseValue, result) + case ast.OperationNotEqual: + require.NoError(t, err) + assert.Equal(t, interpreter.TrueValue, result) + default: + RequireError(t, err) + + operandError := &interpreter.InvalidOperandsError{} + require.ErrorAs(t, err, operandError) + + assert.Equal(t, op, operandError.Operation) + assert.Equal(t, subtype, operandError.LeftType) + assert.Equal(t, rhsType, operandError.RightType) + } + }) + } + } + }) + t.Run("Fixed point subtypes", func(t *testing.T) { t.Parallel() diff --git a/runtime/tests/interpreter/fixedpoint_test.go b/runtime/tests/interpreter/fixedpoint_test.go index b099d8519e..86ff3b70ba 100644 --- a/runtime/tests/interpreter/fixedpoint_test.go +++ b/runtime/tests/interpreter/fixedpoint_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,7 +44,7 @@ func TestInterpretNegativeZeroFixedPoint(t *testing.T) { t, inter, interpreter.NewUnmeteredFix64Value(-42000000), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -90,21 +90,21 @@ func TestInterpretFixedPointConversionAndAddition(t *testing.T) { t, inter, value, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, value, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) }) @@ -159,14 +159,14 @@ func TestInterpretFixedPointConversions(t *testing.T) { t, inter, fixedPointValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, integerValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -198,14 +198,14 @@ func TestInterpretFixedPointConversions(t *testing.T) { t, inter, expected, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, expected, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -238,14 +238,14 @@ func TestInterpretFixedPointConversions(t *testing.T) { t, inter, expected, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, expected, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -271,14 +271,14 @@ func TestInterpretFixedPointConversions(t *testing.T) { t, inter, interpreter.NewUnmeteredFix64Value(value*sema.Fix64Factor), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredUFix64Value(uint64(value*sema.Fix64Factor)), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -304,14 +304,14 @@ func TestInterpretFixedPointConversions(t *testing.T) { t, inter, interpreter.NewUnmeteredUFix64Value(uint64(value*sema.Fix64Factor)), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredFix64Value(value*sema.Fix64Factor), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -558,13 +558,13 @@ func TestInterpretFixedPointMinMax(t *testing.T) { t, inter, test.min, - inter.Globals.Get("min").GetValue(), + inter.Globals.Get("min").GetValue(inter), ) RequireValuesEqual( t, inter, test.max, - inter.Globals.Get("max").GetValue(), + inter.Globals.Get("max").GetValue(inter), ) } diff --git a/runtime/tests/interpreter/for_test.go b/runtime/tests/interpreter/for_test.go index dc58e368ec..2ee6c3145c 100644 --- a/runtime/tests/interpreter/for_test.go +++ b/runtime/tests/interpreter/for_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,11 +19,16 @@ package interpreter_test import ( + "fmt" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/activations" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" . "github.com/onflow/cadence/runtime/tests/utils" "github.com/onflow/cadence/runtime/interpreter" @@ -225,35 +230,105 @@ func TestInterpretForString(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - fun test(): [Character] { - let characters: [Character] = [] - let hello = "👪❤️" - for c in hello { - characters.append(c) - } - return characters - } - `) + t.Run("basic", func(t *testing.T) { - value, err := inter.Invoke("test") - require.NoError(t, err) + inter := parseCheckAndInterpret(t, ` + fun test(): [Character] { + let characters: [Character] = [] + let hello = "👪❤️" + for c in hello { + characters.append(c) + } + return characters + } + `) - RequireValuesEqual( - t, - inter, - interpreter.NewArrayValue( + value, err := inter.Invoke("test") + require.NoError(t, err) + + RequireValuesEqual( + t, inter, - interpreter.EmptyLocationRange, - &interpreter.VariableSizedStaticType{ - Type: interpreter.PrimitiveStaticTypeCharacter, - }, - common.ZeroAddress, - interpreter.NewUnmeteredCharacterValue("👪"), - interpreter.NewUnmeteredCharacterValue("❤️"), - ), - value, - ) + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeCharacter, + }, + common.ZeroAddress, + interpreter.NewUnmeteredCharacterValue("👪"), + interpreter.NewUnmeteredCharacterValue("❤️"), + ), + value, + ) + }) + + t.Run("return", func(t *testing.T) { + + inter := parseCheckAndInterpret(t, ` + fun test(): [Character] { + let characters: [Character] = [] + let hello = "abc" + for c in hello { + characters.append(c) + return characters + } + return characters + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + RequireValuesEqual( + t, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeCharacter, + }, + common.ZeroAddress, + interpreter.NewUnmeteredCharacterValue("a"), + ), + value, + ) + }) + + t.Run("break", func(t *testing.T) { + + inter := parseCheckAndInterpret(t, ` + fun test(): [Character] { + let characters: [Character] = [] + let hello = "abc" + for c in hello { + characters.append(c) + break + } + return characters + } + `) + + value, err := inter.Invoke("test") + require.NoError(t, err) + + RequireValuesEqual( + t, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeCharacter, + }, + common.ZeroAddress, + interpreter.NewUnmeteredCharacterValue("a"), + ), + value, + ) + }) + } func TestInterpretForStatementCapturing(t *testing.T) { @@ -294,3 +369,546 @@ func TestInterpretForStatementCapturing(t *testing.T) { ArrayElements(inter, arrayValue), ) } + +func TestInterpretEphemeralReferencesInForLoop(t *testing.T) { + + t.Parallel() + + t.Run("Primitive array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main() { + let array = ["Hello", "World", "Foo", "Bar"] + let arrayRef = &array as &[String] + + for element in arrayRef { + let e: String = element + } + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) + + t.Run("Struct array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct Foo{} + + fun main() { + let array = [Foo(), Foo()] + let arrayRef = &array as &[Foo] + + for element in arrayRef { + let e: &Foo = element + } + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) + + t.Run("Resource array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource Foo{} + + fun main() { + let array <- [ <- create Foo(), <- create Foo()] + let arrayRef = &array as &[Foo] + + for element in arrayRef { + let e: &Foo = element + } + + destroy array + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) + + t.Run("Moved resource array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource Foo{} + + fun main() { + let array <- [ <- create Foo(), <- create Foo()] + let arrayRef = returnSameRef(&array as &[Foo]) + let movedArray <- array + + for element in arrayRef { + let e: &Foo = element + } + + destroy movedArray + } + + fun returnSameRef(_ ref: &[Foo]): &[Foo] { + return ref + } + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("Auth ref", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct Foo{} + + fun main() { + let array = [Foo(), Foo()] + let arrayRef = &array as auth(Mutate) &[Foo] + + for element in arrayRef { + let e: &Foo = element // Should be non-auth + } + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) + + t.Run("Optional array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct Foo{} + + fun main() { + let array: [Foo?] = [Foo(), Foo()] + let arrayRef = &array as &[Foo?] + + for element in arrayRef { + let e: &Foo? = element // Should be an optional reference + } + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) + + t.Run("Nil array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct Foo{} + + fun main() { + let array: [Foo?] = [nil, nil] + let arrayRef = &array as &[Foo?] + + for element in arrayRef { + let e: &Foo? = element // Should be an optional reference + } + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) + + t.Run("Reference array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct Foo{} + + fun main() { + let elementRef = &Foo() as &Foo + let array: [&Foo] = [elementRef, elementRef] + let arrayRef = &array as &[&Foo] + + for element in arrayRef { + let e: &Foo = element + } + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) + + t.Run("Mutating reference to resource array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource Foo{ + fun sayHello() {} + } + + fun main() { + let array <- [ <- create Foo()] + let arrayRef = &array as auth(Mutate) &[Foo] + + for element in arrayRef { + // Move the actual element + // This mutation should fail. + let oldElement <- arrayRef.remove(at: 0) + + // Use the element reference + element.sayHello() + + destroy oldElement + } + + destroy array + } + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.ContainerMutatedDuringIterationError{}) + }) + + t.Run("Mutating reference to struct array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct Foo{ + fun sayHello() {} + } + + fun main() { + let array = [Foo()] + let arrayRef = &array as auth(Mutate) &[Foo] + + for element in arrayRef { + // Move the actual element + let oldElement = arrayRef.remove(at: 0) + + // Use the element reference + element.sayHello() + } + } + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + assert.ErrorAs(t, err, &interpreter.ContainerMutatedDuringIterationError{}) + }) + + t.Run("String ref", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main(): [Character] { + let s = "Hello" + let sRef = &s as &String + let characters: [Character] = [] + + for char in sRef { + characters.append(char) + } + + return characters + } + `) + + value, err := inter.Invoke("main") + require.NoError(t, err) + + RequireValuesEqual( + t, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeCharacter, + }, + common.ZeroAddress, + interpreter.NewUnmeteredCharacterValue("H"), + interpreter.NewUnmeteredCharacterValue("e"), + interpreter.NewUnmeteredCharacterValue("l"), + interpreter.NewUnmeteredCharacterValue("l"), + interpreter.NewUnmeteredCharacterValue("o"), + ), + value, + ) + }) + + t.Run("Resource array, use after loop", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource Foo{ + fun bar() {} + } + + fun main() { + let array <- [ <- create Foo(), <- create Foo()] + + // Take a reference to an element. + let arrayElementRef = &array[0] as &Foo + + let arrayRef = &array as &[Foo] + for element in arrayRef { + let e: &Foo = element + } + + // Reference should stay valid, even after looping. + // i.e: Loop should not move-out the elements. + arrayElementRef.bar() + + destroy array + } + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) +} + +func TestInterpretStorageReferencesInForLoop(t *testing.T) { + + t.Parallel() + + t.Run("Primitive array", func(t *testing.T) { + t.Parallel() + + address := interpreter.NewUnmeteredAddressValueFromBytes([]byte{42}) + + inter, _ := testAccount(t, address, true, nil, ` + fun test() { + let array = ["Hello", "World", "Foo", "Bar"] + account.storage.save(array, to: /storage/array) + + let arrayRef = account.storage.borrow<&[String]>(from: /storage/array)! + + for element in arrayRef { + let e: String = element // Must be the concrete string + } + }`, sema.Config{}) + + _, err := inter.Invoke("test") + require.NoError(t, err) + }) + + t.Run("Struct array", func(t *testing.T) { + t.Parallel() + + address := interpreter.NewUnmeteredAddressValueFromBytes([]byte{42}) + + inter, _ := testAccount(t, address, true, nil, ` + struct Foo{} + + fun test() { + let array = [Foo(), Foo()] + account.storage.save(array, to: /storage/array) + + let arrayRef = account.storage.borrow<&[Foo]>(from: /storage/array)! + + for element in arrayRef { + let e: &Foo = element // Must be a reference + } + }`, sema.Config{}) + + _, err := inter.Invoke("test") + require.NoError(t, err) + }) + + t.Run("Resource array", func(t *testing.T) { + t.Parallel() + + address := interpreter.NewUnmeteredAddressValueFromBytes([]byte{42}) + + inter, _ := testAccount(t, address, true, nil, ` + resource Foo{} + + fun test() { + let array <- [ <- create Foo(), <- create Foo()] + account.storage.save(<- array, to: /storage/array) + + let arrayRef = account.storage.borrow<&[Foo]>(from: /storage/array)! + + for element in arrayRef { + let e: &Foo = element // Must be a reference + } + }`, sema.Config{}) + + _, err := inter.Invoke("test") + require.NoError(t, err) + }) + + t.Run("Moved resource array", func(t *testing.T) { + t.Parallel() + + address := interpreter.NewUnmeteredAddressValueFromBytes([]byte{42}) + + inter, _ := testAccount(t, address, true, nil, ` + resource Foo{} + + fun test() { + let array <- [ <- create Foo(), <- create Foo()] + account.storage.save(<- array, to: /storage/array) + + let arrayRef = account.storage.borrow<&[Foo]>(from: /storage/array)! + + let movedArray <- account.storage.load<@[Foo]>(from: /storage/array)! + + for element in arrayRef { + let e: &Foo = element // Must be a reference + } + + destroy movedArray + }`, sema.Config{}) + + _, err := inter.Invoke("test") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.DereferenceError{}) + }) +} + +type inclusiveRangeForInLoopTest struct { + start, end, step int8 + loopElements []int +} + +func TestInclusiveRangeForInLoop(t *testing.T) { + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + baseActivation := activations.NewActivation(nil, interpreter.BaseActivation) + interpreter.Declare(baseActivation, stdlib.InclusiveRangeConstructorFunction) + + unsignedTestCases := []inclusiveRangeForInLoopTest{ + { + start: 0, + end: 10, + step: 1, + loopElements: []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, + }, + { + start: 0, + end: 10, + step: 2, + loopElements: []int{0, 2, 4, 6, 8, 10}, + }, + } + + signedTestCases := []inclusiveRangeForInLoopTest{ + { + start: 10, + end: -10, + step: -2, + loopElements: []int{10, 8, 6, 4, 2, 0, -2, -4, -6, -8, -10}, + }, + } + + runTestCase := func(t *testing.T, typ sema.Type, testCase inclusiveRangeForInLoopTest) { + t.Run(typ.String(), func(t *testing.T) { + t.Parallel() + + code := fmt.Sprintf( + ` + fun test(): [%[1]s] { + let start : %[1]s = %[2]d + let end : %[1]s = %[3]d + let step : %[1]s = %[4]d + let range: InclusiveRange<%[1]s> = InclusiveRange(start, end, step: step) + + var elements : [%[1]s] = [] + for element in range { + elements.append(element) + } + return elements + } + `, + typ.String(), + testCase.start, + testCase.end, + testCase.step, + ) + + inter, err := parseCheckAndInterpretWithOptions(t, code, + ParseCheckAndInterpretOptions{ + CheckerConfig: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + Config: &interpreter.Config{ + BaseActivationHandler: func(common.Location) *interpreter.VariableActivation { + return baseActivation + }, + }, + }, + ) + + require.NoError(t, err) + loopElements, err := inter.Invoke("test") + require.NoError(t, err) + + integerStaticType := interpreter.ConvertSemaToStaticType( + nil, + typ, + ) + + count := 0 + iterator := (loopElements).(*interpreter.ArrayValue).Iterator(inter, interpreter.EmptyLocationRange) + for { + elem := iterator.Next(inter, interpreter.EmptyLocationRange) + if elem == nil { + break + } + + AssertValuesEqual( + t, + inter, + interpreter.GetSmallIntegerValue( + int8(testCase.loopElements[count]), + integerStaticType, + ), + elem, + ) + + count += 1 + } + + assert.Equal(t, len(testCase.loopElements), count) + }) + } + + for _, typ := range sema.AllIntegerTypes { + // Only test leaf types + switch typ { + case sema.IntegerType, + sema.SignedIntegerType, + sema.FixedSizeUnsignedIntegerType: + continue + } + + for _, testCase := range unsignedTestCases { + runTestCase(t, typ, testCase) + } + } + + for _, typ := range sema.AllSignedIntegerTypes { + // Only test leaf types + switch typ { + case sema.SignedIntegerType: + continue + } + + for _, testCase := range signedTestCases { + runTestCase(t, typ, testCase) + } + } +} diff --git a/runtime/tests/interpreter/function_test.go b/runtime/tests/interpreter/function_test.go index 5b04cc21bc..5e05d7e577 100644 --- a/runtime/tests/interpreter/function_test.go +++ b/runtime/tests/interpreter/function_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/if_test.go b/runtime/tests/interpreter/if_test.go index bf341724b7..e689067ccb 100644 --- a/runtime/tests/interpreter/if_test.go +++ b/runtime/tests/interpreter/if_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -146,7 +146,7 @@ func TestInterpretIfStatementTestWithDeclaration(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) @@ -163,7 +163,7 @@ func TestInterpretIfStatementTestWithDeclaration(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) } @@ -201,7 +201,7 @@ func TestInterpretIfStatementTestWithDeclarationAndElse(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) @@ -218,7 +218,7 @@ func TestInterpretIfStatementTestWithDeclarationAndElse(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) @@ -260,7 +260,7 @@ func TestInterpretIfStatementTestWithDeclarationNestedOptionals(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) @@ -280,7 +280,7 @@ func TestInterpretIfStatementTestWithDeclarationNestedOptionals(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) } @@ -321,7 +321,7 @@ func TestInterpretIfStatementTestWithDeclarationNestedOptionalsExplicitAnnotatio t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) @@ -341,7 +341,7 @@ func TestInterpretIfStatementTestWithDeclarationNestedOptionalsExplicitAnnotatio t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("branch").GetValue(), + inter.Globals.Get("branch").GetValue(inter), ) }) } diff --git a/runtime/tests/interpreter/import_test.go b/runtime/tests/interpreter/import_test.go index ff699b8cbc..b7cfc4681e 100644 --- a/runtime/tests/interpreter/import_test.go +++ b/runtime/tests/interpreter/import_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/onflow/cadence/runtime/common/orderedmap" . "github.com/onflow/cadence/runtime/tests/utils" "github.com/onflow/cadence/runtime/ast" @@ -91,9 +92,10 @@ func TestInterpretVirtualImport(t *testing.T) { nil, common.ZeroAddress, ) - - value.Functions = map[string]interpreter.FunctionValue{ - "bar": interpreter.NewHostFunctionValue( + value.Functions = orderedmap.New[interpreter.FunctionOrderedMap](1) + value.Functions.Set( + "bar", + interpreter.NewStaticHostFunctionValue( inter, &sema.FunctionType{ ReturnTypeAnnotation: sema.UIntTypeAnnotation, @@ -102,7 +104,7 @@ func TestInterpretVirtualImport(t *testing.T) { return interpreter.NewUnmeteredUInt64Value(42) }, ), - } + ) elaboration := sema.NewElaboration(nil) elaboration.SetCompositeType( @@ -386,7 +388,7 @@ func TestInterpretResourceConstructionThroughIndirectImport(t *testing.T) { err = inter.Interpret() require.NoError(t, err) - rConstructor := subInterpreter.Globals.Get("R").GetValue() + rConstructor := subInterpreter.Globals.Get("R").GetValue(inter) _, err = inter.Invoke("test", rConstructor) RequireError(t, err) diff --git a/runtime/tests/interpreter/indexing_test.go b/runtime/tests/interpreter/indexing_test.go index c5f76d7ce2..a28ed6cd85 100644 --- a/runtime/tests/interpreter/indexing_test.go +++ b/runtime/tests/interpreter/indexing_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/integers_test.go b/runtime/tests/interpreter/integers_test.go index 160826e5f1..497e4c4a1a 100644 --- a/runtime/tests/interpreter/integers_test.go +++ b/runtime/tests/interpreter/integers_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -64,7 +64,7 @@ func init() { for _, integerType := range sema.AllIntegerTypes { // Only test leaf types switch integerType { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -97,21 +97,21 @@ func TestInterpretIntegerConversions(t *testing.T) { t, inter, value, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, value, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) }) @@ -149,7 +149,7 @@ func TestInterpretWordOverflowConversions(t *testing.T) { require.Equal( t, "0", - inter.Globals.Get("y").GetValue().String(), + inter.Globals.Get("y").GetValue(inter).String(), ) }) } @@ -185,7 +185,7 @@ func TestInterpretWordUnderflowConversions(t *testing.T) { require.Equal( t, value.String(), - inter.Globals.Get("y").GetValue().String(), + inter.Globals.Get("y").GetValue(inter).String(), ) }) } @@ -209,7 +209,7 @@ func TestInterpretAddressConversion(t *testing.T) { interpreter.AddressValue{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, }, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) @@ -228,7 +228,7 @@ func TestInterpretAddressConversion(t *testing.T) { interpreter.AddressValue{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, }, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) @@ -288,7 +288,7 @@ func TestInterpretIntegerLiteralTypeConversionInVariableDeclaration(t *testing.T t, inter, value, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) @@ -316,7 +316,7 @@ func TestInterpretIntegerLiteralTypeConversionInVariableDeclarationOptional(t *t t, inter, interpreter.NewUnmeteredSomeValueNonCopying(value), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) } @@ -346,7 +346,7 @@ func TestInterpretIntegerLiteralTypeConversionInAssignment(t *testing.T) { t, inter, value, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) _, err := inter.Invoke("test") @@ -357,7 +357,7 @@ func TestInterpretIntegerLiteralTypeConversionInAssignment(t *testing.T) { t, inter, numberValue.Plus(inter, numberValue, interpreter.EmptyLocationRange), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) } @@ -387,7 +387,7 @@ func TestInterpretIntegerLiteralTypeConversionInAssignmentOptional(t *testing.T) t, inter, interpreter.NewUnmeteredSomeValueNonCopying(value), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) _, err := inter.Invoke("test") @@ -401,7 +401,7 @@ func TestInterpretIntegerLiteralTypeConversionInAssignmentOptional(t *testing.T) interpreter.NewUnmeteredSomeValueNonCopying( numberValue.Plus(inter, numberValue, interpreter.EmptyLocationRange), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) } @@ -431,7 +431,7 @@ func TestInterpretIntegerLiteralTypeConversionInFunctionCallArgument(t *testing. t, inter, value, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) } @@ -461,7 +461,7 @@ func TestInterpretIntegerLiteralTypeConversionInFunctionCallArgumentOptional(t * t, inter, interpreter.NewUnmeteredSomeValueNonCopying(value), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) } @@ -705,7 +705,7 @@ func TestInterpretIntegerConversion(t *testing.T) { for _, ty := range sema.AllIntegerTypes { // Only test leaf types switch ty { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -805,7 +805,7 @@ func TestInterpretIntegerMinMax(t *testing.T) { t, inter, expected, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -891,7 +891,7 @@ func TestInterpretIntegerMinMax(t *testing.T) { for _, ty := range sema.AllIntegerTypes { // Only test leaf types switch ty { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } diff --git a/runtime/tests/interpreter/interface_test.go b/runtime/tests/interpreter/interface_test.go index 59ffb437f2..d17c5d305d 100644 --- a/runtime/tests/interpreter/interface_test.go +++ b/runtime/tests/interpreter/interface_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/require" "github.com/onflow/cadence/runtime/activations" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" @@ -573,7 +574,7 @@ func TestInterpretInterfaceFunctionConditionsInheritance(t *testing.T) { ) var logs []string - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "log", logFunctionType, "", @@ -647,10 +648,14 @@ func TestInterpretInterfaceFunctionConditionsInheritance(t *testing.T) { }`, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -681,7 +686,7 @@ func TestInterpretInterfaceFunctionConditionsInheritance(t *testing.T) { ) var logs []string - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "log", logFunctionType, "", @@ -755,10 +760,14 @@ func TestInterpretInterfaceFunctionConditionsInheritance(t *testing.T) { }`, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -789,7 +798,7 @@ func TestInterpretInterfaceFunctionConditionsInheritance(t *testing.T) { ) var logs []string - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "log", logFunctionType, "", @@ -842,10 +851,14 @@ func TestInterpretInterfaceFunctionConditionsInheritance(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(common.Location) *interpreter.VariableActivation { + return baseActivation + }, ContractValueHandler: makeContractValueHandler(nil, nil, nil), }, }, diff --git a/runtime/tests/interpreter/interpreter_test.go b/runtime/tests/interpreter/interpreter_test.go index 4c83de0a4c..70d72612f5 100644 --- a/runtime/tests/interpreter/interpreter_test.go +++ b/runtime/tests/interpreter/interpreter_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ import ( "github.com/onflow/cadence/runtime" "github.com/onflow/cadence/runtime/activations" + "github.com/onflow/cadence/runtime/common/orderedmap" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -81,7 +82,7 @@ func parseCheckAndInterpretWithLogs( ) { var logs []string - logFunction := stdlib.NewStandardLibraryFunction( + logFunction := stdlib.NewStandardLibraryStaticFunction( "log", &sema.FunctionType{ Parameters: []sema.Parameter{ @@ -97,7 +98,11 @@ func parseCheckAndInterpretWithLogs( }, ``, func(invocation interpreter.Invocation) interpreter.Value { - message := invocation.Arguments[0].String() + message := invocation.Arguments[0].MeteredString( + invocation.Interpreter, + interpreter.SeenReferences{}, + invocation.LocationRange, + ) logs = append(logs, message) return interpreter.Void }, @@ -114,10 +119,14 @@ func parseCheckAndInterpretWithLogs( code, ParseCheckAndInterpretOptions{ Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, HandleCheckerError: nil, }, @@ -144,7 +153,9 @@ func parseCheckAndInterpretWithMemoryMetering( code, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, memoryGauge, @@ -191,7 +202,6 @@ func parseCheckAndInterpretWithOptionsAndMemoryMetering( if options.Config != nil { config = *options.Config } - config.InvalidatedResourceValidationEnabled = true config.AtreeValueValidationEnabled = true config.AtreeStorageValidationEnabled = true if config.UUIDHandler == nil { @@ -235,7 +245,7 @@ func parseCheckAndInterpretWithOptionsAndMemoryMetering( contractVariable := inter.Globals.Get(compositeDeclaration.Identifier.Identifier) - _ = contractVariable.GetValue() + _ = contractVariable.GetValue(inter) } } @@ -347,28 +357,28 @@ func TestInterpretConstantAndVariableDeclarations(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredIntValueFromInt64(3), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) AssertValuesEqual( @@ -384,14 +394,14 @@ func TestInterpretConstantAndVariableDeclarations(t *testing.T) { interpreter.NewUnmeteredIntValueFromInt64(1), interpreter.NewUnmeteredIntValueFromInt64(2), ), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredStringValue("123"), - inter.Globals.Get("s").GetValue(), + inter.Globals.Get("s").GetValue(inter), ) } @@ -461,7 +471,7 @@ func TestInterpretLexicalScope(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(10), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) value, err := inter.Invoke("f") @@ -513,7 +523,7 @@ func TestInterpretFunctionSideEffects(t *testing.T) { t, inter, newValue, - inter.Globals.Get("value").GetValue(), + inter.Globals.Get("value").GetValue(inter), ) } @@ -547,7 +557,7 @@ func TestInterpretNoHoisting(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -566,14 +576,14 @@ func TestInterpretFunctionExpressionsAndScope(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(10), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredIntValueFromInt64(42), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -617,7 +627,7 @@ func TestInterpretGlobalVariableAssignment(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) value, err := inter.Invoke("test") @@ -634,7 +644,7 @@ func TestInterpretGlobalVariableAssignment(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(3), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -655,7 +665,7 @@ func TestInterpretConstantRedeclaration(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) value, err := inter.Invoke("test") @@ -841,7 +851,7 @@ func TestInterpretArrayIndexingAssignment(t *testing.T) { _, err := inter.Invoke("test") require.NoError(t, err) - actualArray := inter.Globals.Get("z").GetValue() + actualArray := inter.Globals.Get("z").GetValue(inter) expectedArray := interpreter.NewArrayValue( inter, @@ -916,19 +926,19 @@ func TestInterpretStringIndexing(t *testing.T) { t, inter, interpreter.NewUnmeteredCharacterValue("a"), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredCharacterValue("b"), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredCharacterValue("c"), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -1571,21 +1581,21 @@ func TestInterpretOrOperatorShortCircuitLeftSuccess(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("test").GetValue(), + inter.Globals.Get("test").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -1614,21 +1624,21 @@ func TestInterpretOrOperatorShortCircuitLeftFailure(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("test").GetValue(), + inter.Globals.Get("test").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -1699,21 +1709,21 @@ func TestInterpretAndOperatorShortCircuitLeftSuccess(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("test").GetValue(), + inter.Globals.Get("test").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -1742,21 +1752,21 @@ func TestInterpretAndOperatorShortCircuitLeftFailure(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("test").GetValue(), + inter.Globals.Get("test").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -1781,7 +1791,7 @@ func TestInterpretExpressionStatement(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) value, err := inter.Invoke("test") @@ -1798,7 +1808,7 @@ func TestInterpretExpressionStatement(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -1923,14 +1933,14 @@ func TestInterpretUnaryIntegerNegation(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(-2), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -1949,28 +1959,28 @@ func TestInterpretUnaryBooleanNegation(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.FalseValue, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) } @@ -1985,7 +1995,7 @@ func TestInterpretHostFunction(t *testing.T) { require.NoError(t, err) - testFunction := stdlib.NewStandardLibraryFunction( + testFunction := stdlib.NewStandardLibraryStaticFunction( "test", &sema.FunctionType{ Parameters: []sema.Parameter{ @@ -2019,8 +2029,10 @@ func TestInterpretHostFunction(t *testing.T) { TestLocation, nil, &sema.Config{ - BaseValueActivation: baseValueActivation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeStrict, }, ) require.NoError(t, err) @@ -2037,8 +2049,10 @@ func TestInterpretHostFunction(t *testing.T) { interpreter.ProgramFromChecker(checker), checker.Location, &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, ) require.NoError(t, err) @@ -2050,7 +2064,7 @@ func TestInterpretHostFunction(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(3), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) } @@ -2067,7 +2081,7 @@ func TestInterpretHostFunctionWithVariableArguments(t *testing.T) { called := false - testFunction := stdlib.NewStandardLibraryFunction( + testFunction := stdlib.NewStandardLibraryStaticFunction( "test", &sema.FunctionType{ Parameters: []sema.Parameter{ @@ -2126,8 +2140,10 @@ func TestInterpretHostFunctionWithVariableArguments(t *testing.T) { TestLocation, nil, &sema.Config{ - BaseValueActivation: baseValueActivation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeStrict, }, ) require.NoError(t, err) @@ -2144,8 +2160,10 @@ func TestInterpretHostFunctionWithVariableArguments(t *testing.T) { interpreter.ProgramFromChecker(checker), checker.Location, &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, ) require.NoError(t, err) @@ -2169,7 +2187,7 @@ func TestInterpretHostFunctionWithOptionalArguments(t *testing.T) { called := false - testFunction := stdlib.NewStandardLibraryFunction( + testFunction := stdlib.NewStandardLibraryStaticFunction( "test", &sema.FunctionType{ Parameters: []sema.Parameter{ @@ -2230,8 +2248,10 @@ func TestInterpretHostFunctionWithOptionalArguments(t *testing.T) { TestLocation, nil, &sema.Config{ - BaseValueActivation: baseValueActivation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeStrict, }, ) require.NoError(t, err) @@ -2248,8 +2268,10 @@ func TestInterpretHostFunctionWithOptionalArguments(t *testing.T) { interpreter.ProgramFromChecker(checker), checker.Location, &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, ) require.NoError(t, err) @@ -2510,7 +2532,7 @@ func TestInterpretStructureDeclarationWithFunction(t *testing.T) { AssertValuesEqual( t, - inter, newValue, inter.Globals.Get("value").GetValue()) + inter, newValue, inter.Globals.Get("value").GetValue(inter)) } func TestInterpretStructureFunctionCall(t *testing.T) { @@ -2535,7 +2557,7 @@ func TestInterpretStructureFunctionCall(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(42), - inter.Globals.Get("value").GetValue(), + inter.Globals.Get("value").GetValue(inter), ) } @@ -2567,7 +2589,7 @@ func TestInterpretStructureFieldAssignment(t *testing.T) { } `) - test := inter.Globals.Get("test").GetValue().(*interpreter.CompositeValue) + test := inter.Globals.Get("test").GetValue(inter).(*interpreter.CompositeValue) AssertValuesEqual( t, @@ -2610,7 +2632,7 @@ func TestInterpretStructureInitializesConstant(t *testing.T) { let test = Test() `) - actual := inter.Globals.Get("test").GetValue().(*interpreter.CompositeValue). + actual := inter.Globals.Get("test").GetValue(inter).(*interpreter.CompositeValue). GetMember(inter, interpreter.EmptyLocationRange, "foo") AssertValuesEqual( t, @@ -3058,7 +3080,7 @@ func TestInterpretUseBeforeDeclaration(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("tests").GetValue(), + inter.Globals.Get("tests").GetValue(inter), ) value, err := inter.Invoke("test") @@ -3073,7 +3095,7 @@ func TestInterpretUseBeforeDeclaration(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("tests").GetValue(), + inter.Globals.Get("tests").GetValue(inter), ) value, err = inter.Invoke("test") @@ -3088,7 +3110,7 @@ func TestInterpretUseBeforeDeclaration(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("tests").GetValue(), + inter.Globals.Get("tests").GetValue(inter), ) } @@ -3108,7 +3130,7 @@ func TestInterpretOptionalVariableDeclaration(t *testing.T) { interpreter.NewUnmeteredIntValueFromInt64(2), ), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3224,7 +3246,7 @@ func TestInterpretOptionalAssignment(t *testing.T) { interpreter.NewUnmeteredIntValueFromInt64(2), ), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3240,7 +3262,7 @@ func TestInterpretNil(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3256,7 +3278,7 @@ func TestInterpretOptionalNestingNil(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3345,7 +3367,7 @@ func TestInterpretNilCoalescingNilIntToOptional(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3365,7 +3387,7 @@ func TestInterpretNilCoalescingNilIntToOptionals(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3384,7 +3406,7 @@ func TestInterpretNilCoalescingNilIntToOptionalNilLiteral(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3400,7 +3422,7 @@ func TestInterpretNilCoalescingRightSubtype(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3418,7 +3440,7 @@ func TestInterpretNilCoalescingNilInt(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3435,7 +3457,7 @@ func TestInterpretNilCoalescingNilLiteralInt(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3464,21 +3486,21 @@ func TestInterpretNilCoalescingShortCircuitLeftSuccess(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("test").GetValue(), + inter.Globals.Get("test").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3507,21 +3529,21 @@ func TestInterpretNilCoalescingShortCircuitLeftFailure(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("test").GetValue(), + inter.Globals.Get("test").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3538,7 +3560,7 @@ func TestInterpretNilCoalescingOptionalAnyStructNil(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3555,7 +3577,7 @@ func TestInterpretNilCoalescingOptionalAnyStructSome(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3575,7 +3597,7 @@ func TestInterpretNilCoalescingOptionalRightHandSide(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -3595,7 +3617,7 @@ func TestInterpretNilCoalescingBothOptional(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -3615,7 +3637,7 @@ func TestInterpretNilCoalescingBothOptionalLeftNil(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(2), ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -3631,7 +3653,7 @@ func TestInterpretNilsComparison(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -3649,14 +3671,14 @@ func TestInterpretNonOptionalNilComparison(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.FalseValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -3673,7 +3695,7 @@ func TestInterpretOptionalNilComparison(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3690,7 +3712,7 @@ func TestInterpretNestedOptionalNilComparison(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3707,7 +3729,7 @@ func TestInterpretOptionalNilComparisonSwapped(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3724,7 +3746,7 @@ func TestInterpretNestedOptionalNilComparisonSwapped(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3742,7 +3764,7 @@ func TestInterpretNestedOptionalComparisonNils(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -3760,7 +3782,7 @@ func TestInterpretNestedOptionalComparisonValues(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -3778,7 +3800,7 @@ func TestInterpretNestedOptionalComparisonMixed(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -3795,7 +3817,7 @@ func TestInterpretOptionalSomeValueComparison(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3812,7 +3834,7 @@ func TestInterpretOptionalNilValueComparison(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -3835,7 +3857,7 @@ func TestInterpretOptionalMap(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("42"), ), - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) @@ -3852,7 +3874,7 @@ func TestInterpretOptionalMap(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) } @@ -3919,21 +3941,23 @@ func TestInterpretCompositeNilEquality(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.FalseValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) }) } for _, compositeKind := range common.AllCompositeKinds { - if compositeKind == common.CompositeKindEvent || compositeKind == common.CompositeKindAttachment { + if compositeKind == common.CompositeKindEvent || + compositeKind == common.CompositeKindAttachment || + compositeKind == common.CompositeKindContract { continue } @@ -3955,7 +3979,7 @@ func TestInterpretInterfaceConformanceNoRequirements(t *testing.T) { continue } - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" t.Run(compositeKind.Keyword(), func(t *testing.T) { @@ -3979,7 +4003,7 @@ func TestInterpretInterfaceConformanceNoRequirements(t *testing.T) { assert.IsType(t, &interpreter.CompositeValue{}, - inter.Globals.Get("test").GetValue(), + inter.Globals.Get("test").GetValue(inter), ) }) } @@ -3999,7 +4023,7 @@ func TestInterpretInterfaceFieldUse(t *testing.T) { if compositeKind == common.CompositeKindContract { identifier = "TestImpl" } else { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" setupCode = fmt.Sprintf( `access(all) let test: %[1]s%[2]s %[3]s %[4]s TestImpl%[5]s`, @@ -4059,7 +4083,7 @@ func TestInterpretInterfaceFieldUse(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) } @@ -4079,7 +4103,7 @@ func TestInterpretInterfaceFunctionUse(t *testing.T) { if compositeKind == common.CompositeKindContract { identifier = "TestImpl" } else { - interfaceType := AsInterfaceType("Test", compositeKind) + interfaceType := "{Test}" setupCode = fmt.Sprintf( `access(all) let test: %[1]s %[2]s %[3]s %[4]s TestImpl%[5]s`, @@ -4127,7 +4151,7 @@ func TestInterpretInterfaceFunctionUse(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("val").GetValue(), + inter.Globals.Get("val").GetValue(inter), ) }) } @@ -4233,7 +4257,9 @@ func TestInterpretImportError(t *testing.T) { checker.ParseAndCheckOptions{ Location: location, Config: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, ImportHandler: func(_ *sema.Checker, importedLocation common.Location, _ ast.Range) (sema.Import, error) { switch importedLocation { case importedLocation1: @@ -4293,8 +4319,10 @@ func TestInterpretImportError(t *testing.T) { interpreter.ProgramFromChecker(mainChecker), mainChecker.Location, &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, ImportLocationHandler: func(inter *interpreter.Interpreter, location common.Location) interpreter.Import { var importedChecker *sema.Checker switch location { @@ -4385,7 +4413,7 @@ func TestInterpretDictionary(t *testing.T) { interpreter.NewUnmeteredStringValue("b"), interpreter.NewUnmeteredIntValueFromInt64(2), ) - actualDict := inter.Globals.Get("x").GetValue() + actualDict := inter.Globals.Get("x").GetValue(inter) AssertValuesEqual( t, @@ -4415,7 +4443,7 @@ func TestInterpretDictionaryInsertionOrder(t *testing.T) { interpreter.NewUnmeteredStringValue("b"), interpreter.NewUnmeteredIntValueFromInt64(2), ) - actualDict := inter.Globals.Get("x").GetValue() + actualDict := inter.Globals.Get("x").GetValue(inter) AssertValuesEqual( t, @@ -4442,7 +4470,7 @@ func TestInterpretDictionaryIndexingString(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) AssertValuesEqual( @@ -4451,14 +4479,14 @@ func TestInterpretDictionaryIndexingString(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(2), ), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.Nil, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) } @@ -4478,7 +4506,7 @@ func TestInterpretDictionaryIndexingBool(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) AssertValuesEqual( @@ -4487,7 +4515,7 @@ func TestInterpretDictionaryIndexingBool(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(2), ), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) } @@ -4508,7 +4536,7 @@ func TestInterpretDictionaryIndexingInt(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("a"), ), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) AssertValuesEqual( @@ -4517,14 +4545,14 @@ func TestInterpretDictionaryIndexingInt(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("b"), ), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.Nil, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) } @@ -4555,39 +4583,39 @@ func TestInterpretDictionaryIndexingType(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("a"), ), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("b"), ), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("c"), ), - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) // types need to match exactly, subtypes won't cut it assert.Equal(t, interpreter.Nil, - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("e").GetValue(inter), ) assert.Equal(t, interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("f"), ), - inter.Globals.Get("f").GetValue(), + inter.Globals.Get("f").GetValue(inter), ) } @@ -4612,7 +4640,7 @@ func TestInterpretDictionaryIndexingAssignmentExisting(t *testing.T) { value, ) - actualValue := inter.Globals.Get("x").GetValue() + actualValue := inter.Globals.Get("x").GetValue(inter) actualDict := actualValue.(*interpreter.DictionaryValue) newValue := actualDict.GetKey( @@ -4671,7 +4699,7 @@ func TestInterpretDictionaryIndexingAssignmentNew(t *testing.T) { interpreter.NewUnmeteredStringValue("abc"), interpreter.NewUnmeteredIntValueFromInt64(23), ) - actualDict := inter.Globals.Get("x").GetValue().(*interpreter.DictionaryValue) + actualDict := inter.Globals.Get("x").GetValue(inter).(*interpreter.DictionaryValue) AssertValuesEqual( t, @@ -4737,7 +4765,7 @@ func TestInterpretDictionaryIndexingAssignmentNil(t *testing.T) { interpreter.NewUnmeteredStringValue("abc"), interpreter.NewUnmeteredIntValueFromInt64(23), ) - actualDict := inter.Globals.Get("x").GetValue().(*interpreter.DictionaryValue) + actualDict := inter.Globals.Get("x").GetValue(inter).(*interpreter.DictionaryValue) RequireValuesEqual( t, @@ -4970,7 +4998,7 @@ func TestInterpretOptionalAnyStruct(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(42), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -4989,7 +5017,7 @@ func TestInterpretOptionalAnyStructFailableCasting(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(42), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( @@ -4998,7 +5026,7 @@ func TestInterpretOptionalAnyStructFailableCasting(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(42), ), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -5018,14 +5046,14 @@ func TestInterpretOptionalAnyStructFailableCastingInt(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(23), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredIntValueFromInt64(23), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( @@ -5034,7 +5062,7 @@ func TestInterpretOptionalAnyStructFailableCastingInt(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(23), ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -5052,14 +5080,14 @@ func TestInterpretOptionalAnyStructFailableCastingNil(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredIntValueFromInt64(42), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( @@ -5068,7 +5096,7 @@ func TestInterpretOptionalAnyStructFailableCastingNil(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(42), ), - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -5176,7 +5204,7 @@ func TestInterpretReferenceFailableDowncasting(t *testing.T) { ReturnTypeAnnotation: sema.AnyStructTypeAnnotation, } - valueDeclaration := stdlib.NewStandardLibraryFunction( + valueDeclaration := stdlib.NewStandardLibraryStaticFunction( "getStorageReference", getStorageReferenceFunctionType, "", @@ -5247,11 +5275,15 @@ func TestInterpretReferenceFailableDowncasting(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - Storage: storage, - BaseActivation: baseActivation, + Storage: storage, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -5312,7 +5344,7 @@ func TestInterpretArrayLength(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(3), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -5329,13 +5361,13 @@ func TestInterpretStringLength(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(4), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredIntValueFromInt64(4), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -5429,7 +5461,7 @@ func TestInterpretArrayAppend(t *testing.T) { _, err := inter.Invoke("test") require.NoError(t, err) - actualArray := inter.Globals.Get("xs").GetValue() + actualArray := inter.Globals.Get("xs").GetValue(inter) arrayValue := actualArray.(*interpreter.ArrayValue) AssertValueSlicesEqual( @@ -5674,7 +5706,7 @@ func TestInterpretArrayInsert(t *testing.T) { _, err := inter.Invoke("test", interpreter.NewUnmeteredIntValueFromInt64(int64(testCase.index))) require.NoError(t, err) - actualArray := inter.Globals.Get("x").GetValue() + actualArray := inter.Globals.Get("x").GetValue(inter) require.IsType(t, &interpreter.ArrayValue{}, actualArray) @@ -5737,7 +5769,7 @@ func TestInterpretArrayRemove(t *testing.T) { let y = x.remove(at: 1) `) - value := inter.Globals.Get("x").GetValue() + value := inter.Globals.Get("x").GetValue(inter) arrayValue := value.(*interpreter.ArrayValue) AssertValueSlicesEqual( @@ -5754,7 +5786,7 @@ func TestInterpretArrayRemove(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -5807,7 +5839,7 @@ func TestInterpretArrayRemoveFirst(t *testing.T) { let y = x.removeFirst() `) - value := inter.Globals.Get("x").GetValue() + value := inter.Globals.Get("x").GetValue(inter) arrayValue := value.(*interpreter.ArrayValue) AssertValueSlicesEqual( @@ -5824,7 +5856,7 @@ func TestInterpretArrayRemoveFirst(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -5867,7 +5899,7 @@ func TestInterpretArrayRemoveLast(t *testing.T) { let y = x.removeLast() `) - value := inter.Globals.Get("x").GetValue() + value := inter.Globals.Get("x").GetValue(inter) arrayValue := value.(*interpreter.ArrayValue) @@ -5885,7 +5917,7 @@ func TestInterpretArrayRemoveLast(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(3), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) } @@ -6194,7 +6226,7 @@ func TestInterpretDictionaryRemove(t *testing.T) { let removed = xs.remove(key: "abc") `) - actualValue := inter.Globals.Get("xs").GetValue() + actualValue := inter.Globals.Get("xs").GetValue(inter) require.IsType(t, actualValue, &interpreter.DictionaryValue{}) actualDict := actualValue.(*interpreter.DictionaryValue) @@ -6215,7 +6247,7 @@ func TestInterpretDictionaryRemove(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("removed").GetValue(), + inter.Globals.Get("removed").GetValue(inter), ) } @@ -6228,7 +6260,7 @@ func TestInterpretDictionaryInsert(t *testing.T) { let inserted = xs.insert(key: "abc", 3) `) - actualValue := inter.Globals.Get("xs").GetValue() + actualValue := inter.Globals.Get("xs").GetValue(inter) require.IsType(t, actualValue, &interpreter.DictionaryValue{}) actualDict := actualValue.(*interpreter.DictionaryValue) @@ -6251,7 +6283,7 @@ func TestInterpretDictionaryInsert(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("inserted").GetValue(), + inter.Globals.Get("inserted").GetValue(inter), ) } @@ -6452,7 +6484,7 @@ func TestInterpretDictionaryKeyTypes(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredStringValue("test"), ), - inter.Globals.Get("v").GetValue(), + inter.Globals.Get("v").GetValue(inter), ) }) } @@ -6484,7 +6516,7 @@ func TestInterpretPathToString(t *testing.T) { assert.Equal(t, interpreter.NewUnmeteredStringValue(val), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -6546,19 +6578,16 @@ func TestInterpretResourceMoveInArrayAndDestroy(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var destroys = 0 + var events []*interpreter.CompositeValue + inter, err := parseCheckAndInterpretWithOptions(t, ` resource Foo { + event ResourceDestroyed(bar: Int = self.bar) var bar: Int init(bar: Int) { self.bar = bar } - - destroy() { - destroys = destroys + 1 - } } fun test(): Int { @@ -6569,14 +6598,15 @@ func TestInterpretResourceMoveInArrayAndDestroy(t *testing.T) { destroy foos return bar } - `) - - AssertValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("destroys").GetValue(), - ) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + require.NoError(t, err) value, err := inter.Invoke("test") require.NoError(t, err) @@ -6588,31 +6618,27 @@ func TestInterpretResourceMoveInArrayAndDestroy(t *testing.T) { value, ) - AssertValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("destroys").GetValue(), - ) + require.Len(t, events, 2) + require.Equal(t, "Foo.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "bar")) + require.Equal(t, "Foo.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 2), events[1].GetField(inter, interpreter.EmptyLocationRange, "bar")) } func TestInterpretResourceMoveInDictionaryAndDestroy(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var destroys = 0 + var events []*interpreter.CompositeValue + inter, err := parseCheckAndInterpretWithOptions(t, ` resource Foo { + event ResourceDestroyed(bar: Int = self.bar) var bar: Int init(bar: Int) { self.bar = bar } - - destroy() { - destroys = destroys + 1 - } } fun test() { @@ -6621,24 +6647,24 @@ func TestInterpretResourceMoveInDictionaryAndDestroy(t *testing.T) { let foos <- {"foo1": <-foo1, "foo2": <-foo2} destroy foos } - `) - - RequireValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("destroys").GetValue(), - ) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("destroys").GetValue(), - ) + require.Len(t, events, 2) + require.Equal(t, "Foo.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "bar")) + require.Equal(t, "Foo.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 2), events[1].GetField(inter, interpreter.EmptyLocationRange, "bar")) } func TestInterpretClosure(t *testing.T) { @@ -6872,64 +6898,59 @@ func TestInterpretResourceDestroyExpressionDestructor(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var ranDestructor = false + var events []*interpreter.CompositeValue - resource R { - destroy() { - ranDestructor = true - } - } + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource R { + event ResourceDestroyed() + } fun test() { let r <- create R() destroy r } - `) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) - AssertValuesEqual( - t, - inter, - interpreter.FalseValue, - inter.Globals.Get("ranDestructor").GetValue(), - ) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.TrueValue, - inter.Globals.Get("ranDestructor").GetValue(), - ) + require.Len(t, events, 1) + require.Equal(t, "R.ResourceDestroyed", events[0].QualifiedIdentifier) } func TestInterpretResourceDestroyExpressionNestedResources(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var ranDestructorA = false - var ranDestructorB = false + var events []*interpreter.CompositeValue + inter, err := parseCheckAndInterpretWithOptions(t, ` resource B { - destroy() { - ranDestructorB = true - } - } + var foo: Int + event ResourceDestroyed(foo: Int = self.foo) + + init() { + self.foo = 5 + } + } resource A { + event ResourceDestroyed(foo: Int = self.b.foo) + let b: @B init(b: @B) { self.b <- b } - - destroy() { - ranDestructorA = true - destroy self.b - } } fun test() { @@ -6937,221 +6958,153 @@ func TestInterpretResourceDestroyExpressionNestedResources(t *testing.T) { let a <- create A(b: <-b) destroy a } - `) - - AssertValuesEqual( - t, - inter, - interpreter.FalseValue, - inter.Globals.Get("ranDestructorA").GetValue(), - ) - - AssertValuesEqual( - t, - inter, - interpreter.FalseValue, - inter.Globals.Get("ranDestructorB").GetValue(), - ) - - _, err := inter.Invoke("test") + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.TrueValue, - inter.Globals.Get("ranDestructorA").GetValue(), - ) + _, err = inter.Invoke("test") + require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.TrueValue, - inter.Globals.Get("ranDestructorB").GetValue(), - ) + require.Len(t, events, 2) + require.Equal(t, "B.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 5), events[0].GetField(inter, interpreter.EmptyLocationRange, "foo")) + require.Equal(t, "A.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 5), events[1].GetField(inter, interpreter.EmptyLocationRange, "foo")) } func TestInterpretResourceDestroyArray(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var destructionCount = 0 + var events []*interpreter.CompositeValue + inter, err := parseCheckAndInterpretWithOptions(t, ` resource R { - destroy() { - destructionCount = destructionCount + 1 - } - } + event ResourceDestroyed() + } fun test() { let rs <- [<-create R(), <-create R()] destroy rs } - `) - - RequireValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("destructionCount").GetValue(), - ) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("destructionCount").GetValue(), - ) + require.Len(t, events, 2) + require.Equal(t, "R.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, "R.ResourceDestroyed", events[1].QualifiedIdentifier) } func TestInterpretResourceDestroyDictionary(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var destructionCount = 0 + var events []*interpreter.CompositeValue - resource R { - destroy() { - destructionCount = destructionCount + 1 - } - } + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource R { + event ResourceDestroyed() + } fun test() { let rs <- {"r1": <-create R(), "r2": <-create R()} destroy rs } - `) - - RequireValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("destructionCount").GetValue(), - ) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(2), - inter.Globals.Get("destructionCount").GetValue(), - ) + require.Len(t, events, 2) + require.Equal(t, "R.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, "R.ResourceDestroyed", events[1].QualifiedIdentifier) } func TestInterpretResourceDestroyOptionalSome(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var destructionCount = 0 + var events []*interpreter.CompositeValue - resource R { - destroy() { - destructionCount = destructionCount + 1 - } - } + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource R { + event ResourceDestroyed() + } fun test() { let maybeR: @R? <- create R() destroy maybeR } - `) - - RequireValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("destructionCount").GetValue(), - ) + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + require.NoError(t, err) - _, err := inter.Invoke("test") + _, err = inter.Invoke("test") require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("destructionCount").GetValue(), - ) + require.Len(t, events, 1) + require.Equal(t, "R.ResourceDestroyed", events[0].QualifiedIdentifier) } func TestInterpretResourceDestroyOptionalNil(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - var destructionCount = 0 + var events []*interpreter.CompositeValue + inter, err := parseCheckAndInterpretWithOptions(t, ` resource R { - destroy() { - destructionCount = destructionCount + 1 - } - } + event ResourceDestroyed() + } fun test() { let maybeR: @R? <- nil destroy maybeR } - `) - - RequireValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("destructionCount").GetValue(), - ) - - _, err := inter.Invoke("test") + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) require.NoError(t, err) - AssertValuesEqual( - t, - inter, - interpreter.NewUnmeteredIntValueFromInt64(0), - inter.Globals.Get("destructionCount").GetValue(), - ) -} - -// TestInterpretResourceDestroyExpressionResourceInterfaceCondition tests that -// the resource interface's destructor is called, even if the conforming resource -// does not have an destructor -func TestInterpretResourceDestroyExpressionResourceInterfaceCondition(t *testing.T) { - - t.Parallel() - - inter := parseCheckAndInterpret(t, ` - resource interface I { - destroy() { - pre { false } - } - } - - resource R: I {} - - fun test() { - let r <- create R() - destroy r - } - `) - - _, err := inter.Invoke("test") - require.IsType(t, - interpreter.Error{}, - err, - ) - interpreterErr := err.(interpreter.Error) + _, err = inter.Invoke("test") + require.NoError(t, err) - require.IsType(t, - interpreter.ConditionError{}, - interpreterErr.Err, - ) + require.Len(t, events, 0) } // TestInterpretInterfaceInitializer tests that the interface's initializer @@ -7295,10 +7248,6 @@ func TestInterpretEmitEvent(t *testing.T) { ), } - for _, event := range expectedEvents { - event.(*interpreter.CompositeValue).InitializeFunctions(inter) - } - AssertValueSlicesEqual( t, inter, @@ -7362,9 +7311,11 @@ func TestInterpretReferenceEventParameter(t *testing.T) { ) ref := interpreter.NewUnmeteredEphemeralReferenceValue( + inter, interpreter.UnauthorizedAccess, arrayValue, inter.MustConvertStaticToSemaType(arrayStaticType), + interpreter.EmptyLocationRange, ) _, err = inter.Invoke("test", ref) @@ -7389,17 +7340,12 @@ func TestInterpretReferenceEventParameter(t *testing.T) { ), } - for _, event := range expectedEvents { - event.(*interpreter.CompositeValue).InitializeFunctions(inter) - } - AssertValueSlicesEqual( t, inter, expectedEvents, actualEvents, ) - } type testValue struct { @@ -7445,7 +7391,7 @@ func TestInterpretEmitEventParameterTypes(t *testing.T) { nil, common.ZeroAddress, ) - sValue.Functions = map[string]interpreter.FunctionValue{} + sValue.Functions = orderedmap.New[interpreter.FunctionOrderedMap](0) validTypes := map[string]testValue{ "String": { @@ -7570,7 +7516,7 @@ func TestInterpretEmitEventParameterTypes(t *testing.T) { for _, integerType := range sema.AllIntegerTypes { switch integerType { - case sema.IntegerType, sema.SignedIntegerType: + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: continue } @@ -7687,8 +7633,12 @@ func TestInterpretEmitEventParameterTypes(t *testing.T) { inter, err := parseCheckAndInterpretWithOptions( t, code, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, - BaseTypeActivation: baseTypeActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + BaseTypeActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseTypeActivation + }, }, Config: &interpreter.Config{ Storage: storage, @@ -7730,10 +7680,6 @@ func TestInterpretEmitEventParameterTypes(t *testing.T) { ), } - for _, event := range expectedEvents { - event.(*interpreter.CompositeValue).InitializeFunctions(inter) - } - AssertValueSlicesEqual( t, inter, @@ -8076,7 +8022,7 @@ func TestInterpretCastingIntLiteralToInt8(t *testing.T) { t, inter, interpreter.NewUnmeteredInt8Value(42), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -8092,7 +8038,7 @@ func TestInterpretCastingIntLiteralToAnyStruct(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(42), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -8108,7 +8054,7 @@ func TestInterpretCastingIntLiteralToOptional(t *testing.T) { t, inter, interpreter.NewUnmeteredSomeValueNonCopying(interpreter.NewUnmeteredIntValueFromInt64(42)), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -8161,7 +8107,7 @@ func TestInterpretOptionalChainingFieldRead(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("x1").GetValue(), + inter.Globals.Get("x1").GetValue(inter), ) AssertValuesEqual( @@ -8170,7 +8116,7 @@ func TestInterpretOptionalChainingFieldRead(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(42), ), - inter.Globals.Get("x2").GetValue(), + inter.Globals.Get("x2").GetValue(inter), ) } @@ -8198,17 +8144,17 @@ func TestInterpretOptionalChainingFunctionRead(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("x1").GetValue(), + inter.Globals.Get("x1").GetValue(inter), ) require.IsType(t, &interpreter.SomeValue{}, - inter.Globals.Get("x2").GetValue(), + inter.Globals.Get("x2").GetValue(inter), ) assert.IsType(t, interpreter.BoundFunctionValue{}, - inter.Globals.Get("x2").GetValue().(*interpreter.SomeValue). + inter.Globals.Get("x2").GetValue(inter).(*interpreter.SomeValue). InnerValue(inter, interpreter.EmptyLocationRange), ) } @@ -8237,7 +8183,7 @@ func TestInterpretOptionalChainingFunctionCall(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("x1").GetValue(), + inter.Globals.Get("x1").GetValue(inter), ) AssertValuesEqual( @@ -8246,7 +8192,7 @@ func TestInterpretOptionalChainingFunctionCall(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(42), ), - inter.Globals.Get("x2").GetValue(), + inter.Globals.Get("x2").GetValue(inter), ) } @@ -8275,10 +8221,14 @@ func TestInterpretOptionalChainingFieldReadAndNilCoalescing(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -8288,7 +8238,7 @@ func TestInterpretOptionalChainingFieldReadAndNilCoalescing(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(42), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -8315,10 +8265,14 @@ func TestInterpretOptionalChainingFunctionCallAndNilCoalescing(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -8328,7 +8282,7 @@ func TestInterpretOptionalChainingFunctionCallAndNilCoalescing(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(42), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -8372,14 +8326,14 @@ func TestInterpretOptionalChainingArgumentEvaluation(t *testing.T) { t, inter, interpreter.NewIntValueFromInt64(nil, 2), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewIntValueFromInt64(nil, 1), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) } @@ -8414,8 +8368,8 @@ func TestInterpretCompositeDeclarationNestedTypeScopingOuterInner(t *testing.T) ) require.NoError(t, err) - x1 := inter.Globals.Get("x1").GetValue() - x2 := inter.Globals.Get("x2").GetValue() + x1 := inter.Globals.Get("x1").GetValue(inter) + x2 := inter.Globals.Get("x2").GetValue(inter) require.IsType(t, &interpreter.CompositeValue{}, @@ -8459,7 +8413,7 @@ func TestInterpretCompositeDeclarationNestedConstructor(t *testing.T) { ) require.NoError(t, err) - x := inter.Globals.Get("x").GetValue() + x := inter.Globals.Get("x").GetValue(inter) require.IsType(t, &interpreter.CompositeValue{}, @@ -8513,11 +8467,15 @@ func TestInterpretCompositeDeclarationNestedConstructor(t *testing.T) { code, ParseCheckAndInterpretOptions{ Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, ContractValueHandler: makeContractValueHandler(nil, nil, nil), }, CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, ) @@ -8586,6 +8544,7 @@ func TestInterpretContractAccountFieldUse(t *testing.T) { nil, addressValue, interpreter.FullyEntitledAccountAccess, + interpreter.EmptyLocationRange, ) return map[string]interpreter.Value{ @@ -8601,14 +8560,14 @@ func TestInterpretContractAccountFieldUse(t *testing.T) { t, inter, addressValue, - inter.Globals.Get("address1").GetValue(), + inter.Globals.Get("address1").GetValue(inter), ) AssertValuesEqual( t, inter, addressValue, - inter.Globals.Get("address2").GetValue(), + inter.Globals.Get("address2").GetValue(inter), ) }) @@ -8751,7 +8710,7 @@ func TestInterpretContractUseInNestedDeclaration(t *testing.T) { ) require.NoError(t, err) - i := inter.Globals.Get("C").GetValue().(interpreter.MemberAccessibleValue). + i := inter.Globals.Get("C").GetValue(inter).(interpreter.MemberAccessibleValue). GetMember(inter, interpreter.EmptyLocationRange, "i") require.IsType(t, @@ -8866,21 +8825,21 @@ func TestInterpretFix64(t *testing.T) { t, inter, interpreter.NewUnmeteredUFix64Value(78_900_123_010), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredUFix64Value(123_405_600_000), - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredFix64Value(-1_234_500_678_900), - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) } @@ -8898,7 +8857,7 @@ func TestInterpretFix64Mul(t *testing.T) { t, inter, interpreter.NewUnmeteredFix64Value(-121000000), - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) } @@ -8983,10 +8942,14 @@ func TestInterpretHexDecode(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -9055,7 +9018,7 @@ func TestInterpretOptionalChainingOptionalFieldRead(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) } @@ -9140,6 +9103,7 @@ func TestInterpretResourceOwnerFieldUse(t *testing.T) { nil, interpreter.AddressValue(address), interpreter.FullyEntitledAccountAccess, + interpreter.EmptyLocationRange, ), Kind: common.DeclarationKindConstant, } @@ -9154,12 +9118,16 @@ func TestInterpretResourceOwnerFieldUse(t *testing.T) { code, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, - AccountHandler: func(address interpreter.AddressValue) interpreter.Value { - return stdlib.NewAccountValue(nil, nil, address) + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, + AccountHandler: func(inter *interpreter.Interpreter, address interpreter.AddressValue) interpreter.Value { + return stdlib.NewAccountValue(inter, nil, address) }, }, }, @@ -9215,7 +9183,7 @@ func TestInterpretResourceAssignmentForceTransfer(t *testing.T) { _, err := inter.Invoke("test") RequireError(t, err) - require.ErrorAs(t, err, &interpreter.ForceAssignmentToNonNilResourceError{}) + require.ErrorAs(t, err, &interpreter.ResourceLossError{}) }) t.Run("existing to nil", func(t *testing.T) { @@ -9251,7 +9219,7 @@ func TestInterpretResourceAssignmentForceTransfer(t *testing.T) { _, err := inter.Invoke("test") RequireError(t, err) - require.ErrorAs(t, err, &interpreter.ForceAssignmentToNonNilResourceError{}) + require.ErrorAs(t, err, &interpreter.ResourceLossError{}) }) t.Run("force-assignment initialization", func(t *testing.T) { @@ -9266,10 +9234,6 @@ func TestInterpretResourceAssignmentForceTransfer(t *testing.T) { init() { self.x <-! create X() } - - destroy() { - destroy self.x - } } fun test() { @@ -9303,14 +9267,14 @@ func TestInterpretForce(t *testing.T) { interpreter.NewUnmeteredSomeValueNonCopying( interpreter.NewUnmeteredIntValueFromInt64(1), ), - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) @@ -9345,7 +9309,7 @@ func TestInterpretForce(t *testing.T) { t, inter, interpreter.NewUnmeteredIntValueFromInt64(1), - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) }) } @@ -9525,7 +9489,7 @@ func TestInterpretCountDigits256(t *testing.T) { assert.Equal(t, bigInt, - inter.Globals.Get("number").GetValue().(interpreter.BigNumberValue).ToBigInt(nil), + inter.Globals.Get("number").GetValue(inter).(interpreter.BigNumberValue).ToBigInt(nil), ) expected := interpreter.NewUnmeteredUInt8Value(uint8(test.Count)) @@ -9536,7 +9500,7 @@ func TestInterpretCountDigits256(t *testing.T) { t, inter, expected, - inter.Globals.Get(variableName).GetValue(), + inter.Globals.Get(variableName).GetValue(inter), ) } }) @@ -9571,7 +9535,7 @@ func TestInterpretFailableCastingCompositeTypeConfusion(t *testing.T) { t, inter, interpreter.Nil, - inter.Globals.Get("s").GetValue(), + inter.Globals.Get("s").GetValue(inter), ) } @@ -9579,39 +9543,33 @@ func TestInterpretNestedDestroy(t *testing.T) { t.Parallel() - inter, getLogs, err := parseCheckAndInterpretWithLogs(t, ` - resource B { - let id: Int + var events []*interpreter.CompositeValue - init(_ id: Int){ - self.id = id - } + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource B { + let id: Int + init(_ id: Int){ + self.id = id + } - destroy(){ - log("destroying B with id:") - log(self.id) - } - } + event ResourceDestroyed(id: Int = self.id) + } - resource A { - let id: Int - let bs: @[B] + resource A { + let id: Int + let bs: @[B] - init(_ id: Int){ - self.id = id - self.bs <- [] - } + event ResourceDestroyed(id: Int = self.id, bCount: Int = self.bs.length) - fun add(_ b: @B){ - self.bs.append(<-b) - } + init(_ id: Int){ + self.id = id + self.bs <- [] + } - destroy() { - log("destroying A with id:") - log(self.id) - destroy self.bs - } - } + fun add(_ b: @B){ + self.bs.append(<-b) + } + } fun test() { let a <- create A(1) @@ -9619,34 +9577,38 @@ func TestInterpretNestedDestroy(t *testing.T) { a.add(<- create B(3)) a.add(<- create B(4)) - destroy a - } - `) + destroy a + } + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(_ *interpreter.Interpreter, _ interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) require.NoError(t, err) value, err := inter.Invoke("test") require.NoError(t, err) + require.Len(t, events, 4) + require.Equal(t, "B.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 2), events[0].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "B.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 3), events[1].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "B.ResourceDestroyed", events[2].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 4), events[2].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "A.ResourceDestroyed", events[3].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[3].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 3), events[3].GetField(inter, interpreter.EmptyLocationRange, "bCount")) + AssertValuesEqual( t, inter, interpreter.Void, value, ) - - assert.Equal(t, - []string{ - `"destroying A with id:"`, - "1", - `"destroying B with id:"`, - "2", - `"destroying B with id:"`, - "3", - `"destroying B with id:"`, - "4", - }, - getLogs(), - ) } // TestInterpretInternalAssignment ensures that a modification of an "internal" value @@ -9867,7 +9829,7 @@ func TestInterpretMissingMember(t *testing.T) { ) // Remove field `y` - compositeValue := inter.Globals.Get("x").GetValue().(*interpreter.CompositeValue) + compositeValue := inter.Globals.Get("x").GetValue(inter).(*interpreter.CompositeValue) compositeValue.RemoveField(inter, interpreter.EmptyLocationRange, "y") _, err := inter.Invoke("test") @@ -9918,7 +9880,7 @@ func TestInterpretHostFunctionStaticType(t *testing.T) { let y = x.toString `) - value := inter.Globals.Get("y").GetValue() + value := inter.Globals.Get("y").GetValue(inter) assert.Equal( t, interpreter.ConvertSemaToStaticType(nil, sema.ToStringFunctionType), @@ -9934,7 +9896,7 @@ func TestInterpretHostFunctionStaticType(t *testing.T) { let y = x() `) - value := inter.Globals.Get("x").GetValue() + value := inter.Globals.Get("x").GetValue(inter) assert.Equal( t, interpreter.ConvertSemaToStaticType( @@ -9947,7 +9909,7 @@ func TestInterpretHostFunctionStaticType(t *testing.T) { value.StaticType(inter), ) - value = inter.Globals.Get("y").GetValue() + value = inter.Globals.Get("y").GetValue(inter) assert.Equal( t, interpreter.PrimitiveStaticTypeMetaType, @@ -9973,14 +9935,14 @@ func TestInterpretHostFunctionStaticType(t *testing.T) { // Both `x` and `y` are two functions that returns a string. // Hence, their types are equal. i.e: Receivers shouldn't matter. - xValue := inter.Globals.Get("x").GetValue() + xValue := inter.Globals.Get("x").GetValue(inter) assert.Equal( t, interpreter.ConvertSemaToStaticType(nil, sema.ToStringFunctionType), xValue.StaticType(inter), ) - yValue := inter.Globals.Get("y").GetValue() + yValue := inter.Globals.Get("y").GetValue(inter) assert.Equal( t, interpreter.ConvertSemaToStaticType(nil, sema.ToStringFunctionType), @@ -11152,50 +11114,409 @@ func TestInterpretArrayMap(t *testing.T) { }) } -func TestInterpretOptionalReference(t *testing.T) { - +func TestInterpretArrayToVariableSized(t *testing.T) { t.Parallel() - t.Run("present", func(t *testing.T) { + runValidCase := func( + t *testing.T, + inter *interpreter.Interpreter, + expectedArray *interpreter.ArrayValue, + ) { + val, err := inter.Invoke("test") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + expectedArray, + val, + ) + } + + t.Run("with empty array", func(t *testing.T) { + t.Parallel() inter := parseCheckAndInterpret(t, ` - fun present(): &Int { - let x: Int? = 1 - let y = &x as &Int? - return y! - } - `) + let emptyVals_fixed: [Int; 0] = [] - value, err := inter.Invoke("present") - require.NoError(t, err) - require.Equal( + fun test(): [Int] { + return emptyVals_fixed.toVariableSized() + } + `) + + runValidCase( + t, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeInt, + }, + common.ZeroAddress, + ), + ) + }) + + t.Run("with integer array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + let xs_fixed: [Int; 5] = [1, 2, 3, 100, 201] + + fun test(): [Int] { + return xs_fixed.toVariableSized() + } + `) + + runValidCase( t, - &interpreter.EphemeralReferenceValue{ - Value: interpreter.NewUnmeteredIntValueFromInt64(1), - BorrowedType: sema.IntType, - Authorization: interpreter.UnauthorizedAccess, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeInt, + }, + common.ZeroAddress, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewUnmeteredIntValueFromInt64(3), + interpreter.NewUnmeteredIntValueFromInt64(100), + interpreter.NewUnmeteredIntValueFromInt64(201), + ), + ) + }) + + t.Run("with string array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + let xs_fixed: [String; 2] = ["abc", "def"] + + fun test(): [String] { + return xs_fixed.toVariableSized() + } + `) + + runValidCase( + t, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeString, + }, + common.ZeroAddress, + interpreter.NewUnmeteredStringValue("abc"), + interpreter.NewUnmeteredStringValue("def"), + ), + ) + }) + + t.Run("with array of struct", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct TestStruct { + var test: Int + + init(_ t: Int) { + self.test = t + } + } + + let sa_fixed: [TestStruct; 3] = [TestStruct(1), TestStruct(2), TestStruct(3)] + + fun test(): [TestStruct] { + return sa_fixed.toVariableSized() + } + `) + + location := common.Location(common.StringLocation("test")) + value1 := interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + location, + "TestStruct", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: interpreter.NewUnmeteredIntValueFromInt64(1), + }, }, - value, + common.ZeroAddress, + ) + value2 := interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + location, + "TestStruct", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: interpreter.NewUnmeteredIntValueFromInt64(2), + }, + }, + common.ZeroAddress, + ) + value3 := interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + location, + "TestStruct", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: interpreter.NewUnmeteredIntValueFromInt64(3), + }, + }, + common.ZeroAddress, + ) + + runValidCase( + t, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.NewCompositeStaticType( + nil, + common.Location(common.StringLocation("test")), + "TestStruct", + "S.test.TestStruct", + ), + }, + common.ZeroAddress, + value1, + value2, + value3, + ), + ) + }) +} + +func TestInterpretArrayToConstantSized(t *testing.T) { + t.Parallel() + + runValidCase := func( + t *testing.T, + inter *interpreter.Interpreter, + expectedArray interpreter.Value, + ) { + val, err := inter.Invoke("test") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + expectedArray, + val, ) + } + + t.Run("with empty array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + let emptyVals: [Int] = [] + + fun test(): [Int;0] { + let constArray = emptyVals.toConstantSized<[Int; 0]>() + return constArray! + } + `) + runValidCase( + t, + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.ConstantSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeInt, + Size: 0, + }, + common.ZeroAddress, + ), + ) }) - t.Run("absent", func(t *testing.T) { + t.Run("with integer array", func(t *testing.T) { t.Parallel() inter := parseCheckAndInterpret(t, ` - fun absent(): &Int { - let x: Int? = nil - let y = &x as &Int? - return y! - } - `) + let xs: [Int] = [1, 2, 3, 100, 201] - _, err := inter.Invoke("absent") - RequireError(t, err) + fun test(): [Int; 5]? { + return xs.toConstantSized<[Int; 5]>() + } + `) - var forceNilError interpreter.ForceNilError - require.ErrorAs(t, err, &forceNilError) + runValidCase( + t, + inter, + interpreter.NewSomeValueNonCopying( + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.ConstantSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeInt, + Size: 5, + }, + common.ZeroAddress, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewUnmeteredIntValueFromInt64(3), + interpreter.NewUnmeteredIntValueFromInt64(100), + interpreter.NewUnmeteredIntValueFromInt64(201), + ), + ), + ) + }) + + t.Run("with string array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + let xs: [String] = ["abc", "def"] + + fun test(): [String; 2]? { + return xs.toConstantSized<[String; 2]>() + } + `) + + runValidCase( + t, + inter, + interpreter.NewSomeValueNonCopying( + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.ConstantSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeString, + Size: 2, + }, + common.ZeroAddress, + interpreter.NewUnmeteredStringValue("abc"), + interpreter.NewUnmeteredStringValue("def"), + ), + ), + ) + }) + + t.Run("with wrong size", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + let xs: [Int] = [1, 2, 3, 100, 201] + + fun test(): [Int; 4]? { + return xs.toConstantSized<[Int; 4]>() + } + `) + + runValidCase( + t, + inter, + interpreter.NilOptionalValue, + ) + }) + + t.Run("with array of struct", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + struct TestStruct { + var test: Int + + init(_ t: Int) { + self.test = t + } + } + + let sa: [TestStruct] = [TestStruct(1), TestStruct(2), TestStruct(3)] + + fun test(): [TestStruct;3]? { + return sa.toConstantSized<[TestStruct;3]>() + } + `) + + location := common.Location(common.StringLocation("test")) + value1 := interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + location, + "TestStruct", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: interpreter.NewUnmeteredIntValueFromInt64(1), + }, + }, + common.ZeroAddress, + ) + value2 := interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + location, + "TestStruct", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: interpreter.NewUnmeteredIntValueFromInt64(2), + }, + }, + common.ZeroAddress, + ) + value3 := interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + location, + "TestStruct", + common.CompositeKindStructure, + []interpreter.CompositeField{ + { + Name: "test", + Value: interpreter.NewUnmeteredIntValueFromInt64(3), + }, + }, + common.ZeroAddress, + ) + + runValidCase( + t, + inter, + interpreter.NewSomeValueNonCopying( + inter, + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.ConstantSizedStaticType{ + Type: interpreter.NewCompositeStaticType( + nil, + common.Location(common.StringLocation("test")), + "TestStruct", + "S.test.TestStruct", + ), + Size: 3, + }, + common.ZeroAddress, + value1, + value2, + value3, + ), + ), + ) }) } @@ -11221,7 +11542,7 @@ func TestInterpretCastingBoxing(t *testing.T) { Type: interpreter.PrimitiveStaticTypeInt, }, ), - variable.GetValue(), + variable.GetValue(inter), ) }) @@ -11243,7 +11564,7 @@ func TestInterpretCastingBoxing(t *testing.T) { Type: interpreter.PrimitiveStaticTypeInt, }, ), - variable.GetValue(), + variable.GetValue(inter), ) }) @@ -11265,7 +11586,7 @@ func TestInterpretCastingBoxing(t *testing.T) { Type: interpreter.PrimitiveStaticTypeInt, }, ), - variable.GetValue(), + variable.GetValue(inter), ) }) } @@ -11287,10 +11608,14 @@ func TestInterpretNilCoalesceReference(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -11306,7 +11631,7 @@ func TestInterpretNilCoalesceReference(t *testing.T) { BorrowedType: sema.IntType, Authorization: interpreter.UnauthorizedAccess, }, - variable.GetValue(), + variable.GetValue(inter), ) } @@ -11333,7 +11658,7 @@ func TestInterpretDictionaryDuplicateKey(t *testing.T) { require.NoError(t, err) }) - t.Run("resource", func(t *testing.T) { + t.Run("resource in literal", func(t *testing.T) { t.Parallel() @@ -11353,7 +11678,30 @@ func TestInterpretDictionaryDuplicateKey(t *testing.T) { RequireError(t, err) require.ErrorAs(t, err, &interpreter.DuplicateKeyInResourceDictionaryError{}) + }) + + t.Run("resource", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + + resource R {} + + fun test() { + let r1 <- create R() + let r2 <- create R() + let rs: @{String: R?} <- {} + rs["a"] <-! r1 + rs["a"] <-! r2 + + destroy rs + } + `) + + _, err := inter.Invoke("test") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.ResourceLossError{}) }) } @@ -11768,28 +12116,14 @@ func TestInterpretSwapDictionaryKeysWithSideEffects(t *testing.T) { t.Run("resources", func(t *testing.T) { t.Parallel() - inter, getLogs, err := parseCheckAndInterpretWithLogs(t, ` + inter, getEvents, err := parseCheckAndInterpretWithEvents(t, ` resource Resource { + event ResourceDestroyed(value: Int = self.value) var value: Int init(_ value: Int) { - log( - "Creating resource with UUID " - .concat(self.uuid.toString()) - .concat(" and value ") - .concat(value.toString()) - ) self.value = value } - - destroy() { - log( - "Destroying resource with UUID " - .concat(self.uuid.toString()) - .concat(" and value ") - .concat(self.value.toString()) - ) - } } resource ResourceLoser { @@ -11823,11 +12157,6 @@ func TestInterpretSwapDictionaryKeysWithSideEffects(t *testing.T) { return 1 } - - destroy() { - destroy self.dict - destroy self.toBeLost - } } fun test() { @@ -11837,18 +12166,33 @@ func TestInterpretSwapDictionaryKeysWithSideEffects(t *testing.T) { require.NoError(t, err) _, err = inter.Invoke("test") - require.NoError(t, err) + RequireError(t, err) - assert.Equal(t, - []string{ - `"Creating resource with UUID 1 and value 1"`, - `"Creating resource with UUID 3 and value 2"`, - `"Creating resource with UUID 4 and value 3"`, - `"Destroying resource with UUID 3 and value 2"`, - `"Destroying resource with UUID 1 and value 1"`, - `"Destroying resource with UUID 4 and value 3"`, - }, - getLogs(), - ) + assert.ErrorAs(t, err, &interpreter.UseBeforeInitializationError{}) + + require.Empty(t, getEvents()) }) } + +func TestInterpretOptionalAddressInConditional(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun test(ok: Bool): Address? { + return ok ? 0x1 : nil + } + `) + + value, err := inter.Invoke("test", interpreter.TrueValue) + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewSomeValueNonCopying(nil, + interpreter.NewUnmeteredAddressValueFromBytes([]byte{0x1}), + ), + value, + ) +} diff --git a/runtime/tests/interpreter/invocation_test.go b/runtime/tests/interpreter/invocation_test.go index b319860e05..3c04c90667 100644 --- a/runtime/tests/interpreter/invocation_test.go +++ b/runtime/tests/interpreter/invocation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import ( "github.com/stretchr/testify/require" "github.com/onflow/cadence/runtime/activations" + "github.com/onflow/cadence/runtime/common" "github.com/onflow/cadence/runtime/interpreter" "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" @@ -52,7 +53,7 @@ func TestInterpretSelfDeclaration(t *testing.T) { test := func(t *testing.T, code string, expectSelf bool) { - checkFunction := stdlib.NewStandardLibraryFunction( + checkFunction := stdlib.NewStandardLibraryStaticFunction( "check", &sema.FunctionType{ ReturnTypeAnnotation: sema.VoidTypeAnnotation, @@ -81,12 +82,16 @@ func TestInterpretSelfDeclaration(t *testing.T) { inter, err := parseCheckAndInterpretWithOptions(t, code, ParseCheckAndInterpretOptions{ Config: &interpreter.Config{ - Storage: newUnmeteredInMemoryStorage(), - BaseActivation: baseActivation, + Storage: newUnmeteredInMemoryStorage(), + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, - AccessCheckMode: sema.AccessCheckModeNotSpecifiedUnrestricted, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeNotSpecifiedUnrestricted, }, }) require.NoError(t, err) diff --git a/runtime/tests/interpreter/member_test.go b/runtime/tests/interpreter/member_test.go index 26cb33b692..d5b1abac58 100644 --- a/runtime/tests/interpreter/member_test.go +++ b/runtime/tests/interpreter/member_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -409,7 +409,7 @@ func TestInterpretMemberAccessType(t *testing.T) { sType := checker.RequireGlobalType(t, inter.Program.Elaboration, "S") - ref := interpreter.NewUnmeteredEphemeralReferenceValue(interpreter.UnauthorizedAccess, value, sType) + ref := interpreter.NewUnmeteredEphemeralReferenceValue(inter, interpreter.UnauthorizedAccess, value, sType, interpreter.EmptyLocationRange) _, err = inter.Invoke("get", ref) require.NoError(t, err) @@ -456,7 +456,7 @@ func TestInterpretMemberAccessType(t *testing.T) { sType := checker.RequireGlobalType(t, inter.Program.Elaboration, "S") - ref := interpreter.NewUnmeteredEphemeralReferenceValue(interpreter.UnauthorizedAccess, value, sType) + ref := interpreter.NewUnmeteredEphemeralReferenceValue(inter, interpreter.UnauthorizedAccess, value, sType, interpreter.EmptyLocationRange) _, err = inter.Invoke("get", ref) RequireError(t, err) @@ -498,7 +498,7 @@ func TestInterpretMemberAccessType(t *testing.T) { sType := checker.RequireGlobalType(t, inter.Program.Elaboration, "S") - ref := interpreter.NewUnmeteredEphemeralReferenceValue(interpreter.UnauthorizedAccess, value, sType) + ref := interpreter.NewUnmeteredEphemeralReferenceValue(inter, interpreter.UnauthorizedAccess, value, sType, interpreter.EmptyLocationRange) _, err = inter.Invoke( "get", @@ -543,7 +543,7 @@ func TestInterpretMemberAccessType(t *testing.T) { sType := checker.RequireGlobalType(t, inter.Program.Elaboration, "S") - ref := interpreter.NewUnmeteredEphemeralReferenceValue(interpreter.UnauthorizedAccess, value, sType) + ref := interpreter.NewUnmeteredEphemeralReferenceValue(inter, interpreter.UnauthorizedAccess, value, sType, interpreter.EmptyLocationRange) _, err = inter.Invoke( "get", @@ -700,9 +700,6 @@ func TestInterpretMemberAccess(t *testing.T) { init() { self.bar <- create Bar() } - destroy() { - destroy self.bar - } } resource Bar { @@ -710,9 +707,6 @@ func TestInterpretMemberAccess(t *testing.T) { init() { self.baz <- create Baz() } - destroy() { - destroy self.baz - } } resource Baz { @@ -1075,7 +1069,7 @@ func TestInterpretMemberAccess(t *testing.T) { } struct S { - access(M) let foo: [String] + access(mapping M) let foo: [String] init() { self.foo = [] } @@ -1133,19 +1127,12 @@ func TestInterpretMemberAccess(t *testing.T) { // Test all built-in composite types for ty := interpreter.PrimitiveStaticType(1); ty < interpreter.PrimitiveStaticType_Count; ty++ { - if !ty.IsDefined() { + if !ty.IsDefined() || ty.IsDeprecated() { //nolint:staticcheck continue } semaType := ty.SemaType() - // Some primitive static types are deprecated, - // and only exist for migration purposes, - // so do not have an equivalent sema type - if semaType == nil { - continue - } - if !semaType.ContainFieldsOrElements() || semaType.IsResourceType() { @@ -1162,3 +1149,179 @@ func TestInterpretMemberAccess(t *testing.T) { } }) } + +func TestInterpretNestedReferenceMemberAccess(t *testing.T) { + + t.Parallel() + + t.Run("indexing", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource R {} + + fun test() { + let r <- create R() + let arrayRef = &[&r as &R] as &[AnyStruct] + let ref: &AnyStruct = arrayRef[0] // <--- run-time error here + destroy r + } + `) + + _, err := inter.Invoke("test") + require.ErrorAs(t, err, &interpreter.InvalidMemberReferenceError{}) + }) + + t.Run("field", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource R {} + + struct Container { + let value: AnyStruct + + init(value: AnyStruct) { + self.value = value + } + } + + fun test() { + let r <- create R() + let containerRef = &Container(value: &r as &R) as &Container + let ref: &AnyStruct = containerRef.value // <--- run-time error here + destroy r + } + `) + + _, err := inter.Invoke("test") + require.ErrorAs(t, err, &interpreter.InvalidMemberReferenceError{}) + }) + + t.Run("struct entitlement escalation", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + + entitlement E + + struct T { + access(E) fun foo() {} + } + + struct S { + access(mapping Identity) var ref: AnyStruct + + init(_ a: AnyStruct){ + self.ref = a + } + } + + fun test() { + let t = T() + let pubTRef = &t as &T + var s = &S(pubTRef) as auth(E) &S + var tRef = s.ref as! auth(E) &T + tRef.foo() + } + + `) + + _, err := inter.Invoke("test") + require.ErrorAs(t, err, &interpreter.InvalidMemberReferenceError{}) + }) + + t.Run("entitled struct escalation", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + + entitlement E + + struct T { + access(E) fun foo() {} + } + + struct S { + access(mapping Identity) var ref: AnyStruct + + init(_ a: AnyStruct){ + self.ref = a + } + } + + fun test() { + let t = T() + let pubTRef = &t as auth(E) &T + var s = &S(pubTRef) as auth(E) &S + var member = s.ref + var tRef = member as! auth(E) &T + tRef.foo() + } + + `) + + _, err := inter.Invoke("test") + require.ErrorAs(t, err, &interpreter.InvalidMemberReferenceError{}) + }) + + t.Run("resource entitlement escalation", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + + entitlement E + + resource R { + access(E) fun foo() {} + } + + struct S { + access(mapping Identity) var ref: AnyStruct + + init(_ a: AnyStruct){ + self.ref = a + } + } + + fun test() { + let r <- create R() + let pubRef = &r as &R + var s = &S(pubRef) as auth(E) &S + var entitledRef = s.ref as! auth(E) &R + entitledRef.foo() + + destroy r + } + + `) + + _, err := inter.Invoke("test") + require.ErrorAs(t, err, &interpreter.InvalidMemberReferenceError{}) + }) + + t.Run("referenceArray", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + + entitlement E + + struct T { + access(E) fun foo() {} + } + + fun test() { + let t1 = T() + let t2 = T() + let arr: [AnyStruct] = [&t1 as auth(E) &T, &t2 as auth(E) &T] + let arrRef = &arr as &[AnyStruct] + let tRef = arrRef[0] + } + + `) + + _, err := inter.Invoke("test") + require.NoError(t, err) + }) +} diff --git a/runtime/tests/interpreter/memory_metering_test.go b/runtime/tests/interpreter/memory_metering_test.go index 095ca5fabd..4b040292e2 100644 --- a/runtime/tests/interpreter/memory_metering_test.go +++ b/runtime/tests/interpreter/memory_metering_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -118,10 +118,10 @@ func TestInterpretArrayMetering(t *testing.T) { _, err := inter.Invoke("main") require.NoError(t, err) - assert.Equal(t, uint64(30), meter.getMemory(common.MemoryKindArrayValueBase)) - assert.Equal(t, uint64(24), meter.getMemory(common.MemoryKindAtreeArrayDataSlab)) - assert.Equal(t, uint64(3), meter.getMemory(common.MemoryKindAtreeArrayMetaDataSlab)) - assert.Equal(t, uint64(9), meter.getMemory(common.MemoryKindAtreeArrayElementOverhead)) + assert.Equal(t, uint64(26), meter.getMemory(common.MemoryKindArrayValueBase)) + assert.Equal(t, uint64(22), meter.getMemory(common.MemoryKindAtreeArrayDataSlab)) + assert.Equal(t, uint64(2), meter.getMemory(common.MemoryKindAtreeArrayMetaDataSlab)) + assert.Equal(t, uint64(6), meter.getMemory(common.MemoryKindAtreeArrayElementOverhead)) assert.Equal(t, uint64(8), meter.getMemory(common.MemoryKindVariable)) // 4 Int8: 1 for type, 3 for values @@ -442,7 +442,7 @@ func TestInterpretDictionaryMetering(t *testing.T) { _, err := inter.Invoke("main") require.NoError(t, err) - assert.Equal(t, uint64(27), meter.getMemory(common.MemoryKindDictionaryValueBase)) + assert.Equal(t, uint64(24), meter.getMemory(common.MemoryKindDictionaryValueBase)) assert.Equal(t, uint64(8), meter.getMemory(common.MemoryKindVariable)) // 4 Int8: 1 for type, 3 for values @@ -677,7 +677,7 @@ func TestInterpretCompositeMetering(t *testing.T) { _, err := inter.Invoke("main") require.NoError(t, err) - assert.Equal(t, uint64(27), meter.getMemory(common.MemoryKindCompositeValueBase)) + assert.Equal(t, uint64(24), meter.getMemory(common.MemoryKindCompositeValueBase)) assert.Equal(t, uint64(18), meter.getMemory(common.MemoryKindAtreeMapDataSlab)) assert.Equal(t, uint64(0), meter.getMemory(common.MemoryKindAtreeMapElementOverhead)) assert.Equal(t, uint64(480), meter.getMemory(common.MemoryKindAtreeMapPreAllocatedElement)) @@ -706,10 +706,11 @@ func TestInterpretSimpleCompositeMetering(t *testing.T) { address := common.MustBytesToAddress([]byte{0x1}) account := stdlib.NewAccountReferenceValue( - meter, + inter, nil, interpreter.AddressValue(address), interpreter.UnauthorizedAccess, + interpreter.EmptyLocationRange, ) _, err := inter.Invoke("main", account) @@ -1057,10 +1058,14 @@ func TestInterpretHostFunctionMetering(t *testing.T) { script, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, meter, @@ -1091,8 +1096,6 @@ func TestInterpretHostFunctionMetering(t *testing.T) { for _, valueDeclaration := range []stdlib.StandardLibraryValue{ stdlib.NewPublicKeyConstructor( assumeValidPublicKeyValidator{}, - nil, - nil, ), stdlib.SignatureAlgorithmConstructor, } { @@ -1106,10 +1109,14 @@ func TestInterpretHostFunctionMetering(t *testing.T) { script, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, meter, @@ -1120,7 +1127,7 @@ func TestInterpretHostFunctionMetering(t *testing.T) { require.NoError(t, err) // 1 host function created for 'decodeHex' of String value - assert.Equal(t, uint64(3), meter.getMemory(common.MemoryKindHostFunctionValue)) + assert.Equal(t, uint64(1), meter.getMemory(common.MemoryKindHostFunctionValue)) }) t.Run("multiple public key creation", func(t *testing.T) { @@ -1145,8 +1152,6 @@ func TestInterpretHostFunctionMetering(t *testing.T) { for _, valueDeclaration := range []stdlib.StandardLibraryValue{ stdlib.NewPublicKeyConstructor( assumeValidPublicKeyValidator{}, - nil, - nil, ), stdlib.SignatureAlgorithmConstructor, } { @@ -1160,10 +1165,14 @@ func TestInterpretHostFunctionMetering(t *testing.T) { script, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, meter, @@ -1174,7 +1183,7 @@ func TestInterpretHostFunctionMetering(t *testing.T) { require.NoError(t, err) // 2 = 2x 1 host function created for 'decodeHex' of String value - assert.Equal(t, uint64(6), meter.getMemory(common.MemoryKindHostFunctionValue)) + assert.Equal(t, uint64(2), meter.getMemory(common.MemoryKindHostFunctionValue)) }) } @@ -6679,7 +6688,7 @@ func TestInterpretStorageReferenceValueMetering(t *testing.T) { 1, sema.Conjunction, ) - account := stdlib.NewAccountReferenceValue(meter, nil, interpreter.AddressValue(address), authorization) + account := stdlib.NewAccountReferenceValue(inter, nil, interpreter.AddressValue(address), authorization, interpreter.EmptyLocationRange) _, err := inter.Invoke("main", account) require.NoError(t, err) @@ -8045,7 +8054,7 @@ func TestInterpretFunctionStaticType(t *testing.T) { _, err := inter.Invoke("main") require.NoError(t, err) - assert.Equal(t, uint64(3), meter.getMemory(common.MemoryKindFunctionStaticType)) + assert.Equal(t, uint64(4), meter.getMemory(common.MemoryKindFunctionStaticType)) }) } @@ -8440,8 +8449,8 @@ func TestInterpretASTMetering(t *testing.T) { _, err := inter.Invoke("main") require.NoError(t, err) - assert.Equal(t, uint64(201), meter.getMemory(common.MemoryKindPosition)) - assert.Equal(t, uint64(110), meter.getMemory(common.MemoryKindRange)) + assert.Equal(t, uint64(200), meter.getMemory(common.MemoryKindPosition)) + assert.Equal(t, uint64(109), meter.getMemory(common.MemoryKindRange)) }) t.Run("locations", func(t *testing.T) { @@ -8625,10 +8634,11 @@ func TestInterpretStorageMapMetering(t *testing.T) { sema.Conjunction, ) account := stdlib.NewAccountReferenceValue( - meter, + inter, nil, address, authorization, + interpreter.EmptyLocationRange, ) _, err := inter.Invoke("main", account) @@ -8646,7 +8656,7 @@ func TestInterpretValueStringConversion(t *testing.T) { var loggedString string - logFunction := stdlib.NewStandardLibraryFunction( + logFunction := stdlib.NewStandardLibraryStaticFunction( "log", &sema.FunctionType{ Parameters: []sema.Parameter{ @@ -8663,7 +8673,11 @@ func TestInterpretValueStringConversion(t *testing.T) { // Reset gauge, to only capture the values metered during string conversion meter.meter = make(map[common.MemoryKind]uint64) - loggedString = invocation.Arguments[0].MeteredString(invocation.Interpreter, interpreter.SeenReferences{}) + loggedString = invocation.Arguments[0].MeteredString( + invocation.Interpreter, + interpreter.SeenReferences{}, + invocation.LocationRange, + ) return interpreter.Void }, ) @@ -8677,10 +8691,14 @@ func TestInterpretValueStringConversion(t *testing.T) { inter, err := parseCheckAndInterpretWithOptionsAndMemoryMetering(t, script, ParseCheckAndInterpretOptions{ Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, meter, @@ -8982,7 +9000,7 @@ func TestInterpretStaticTypeStringConversion(t *testing.T) { var loggedString string - logFunction := stdlib.NewStandardLibraryFunction( + logFunction := stdlib.NewStandardLibraryStaticFunction( "log", &sema.FunctionType{ Parameters: []sema.Parameter{ @@ -8999,7 +9017,11 @@ func TestInterpretStaticTypeStringConversion(t *testing.T) { // Reset gauge, to only capture the values metered during string conversion meter.meter = make(map[common.MemoryKind]uint64) - loggedString = invocation.Arguments[0].MeteredString(invocation.Interpreter, interpreter.SeenReferences{}) + loggedString = invocation.Arguments[0].MeteredString( + invocation.Interpreter, + interpreter.SeenReferences{}, + invocation.LocationRange, + ) return interpreter.Void }, ) @@ -9013,10 +9035,14 @@ func TestInterpretStaticTypeStringConversion(t *testing.T) { inter, err := parseCheckAndInterpretWithOptionsAndMemoryMetering(t, script, ParseCheckAndInterpretOptions{ Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, }, meter, @@ -9037,6 +9063,10 @@ func TestInterpretStaticTypeStringConversion(t *testing.T) { for primitiveStaticType := range interpreter.PrimitiveStaticTypes { + if !primitiveStaticType.IsDefined() || primitiveStaticType.IsDeprecated() { //nolint:staticcheck + continue + } + switch primitiveStaticType { case interpreter.PrimitiveStaticTypeAny, interpreter.PrimitiveStaticTypeUnknown, @@ -9046,13 +9076,6 @@ func TestInterpretStaticTypeStringConversion(t *testing.T) { semaType := primitiveStaticType.SemaType() - // Some primitive static types are deprecated, - // and only exist for migration purposes, - // so do not have an equivalent sema type - if semaType == nil { - continue - } - switch semaType.(type) { case *sema.EntitlementType, *sema.EntitlementMapType: diff --git a/runtime/tests/interpreter/metatype_test.go b/runtime/tests/interpreter/metatype_test.go index f28c252e5a..522765d4be 100644 --- a/runtime/tests/interpreter/metatype_test.go +++ b/runtime/tests/interpreter/metatype_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ func TestInterpretMetaTypeEquality(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) @@ -65,7 +65,7 @@ func TestInterpretMetaTypeEquality(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) @@ -81,7 +81,7 @@ func TestInterpretMetaTypeEquality(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) @@ -97,7 +97,7 @@ func TestInterpretMetaTypeEquality(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) @@ -113,7 +113,7 @@ func TestInterpretMetaTypeEquality(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) @@ -142,10 +142,14 @@ func TestInterpretMetaTypeEquality(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -155,7 +159,7 @@ func TestInterpretMetaTypeEquality(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) @@ -198,10 +202,14 @@ func TestInterpretMetaTypeEquality(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -211,7 +219,7 @@ func TestInterpretMetaTypeEquality(t *testing.T) { t, inter, interpreter.FalseValue, - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) } @@ -233,7 +241,7 @@ func TestInterpretMetaTypeIdentifier(t *testing.T) { t, inter, interpreter.NewUnmeteredStringValue("[Int]"), - inter.Globals.Get("identifier").GetValue(), + inter.Globals.Get("identifier").GetValue(inter), ) }) @@ -252,7 +260,7 @@ func TestInterpretMetaTypeIdentifier(t *testing.T) { t, inter, interpreter.NewUnmeteredStringValue("S.test.S"), - inter.Globals.Get("identifier").GetValue(), + inter.Globals.Get("identifier").GetValue(inter), ) }) @@ -287,10 +295,14 @@ func TestInterpretMetaTypeIdentifier(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) @@ -300,7 +312,7 @@ func TestInterpretMetaTypeIdentifier(t *testing.T) { t, inter, interpreter.NewUnmeteredStringValue(""), - inter.Globals.Get("identifier").GetValue(), + inter.Globals.Get("identifier").GetValue(inter), ) }) @@ -440,10 +452,14 @@ func TestInterpretIsInstance(t *testing.T) { t.Run(testCase.name, func(t *testing.T) { inter, err := parseCheckAndInterpretWithOptions(t, testCase.code, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }) require.NoError(t, err) @@ -452,7 +468,7 @@ func TestInterpretIsInstance(t *testing.T) { t, inter, interpreter.BoolValue(testCase.result), - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) } @@ -580,17 +596,21 @@ func TestInterpretMetaTypeIsSubtype(t *testing.T) { t.Run(testCase.name, func(t *testing.T) { inter, err := parseCheckAndInterpretWithOptions(t, testCase.code, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseValueActivation: baseValueActivation, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }) require.NoError(t, err) assert.Equal(t, interpreter.BoolValue(testCase.result), - inter.Globals.Get("result").GetValue(), + inter.Globals.Get("result").GetValue(inter), ) }) } @@ -801,6 +821,7 @@ func TestInterpretGetType(t *testing.T) { for _, testCase := range cases { address := interpreter.NewUnmeteredAddressValueFromBytes([]byte{42}) + t.Run(testCase.name, func(t *testing.T) { inter, _ := testAccount(t, address, true, nil, testCase.code, sema.Config{}) @@ -824,10 +845,10 @@ func TestInterpretMetaTypeHashInput(t *testing.T) { // TypeValue.HashInput should not load the program inter := parseCheckAndInterpret(t, ` - fun test(_ type: Type) { - {type: 1} - } - `) + fun test(_ type: Type) { + {type: 1} + } + `) location := common.NewAddressLocation(nil, common.MustBytesToAddress([]byte{0x1}), "Foo") staticType := interpreter.NewCompositeStaticTypeComputeTypeID(nil, location, "Foo.Bar") @@ -837,3 +858,59 @@ func TestInterpretMetaTypeHashInput(t *testing.T) { require.NoError(t, err) } + +func TestInterpretBrokenMetaTypeUsage(t *testing.T) { + + t.Parallel() + + inter, getLogs, err := parseCheckAndInterpretWithLogs(t, ` + fun test(type1: Type, type2: Type): [Type] { + let dict = {type1: "a", type2: "b"} + log(dict.keys.length) + log(dict.keys.contains(type1)) + log(dict.keys.contains(type2)) + log(dict[type1]) + log(dict[type2]) + return dict.keys + } + `) + require.NoError(t, err) + + location := common.NewAddressLocation(nil, common.MustBytesToAddress([]byte{0x1}), "Foo") + staticType1 := interpreter.NewCompositeStaticTypeComputeTypeID(nil, location, "Foo.Bar") + staticType2 := interpreter.NewCompositeStaticTypeComputeTypeID(nil, location, "Foo.Baz") + typeValue1 := interpreter.NewUnmeteredTypeValue(staticType1) + typeValue2 := interpreter.NewUnmeteredTypeValue(staticType2) + + result, err := inter.Invoke("test", typeValue1, typeValue2) + require.NoError(t, err) + + assert.Equal(t, + []string{ + `2`, + `true`, + `true`, + `"a"`, + `"b"`, + }, + getLogs(), + ) + + require.IsType(t, &interpreter.ArrayValue{}, result) + resultArray := result.(*interpreter.ArrayValue) + + require.Equal(t, 2, resultArray.Count()) + + RequireValuesEqual(t, + inter, + interpreter.NewTypeValue(nil, staticType2), + resultArray.Get(inter, interpreter.EmptyLocationRange, 0), + ) + + RequireValuesEqual(t, + inter, + interpreter.NewTypeValue(nil, staticType1), + resultArray.Get(inter, interpreter.EmptyLocationRange, 1), + ) + +} diff --git a/runtime/tests/interpreter/metering_test.go b/runtime/tests/interpreter/metering_test.go index f7f5d303b7..9ca2d40026 100644 --- a/runtime/tests/interpreter/metering_test.go +++ b/runtime/tests/interpreter/metering_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -397,3 +397,266 @@ func TestInterpretFunctionInvocationHandler(t *testing.T) { occurrences, ) } + +func TestInterpretArrayFunctionsComputationMetering(t *testing.T) { + + t.Parallel() + + t.Run("reverse", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let x = [1, 2, 3] + let y = x.reverse() + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(3), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("map", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let x = [1, 2, 3, 4] + let trueForEven = fun (_ x: Int): Bool { + return x % 2 == 0 + } + let y = x.map(trueForEven) + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(5), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("filter", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let x = [1, 2, 3, 4, 5] + let onlyEven = view fun (_ x: Int): Bool { + return x % 2 == 0 + } + let y = x.filter(onlyEven) + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(6), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("slice", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let x = [1, 2, 3, 4, 5, 6] + let y = x.slice(from: 1, upTo: 4) + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(4), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("concat", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let x = [1, 2, 3] + let y = x.concat([4, 5, 6]) + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + // Computation is (arrayLength +1). It's an overestimate. + // The last one is for checking the end of array. + assert.Equal(t, uint(7), computationMeteredValues[common.ComputationKindLoop]) + }) +} + +func TestInterpretStdlibComputationMetering(t *testing.T) { + + t.Parallel() + + t.Run("string join", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let s = String.join(["one", "two", "three", "four"], separator: ", ") + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(4), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("string concat", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let s = "a b c".concat("1 2 3") + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(10), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("string replace all", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let s = "abcadeaf".replaceAll(of: "a", with: "z") + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(8), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("string to lower", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let s = "ABCdef".toLower() + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(6), computationMeteredValues[common.ComputationKindLoop]) + }) + + t.Run("string split", func(t *testing.T) { + t.Parallel() + + computationMeteredValues := make(map[common.ComputationKind]uint) + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let s = "abc/d/ef//".split(separator: "/") + }`, + ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnMeterComputation: func(compKind common.ComputationKind, intensity uint) { + computationMeteredValues[compKind] += intensity + }, + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, uint(10), computationMeteredValues[common.ComputationKindLoop]) + }) +} diff --git a/runtime/tests/interpreter/nesting_test.go b/runtime/tests/interpreter/nesting_test.go index fd7a6b7b01..c82353b34d 100644 --- a/runtime/tests/interpreter/nesting_test.go +++ b/runtime/tests/interpreter/nesting_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/path_test.go b/runtime/tests/interpreter/path_test.go index 0ac0efc3be..b67379821a 100644 --- a/runtime/tests/interpreter/path_test.go +++ b/runtime/tests/interpreter/path_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -54,7 +54,7 @@ func TestInterpretPath(t *testing.T) { Domain: domain, Identifier: "random", }, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) } @@ -91,11 +91,11 @@ func TestInterpretConvertStringToPath(t *testing.T) { Domain: domain, Identifier: "foo", }, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) }) - t.Run(fmt.Sprintf("invalid identifier 2: %s", domain.Identifier()), func(t *testing.T) { + t.Run(fmt.Sprintf("syntactically invalid identifier 2: %s", domain.Identifier()), func(t *testing.T) { t.Parallel() @@ -104,19 +104,22 @@ func TestInterpretConvertStringToPath(t *testing.T) { inter := parseCheckAndInterpret(t, fmt.Sprintf( ` - let x = %[1]s(identifier: "2") + let x = %[1]s(identifier: "2")! `, domainType.String(), ), ) assert.Equal(t, - interpreter.Nil, - inter.Globals.Get("x").GetValue(), + interpreter.PathValue{ + Domain: domain, + Identifier: "2", + }, + inter.Globals.Get("x").GetValue(inter), ) }) - t.Run(fmt.Sprintf("invalid identifier -: %s", domain.Identifier()), func(t *testing.T) { + t.Run(fmt.Sprintf("syntactically invalid identifier -: %s", domain.Identifier()), func(t *testing.T) { t.Parallel() @@ -125,15 +128,18 @@ func TestInterpretConvertStringToPath(t *testing.T) { inter := parseCheckAndInterpret(t, fmt.Sprintf( ` - let x = %[1]s(identifier: "fo-o") + let x = %[1]s(identifier: "fo-o")! `, domainType.String(), ), ) assert.Equal(t, - interpreter.Nil, - inter.Globals.Get("x").GetValue(), + interpreter.PathValue{ + Domain: domain, + Identifier: "fo-o", + }, + inter.Globals.Get("x").GetValue(inter), ) }) } diff --git a/runtime/tests/interpreter/range_value_test.go b/runtime/tests/interpreter/range_value_test.go new file mode 100644 index 0000000000..4396be49ac --- /dev/null +++ b/runtime/tests/interpreter/range_value_test.go @@ -0,0 +1,602 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package interpreter_test + +import ( + "fmt" + "strings" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/onflow/cadence/runtime/activations" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/stdlib" + "github.com/onflow/cadence/runtime/tests/utils" + . "github.com/onflow/cadence/runtime/tests/utils" +) + +type containsTestCase struct { + param int64 + expectedWithoutStep bool + expectedWithStep bool +} + +type inclusiveRangeConstructionTest struct { + ty sema.Type + s, e, step int8 + containsTests []containsTestCase +} + +func TestInclusiveRange(t *testing.T) { + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + baseActivation := activations.NewActivation(nil, interpreter.BaseActivation) + interpreter.Declare(baseActivation, stdlib.InclusiveRangeConstructorFunction) + + unsignedContainsTestCases := []containsTestCase{ + { + param: 1, + expectedWithoutStep: true, + expectedWithStep: false, + }, + { + param: 12, + expectedWithoutStep: false, + expectedWithStep: false, + }, + { + param: 10, + expectedWithoutStep: true, + expectedWithStep: true, + }, + { + param: 0, + expectedWithoutStep: true, + expectedWithStep: true, + }, + { + param: 2, + expectedWithoutStep: true, + expectedWithStep: true, + }, + } + + signedContainsTestCasesForward := []containsTestCase{ + { + param: 1, + expectedWithoutStep: true, + expectedWithStep: false, + }, + { + param: 100, + expectedWithoutStep: false, + expectedWithStep: false, + }, + { + param: -100, + expectedWithoutStep: false, + expectedWithStep: false, + }, + { + param: 0, + expectedWithoutStep: true, + expectedWithStep: true, + }, + { + param: 4, + expectedWithoutStep: true, + expectedWithStep: true, + }, + { + param: 10, + expectedWithoutStep: true, + expectedWithStep: true, + }, + } + signedContainsTestCasesBackward := []containsTestCase{ + { + param: 1, + expectedWithoutStep: true, + expectedWithStep: false, + }, + { + param: 12, + expectedWithoutStep: false, + expectedWithStep: false, + }, + { + param: -12, + expectedWithoutStep: false, + expectedWithStep: false, + }, + { + param: 10, + expectedWithoutStep: true, + expectedWithStep: true, + }, + { + param: -10, + expectedWithoutStep: true, + expectedWithStep: true, + }, + { + param: -8, + expectedWithoutStep: true, + expectedWithStep: true, + }, + } + + validTestCases := []inclusiveRangeConstructionTest{ + // Int* + { + ty: sema.IntType, + s: 0, + e: 10, + step: 2, + containsTests: signedContainsTestCasesForward, + }, + { + ty: sema.IntType, + s: 10, + e: -10, + step: -2, + containsTests: signedContainsTestCasesBackward, + }, + { + ty: sema.Int8Type, + s: 0, + e: 10, + step: 2, + containsTests: signedContainsTestCasesForward, + }, + { + ty: sema.Int8Type, + s: 10, + e: -10, + step: -2, + containsTests: signedContainsTestCasesBackward, + }, + { + ty: sema.Int16Type, + s: 0, + e: 10, + step: 2, + containsTests: signedContainsTestCasesForward, + }, + { + ty: sema.Int16Type, + s: 10, + e: -10, + step: -2, + containsTests: signedContainsTestCasesBackward, + }, + { + ty: sema.Int32Type, + s: 0, + e: 10, + step: 2, + containsTests: signedContainsTestCasesForward, + }, + { + ty: sema.Int32Type, + s: 10, + e: -10, + step: -2, + containsTests: signedContainsTestCasesBackward, + }, + { + ty: sema.Int64Type, + s: 0, + e: 10, + step: 2, + containsTests: signedContainsTestCasesForward, + }, + { + ty: sema.Int64Type, + s: 10, + e: -10, + step: -2, + containsTests: signedContainsTestCasesBackward, + }, + { + ty: sema.Int128Type, + s: 0, + e: 10, + step: 2, + containsTests: signedContainsTestCasesForward, + }, + { + ty: sema.Int128Type, + s: 10, + e: -10, + step: -2, + containsTests: signedContainsTestCasesBackward, + }, + { + ty: sema.Int256Type, + s: 0, + e: 10, + step: 2, + containsTests: signedContainsTestCasesForward, + }, + { + ty: sema.Int256Type, + s: 10, + e: -10, + step: -2, + containsTests: signedContainsTestCasesBackward, + }, + + // UInt* + { + ty: sema.UIntType, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.UInt8Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.UInt16Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.UInt32Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.UInt64Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.UInt128Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.UInt256Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + + // Word* + { + ty: sema.Word8Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.Word16Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.Word32Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.Word64Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.Word128Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + { + ty: sema.Word256Type, + s: 0, + e: 10, + step: 2, + containsTests: unsignedContainsTestCases, + }, + } + + runValidCase := func(t *testing.T, testCase inclusiveRangeConstructionTest, withStep bool) { + t.Run(testCase.ty.String(), func(t *testing.T) { + t.Parallel() + + // Generate code for the contains calls. + var containsCode string + for i, tc := range testCase.containsTests { + containsCode += fmt.Sprintf("\nlet c_%d = r.contains(%d)", i, tc.param) + } + + var code string + if withStep { + code = fmt.Sprintf( + ` + let s : %s = %d + let e : %s = %d + let step : %s = %d + let r: InclusiveRange<%s> = InclusiveRange(s, e, step: step) + + %s + `, + testCase.ty.String(), + testCase.s, + testCase.ty.String(), + testCase.e, + testCase.ty.String(), + testCase.step, + testCase.ty.String(), + containsCode, + ) + } else { + code = fmt.Sprintf( + ` + let s : %s = %d + let e : %s = %d + let r = InclusiveRange(s, e) + + %s + `, + testCase.ty.String(), + testCase.s, + testCase.ty.String(), + testCase.e, + containsCode, + ) + } + + inter, err := parseCheckAndInterpretWithOptions(t, code, + ParseCheckAndInterpretOptions{ + CheckerConfig: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + Config: &interpreter.Config{ + BaseActivationHandler: func(common.Location) *interpreter.VariableActivation { + return baseActivation + }, + }, + }, + ) + + require.NoError(t, err) + + integerType := interpreter.ConvertSemaToStaticType( + nil, + testCase.ty, + ) + + rangeType := interpreter.NewInclusiveRangeStaticType(nil, integerType) + rangeSemaType := sema.NewInclusiveRangeType(nil, testCase.ty) + + var expectedRangeValue *interpreter.CompositeValue + + if withStep { + expectedRangeValue = interpreter.NewInclusiveRangeValueWithStep( + inter, + interpreter.EmptyLocationRange, + interpreter.GetSmallIntegerValue(testCase.s, integerType), + interpreter.GetSmallIntegerValue(testCase.e, integerType), + interpreter.GetSmallIntegerValue(testCase.step, integerType), + rangeType, + rangeSemaType, + ) + } else { + expectedRangeValue = interpreter.NewInclusiveRangeValue( + inter, + interpreter.EmptyLocationRange, + interpreter.GetSmallIntegerValue(testCase.s, integerType), + interpreter.GetSmallIntegerValue(testCase.e, integerType), + rangeType, + rangeSemaType, + ) + } + + utils.AssertValuesEqual( + t, + inter, + expectedRangeValue, + inter.Globals.Get("r").GetValue(inter), + ) + + // Check that contains returns correct information. + for i, tc := range testCase.containsTests { + var expectedValue interpreter.Value + if withStep { + expectedValue = interpreter.AsBoolValue(tc.expectedWithStep) + } else { + expectedValue = interpreter.AsBoolValue(tc.expectedWithoutStep) + } + + utils.AssertValuesEqual( + t, + inter, + expectedValue, + inter.Globals.Get(fmt.Sprintf("c_%d", i)).GetValue(inter), + ) + } + }) + } + + // Run each test case with and without step. + for _, testCase := range validTestCases { + runValidCase(t, testCase, true) + runValidCase(t, testCase, false) + } +} + +func TestGetValueForIntegerType(t *testing.T) { + + t.Parallel() + + // Ensure that GetValueForIntegerType handles every IntegerType + + for _, integerType := range sema.AllIntegerTypes { + switch integerType { + case sema.IntegerType, + sema.SignedIntegerType, + sema.FixedSizeUnsignedIntegerType: + continue + } + + integerStaticType := interpreter.ConvertSemaToStaticType(nil, integerType) + + // Panics if not handled. + _ = interpreter.GetSmallIntegerValue(int8(1), integerStaticType) + } +} + +func TestInclusiveRangeConstructionInvalid(t *testing.T) { + t.Parallel() + + baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) + baseValueActivation.DeclareValue(stdlib.InclusiveRangeConstructorFunction) + + baseActivation := activations.NewActivation(nil, interpreter.BaseActivation) + interpreter.Declare(baseActivation, stdlib.InclusiveRangeConstructorFunction) + + runInvalidCase := func(t *testing.T, label, code string, expectedError error, expectedMessage string) { + t.Run(label, func(t *testing.T) { + t.Parallel() + + _, err := parseCheckAndInterpretWithOptions(t, code, + ParseCheckAndInterpretOptions{ + CheckerConfig: &sema.Config{ + BaseValueActivationHandler: func(common.Location) *sema.VariableActivation { + return baseValueActivation + }, + }, + Config: &interpreter.Config{ + BaseActivationHandler: func(common.Location) *interpreter.VariableActivation { + return baseActivation + }, + }, + }, + ) + + RequireError(t, err) + + require.ErrorAs(t, err, expectedError) + require.True(t, strings.Contains(err.Error(), expectedMessage)) + }) + } + + for _, integerType := range sema.AllIntegerTypes { + // Only test leaf types + switch integerType { + case sema.IntegerType, + sema.SignedIntegerType, + sema.FixedSizeUnsignedIntegerType: + continue + } + + typeString := integerType.String() + + // step = 0. + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(1), %s(2), step: %s(0))", typeString, typeString, typeString), + &interpreter.InclusiveRangeConstructionError{}, + "step value cannot be zero", + ) + + // step takes sequence away from end. + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(40), %s(2), step: %s(2))", typeString, typeString, typeString), + &interpreter.InclusiveRangeConstructionError{}, + "sequence is moving away from end", + ) + } + + // Additional invalid cases for signed integer types + for _, integerType := range sema.AllSignedIntegerTypes { + // Only test leaf types + switch integerType { + case sema.SignedIntegerType: + continue + } + + typeString := integerType.String() + + // step takes sequence away from end with step being negative. + // This would be a checker error for unsigned integers but a + // runtime error in signed integers. + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(4), %s(100), step: %s(-2))", typeString, typeString, typeString), + &interpreter.InclusiveRangeConstructionError{}, + "sequence is moving away from end", + ) + } + + // Additional invalid cases for unsigned integer types + for _, integerType := range sema.AllUnsignedIntegerTypes { + // Only test leaf types + switch integerType { + case sema.IntegerType: + continue + } + + typeString := integerType.String() + + runInvalidCase( + t, + typeString, + fmt.Sprintf("let r = InclusiveRange(%s(40), %s(1))", typeString, typeString), + &interpreter.InclusiveRangeConstructionError{}, + "step value cannot be negative for unsigned integer type", + ) + } +} diff --git a/runtime/tests/interpreter/reference_test.go b/runtime/tests/interpreter/reference_test.go index 2c345548ef..5517052b81 100644 --- a/runtime/tests/interpreter/reference_test.go +++ b/runtime/tests/interpreter/reference_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ package interpreter_test import ( + "fmt" "testing" "github.com/stretchr/testify/assert" @@ -448,7 +449,7 @@ func TestInterpretReferenceExpressionOfOptional(t *testing.T) { let ref = &r as &R? `) - value := inter.Globals.Get("ref").GetValue() + value := inter.Globals.Get("ref").GetValue(inter) require.IsType(t, &interpreter.SomeValue{}, value) innerValue := value.(*interpreter.SomeValue). @@ -467,7 +468,7 @@ func TestInterpretReferenceExpressionOfOptional(t *testing.T) { let ref = &s as &S? `) - value := inter.Globals.Get("ref").GetValue() + value := inter.Globals.Get("ref").GetValue(inter) require.IsType(t, &interpreter.SomeValue{}, value) innerValue := value.(*interpreter.SomeValue). @@ -484,7 +485,7 @@ func TestInterpretReferenceExpressionOfOptional(t *testing.T) { let ref = &i as &Int? `) - value := inter.Globals.Get("ref").GetValue() + value := inter.Globals.Get("ref").GetValue(inter) require.IsType(t, &interpreter.SomeValue{}, value) innerValue := value.(*interpreter.SomeValue). @@ -501,7 +502,7 @@ func TestInterpretReferenceExpressionOfOptional(t *testing.T) { let ref = &i as &Int? `) - value := inter.Globals.Get("ref").GetValue() + value := inter.Globals.Get("ref").GetValue(inter) require.IsType(t, &interpreter.SomeValue{}, value) innerValue := value.(*interpreter.SomeValue). @@ -518,7 +519,7 @@ func TestInterpretReferenceExpressionOfOptional(t *testing.T) { let ref = &i as &Int? `) - value := inter.Globals.Get("ref").GetValue() + value := inter.Globals.Get("ref").GetValue(inter) require.IsType(t, interpreter.Nil, value) }) } @@ -648,6 +649,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { ) arrayRef := interpreter.NewUnmeteredEphemeralReferenceValue( + inter, interpreter.NewEntitlementSetAuthorization( nil, func() []common.TypeID { return []common.TypeID{"Mutate"} }, @@ -658,6 +660,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { &sema.VariableSizedType{ Type: rType, }, + interpreter.EmptyLocationRange, ) _, err := inter.Invoke("test", arrayRef) @@ -753,6 +756,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { ) arrayRef1 := interpreter.NewUnmeteredEphemeralReferenceValue( + inter, interpreter.NewEntitlementSetAuthorization( nil, func() []common.TypeID { return []common.TypeID{"Mutate"} }, @@ -763,6 +767,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { &sema.VariableSizedType{ Type: rType, }, + interpreter.EmptyLocationRange, ) // Resource array in account 0x02 @@ -777,6 +782,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { ) arrayRef2 := interpreter.NewUnmeteredEphemeralReferenceValue( + inter, interpreter.NewEntitlementSetAuthorization( nil, func() []common.TypeID { return []common.TypeID{"Mutate"} }, @@ -787,6 +793,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { &sema.VariableSizedType{ Type: rType, }, + interpreter.EmptyLocationRange, ) _, err := inter.Invoke("test", arrayRef1, arrayRef2) @@ -848,6 +855,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { ) arrayRef := interpreter.NewUnmeteredEphemeralReferenceValue( + inter, interpreter.NewEntitlementSetAuthorization( nil, func() []common.TypeID { return []common.TypeID{"Mutate"} }, @@ -858,6 +866,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { &sema.VariableSizedType{ Type: rType, }, + interpreter.EmptyLocationRange, ) _, err := inter.Invoke("test", arrayRef) @@ -972,6 +981,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { ) arrayRef := interpreter.NewUnmeteredEphemeralReferenceValue( + inter, interpreter.NewEntitlementSetAuthorization( nil, func() []common.TypeID { return []common.TypeID{"Mutate"} }, @@ -982,6 +992,7 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { &sema.VariableSizedType{ Type: rType, }, + interpreter.EmptyLocationRange, ) _, err = inter.Invoke("setup", arrayRef) @@ -1186,9 +1197,6 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { self.id = 1 self.bar <-create Bar() } - destroy() { - destroy self.bar - } } resource Bar { @@ -1196,9 +1204,6 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { init() { self.baz <-create Baz() } - destroy() { - destroy self.baz - } } resource Baz { @@ -1310,9 +1315,6 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { init() { self.optionalBar <-create Bar() } - destroy() { - destroy self.optionalBar - } } resource Bar { @@ -1358,9 +1360,6 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { init() { self.bar <-create Bar() } - destroy() { - destroy self.bar - } } resource Bar { @@ -1446,9 +1445,6 @@ func TestInterpretResourceReferenceInvalidationOnMove(t *testing.T) { init() { self.bar <-create Bar() } - destroy() { - destroy self.bar - } } resource Bar { @@ -1565,7 +1561,7 @@ func TestInterpretResourceReferenceInvalidationOnDestroy(t *testing.T) { _, err := inter.Invoke("test") RequireError(t, err) - require.ErrorAs(t, err, &interpreter.DestroyedResourceError{}) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) }) t.Run("ref source is field", func(t *testing.T) { @@ -1608,7 +1604,7 @@ func TestInterpretResourceReferenceInvalidationOnDestroy(t *testing.T) { _, err := inter.Invoke("test") RequireError(t, err) - require.ErrorAs(t, err, &interpreter.DestroyedResourceError{}) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) }) } @@ -1640,19 +1636,19 @@ func TestInterpretReferenceTrackingOnInvocation(t *testing.T) { fooRef.something() // just to trick the checker - fooRef = returnSameRef(fooRef) + fooRef = returnSameRef(fooRef) // Moving the resource should update the tracking var newFoo <- foo - fooRef.id + fooRef.id - destroy newFoo + destroy newFoo } `) _, err := inter.Invoke("main") - require.Error(t, err) + RequireError(t, err) require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) } @@ -1732,5 +1728,1566 @@ func TestInterpretInvalidatedReferenceToOptional(t *testing.T) { `) _, err := inter.Invoke("main") - require.NoError(t, err) + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) +} + +func TestInterpretReferenceToReference(t *testing.T) { + t.Parallel() + + t.Run("basic", func(t *testing.T) { + + t.Parallel() + + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let x = &1 as &Int + let y = &x as & &Int + } + `, ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.NestedReferenceError{}, errs[0]) + }, + }) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.NestedReferenceError{}) + }) + + t.Run("upcast to anystruct", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main() { + let x = &1 as &Int as AnyStruct + let y = &x as &AnyStruct + } + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.NestedReferenceError{}) + }) + + t.Run("optional", func(t *testing.T) { + + t.Parallel() + + inter, err := parseCheckAndInterpretWithOptions(t, ` + fun main() { + let x: (&Int)? = &1 as &Int + let y: (&(&Int))? = &x + } + `, ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.NestedReferenceError{}, errs[0]) + }, + }) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.NestedReferenceError{}) + }) + + t.Run("upcast to optional anystruct", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main() { + let x = &1 as &Int as AnyStruct? + let y = &x as &AnyStruct? + } + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.NestedReferenceError{}) + }) + + t.Run("reference to storage reference", func(t *testing.T) { + + t.Parallel() + + address := interpreter.NewUnmeteredAddressValueFromBytes([]byte{42}) + + inter, _ := testAccount(t, address, true, nil, ` + resource R {} + + fun test(): Void { + + let r <- [<- create R()] + account.storage.save(<-r, to: /storage/foo) + let unauthRef = account.storage.borrow<&[R]>(from: /storage/foo)! + + let maskedUnauthRef = unauthRef as AnyStruct + let doubleRef = &maskedUnauthRef as auth(Mutate) &AnyStruct + let typedDoubleRef : auth(Mutate) &(&[R]) = doubleRef as! auth(Mutate) &(&[R]) + }`, sema.Config{}) + + _, err := inter.Invoke("test") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.NestedReferenceError{}) + }) + + t.Run("nested optional reference as AnyStruct", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main() { + var array: [Foo] = [] + var optionalArrayRef: (&[Foo])? = &array as &[Foo] + var anyStructValue = optionalArrayRef as AnyStruct + var ref = &anyStructValue as &AnyStruct + } + + struct Foo {} + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.NestedReferenceError{}) + }) +} + +func TestInterpretDereference(t *testing.T) { + t.Parallel() + + runTestCase := func( + t *testing.T, + name, code string, + expectedValueFunc func(*interpreter.Interpreter) interpreter.Value, + ) { + t.Run(name, func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, code) + + value, err := inter.Invoke("main") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + expectedValueFunc(inter), + value, + ) + }) + } + + t.Run("Integers", func(t *testing.T) { + t.Parallel() + + expectedValues := map[sema.Type]interpreter.IntegerValue{ + sema.IntType: interpreter.NewUnmeteredIntValueFromInt64(42), + sema.UIntType: interpreter.NewUnmeteredUIntValueFromUint64(42), + sema.UInt8Type: interpreter.NewUnmeteredUInt8Value(42), + sema.UInt16Type: interpreter.NewUnmeteredUInt16Value(42), + sema.UInt32Type: interpreter.NewUnmeteredUInt32Value(42), + sema.UInt64Type: interpreter.NewUnmeteredUInt64Value(42), + sema.UInt128Type: interpreter.NewUnmeteredUInt128ValueFromUint64(42), + sema.UInt256Type: interpreter.NewUnmeteredUInt256ValueFromUint64(42), + sema.Word8Type: interpreter.NewUnmeteredWord8Value(42), + sema.Word16Type: interpreter.NewUnmeteredWord16Value(42), + sema.Word32Type: interpreter.NewUnmeteredWord32Value(42), + sema.Word64Type: interpreter.NewUnmeteredWord64Value(42), + sema.Word128Type: interpreter.NewUnmeteredWord128ValueFromUint64(42), + sema.Word256Type: interpreter.NewUnmeteredWord256ValueFromUint64(42), + sema.Int8Type: interpreter.NewUnmeteredInt8Value(42), + sema.Int16Type: interpreter.NewUnmeteredInt16Value(42), + sema.Int32Type: interpreter.NewUnmeteredInt32Value(42), + sema.Int64Type: interpreter.NewUnmeteredInt64Value(42), + sema.Int128Type: interpreter.NewUnmeteredInt128ValueFromInt64(42), + sema.Int256Type: interpreter.NewUnmeteredInt256ValueFromInt64(42), + } + + for _, typ := range sema.AllIntegerTypes { + // Only test leaf types + switch typ { + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: + continue + } + + integerType := typ + typString := typ.QualifiedString() + + runTestCase( + t, + typString, + fmt.Sprintf( + ` + fun main(): %[1]s { + let x: &%[1]s = &42 + return *x + } + `, + integerType, + ), + func(_ *interpreter.Interpreter) interpreter.Value { + return expectedValues[integerType] + }, + ) + } + }) + + t.Run("Fixed-point numbers", func(t *testing.T) { + t.Parallel() + + expectedValues := map[sema.Type]interpreter.FixedPointValue{ + sema.UFix64Type: interpreter.NewUnmeteredUFix64Value(4224_000_000), + sema.Fix64Type: interpreter.NewUnmeteredFix64Value(4224_000_000), + } + + for _, typ := range sema.AllFixedPointTypes { + // Only test leaf types + switch typ { + case sema.FixedPointType, sema.SignedFixedPointType: + continue + } + + fixedPointType := typ + typString := typ.QualifiedString() + + runTestCase( + t, + typString, + fmt.Sprintf( + ` + fun main(): %[1]s { + let x: &%[1]s = &42.24 + return *x + } + `, + fixedPointType, + ), + func(_ *interpreter.Interpreter) interpreter.Value { + return expectedValues[fixedPointType] + }, + ) + } + }) + + t.Run("Variable-sized array of integers", func(t *testing.T) { + t.Parallel() + + for _, typ := range sema.AllIntegerTypes { + // Only test leaf types + switch typ { + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: + continue + } + + integerType := typ + typString := typ.QualifiedString() + + createArrayValue := func( + inter *interpreter.Interpreter, + innerStaticType interpreter.StaticType, + values ...interpreter.Value, + ) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: innerStaticType, + }, + common.ZeroAddress, + values..., + ) + } + + t.Run(fmt.Sprintf("[%s]", typString), func(t *testing.T) { + inter := parseCheckAndInterpret( + t, + fmt.Sprintf( + ` + let originalArray: [%[1]s] = [1, 2, 3] + + fun main(): [%[1]s] { + let ref: &[%[1]s] = &originalArray + + // Even a temporary value shouldn't affect originalArray. + (*ref).append(4) + + let deref = *ref + deref.append(4) + return deref + } + `, + integerType, + ), + ) + + value, err := inter.Invoke("main") + require.NoError(t, err) + + var expectedValue, expectedOriginalValue interpreter.Value + switch integerType { + // Int* + case sema.IntType: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewUnmeteredIntValueFromInt64(3), + interpreter.NewUnmeteredIntValueFromInt64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewUnmeteredIntValueFromInt64(3), + ) + + case sema.Int8Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt8, + interpreter.NewUnmeteredInt8Value(1), + interpreter.NewUnmeteredInt8Value(2), + interpreter.NewUnmeteredInt8Value(3), + interpreter.NewUnmeteredInt8Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt8, + interpreter.NewUnmeteredInt8Value(1), + interpreter.NewUnmeteredInt8Value(2), + interpreter.NewUnmeteredInt8Value(3), + ) + + case sema.Int16Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt16, + interpreter.NewUnmeteredInt16Value(1), + interpreter.NewUnmeteredInt16Value(2), + interpreter.NewUnmeteredInt16Value(3), + interpreter.NewUnmeteredInt16Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt16, + interpreter.NewUnmeteredInt16Value(1), + interpreter.NewUnmeteredInt16Value(2), + interpreter.NewUnmeteredInt16Value(3), + ) + + case sema.Int32Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt32, + interpreter.NewUnmeteredInt32Value(1), + interpreter.NewUnmeteredInt32Value(2), + interpreter.NewUnmeteredInt32Value(3), + interpreter.NewUnmeteredInt32Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt32, + interpreter.NewUnmeteredInt32Value(1), + interpreter.NewUnmeteredInt32Value(2), + interpreter.NewUnmeteredInt32Value(3), + ) + + case sema.Int64Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt64, + interpreter.NewUnmeteredInt64Value(1), + interpreter.NewUnmeteredInt64Value(2), + interpreter.NewUnmeteredInt64Value(3), + interpreter.NewUnmeteredInt64Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt64, + interpreter.NewUnmeteredInt64Value(1), + interpreter.NewUnmeteredInt64Value(2), + interpreter.NewUnmeteredInt64Value(3), + ) + + case sema.Int128Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt128, + interpreter.NewUnmeteredInt128ValueFromInt64(1), + interpreter.NewUnmeteredInt128ValueFromInt64(2), + interpreter.NewUnmeteredInt128ValueFromInt64(3), + interpreter.NewUnmeteredInt128ValueFromInt64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt128, + interpreter.NewUnmeteredInt128ValueFromInt64(1), + interpreter.NewUnmeteredInt128ValueFromInt64(2), + interpreter.NewUnmeteredInt128ValueFromInt64(3), + ) + + case sema.Int256Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt256, + interpreter.NewUnmeteredInt256ValueFromInt64(1), + interpreter.NewUnmeteredInt256ValueFromInt64(2), + interpreter.NewUnmeteredInt256ValueFromInt64(3), + interpreter.NewUnmeteredInt256ValueFromInt64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt256, + interpreter.NewUnmeteredInt256ValueFromInt64(1), + interpreter.NewUnmeteredInt256ValueFromInt64(2), + interpreter.NewUnmeteredInt256ValueFromInt64(3), + ) + + // UInt* + case sema.UIntType: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt, + interpreter.NewUnmeteredUIntValueFromUint64(1), + interpreter.NewUnmeteredUIntValueFromUint64(2), + interpreter.NewUnmeteredUIntValueFromUint64(3), + interpreter.NewUnmeteredUIntValueFromUint64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt, + interpreter.NewUnmeteredUIntValueFromUint64(1), + interpreter.NewUnmeteredUIntValueFromUint64(2), + interpreter.NewUnmeteredUIntValueFromUint64(3), + ) + + case sema.UInt8Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt8, + interpreter.NewUnmeteredUInt8Value(1), + interpreter.NewUnmeteredUInt8Value(2), + interpreter.NewUnmeteredUInt8Value(3), + interpreter.NewUnmeteredUInt8Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt8, + interpreter.NewUnmeteredUInt8Value(1), + interpreter.NewUnmeteredUInt8Value(2), + interpreter.NewUnmeteredUInt8Value(3), + ) + + case sema.UInt16Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt16, + interpreter.NewUnmeteredUInt16Value(1), + interpreter.NewUnmeteredUInt16Value(2), + interpreter.NewUnmeteredUInt16Value(3), + interpreter.NewUnmeteredUInt16Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt16, + interpreter.NewUnmeteredUInt16Value(1), + interpreter.NewUnmeteredUInt16Value(2), + interpreter.NewUnmeteredUInt16Value(3), + ) + + case sema.UInt32Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt32, + interpreter.NewUnmeteredUInt32Value(1), + interpreter.NewUnmeteredUInt32Value(2), + interpreter.NewUnmeteredUInt32Value(3), + interpreter.NewUnmeteredUInt32Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt32, + interpreter.NewUnmeteredUInt32Value(1), + interpreter.NewUnmeteredUInt32Value(2), + interpreter.NewUnmeteredUInt32Value(3), + ) + + case sema.UInt64Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt64, + interpreter.NewUnmeteredUInt64Value(1), + interpreter.NewUnmeteredUInt64Value(2), + interpreter.NewUnmeteredUInt64Value(3), + interpreter.NewUnmeteredUInt64Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt64, + interpreter.NewUnmeteredUInt64Value(1), + interpreter.NewUnmeteredUInt64Value(2), + interpreter.NewUnmeteredUInt64Value(3), + ) + + case sema.UInt128Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt128, + interpreter.NewUnmeteredUInt128ValueFromUint64(1), + interpreter.NewUnmeteredUInt128ValueFromUint64(2), + interpreter.NewUnmeteredUInt128ValueFromUint64(3), + interpreter.NewUnmeteredUInt128ValueFromUint64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt128, + interpreter.NewUnmeteredUInt128ValueFromUint64(1), + interpreter.NewUnmeteredUInt128ValueFromUint64(2), + interpreter.NewUnmeteredUInt128ValueFromUint64(3), + ) + + case sema.UInt256Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt256, + interpreter.NewUnmeteredUInt256ValueFromUint64(1), + interpreter.NewUnmeteredUInt256ValueFromUint64(2), + interpreter.NewUnmeteredUInt256ValueFromUint64(3), + interpreter.NewUnmeteredUInt256ValueFromUint64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt256, + interpreter.NewUnmeteredUInt256ValueFromUint64(1), + interpreter.NewUnmeteredUInt256ValueFromUint64(2), + interpreter.NewUnmeteredUInt256ValueFromUint64(3), + ) + + // Word* + case sema.Word8Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord8, + interpreter.NewUnmeteredWord8Value(1), + interpreter.NewUnmeteredWord8Value(2), + interpreter.NewUnmeteredWord8Value(3), + interpreter.NewUnmeteredWord8Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord8, + interpreter.NewUnmeteredWord8Value(1), + interpreter.NewUnmeteredWord8Value(2), + interpreter.NewUnmeteredWord8Value(3), + ) + + case sema.Word16Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord16, + interpreter.NewUnmeteredWord16Value(1), + interpreter.NewUnmeteredWord16Value(2), + interpreter.NewUnmeteredWord16Value(3), + interpreter.NewUnmeteredWord16Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord16, + interpreter.NewUnmeteredWord16Value(1), + interpreter.NewUnmeteredWord16Value(2), + interpreter.NewUnmeteredWord16Value(3), + ) + + case sema.Word32Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord32, + interpreter.NewUnmeteredWord32Value(1), + interpreter.NewUnmeteredWord32Value(2), + interpreter.NewUnmeteredWord32Value(3), + interpreter.NewUnmeteredWord32Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord32, + interpreter.NewUnmeteredWord32Value(1), + interpreter.NewUnmeteredWord32Value(2), + interpreter.NewUnmeteredWord32Value(3), + ) + + case sema.Word64Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord64, + interpreter.NewUnmeteredWord64Value(1), + interpreter.NewUnmeteredWord64Value(2), + interpreter.NewUnmeteredWord64Value(3), + interpreter.NewUnmeteredWord64Value(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord64, + interpreter.NewUnmeteredWord64Value(1), + interpreter.NewUnmeteredWord64Value(2), + interpreter.NewUnmeteredWord64Value(3), + ) + + case sema.Word128Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord128, + interpreter.NewUnmeteredWord128ValueFromUint64(1), + interpreter.NewUnmeteredWord128ValueFromUint64(2), + interpreter.NewUnmeteredWord128ValueFromUint64(3), + interpreter.NewUnmeteredWord128ValueFromUint64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord128, + interpreter.NewUnmeteredWord128ValueFromUint64(1), + interpreter.NewUnmeteredWord128ValueFromUint64(2), + interpreter.NewUnmeteredWord128ValueFromUint64(3), + ) + + case sema.Word256Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord256, + interpreter.NewUnmeteredWord256ValueFromUint64(1), + interpreter.NewUnmeteredWord256ValueFromUint64(2), + interpreter.NewUnmeteredWord256ValueFromUint64(3), + interpreter.NewUnmeteredWord256ValueFromUint64(4), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord256, + interpreter.NewUnmeteredWord256ValueFromUint64(1), + interpreter.NewUnmeteredWord256ValueFromUint64(2), + interpreter.NewUnmeteredWord256ValueFromUint64(3), + ) + } + + AssertValuesEqual( + t, + inter, + expectedValue, + value, + ) + + AssertValuesEqual( + t, + inter, + expectedOriginalValue, + inter.Globals.Get("originalArray").GetValue(inter), + ) + }) + } + }) + + t.Run("Constant-sized array of integers", func(t *testing.T) { + t.Parallel() + + for _, typ := range sema.AllIntegerTypes { + // Only test leaf types + switch typ { + case sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType: + continue + } + + integerType := typ + typString := typ.QualifiedString() + + createArrayValue := func( + inter *interpreter.Interpreter, + innerStaticType interpreter.StaticType, + values ...interpreter.Value, + ) interpreter.Value { + return interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.ConstantSizedStaticType{ + Type: innerStaticType, + Size: 3, + }, + common.ZeroAddress, + values..., + ) + } + + t.Run(fmt.Sprintf("[%s]", typString), func(t *testing.T) { + inter := parseCheckAndInterpret( + t, + fmt.Sprintf( + ` + let originalArray: [%[1]s; 3] = [1, 2, 3] + + fun main(): [%[1]s; 3] { + let ref: &[%[1]s; 3] = &originalArray + + let deref = *ref + deref[2] = 30 + return deref + } + `, + integerType, + ), + ) + + value, err := inter.Invoke("main") + require.NoError(t, err) + + var expectedValue, expectedOriginalValue interpreter.Value + switch integerType { + // Int* + case sema.IntType: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewUnmeteredIntValueFromInt64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewUnmeteredIntValueFromInt64(3), + ) + + case sema.Int8Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt8, + interpreter.NewUnmeteredInt8Value(1), + interpreter.NewUnmeteredInt8Value(2), + interpreter.NewUnmeteredInt8Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt8, + interpreter.NewUnmeteredInt8Value(1), + interpreter.NewUnmeteredInt8Value(2), + interpreter.NewUnmeteredInt8Value(3), + ) + + case sema.Int16Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt16, + interpreter.NewUnmeteredInt16Value(1), + interpreter.NewUnmeteredInt16Value(2), + interpreter.NewUnmeteredInt16Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt16, + interpreter.NewUnmeteredInt16Value(1), + interpreter.NewUnmeteredInt16Value(2), + interpreter.NewUnmeteredInt16Value(3), + ) + + case sema.Int32Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt32, + interpreter.NewUnmeteredInt32Value(1), + interpreter.NewUnmeteredInt32Value(2), + interpreter.NewUnmeteredInt32Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt32, + interpreter.NewUnmeteredInt32Value(1), + interpreter.NewUnmeteredInt32Value(2), + interpreter.NewUnmeteredInt32Value(3), + ) + + case sema.Int64Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt64, + interpreter.NewUnmeteredInt64Value(1), + interpreter.NewUnmeteredInt64Value(2), + interpreter.NewUnmeteredInt64Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt64, + interpreter.NewUnmeteredInt64Value(1), + interpreter.NewUnmeteredInt64Value(2), + interpreter.NewUnmeteredInt64Value(3), + ) + + case sema.Int128Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt128, + interpreter.NewUnmeteredInt128ValueFromInt64(1), + interpreter.NewUnmeteredInt128ValueFromInt64(2), + interpreter.NewUnmeteredInt128ValueFromInt64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt128, + interpreter.NewUnmeteredInt128ValueFromInt64(1), + interpreter.NewUnmeteredInt128ValueFromInt64(2), + interpreter.NewUnmeteredInt128ValueFromInt64(3), + ) + + case sema.Int256Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt256, + interpreter.NewUnmeteredInt256ValueFromInt64(1), + interpreter.NewUnmeteredInt256ValueFromInt64(2), + interpreter.NewUnmeteredInt256ValueFromInt64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeInt256, + interpreter.NewUnmeteredInt256ValueFromInt64(1), + interpreter.NewUnmeteredInt256ValueFromInt64(2), + interpreter.NewUnmeteredInt256ValueFromInt64(3), + ) + + // UInt* + case sema.UIntType: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt, + interpreter.NewUnmeteredUIntValueFromUint64(1), + interpreter.NewUnmeteredUIntValueFromUint64(2), + interpreter.NewUnmeteredUIntValueFromUint64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt, + interpreter.NewUnmeteredUIntValueFromUint64(1), + interpreter.NewUnmeteredUIntValueFromUint64(2), + interpreter.NewUnmeteredUIntValueFromUint64(3), + ) + + case sema.UInt8Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt8, + interpreter.NewUnmeteredUInt8Value(1), + interpreter.NewUnmeteredUInt8Value(2), + interpreter.NewUnmeteredUInt8Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt8, + interpreter.NewUnmeteredUInt8Value(1), + interpreter.NewUnmeteredUInt8Value(2), + interpreter.NewUnmeteredUInt8Value(3), + ) + + case sema.UInt16Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt16, + interpreter.NewUnmeteredUInt16Value(1), + interpreter.NewUnmeteredUInt16Value(2), + interpreter.NewUnmeteredUInt16Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt16, + interpreter.NewUnmeteredUInt16Value(1), + interpreter.NewUnmeteredUInt16Value(2), + interpreter.NewUnmeteredUInt16Value(3), + ) + + case sema.UInt32Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt32, + interpreter.NewUnmeteredUInt32Value(1), + interpreter.NewUnmeteredUInt32Value(2), + interpreter.NewUnmeteredUInt32Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt32, + interpreter.NewUnmeteredUInt32Value(1), + interpreter.NewUnmeteredUInt32Value(2), + interpreter.NewUnmeteredUInt32Value(3), + ) + + case sema.UInt64Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt64, + interpreter.NewUnmeteredUInt64Value(1), + interpreter.NewUnmeteredUInt64Value(2), + interpreter.NewUnmeteredUInt64Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt64, + interpreter.NewUnmeteredUInt64Value(1), + interpreter.NewUnmeteredUInt64Value(2), + interpreter.NewUnmeteredUInt64Value(3), + ) + + case sema.UInt128Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt128, + interpreter.NewUnmeteredUInt128ValueFromUint64(1), + interpreter.NewUnmeteredUInt128ValueFromUint64(2), + interpreter.NewUnmeteredUInt128ValueFromUint64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt128, + interpreter.NewUnmeteredUInt128ValueFromUint64(1), + interpreter.NewUnmeteredUInt128ValueFromUint64(2), + interpreter.NewUnmeteredUInt128ValueFromUint64(3), + ) + + case sema.UInt256Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt256, + interpreter.NewUnmeteredUInt256ValueFromUint64(1), + interpreter.NewUnmeteredUInt256ValueFromUint64(2), + interpreter.NewUnmeteredUInt256ValueFromUint64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeUInt256, + interpreter.NewUnmeteredUInt256ValueFromUint64(1), + interpreter.NewUnmeteredUInt256ValueFromUint64(2), + interpreter.NewUnmeteredUInt256ValueFromUint64(3), + ) + + // Word* + case sema.Word8Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord8, + interpreter.NewUnmeteredWord8Value(1), + interpreter.NewUnmeteredWord8Value(2), + interpreter.NewUnmeteredWord8Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord8, + interpreter.NewUnmeteredWord8Value(1), + interpreter.NewUnmeteredWord8Value(2), + interpreter.NewUnmeteredWord8Value(3), + ) + + case sema.Word16Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord16, + interpreter.NewUnmeteredWord16Value(1), + interpreter.NewUnmeteredWord16Value(2), + interpreter.NewUnmeteredWord16Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord16, + interpreter.NewUnmeteredWord16Value(1), + interpreter.NewUnmeteredWord16Value(2), + interpreter.NewUnmeteredWord16Value(3), + ) + + case sema.Word32Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord32, + interpreter.NewUnmeteredWord32Value(1), + interpreter.NewUnmeteredWord32Value(2), + interpreter.NewUnmeteredWord32Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord32, + interpreter.NewUnmeteredWord32Value(1), + interpreter.NewUnmeteredWord32Value(2), + interpreter.NewUnmeteredWord32Value(3), + ) + + case sema.Word64Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord64, + interpreter.NewUnmeteredWord64Value(1), + interpreter.NewUnmeteredWord64Value(2), + interpreter.NewUnmeteredWord64Value(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord64, + interpreter.NewUnmeteredWord64Value(1), + interpreter.NewUnmeteredWord64Value(2), + interpreter.NewUnmeteredWord64Value(3), + ) + + case sema.Word128Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord128, + interpreter.NewUnmeteredWord128ValueFromUint64(1), + interpreter.NewUnmeteredWord128ValueFromUint64(2), + interpreter.NewUnmeteredWord128ValueFromUint64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord128, + interpreter.NewUnmeteredWord128ValueFromUint64(1), + interpreter.NewUnmeteredWord128ValueFromUint64(2), + interpreter.NewUnmeteredWord128ValueFromUint64(3), + ) + + case sema.Word256Type: + expectedValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord256, + interpreter.NewUnmeteredWord256ValueFromUint64(1), + interpreter.NewUnmeteredWord256ValueFromUint64(2), + interpreter.NewUnmeteredWord256ValueFromUint64(30), + ) + expectedOriginalValue = createArrayValue( + inter, + interpreter.PrimitiveStaticTypeWord256, + interpreter.NewUnmeteredWord256ValueFromUint64(1), + interpreter.NewUnmeteredWord256ValueFromUint64(2), + interpreter.NewUnmeteredWord256ValueFromUint64(3), + ) + } + + AssertValuesEqual( + t, + inter, + expectedValue, + value, + ) + + AssertValuesEqual( + t, + inter, + expectedOriginalValue, + inter.Globals.Get("originalArray").GetValue(inter), + ) + }) + } + }) + + t.Run("Dictionary", func(t *testing.T) { + t.Parallel() + + t.Run("{Int: String}", func(t *testing.T) { + inter := parseCheckAndInterpret( + t, + ` + fun main(): {Int: String} { + let original = {1: "ABC", 2: "DEF"} + let x: &{Int : String} = &original + return *x + } + `, + ) + + value, err := inter.Invoke("main") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.DictionaryStaticType{ + KeyType: interpreter.PrimitiveStaticTypeInt, + ValueType: interpreter.PrimitiveStaticTypeString, + }, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewUnmeteredStringValue("ABC"), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewUnmeteredStringValue("DEF"), + ), + value, + ) + }) + + t.Run("{Int: [String]}", func(t *testing.T) { + inter := parseCheckAndInterpret( + t, + ` + fun main(): {Int: [String]} { + let original = {1: ["ABC", "XYZ"], 2: ["DEF"]} + let x: &{Int: [String]} = &original + return *x + } + `, + ) + + value, err := inter.Invoke("main") + require.NoError(t, err) + + AssertValuesEqual( + t, + inter, + interpreter.NewDictionaryValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.DictionaryStaticType{ + KeyType: interpreter.PrimitiveStaticTypeInt, + ValueType: &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeString, + }, + }, + interpreter.NewUnmeteredIntValueFromInt64(1), + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeString, + }, + common.ZeroAddress, + interpreter.NewUnmeteredStringValue("ABC"), + interpreter.NewUnmeteredStringValue("XYZ"), + ), + interpreter.NewUnmeteredIntValueFromInt64(2), + interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.PrimitiveStaticTypeString, + }, + common.ZeroAddress, + interpreter.NewUnmeteredStringValue("DEF"), + ), + ), + value, + ) + }) + }) + + t.Run("Character", func(t *testing.T) { + t.Parallel() + + runTestCase( + t, + "Character", + ` + fun main(): Character { + let original: Character = "S" + let x: &Character = &original + return *x + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredCharacterValue("S") + }, + ) + }) + + t.Run("String", func(t *testing.T) { + t.Parallel() + + runTestCase( + t, + "String", + ` + fun main(): String { + let original: String = "STxy" + let x: &String = &original + return *x + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredStringValue("STxy") + }, + ) + }) + + runTestCase( + t, + "Bool", + ` + fun main(): Bool { + let original: Bool = true + let x: &Bool = &original + return *x + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.BoolValue(true) + }, + ) + + address, err := common.HexToAddress("0x0000000000000231") + assert.NoError(t, err) + + runTestCase( + t, + "Address", + ` + fun main(): Address { + let original: Address = 0x0000000000000231 + let x: &Address = &original + return *x + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewAddressValue(nil, address) + }, + ) + + t.Run("Path", func(t *testing.T) { + t.Parallel() + + runTestCase( + t, + "PrivatePath", + ` + fun main(): Path { + let original: Path = /private/temp + let x: &Path = &original + return *x + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredPathValue(common.PathDomainPrivate, "temp") + }, + ) + + runTestCase( + t, + "PublicPath", + ` + fun main(): Path { + let original: Path = /public/temp + let x: &Path = &original + return *x + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredPathValue(common.PathDomainPublic, "temp") + }, + ) + }) + + t.Run("Optional", func(t *testing.T) { + t.Parallel() + + runTestCase( + t, + "nil", + ` + fun main(): Int? { + let ref: &Int? = nil + return *ref + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.Nil + }, + ) + + runTestCase( + t, + "some", + ` + fun main(): Int? { + let ref: &Int? = &42 as &Int + return *ref + } + `, + func(_ *interpreter.Interpreter) interpreter.Value { + return interpreter.NewUnmeteredSomeValueNonCopying( + interpreter.NewIntValueFromInt64(nil, 42), + ) + }, + ) + }) + + t.Run("Resource", func(t *testing.T) { + t.Parallel() + + t.Run("direct", func(t *testing.T) { + t.Parallel() + + inter, err := parseCheckAndInterpretWithOptions(t, + ` + resource R {} + + fun main() { + let r1 <- create R() + let r1Ref: &R = &r1 + let r2 <- *r1Ref + destroy r1 + destroy r2 + } + `, + ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.InvalidUnaryOperandError{}, errs[0]) + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.ResourceReferenceDereferenceError{}) + }) + + t.Run("array", func(t *testing.T) { + t.Parallel() + + inter, err := parseCheckAndInterpretWithOptions(t, + ` + resource R {} + + fun main() { + let rs1 <- [<- create R()] + let rs1Ref: &[R] = &rs1 + let rs2 <- *rs1Ref + destroy rs1 + destroy rs2 + } + `, + ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + + require.IsType(t, &sema.InvalidUnaryOperandError{}, errs[0]) + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + + require.ErrorAs(t, err, &interpreter.ResourceReferenceDereferenceError{}) + }) + }) + +} + +func TestInterpretOptionalReference(t *testing.T) { + + t.Parallel() + + t.Run("present", func(t *testing.T) { + + inter := parseCheckAndInterpret(t, ` + fun present(): &Int { + let x: Int? = 1 + let y = &x as &Int? + return y! + } + `) + + value, err := inter.Invoke("present") + require.NoError(t, err) + require.Equal( + t, + &interpreter.EphemeralReferenceValue{ + Value: interpreter.NewUnmeteredIntValueFromInt64(1), + BorrowedType: sema.IntType, + Authorization: interpreter.UnauthorizedAccess, + }, + value, + ) + + }) + + t.Run("absent", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun absent(): &Int { + let x: Int? = nil + let y = &x as &Int? + return y! + } + `) + + _, err := inter.Invoke("absent") + RequireError(t, err) + + var forceNilError interpreter.ForceNilError + require.ErrorAs(t, err, &forceNilError) + }) + + t.Run("nested optional reference", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main() { + var dict: {String: Foo?} = {} + var ref: (&Foo)?? = &dict["foo"] as &Foo?? + } + + struct Foo {} + `) + + _, err := inter.Invoke("main") + require.NoError(t, err) + }) +} + +func TestInterpretHostFunctionReferenceInvalidation(t *testing.T) { + + t.Parallel() + + t.Run("resource array host function", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main() { + var array: @[R] <- [] + var arrayRef: auth(Mutate) &[R] = &array as auth(Mutate) &[R] + + // Take an implicit reference to the resource array, using a function pointer + var arrayAppend = arrayRef.append + + // Destroy the resource array + destroy array + + // Call the function pointer + arrayAppend(<- create R()) + } + + resource R {} + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + invalidatedRefError := interpreter.InvalidatedResourceReferenceError{} + assert.ErrorAs(t, err, &invalidatedRefError) + }) + + t.Run("struct array host function", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main(): [S] { + var array: [S] = [] + var arrayRef: auth(Mutate) &[S] = &array as auth(Mutate) &[S] + + // Take an implicit reference to the struct array, using a function pointer + var arrayAppend = arrayRef.append + + // Move the struct array + var array2 = array + + // Call the function pointer + arrayAppend(S()) + + return array + } + + struct S {} + `) + + result, err := inter.Invoke("main") + require.NoError(t, err) + + sType := checker.RequireGlobalType(t, inter.Program.Elaboration, "S").(*sema.CompositeType) + + expectedResult := interpreter.NewArrayValue( + inter, + interpreter.EmptyLocationRange, + &interpreter.VariableSizedStaticType{ + Type: interpreter.ConvertSemaToStaticType(nil, sType), + }, + common.ZeroAddress, + interpreter.NewCompositeValue( + inter, + interpreter.EmptyLocationRange, + TestLocation, + "S", + common.CompositeKindStructure, + []interpreter.CompositeField{}, + common.ZeroAddress, + ), + ) + + AssertValuesEqual(t, inter, expectedResult, result) + }) + + t.Run("resource dictionary host function", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main() { + var dictionary: @{String:R} <- {} + var dictionaryRef: auth(Mutate) &{String:R} = &dictionary as auth(Mutate) &{String:R} + + // Take an implicit reference to the resource dictionary, using a function pointer + var dictionaryInsert = dictionaryRef.insert + + // Destroy the resource dictionary + destroy dictionary + + // Call the function pointer + destroy dictionaryInsert("r1", <- create R()) + } + + resource R {} + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + invalidatedRefError := interpreter.InvalidatedResourceReferenceError{} + assert.ErrorAs(t, err, &invalidatedRefError) + }) + + t.Run("struct host function", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun main(): Type { + var s = S() + + // Take an implicit reference to the struct, using a function pointer + var structGetType = s.getType + + // Move/assign the struct + var s2 = s + + // Call the function pointer + return structGetType() + } + + struct S {} + `) + + result, err := inter.Invoke("main") + require.NoError(t, err) + + sType := checker.RequireGlobalType(t, inter.Program.Elaboration, "S").(*sema.CompositeType) + + expectedResult := interpreter.NewTypeValue( + inter, + interpreter.ConvertSemaToStaticType(nil, sType), + ) + + AssertValuesEqual(t, inter, expectedResult, result) + }) } diff --git a/runtime/tests/interpreter/resources_test.go b/runtime/tests/interpreter/resources_test.go index 7e69be2f75..aa62f8914b 100644 --- a/runtime/tests/interpreter/resources_test.go +++ b/runtime/tests/interpreter/resources_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -52,10 +52,6 @@ func TestInterpretOptionalResourceBindingWithSecondValue(t *testing.T) { self.r <- create R() } - destroy () { - destroy self.r - } - fun duplicate(): @R? { if let r <- self.r <- nil { let r2 <- self.r <- nil @@ -111,10 +107,6 @@ func TestInterpretImplicitResourceRemovalFromContainer(t *testing.T) { init(r2: @R2) { self.r2 <- r2 } - - destroy() { - destroy self.r2 - } } fun test(): String? { @@ -162,10 +154,6 @@ func TestInterpretImplicitResourceRemovalFromContainer(t *testing.T) { init(r2: @R2) { self.r2 <- r2 } - - destroy() { - destroy self.r2 - } } fun test(): String? { @@ -216,10 +204,6 @@ func TestInterpretImplicitResourceRemovalFromContainer(t *testing.T) { init(r2s: @{Int: R2}) { self.r2s <- r2s } - - destroy() { - destroy self.r2s - } } fun test(): String? { @@ -267,10 +251,6 @@ func TestInterpretImplicitResourceRemovalFromContainer(t *testing.T) { init(r2s: @{Int: R2}) { self.r2s <- r2s } - - destroy() { - destroy self.r2s - } } fun test(): String? { @@ -1863,7 +1843,7 @@ func TestInterpreterResourcePreCondition(t *testing.T) { struct interface Receiver { access(all) fun deposit(from: @S) { - post { + pre { from != nil: "" } } @@ -1894,7 +1874,7 @@ func TestInterpreterResourcePostCondition(t *testing.T) { struct interface Receiver { access(all) fun deposit(from: @S) { post { - from != nil: "" + from != nil: "" // This is an error. Resource is destroyed at this point } } } @@ -1911,7 +1891,8 @@ func TestInterpreterResourcePostCondition(t *testing.T) { `) _, err := inter.Invoke("test") - require.NoError(t, err) + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceError{}) } func TestInterpreterResourcePreAndPostCondition(t *testing.T) { @@ -1924,10 +1905,10 @@ func TestInterpreterResourcePreAndPostCondition(t *testing.T) { struct interface Receiver { access(all) fun deposit(from: @S) { pre { - from != nil: "" + from != nil: "" // This is OK } post { - from != nil: "" + from != nil: "" // This is an error: Resource is destroyed at this point } } } @@ -1950,7 +1931,8 @@ func TestInterpreterResourcePreAndPostCondition(t *testing.T) { `) _, err := inter.Invoke("test") - require.NoError(t, err) + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceError{}) } func TestInterpreterResourceConditionAdditionalParam(t *testing.T) { @@ -1992,7 +1974,7 @@ func TestInterpreterResourceConditionAdditionalParam(t *testing.T) { require.NoError(t, err) } -func TestInterpreterResourceDoubleWrappedCondition(t *testing.T) { +func TestInterpreterResourceDoubleWrappedPreCondition(t *testing.T) { t.Parallel() @@ -2004,28 +1986,60 @@ func TestInterpreterResourceDoubleWrappedCondition(t *testing.T) { pre { from != nil: "" } - post { + } + } + + struct interface B { + access(all) fun deposit(from: @S) { + pre { from != nil: "" } } } - struct interface B { + struct Vault: A, B { access(all) fun deposit(from: @S) { pre { from != nil: "" } + destroy from + } + } + + fun test() { + Vault().deposit(from: <-create S()) + } + `) + + _, err := inter.Invoke("test") + require.NoError(t, err) +} + +func TestInterpreterResourceDoubleWrappedPostCondition(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource S {} + + struct interface A { + access(all) fun deposit(from: @S) { post { from != nil: "" } } } - struct Vault: A, B { + struct interface B { access(all) fun deposit(from: @S) { - pre { + post { from != nil: "" } + } + } + + struct Vault: A, B { + access(all) fun deposit(from: @S) { post { 1 > 0: "" } @@ -2039,7 +2053,8 @@ func TestInterpreterResourceDoubleWrappedCondition(t *testing.T) { `) _, err := inter.Invoke("test") - require.NoError(t, err) + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceError{}) } func TestInterpretOptionalResourceReference(t *testing.T) { @@ -2109,238 +2124,52 @@ func TestInterpretArrayOptionalResourceReference(t *testing.T) { func TestInterpretResourceDestroyedInPreCondition(t *testing.T) { t.Parallel() - didError := false - _, err := parseCheckAndInterpretWithOptions(t, + inter, err := parseCheckAndInterpretWithOptions( + t, ` - resource interface I { - access(all) fun receiveResource(_ r: @Bar) { - pre { - destroyResource(<-r) - } - } - } - - fun destroyResource(_ r: @Bar): Bool { - destroy r - return true - } - - resource Foo: I { - access(all) fun receiveResource(_ r: @Bar) { - destroy r - } - } - - resource Bar {} - - fun test() { - let foo <- create Foo() - let bar <- create Bar() - foo.receiveResource(<- bar) - destroy foo - } - `, - ParseCheckAndInterpretOptions{ - HandleCheckerError: func(err error) { - require.IsType(t, err, &sema.CheckerError{}) - require.IsType(t, err.(*sema.CheckerError).Errors[0], &sema.PurityError{}) - didError = true - }, - }, - ) - - require.NoError(t, err) - require.True(t, didError) -} - -func TestInterpretInvalidReentrantResourceDestruction(t *testing.T) { - - t.Parallel() - - t.Run("composite", func(t *testing.T) { - - t.Parallel() - - inter := parseCheckAndInterpret(t, ` - - resource Inner { - let outer: &Outer - - init(outer: &Outer) { - self.outer = outer - } - - destroy() { - self.outer.reenter() - } - } - - resource Outer { - var inner: @Inner? - - init() { - self.inner <-! create Inner(outer: &self as &Outer) - } - - fun reenter() { - let inner <- self.inner <- nil - destroy inner - } - - destroy() { - destroy self.inner - } - } - - fun test() { - let outer <- create Outer() - - destroy outer - } - `) - - _, err := inter.Invoke("test") - RequireError(t, err) - - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) - }) - - t.Run("array", func(t *testing.T) { - - t.Parallel() - - inter := parseCheckAndInterpret(t, ` - - resource Inner { - let outer: &Outer - - init(outer: &Outer) { - self.outer = outer - } - - destroy() { - self.outer.reenter() - } - } - - resource Outer { - var inner: @[Inner] - - init() { - self.inner <- [<-create Inner(outer: &self as &Outer)] - } - - fun reenter() { - let inner <- self.inner <- [] - destroy inner - } - - destroy() { - destroy self.inner + resource interface I { + access(all) fun receiveResource(_ r: @Bar) { + pre { + destroyResource(<-r) + } } } - fun test() { - let outer <- create Outer() - - destroy outer + fun destroyResource(_ r: @Bar): Bool { + destroy r + return true } - `) - - _, err := inter.Invoke("test") - RequireError(t, err) - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) - }) - - t.Run("dictionary", func(t *testing.T) { - - t.Parallel() - - inter := parseCheckAndInterpret(t, ` - - resource Inner { - let outer: &Outer - - init(outer: &Outer) { - self.outer = outer - } - - destroy() { - self.outer.reenter() + resource Foo: I { + access(all) fun receiveResource(_ r: @Bar) { + destroy r } } - resource Outer { - var inner: @{Int: Inner} - - init() { - self.inner <- {0: <-create Inner(outer: &self as &Outer)} - } - - fun reenter() { - let inner <- self.inner <- {} - destroy inner - } - - destroy() { - destroy self.inner - } - } + resource Bar {} fun test() { - let outer <- create Outer() + let foo <- create Foo() + let bar <- create Bar() - destroy outer + foo.receiveResource(<- bar) + destroy foo } - `) - - _, err := inter.Invoke("test") - RequireError(t, err) - - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) - }) -} - -func TestInterpretResourceFunctionInvocationAfterDestruction(t *testing.T) { - - t.Parallel() - - inter := parseCheckAndInterpret(t, ` - access(all) resource Vault { - access(all) fun foo(_ ignored: Bool) {} - } - - access(all) resource Attacker { - access(all) var vault: @Vault - - init() { - self.vault <- create Vault() - } - - access(all) fun shenanigans(): Bool { - var temp <- create Vault() - self.vault <-> temp - destroy temp - return true - } - - destroy() { - destroy self.vault - } - } - - access(all) fun main() { - let a <- create Attacker() - a.vault.foo(a.shenanigans()) - destroy a - } - `) + `, + ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 2) + require.IsType(t, &sema.PurityError{}, errs[0]) + require.IsType(t, &sema.InvalidInterfaceConditionResourceInvalidationError{}, errs[1]) + }, + }, + ) + require.NoError(t, err) - _, err := inter.Invoke("main") + _, err = inter.Invoke("test") RequireError(t, err) - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceError{}) } func TestInterpretResourceFunctionReferenceValidity(t *testing.T) { @@ -2369,10 +2198,6 @@ func TestInterpretResourceFunctionReferenceValidity(t *testing.T) { access(all) fun shenanigans2(_ ref: &Vault): &Vault { return ref } - - destroy() { - destroy self.vault - } } access(all) fun main() { @@ -2422,10 +2247,6 @@ func TestInterpretResourceFunctionResourceFunctionValidity(t *testing.T) { } return true } - - destroy() { - destroy self.vault - } } access(all) fun main() { @@ -2441,59 +2262,1284 @@ func TestInterpretResourceFunctionResourceFunctionValidity(t *testing.T) { require.NoError(t, err) } -func TestInterpretInnerResourceDestruction(t *testing.T) { +func TestInterpretImplicitDestruction(t *testing.T) { t.Parallel() - inter := parseCheckAndInterpret(t, ` - access(all) resource InnerResource { - access(all) var name: String - access(all) var parent: &OuterResource? + t.Run("basic", func(t *testing.T) { - init(_ name: String) { - self.name = name - self.parent = nil - } + t.Parallel() - access(all) fun setParent(_ parent: &OuterResource) { - self.parent = parent - } + inter := parseCheckAndInterpret(t, ` + + resource R {} - destroy() { - self.parent!.shenanigans() + fun test() { + let r <- create R() + destroy r } - } + `) - access(all) resource OuterResource { - access(all) var inner1: @InnerResource - access(all) var inner2: @InnerResource + _, err := inter.Invoke("test") + require.NoError(t, err) + }) +} - init() { - self.inner1 <- create InnerResource("inner1") - self.inner2 <- create InnerResource("inner2") +func TestInterpretResourceInterfaceDefaultDestroyEvent(t *testing.T) { - self.inner1.setParent(&self as &OuterResource) - self.inner2.setParent(&self as &OuterResource) - } + t.Parallel() - access(all) fun shenanigans() { - self.inner1 <-> self.inner2 - } + var events []*interpreter.CompositeValue - destroy() { - destroy self.inner1 - destroy self.inner2 - } - } + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource interface I { + access(all) let id: Int + event ResourceDestroyed(id: Int = self.id) + } - access(all) fun main() { - let a <- create OuterResource() - destroy a - }`, - ) + resource A: I { + access(all) let id: Int - _, err := inter.Invoke("main") - RequireError(t, err) + init(id: Int) { + self.id = id + } - require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + event ResourceDestroyed(id: Int = self.id) + } + + resource B: I { + access(all) let id: Int + + init(id: Int) { + self.id = id + } + + event ResourceDestroyed(id: Int = self.id) + } + + fun test() { + let a <- create A(id: 1) + let b <- create B(id: 2) + let ab: @[AnyResource] <- [<-a, <-b] + destroy ab + } + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + + require.NoError(t, err) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 4) + require.Equal(t, "I.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "A.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[1].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "I.ResourceDestroyed", events[2].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 2), events[2].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "B.ResourceDestroyed", events[3].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 2), events[3].GetField(inter, interpreter.EmptyLocationRange, "id")) +} + +func TestInterpretResourceInterfaceDefaultDestroyEventMultipleInheritance(t *testing.T) { + + t.Parallel() + + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource interface I { + access(all) let id: Int + event ResourceDestroyed(id: Int = self.id) + } + + resource interface J { + access(all) let id: Int + event ResourceDestroyed(id: Int = self.id) + } + + resource A: I, J { + access(all) let id: Int + + init(id: Int) { + self.id = id + } + + event ResourceDestroyed(id: Int = self.id) + } + + fun test() { + let a <- create A(id: 1) + destroy a + } + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + + require.NoError(t, err) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 3) + require.Equal(t, "I.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "J.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[1].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "A.ResourceDestroyed", events[2].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[2].GetField(inter, interpreter.EmptyLocationRange, "id")) +} + +func TestInterpretResourceInterfaceDefaultDestroyEventIndirectInheritance(t *testing.T) { + + t.Parallel() + + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource interface I { + access(all) let id: Int + event ResourceDestroyed(id: Int = self.id) + } + + resource interface J: I { + access(all) let id: Int + event ResourceDestroyed(id: Int = self.id) + } + + resource A: J { + access(all) let id: Int + + init(id: Int) { + self.id = id + } + + event ResourceDestroyed(id: Int = self.id) + } + + fun test() { + let a <- create A(id: 1) + destroy a + } + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + + require.NoError(t, err) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 3) + require.Equal(t, "J.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "I.ResourceDestroyed", events[1].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[1].GetField(inter, interpreter.EmptyLocationRange, "id")) + require.Equal(t, "A.ResourceDestroyed", events[2].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[2].GetField(inter, interpreter.EmptyLocationRange, "id")) +} + +func TestInterpretResourceInterfaceDefaultDestroyEventNoCompositeEvent(t *testing.T) { + + t.Parallel() + + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + resource interface I { + access(all) let id: Int + event ResourceDestroyed(id: Int = self.id) + } + + resource interface J: I { + access(all) let id: Int + } + + resource A: J { + access(all) let id: Int + + init(id: Int) { + self.id = id + } + } + + fun test() { + let a <- create A(id: 1) + destroy a + } + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + + require.NoError(t, err) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 1) + require.Equal(t, "I.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "id")) +} + +func TestInterpreterDefaultDestroyEventBaseShadowing(t *testing.T) { + + t.Parallel() + + t.Run("non-attachment type name", func(t *testing.T) { + + t.Parallel() + + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + access(all) resource R { + access(all) var i: Int + access(all) init() { + self.i = 123 + } + } + access(all) var globalArray: @[R] <- [<- create R()] + access(all) var base: &R = &globalArray[0] // strategically named variable + access(all) var dummy: @R <- globalArray.removeLast() // invalidate the ref + + access(all) attachment TrollAttachment for IndestructibleTroll { + access(all) event ResourceDestroyed( x: Int = base.i) + } + + access(all) resource IndestructibleTroll { + let i: Int + init() { + self.i = 1 + } + } + + access(all) fun test() { + var troll <- create IndestructibleTroll() + var trollAttachment <- attach TrollAttachment() to <-troll + destroy trollAttachment + } + `, ParseCheckAndInterpretOptions{ + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + Config: &interpreter.Config{ + OnEventEmitted: func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + }) + + require.NoError(t, err) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 1) + require.Equal(t, "TrollAttachment.ResourceDestroyed", events[0].QualifiedIdentifier) + + // should be 1, not 123 + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "x")) + }) + + t.Run("base contract name", func(t *testing.T) { + + t.Parallel() + + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + access(all) contract base { + access(all) var i: Int + access(all) init() { self.i = 1} + } + + access(all) attachment TrollAttachment for IndestructibleTroll { + access(all) event ResourceDestroyed( x: Int = base.i) + } + + access(all) resource IndestructibleTroll { + let i: Int + init() { + self.i = 1 + } + } + + access(all) fun test() { + var troll <- create IndestructibleTroll() + var trollAttachment <- attach TrollAttachment() to <-troll + destroy trollAttachment + } + `, ParseCheckAndInterpretOptions{ + CheckerConfig: &sema.Config{ + AttachmentsEnabled: true, + }, + Config: &interpreter.Config{ + OnEventEmitted: func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + ContractValueHandler: makeContractValueHandler(nil, nil, nil), + }, + }) + + require.NoError(t, err) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 1) + require.Equal(t, "TrollAttachment.ResourceDestroyed", events[0].QualifiedIdentifier) + + // should be 1, not 123 + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "x")) + }) +} + +func TestInterpretDefaultDestroyEventArgumentScoping(t *testing.T) { + + t.Parallel() + + var events []*interpreter.CompositeValue + + inter, err := parseCheckAndInterpretWithOptions(t, ` + let x = 1 + + resource R { + event ResourceDestroyed(x: Int = x) + } + + fun test() { + let x = 2 + let r <- create R() + // should emit R.ResourceDestroyed(x: 1), not R.ResourceDestroyed(x: 2) + destroy r + } + `, ParseCheckAndInterpretOptions{ + Config: &interpreter.Config{ + OnEventEmitted: func(inter *interpreter.Interpreter, locationRange interpreter.LocationRange, event *interpreter.CompositeValue, eventType *sema.CompositeType) error { + events = append(events, event) + return nil + }, + }, + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.DefaultDestroyInvalidArgumentError{}, errs[0]) + assert.Equal(t, errs[0].(*sema.DefaultDestroyInvalidArgumentError).Kind, sema.InvalidIdentifier) + // ... + }, + }) + + require.NoError(t, err) + _, err = inter.Invoke("test") + require.NoError(t, err) + + require.Len(t, events, 1) + require.Equal(t, "R.ResourceDestroyed", events[0].QualifiedIdentifier) + require.Equal(t, interpreter.NewIntValueFromInt64(nil, 1), events[0].GetField(inter, interpreter.EmptyLocationRange, "x")) +} + +func TestInterpretVariableDeclarationEvaluationOrder(t *testing.T) { + + t.Parallel() + + inter, getLogs, err := parseCheckAndInterpretWithLogs(t, ` + // Necessary helper interface, + // as AnyResource does not provide a uuid field, + // and AnyResource must be used in collect + // to avoid the potential type confusion to be rejected + // by the defensive argument/parameter type check + + resource interface HasID { + fun getID(): UInt64 + } + + resource Foo: HasID { + fun getID(): UInt64 { + return self.uuid + } + } + + resource Bar: HasID { + fun getID(): UInt64 { + return self.uuid + } + } + + fun collect(_ collected: @{HasID}): @Foo { + log("collected") + log(collected.getID()) + log(collected.getType()) + + destroy <- collected + + return <- create Foo() + } + + fun main() { + var foo <- create Foo() + log("foo") + log(foo.uuid) + + var bar <- create Bar() + log("bar") + log(bar.uuid) + + if (true) { + // Check that the RHS is evaluated *before* the variable is declared + var bar <- foo <- collect(<-bar) + + destroy foo + destroy bar // new bar + } else { + destroy foo + destroy bar // original bar + } + } + `) + require.NoError(t, err) + + _, err = inter.Invoke("main") + require.NoError(t, err) + + assert.Equal(t, + []string{ + `"foo"`, + `1`, + `"bar"`, + `2`, + `"collected"`, + `2`, + "Type()", + }, + getLogs(), + ) +} + +func TestInterpretNestedSwap(t *testing.T) { + + t.Parallel() + + inter, getLogs, err := parseCheckAndInterpretWithLogs(t, ` + access(all) resource NFT { + access(all) var name: String + init(name: String) { + self.name = name + } + } + + access(all) resource Company { + access(self) var equity: @[NFT] + + init(incorporationEquityCollection: @[NFT]) { + pre { + // We make sure the incorporation collection has at least one high-value NFT + incorporationEquityCollection[0].name == "High-value NFT" + } + self.equity <- incorporationEquityCollection + } + + access(all) fun logContents() { + log("Current contents of the Company (should have a High-value NFT):") + log(self.equity[0].name) + } + } + + access(all) resource SleightOfHand { + access(all) var arr: @[NFT]; + access(all) var company: @Company? + access(all) var trashNFT: @NFT + + init() { + self.arr <- [ <- create NFT(name: "High-value NFT")] + self.company <- nil + self.trashNFT <- create NFT(name: "Trash NFT") + self.doMagic() + } + + access(all) fun callback(): Int { + var x: @[NFT] <- [] + + log("before inner") + log(&self.arr as &AnyResource) + log(&x as &AnyResource) + + self.arr <-> x + + log("after inner") + log(&self.arr as &AnyResource) + log(&x as &AnyResource) + + // We hand over the array to the Company object after the swap + // has already been "scheduled" + self.company <-! create Company(incorporationEquityCollection: <- x) + + log("end callback") + + return 0 + } + + access(all) fun doMagic() { + log("before outer") + log(&self.arr as &AnyResource) + log(&self.trashNFT as &AnyResource) + + self.trashNFT <-> self.arr[self.callback()] + + log("after outer") + log(&self.arr as &AnyResource) + log(&self.trashNFT as &AnyResource) + + self.company?.logContents() + log("Look what I pickpocketd:") + log(self.trashNFT.name) + } + } + + access(all) fun main() { + let a <- create SleightOfHand() + destroy a + } + `) + + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + + assert.ErrorAs(t, err, &interpreter.UseBeforeInitializationError{}) + + assert.Equal(t, + []string{ + `"before outer"`, + `[S.test.NFT(uuid: 2, name: "High-value NFT")]`, + `S.test.NFT(name: "Trash NFT", uuid: 3)`, + `"before inner"`, + }, + getLogs(), + ) +} + +func TestInterpretMovedResourceInOptionalBinding(t *testing.T) { + + t.Parallel() + + inter, err := parseCheckAndInterpretWithOptions(t, ` + access(all) resource R{} + + access(all) fun collect(copy2: @R?, _ arrRef: auth(Mutate) &[R]): @R { + arrRef.append(<- copy2!) + return <- create R() + } + + access(all) fun main() { + var victim: @R? <- create R() + var arr: @[R] <- [] + + // In the optional binding below, the 'victim' must be invalidated + // before evaluation of the collect() call + if let copy1 <- victim <- collect(copy2: <- victim, &arr as auth(Mutate) &[R]) { + arr.append(<- copy1) + } + + destroy arr // This crashes + destroy victim + } + `, ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) + }, + }) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + invalidResourceError := &interpreter.InvalidatedResourceError{} + require.ErrorAs(t, err, invalidResourceError) + + // Error must be thrown at `copy2: <- victim` + errorStartPos := invalidResourceError.LocationRange.StartPosition() + assert.Equal(t, 15, errorStartPos.Line) + assert.Equal(t, 56, errorStartPos.Column) +} + +func TestInterpretMovedResourceInSecondValue(t *testing.T) { + + t.Parallel() + + inter, err := parseCheckAndInterpretWithOptions(t, ` + access(all) resource R{} + + access(all) fun collect(copy2: @R?, _ arrRef: auth(Mutate) &[R]): @R { + arrRef.append(<- copy2!) + return <- create R() + } + + access(all) fun main() { + var victim: @R? <- create R() + var arr: @[R] <- [] + + // In the optional binding below, the 'victim' must be invalidated + // before evaluation of the collect() call + let copy1 <- victim <- collect(copy2: <- victim, &arr as auth(Mutate) &[R]) + + destroy copy1 + destroy arr + destroy victim + } + `, ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + assert.IsType(t, &sema.ResourceUseAfterInvalidationError{}, errs[0]) + }, + }) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + invalidResourceError := &interpreter.InvalidatedResourceError{} + require.ErrorAs(t, err, invalidResourceError) + + // Error must be thrown at `copy2: <- victim` + errorStartPos := invalidResourceError.LocationRange.StartPosition() + assert.Equal(t, 15, errorStartPos.Line) + assert.Equal(t, 53, errorStartPos.Column) +} + +func TestInterpretResourceLoss(t *testing.T) { + + t.Parallel() + + t.Run("in callback", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R { + access(all) let id: String + + init(_ id: String) { + self.id = id + } + } + + access(all) fun dummy(): @R { return <- create R("dummy") } + + access(all) resource ResourceLoser { + access(self) var victim: @R + access(self) var value: @R? + + init(victim: @R) { + self.victim <- victim + self.value <- dummy() + self.doMagic() + } + + access(all) fun callback(r: @R): @R { + var x <- dummy() + x <-> self.victim + + // Write the victim value into self.value which will soon be overwritten + // (via an already-existing gettersetter) + self.value <-! x + return <- r + } + + access(all) fun doMagic() { + var out <- self.value <- self.callback(r: <- dummy()) + destroy out + } + } + + access(all) fun main(): Void { + var victim <- create R("victim resource") + var rl <- create ResourceLoser(victim: <- victim) + destroy rl + } + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.ResourceLossError{}) + }) + + t.Run("force nil assignment", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R { + access(all) event ResourceDestroyed() + } + + access(all) fun loseResource(_ victim: @R) { + var dict <- { 0: <- victim} + dict[0] <-! nil + destroy dict + } + + access(all) fun main() { + loseResource(<- create R()) + } + `) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.ResourceLossError{}) + }) +} + +func TestInterpretPreConditionResourceMove(t *testing.T) { + + t.Parallel() + + inter, err := parseCheckAndInterpretWithOptions(t, ` + access(all) resource Vault { } + access(all) resource interface Interface { + access(all) fun foo(_ r: @AnyResource) { + pre { + consume(&r as &AnyResource, <- r) + } + } + } + access(all) resource Implementation: Interface { + access(all) fun foo(_ r: @AnyResource) { + pre { + consume(&r as &AnyResource, <- r) + } + } + } + access(all) fun consume(_ unusedRef: &AnyResource?, _ r: @AnyResource): Bool { + destroy r + return true + } + access(all) fun main() { + let a <- create Implementation() + let b <- create Vault() + a.foo(<-b) + destroy a + }`, + ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + checkerErrors := checker.RequireCheckerErrors(t, err, 3) + require.IsType(t, &sema.PurityError{}, checkerErrors[0]) + require.IsType(t, &sema.InvalidInterfaceConditionResourceInvalidationError{}, checkerErrors[1]) + require.IsType(t, &sema.PurityError{}, checkerErrors[2]) + }, + }, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceError{}) +} + +func TestInterpretResourceSelfSwap(t *testing.T) { + + t.Parallel() + + t.Run("resource", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R{} + + access(all) fun main() { + var v: @R <- create R() + v <-> v + destroy v + }`, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + var invalidatedResourceErr interpreter.InvalidatedResourceError + require.ErrorAs(t, err, &invalidatedResourceErr) + }) + + t.Run("optional resource", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R{} + + access(all) fun main() { + var v: @R? <- create R() + v <-> v + destroy v + }`, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + var invalidatedResourceErr interpreter.InvalidatedResourceError + require.ErrorAs(t, err, &invalidatedResourceErr) + }) + + t.Run("resource array", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) fun main() { + var v: @[AnyResource] <- [] + v <-> v + destroy v + }`, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + var invalidatedResourceErr interpreter.InvalidatedResourceError + require.ErrorAs(t, err, &invalidatedResourceErr) + }) + + t.Run("resource dictionary", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) fun main() { + var v: @{String: AnyResource} <- {} + v <-> v + destroy v + }`, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + var invalidatedResourceErr interpreter.InvalidatedResourceError + require.ErrorAs(t, err, &invalidatedResourceErr) + }) +} + +func TestInterpretInvalidatingLoopedReference(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + // Victim code starts here: + access(all) resource VictimCompany { + + // No one should be able to withdraw funds from this array + access(self) var funds: @[Vault] + + access(all) view fun getBalance(): UFix64{ + var balanceSum = 0.0 + for v in (&self.funds as &[Vault]){ + balanceSum = balanceSum + v.balance + } + return balanceSum + } + + init(incorporationEquity: @[Vault]) { + post { + self.getBalance() >= 100.0: "Insufficient funds" + } + self.funds <- incorporationEquity + } + } + + access(all) resource Vault { + // Had to write this version without entitlements + access(all) var balance: UFix64 + + init(balance: UFix64) { + self.balance = balance + } + + access(all) fun deposit(from: @Vault): Void{ + self.balance = self.balance + from.balance + destroy from + } + + access(all) fun withdraw(amount: UFix64): @Vault{ + pre { + self.balance >= amount + } + self.balance = self.balance - amount + return <- create Vault(balance: amount) + } + } + + access(all) fun createEmptyVault(): @Vault { + return <- create Vault(balance: 0.0) + } + + // Attacker code starts from here + access(all) resource AttackerResource { + access(all) var fundsArray: @[Vault] + access(all) var stolenFunds: @Vault + + init(fundsToRecycle: @Vault) { + self.fundsArray <- [<- createEmptyVault(), <- fundsToRecycle] + self.stolenFunds <- createEmptyVault() + } + + access(all) fun attack(): @VictimCompany{ + var selfRef = &self as &AttackerResource + var victimCompany: @VictimCompany? <- nil + + // Section 1: + // This loop implicitly holds a reference to the atree array backing + // fundsArray and will keep vending us valid references to values + // inside it even if the array got moved. + for iteration, vaultRef in selfRef.fundsArray { + if iteration == 0 { + // Section 2: + // During the first iteration, we hand over the array to + // unsuspecting code while code in section 1 holds an + // implicit reference + var dummy: @[Vault] <- [] + self.fundsArray <-> dummy + victimCompany <-! create VictimCompany(incorporationEquity: <- dummy) + + // Don't touch vaultRef here, it got invalidated as it + // was in existence at the time of the move! + // Let's hold our horses till the next iteration + } else { + // Section 3: + // During subsequent iteration(s), we are in the clear and can + // enjoy freshly minted valid references + self.stolenFunds.deposit (from: <- vaultRef.withdraw(amount: vaultRef.balance)) + } + } + return <- victimCompany! + } + } + + access(all) fun main() { + var fundsToRecycle <- create Vault(balance: 100.0) + var attacker <- create AttackerResource(fundsToRecycle: <- fundsToRecycle) + var victimCompany <- attacker.attack() + destroy attacker + destroy victimCompany + }`, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) +} + +func TestInterpretInvalidatingAttachmentLoopedReference(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + // Victim code starts + access(all) resource Vault { + access(all) var balance: UFix64 + init(balance: UFix64) { + self.balance = balance + } + access(all) fun withdraw(amount: UFix64): @Vault { + self.balance = self.balance - amount + return <-create Vault(balance: amount) + } + access(all) fun deposit(from: @Vault) { + self.balance = self.balance + from.balance + destroy from + } + } + access(all) resource NFT {} + access(all) resource VictimSwapResource { + access(self) var flowTokens: @Vault? + access(self) var nft: @NFT? + access(self) var price: UFix64 + init(nft: @NFT, price: UFix64) { + self.nft <- nft + self.flowTokens <- nil + self.price = price + } + access(all) fun swapVaultForNFT(vault: @Vault): @NFT{ + self.flowTokens <-! vault + var nft <- self.nft <- nil + return <- nft! + } + } + access(all) fun createEmptyVault(): @Vault { + return <- create Vault(balance: 0.0) + } + // Attacker code starts + access(all) attachment B for Vault{ + access(all) fun getBase(): &Vault { return base } + } + access(all) attachment A for Vault { + access(all) fun getBase(): &Vault { return base } + } + access(all) resource AttackerResource { + access(all) var r: @Vault + access(all) var stolenFunds: @Vault + access(all) var nft: @NFT? + access(all) var victimSwap: @VictimSwapResource + init(recycledFunds: @Vault, victimSwap: @VictimSwapResource) { + self.r <- attach B() to <- attach A() to <- recycledFunds + self.victimSwap <- victimSwap + self.nft <- nil + self.stolenFunds <- createEmptyVault() + self.attack() + } + access(all) fun attack() { + var selfRef = &self as &AttackerResource + var counter = 0 + self.r.forEachAttachment(fun(a: &AnyResourceAttachment): Void { + if (counter == 0) { + selfRef.doMove() + } else if (counter == 1) { + // Our reference to the second attachment (and its base Vault) is valid despite + // the Vault having been moved into VictimSwapResource. We try a cast to both A + // and B to avoid depending on iteration order (which seemed flaky) + var postSwapRef: &Vault = (a as? &A)?.getBase() ?? ((a as? &B)?.getBase()!) + selfRef.stolenFunds.deposit(from: <- postSwapRef.withdraw(amount: postSwapRef.balance)) + } + counter = counter + 1 + }) + } + access(all) fun doMove() { + var fundsWithHeldImplicitReference <- self.r <- createEmptyVault() + // We hand over the Vault to the victim code while forEachAttachment internals in attack() + // implicitly hold a reference to it and will create an ephemeral reference for us + // on next iteration. + var nft <- self.victimSwap.swapVaultForNFT(vault: <- fundsWithHeldImplicitReference) + self.nft <-! nft + } + } + access(all) fun main() { + var swap <- create VictimSwapResource(nft: <- create NFT(), price: 100.0) + var recycledFunds <- create Vault(balance: 100.0) + var a <- create AttackerResource(recycledFunds: <- recycledFunds, victimSwap: <- swap) + destroy a + }`, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) +} + +func TestInterpretResourceReferenceInvalidation(t *testing.T) { + + t.Parallel() + + t.Run("simple use after invalidation", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R { + access(all) fun zombieFunction() {} + } + access(all) fun main() { + var r <- create R() + var rArray: @[R] <- [] + var refArray: [&R] = [] + refArray.append(&r as &R) + rArray.append(<- r) + refArray[0].zombieFunction() + destroy rArray + } + `, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("incomplete optional indirection", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R { + access(all) fun zombieFunction() {} + } + access(all) fun main() { + var refArray: [&AnyResource?] = [] + var anyresarray: @[AnyResource] <- [] + var r <- create R() + var opt1: @R <- r + + // Take a reference + refArray.append(&opt1 as &R) + + // Transfer the value + anyresarray.append(<- opt1) + var ref = (refArray[0]!) as! (&R) + + ref.zombieFunction() + destroy anyresarray + } + `, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("optional indirection", func(t *testing.T) { + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + access(all) resource R { + access(all) fun zombieFunction() {} + } + access(all) fun main() { + var refArray: [&AnyResource?] = [] + var anyresarray: @[AnyResource] <- [] + var r <- create R() + var opt1: @R? <- r + + // Take a reference + refArray.append(&opt1 as &R?) + + // Transfer the value + anyresarray.append(<- opt1) + + var ref = (refArray[0]!) as! (&R) + ref.zombieFunction() + destroy anyresarray + } + `, + ) + + _, err := inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("invalid reference logged in array", func(t *testing.T) { + t.Parallel() + + inter, _, err := parseCheckAndInterpretWithLogs(t, ` + access(all) resource R {} + + access(all) fun main() { + var refArray: [&R] = [] + + var r <- create R() + + refArray.append(&r as &R) + + // destroy the value + destroy r + + // Use the reference + log(refArray) + } + `, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("invalid optional reference logged in array", func(t *testing.T) { + t.Parallel() + + inter, _, err := parseCheckAndInterpretWithLogs(t, ` + access(all) resource R {} + + access(all) fun main() { + var refArray: [&AnyResource] = [] + var anyresarray: @[AnyResource] <- [] + var r <- create R() + var opt1: @R? <- r + + // Cast and take a reference + var opt1disguised: @AnyResource <- opt1 + refArray.append(&(opt1disguised) as &AnyResource) + + // Transfer the value + anyresarray.append(<- opt1disguised) + + // Use the reference + log(refArray) + destroy anyresarray + } + `, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("invalid reference logged in dict", func(t *testing.T) { + t.Parallel() + + inter, _, err := parseCheckAndInterpretWithLogs(t, ` + access(all) resource R {} + + access(all) fun main() { + var r <- create R() + + var refDict: {String: &R} = {"": &r as &R} + + // destroy the value + destroy r + + // Use the reference + log(refDict) + } + `, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("invalid reference logged in composite", func(t *testing.T) { + t.Parallel() + + inter, _, err := parseCheckAndInterpretWithLogs(t, ` + access(all) struct S { + access(all) let foo: &R + init(_ ref: &R) { + self.foo = ref + } + } + + access(all) resource R {} + + access(all) fun main() { + var r <- create R() + + var s = S(&r as &R) + + // destroy the value + destroy r + + // Use the reference + log(s) + } + `, + ) + require.NoError(t, err) + + _, err = inter.Invoke("main") + RequireError(t, err) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) } diff --git a/runtime/tests/interpreter/runtimetype_test.go b/runtime/tests/interpreter/runtimetype_test.go index d3411a8880..59e01554b9 100644 --- a/runtime/tests/interpreter/runtimetype_test.go +++ b/runtime/tests/interpreter/runtimetype_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ func TestInterpretOptionalType(t *testing.T) { Type: interpreter.PrimitiveStaticTypeString, }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, @@ -59,7 +59,7 @@ func TestInterpretOptionalType(t *testing.T) { Type: interpreter.PrimitiveStaticTypeInt, }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, @@ -68,7 +68,7 @@ func TestInterpretOptionalType(t *testing.T) { Type: interpreter.NewCompositeStaticTypeComputeTypeID(nil, utils.TestLocation, "R"), }, }, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, @@ -79,12 +79,12 @@ func TestInterpretOptionalType(t *testing.T) { }, }, }, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("e").GetValue(inter), ) } @@ -109,7 +109,7 @@ func TestInterpretVariableSizedArrayType(t *testing.T) { Type: interpreter.PrimitiveStaticTypeString, }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, @@ -118,7 +118,7 @@ func TestInterpretVariableSizedArrayType(t *testing.T) { Type: interpreter.PrimitiveStaticTypeInt, }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, @@ -127,7 +127,7 @@ func TestInterpretVariableSizedArrayType(t *testing.T) { Type: interpreter.NewCompositeStaticTypeComputeTypeID(nil, utils.TestLocation, "R"), }, }, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, @@ -138,11 +138,11 @@ func TestInterpretVariableSizedArrayType(t *testing.T) { }, }, }, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("e").GetValue(inter), ) } @@ -168,7 +168,7 @@ func TestInterpretConstantSizedArrayType(t *testing.T) { Size: int64(10), }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, @@ -178,7 +178,7 @@ func TestInterpretConstantSizedArrayType(t *testing.T) { Size: int64(5), }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, @@ -188,7 +188,7 @@ func TestInterpretConstantSizedArrayType(t *testing.T) { Size: int64(400), }, }, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, @@ -201,12 +201,12 @@ func TestInterpretConstantSizedArrayType(t *testing.T) { Size: int64(6), }, }, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("e").GetValue(inter), ) } @@ -234,7 +234,7 @@ func TestInterpretDictionaryType(t *testing.T) { ValueType: interpreter.PrimitiveStaticTypeInt, }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, @@ -244,7 +244,7 @@ func TestInterpretDictionaryType(t *testing.T) { ValueType: interpreter.PrimitiveStaticTypeString, }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, @@ -254,7 +254,7 @@ func TestInterpretDictionaryType(t *testing.T) { KeyType: interpreter.PrimitiveStaticTypeInt, }, }, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, @@ -267,17 +267,17 @@ func TestInterpretDictionaryType(t *testing.T) { KeyType: interpreter.PrimitiveStaticTypeBool, }, }, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("e").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("f").GetValue(), + inter.Globals.Get("f").GetValue(inter), ) } @@ -307,90 +307,50 @@ func TestInterpretCompositeType(t *testing.T) { interpreter.TypeValue{ Type: interpreter.NewCompositeStaticTypeComputeTypeID(nil, utils.TestLocation, "R"), }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, interpreter.TypeValue{ Type: interpreter.NewCompositeStaticTypeComputeTypeID(nil, utils.TestLocation, "S"), }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("e").GetValue(inter), ) assert.Equal(t, interpreter.TypeValue{ Type: interpreter.NewCompositeStaticTypeComputeTypeID(nil, utils.TestLocation, "F"), }, - inter.Globals.Get("f").GetValue(), + inter.Globals.Get("f").GetValue(inter), ) assert.Equal(t, interpreter.TypeValue{ Type: interpreter.NewCompositeStaticTypeComputeTypeID(nil, nil, "PublicKey"), }, - inter.Globals.Get("g").GetValue(), + inter.Globals.Get("g").GetValue(inter), ) assert.Equal(t, interpreter.TypeValue{ Type: interpreter.NewCompositeStaticTypeComputeTypeID(nil, nil, "HashAlgorithm"), }, - inter.Globals.Get("h").GetValue(), - ) -} - -func TestInterpretInterfaceType(t *testing.T) { - - t.Parallel() - - inter := parseCheckAndInterpret(t, ` - resource interface R {} - struct interface S {} - struct B {} - - let a = InterfaceType("S.test.R")! - let b = InterfaceType("S.test.S")! - let c = InterfaceType("S.test.A") - let d = InterfaceType("S.test.B") - `) - - assert.Equal(t, - interpreter.TypeValue{ - Type: interpreter.NewInterfaceStaticTypeComputeTypeID(nil, utils.TestLocation, "R"), - }, - inter.Globals.Get("a").GetValue(), - ) - - assert.Equal(t, - interpreter.TypeValue{ - Type: interpreter.NewInterfaceStaticTypeComputeTypeID(nil, utils.TestLocation, "S"), - }, - inter.Globals.Get("b").GetValue(), - ) - - assert.Equal(t, - interpreter.Nil, - inter.Globals.Get("c").GetValue(), - ) - - assert.Equal(t, - interpreter.Nil, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("h").GetValue(inter), ) } @@ -419,7 +379,7 @@ func TestInterpretFunctionType(t *testing.T) { }, }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, @@ -434,7 +394,7 @@ func TestInterpretFunctionType(t *testing.T) { }, }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, @@ -445,12 +405,12 @@ func TestInterpretFunctionType(t *testing.T) { }, }, }, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("d").GetValue(inter), ) } @@ -482,7 +442,7 @@ func TestInterpretReferenceType(t *testing.T) { ), }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, @@ -492,7 +452,7 @@ func TestInterpretReferenceType(t *testing.T) { Authorization: interpreter.UnauthorizedAccess, }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, @@ -507,17 +467,17 @@ func TestInterpretReferenceType(t *testing.T) { ), }, }, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("d").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("e").GetValue(inter), ) } @@ -557,12 +517,12 @@ func TestInterpretIntersectionType(t *testing.T) { }, }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, @@ -573,12 +533,12 @@ func TestInterpretIntersectionType(t *testing.T) { }, }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("j").GetValue(), + inter.Globals.Get("j").GetValue(inter), ) assert.Equal(t, @@ -590,22 +550,22 @@ func TestInterpretIntersectionType(t *testing.T) { }, }, }, - inter.Globals.Get("k").GetValue(), + inter.Globals.Get("k").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("f").GetValue(), + inter.Globals.Get("f").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("h").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("h").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("b").GetValue(), - inter.Globals.Get("i").GetValue(), + inter.Globals.Get("b").GetValue(inter), + inter.Globals.Get("i").GetValue(inter), ) } @@ -633,7 +593,7 @@ func TestInterpretCapabilityType(t *testing.T) { }, }, }, - inter.Globals.Get("a").GetValue(), + inter.Globals.Get("a").GetValue(inter), ) assert.Equal(t, @@ -645,7 +605,7 @@ func TestInterpretCapabilityType(t *testing.T) { }, }, }, - inter.Globals.Get("b").GetValue(), + inter.Globals.Get("b").GetValue(inter), ) assert.Equal(t, @@ -657,16 +617,61 @@ func TestInterpretCapabilityType(t *testing.T) { }, }, }, - inter.Globals.Get("c").GetValue(), + inter.Globals.Get("c").GetValue(inter), + ) + + assert.Equal(t, + interpreter.Nil, + inter.Globals.Get("d").GetValue(inter), + ) + + assert.Equal(t, + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("e").GetValue(inter), + ) +} + +func TestInterpretInclusiveRangeType(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + let a = InclusiveRangeType(Type())! + let b = InclusiveRangeType(Type<&Int>()) + + resource R {} + let c = InclusiveRangeType(Type<@R>()) + let d = InclusiveRangeType(Type()) + + let e = InclusiveRangeType(Type())! + `) + + assert.Equal(t, + interpreter.TypeValue{ + Type: interpreter.InclusiveRangeStaticType{ + ElementType: interpreter.PrimitiveStaticTypeInt, + }, + }, + inter.Globals.Get("a").GetValue(inter), + ) + + assert.Equal(t, + interpreter.Nil, + inter.Globals.Get("b").GetValue(inter), + ) + + assert.Equal(t, + interpreter.Nil, + inter.Globals.Get("c").GetValue(inter), ) assert.Equal(t, interpreter.Nil, - inter.Globals.Get("d").GetValue(), + inter.Globals.Get("d").GetValue(inter), ) assert.Equal(t, - inter.Globals.Get("a").GetValue(), - inter.Globals.Get("e").GetValue(), + inter.Globals.Get("a").GetValue(inter), + inter.Globals.Get("e").GetValue(inter), ) } diff --git a/runtime/tests/interpreter/string_test.go b/runtime/tests/interpreter/string_test.go index 37bba83186..5a770cb674 100644 --- a/runtime/tests/interpreter/string_test.go +++ b/runtime/tests/interpreter/string_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -445,21 +445,21 @@ func TestInterpretCompareCharacters(t *testing.T) { t, inter, interpreter.TrueValue, - inter.Globals.Get("x").GetValue(), + inter.Globals.Get("x").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.TrueValue, - inter.Globals.Get("y").GetValue(), + inter.Globals.Get("y").GetValue(inter), ) AssertValuesEqual( t, inter, interpreter.FalseValue, - inter.Globals.Get("z").GetValue(), + inter.Globals.Get("z").GetValue(inter), ) } @@ -596,3 +596,50 @@ func TestInterpretStringSplit(t *testing.T) { ), ) } + +func TestInterpretStringReplaceAll(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + fun replaceAll(): String { + return "👪////❤️".replaceAll(of: "////", with: "||") + } + fun replaceAllSpaceWithDoubleSpace(): String { + return "👪 ❤️ Abc6 ;123".replaceAll(of: " ", with: " ") + } + fun replaceAllWithUnicodeEquivalence(): String { + return "Caf\u{65}\u{301}ABc".replaceAll(of: "\u{e9}", with: "X") + } + fun testEmptyString(): String { + return "".replaceAll(of: "//", with: "abc") + } + fun testEmptyOf(): String { + return "abc".replaceAll(of: "", with: "1") + } + fun testNoMatch(): String { + return "pqrS;asdf".replaceAll(of: ";;", with: "does_not_matter") + } + `) + + testCase := func(t *testing.T, funcName string, expected *interpreter.StringValue) { + t.Run(funcName, func(t *testing.T) { + result, err := inter.Invoke(funcName) + require.NoError(t, err) + + RequireValuesEqual( + t, + inter, + expected, + result, + ) + }) + } + + testCase(t, "replaceAll", interpreter.NewUnmeteredStringValue("👪||❤️")) + testCase(t, "replaceAllSpaceWithDoubleSpace", interpreter.NewUnmeteredStringValue("👪 ❤️ Abc6 ;123")) + testCase(t, "replaceAllWithUnicodeEquivalence", interpreter.NewUnmeteredStringValue("CafXABc")) + testCase(t, "testEmptyString", interpreter.NewUnmeteredStringValue("")) + testCase(t, "testEmptyOf", interpreter.NewUnmeteredStringValue("1a1b1c1")) + testCase(t, "testNoMatch", interpreter.NewUnmeteredStringValue("pqrS;asdf")) +} diff --git a/runtime/tests/interpreter/switch_test.go b/runtime/tests/interpreter/switch_test.go index 8527818f83..b4b4b96afe 100644 --- a/runtime/tests/interpreter/switch_test.go +++ b/runtime/tests/interpreter/switch_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/interpreter/transactions_test.go b/runtime/tests/interpreter/transactions_test.go index 50a1574261..a5b518fedf 100644 --- a/runtime/tests/interpreter/transactions_test.go +++ b/runtime/tests/interpreter/transactions_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,9 @@ import ( "github.com/stretchr/testify/require" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/sema" "github.com/onflow/cadence/runtime/stdlib" + "github.com/onflow/cadence/runtime/tests/checker" . "github.com/onflow/cadence/runtime/tests/utils" "github.com/onflow/cadence/runtime/ast" @@ -252,8 +254,8 @@ func TestInterpretTransactions(t *testing.T) { } `) - signer1 := stdlib.NewAccountReferenceValue(nil, nil, interpreter.AddressValue{1}, interpreter.UnauthorizedAccess) - signer2 := stdlib.NewAccountReferenceValue(nil, nil, interpreter.AddressValue{2}, interpreter.UnauthorizedAccess) + signer1 := stdlib.NewAccountReferenceValue(nil, nil, interpreter.AddressValue{1}, interpreter.UnauthorizedAccess, interpreter.EmptyLocationRange) + signer2 := stdlib.NewAccountReferenceValue(nil, nil, interpreter.AddressValue{2}, interpreter.UnauthorizedAccess, interpreter.EmptyLocationRange) // first transaction err := inter.InvokeTransaction(0, signer1) @@ -293,6 +295,7 @@ func TestInterpretTransactions(t *testing.T) { nil, interpreter.AddressValue(address), interpreter.UnauthorizedAccess, + interpreter.EmptyLocationRange, ) prepareArguments := []interpreter.Value{account} @@ -302,7 +305,7 @@ func TestInterpretTransactions(t *testing.T) { err := inter.InvokeTransaction(0, arguments...) require.NoError(t, err) - values := inter.Globals.Get("values").GetValue() + values := inter.Globals.Get("values").GetValue(inter) require.IsType(t, &interpreter.ArrayValue{}, values) @@ -318,3 +321,119 @@ func TestInterpretTransactions(t *testing.T) { ) }) } + +func TestRuntimeInvalidTransferInExecute(t *testing.T) { + + t.Parallel() + + inter, _ := parseCheckAndInterpretWithOptions(t, ` + access(all) resource Dummy {} + + transaction { + var vaults: @[AnyResource] + var account: auth(Storage) &Account + + prepare(account: auth(Storage) &Account) { + self.vaults <- [<-create Dummy(), <-create Dummy()] + self.account = account + } + + execute { + let x = fun(): @[AnyResource] { + var x <- self.vaults <- [<-create Dummy()] + return <-x + } + + var t <- self.vaults[0] <- self.vaults + destroy t + self.account.storage.save(<- x(), to: /storage/x42) + } + } + `, ParseCheckAndInterpretOptions{ + HandleCheckerError: func(err error) { + errs := checker.RequireCheckerErrors(t, err, 1) + require.IsType(t, &sema.ResourceCapturingError{}, errs[0]) + }, + }) + + signer1 := stdlib.NewAccountReferenceValue(nil, nil, interpreter.AddressValue{1}, interpreter.UnauthorizedAccess, interpreter.EmptyLocationRange) + err := inter.InvokeTransaction(0, signer1) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceError{}) +} + +func TestRuntimeInvalidRecursiveTransferInExecute(t *testing.T) { + + t.Parallel() + + t.Run("Array", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + transaction { + var arr: @[AnyResource] + + prepare() { + self.arr <- [] + } + + execute { + self.arr.append(<-self.arr) + } + } + `) + + err := inter.InvokeTransaction(0) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("Dictionary", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + transaction { + var dict: @{String: AnyResource} + + prepare() { + self.dict <- {} + } + + execute { + destroy self.dict.insert(key: "", <-self.dict) + } + } + `) + + err := inter.InvokeTransaction(0) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) + + t.Run("resource", func(t *testing.T) { + + t.Parallel() + + inter := parseCheckAndInterpret(t, ` + resource R { + fun foo(_ r: @R) { + destroy r + } + } + + transaction { + var r: @R + + prepare() { + self.r <- create R() + } + + execute { + self.r.foo(<-self.r) + } + } + `) + + err := inter.InvokeTransaction(0) + require.ErrorAs(t, err, &interpreter.InvalidatedResourceReferenceError{}) + }) +} diff --git a/runtime/tests/interpreter/transfer_test.go b/runtime/tests/interpreter/transfer_test.go index a7b4b5a4fd..50c8a98cf5 100644 --- a/runtime/tests/interpreter/transfer_test.go +++ b/runtime/tests/interpreter/transfer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -76,11 +76,17 @@ func TestInterpretTransferCheck(t *testing.T) { `, ParseCheckAndInterpretOptions{ CheckerConfig: &sema.Config{ - BaseTypeActivation: baseTypeActivation, - BaseValueActivation: baseValueActivation, + BaseTypeActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseTypeActivation + }, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, }, Config: &interpreter.Config{ - BaseActivation: baseActivation, + BaseActivationHandler: func(_ common.Location) *interpreter.VariableActivation { + return baseActivation + }, }, }, ) diff --git a/runtime/tests/interpreter/uuid_test.go b/runtime/tests/interpreter/uuid_test.go index ed234ebdef..efb16aabee 100644 --- a/runtime/tests/interpreter/uuid_test.go +++ b/runtime/tests/interpreter/uuid_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -88,8 +88,7 @@ func TestInterpretResourceUUID(t *testing.T) { interpreter.ProgramFromChecker(importingChecker), importingChecker.Location, &interpreter.Config{ - InvalidatedResourceValidationEnabled: true, - Storage: storage, + Storage: storage, UUIDHandler: func() (uint64, error) { defer func() { uuid++ }() return uuid, nil diff --git a/runtime/tests/interpreter/values_test.go b/runtime/tests/interpreter/values_test.go index 3949103d04..2834afafe4 100644 --- a/runtime/tests/interpreter/values_test.go +++ b/runtime/tests/interpreter/values_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -137,7 +137,7 @@ func TestInterpretRandomMapOperations(t *testing.T) { utils.AssertValuesEqual(t, inter, orgValue, value) return true - }) + }, interpreter.EmptyLocationRange) }) t.Run("deep copy", func(t *testing.T) { @@ -583,16 +583,21 @@ func TestInterpretRandomArrayOperations(t *testing.T) { require.Equal(t, testArray.Count(), len(elements)) index := 0 - testArray.Iterate(inter, func(element interpreter.Value) (resume bool) { - orgElement := elements[index] - utils.AssertValuesEqual(t, inter, orgElement, element) + testArray.Iterate( + inter, + func(element interpreter.Value) (resume bool) { + orgElement := elements[index] + utils.AssertValuesEqual(t, inter, orgElement, element) - elementByIndex := testArray.Get(inter, interpreter.EmptyLocationRange, index) - utils.AssertValuesEqual(t, inter, element, elementByIndex) + elementByIndex := testArray.Get(inter, interpreter.EmptyLocationRange, index) + utils.AssertValuesEqual(t, inter, element, elementByIndex) - index++ - return true - }) + index++ + return true + }, + false, + interpreter.EmptyLocationRange, + ) }) t.Run("deep copy", func(t *testing.T) { @@ -936,7 +941,7 @@ func TestInterpretRandomCompositeValueOperations(t *testing.T) { // continue iteration return true - }) + }, interpreter.EmptyLocationRange) assert.Equal(t, len(orgFields), fieldCount) }) diff --git a/runtime/tests/interpreter/while_test.go b/runtime/tests/interpreter/while_test.go index 86dd92e96b..c4e7b6ac76 100644 --- a/runtime/tests/interpreter/while_test.go +++ b/runtime/tests/interpreter/while_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/runtime_utils/interpreter.go b/runtime/tests/runtime_utils/interpreter.go index 14abe001fd..1068a2242f 100644 --- a/runtime/tests/runtime_utils/interpreter.go +++ b/runtime/tests/runtime_utils/interpreter.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/runtime_utils/location.go b/runtime/tests/runtime_utils/location.go index 70bcc3cc1d..cc04a398f9 100644 --- a/runtime/tests/runtime_utils/location.go +++ b/runtime/tests/runtime_utils/location.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/runtime_utils/testinterface.go b/runtime/tests/runtime_utils/testinterface.go index 7476bd3b1c..7fcb3332b8 100644 --- a/runtime/tests/runtime_utils/testinterface.go +++ b/runtime/tests/runtime_utils/testinterface.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -201,49 +201,49 @@ func (i *TestRuntimeInterface) GetInterpreterSharedState() *interpreter.SharedSt func (i *TestRuntimeInterface) ValueExists(owner, key []byte) (exists bool, err error) { if i.Storage.OnValueExists == nil { - panic("must specify testRuntimeInterface.storage.valueExists") + panic("must specify TestRuntimeInterface.Storage.OnValueExists") } return i.Storage.ValueExists(owner, key) } func (i *TestRuntimeInterface) GetValue(owner, key []byte) (value []byte, err error) { if i.Storage.OnGetValue == nil { - panic("must specify testRuntimeInterface.storage.getValue") + panic("must specify TestRuntimeInterface.Storage.OnGetValue") } return i.Storage.GetValue(owner, key) } func (i *TestRuntimeInterface) SetValue(owner, key, value []byte) (err error) { if i.Storage.OnSetValue == nil { - panic("must specify testRuntimeInterface.storage.setValue") + panic("must specify TestRuntimeInterface.Storage.SetValue") } return i.Storage.SetValue(owner, key, value) } func (i *TestRuntimeInterface) AllocateStorageIndex(owner []byte) (atree.StorageIndex, error) { if i.Storage.OnAllocateStorageIndex == nil { - panic("must specify testRuntimeInterface.storage.allocateStorageIndex") + panic("must specify TestRuntimeInterface.storage.OnAllocateStorageIndex") } return i.Storage.AllocateStorageIndex(owner) } func (i *TestRuntimeInterface) CreateAccount(payer runtime.Address) (address runtime.Address, err error) { if i.OnCreateAccount == nil { - panic("must specify testRuntimeInterface.createAccount") + panic("must specify TestRuntimeInterface.OnCreateAccount") } return i.OnCreateAccount(payer) } func (i *TestRuntimeInterface) AddEncodedAccountKey(address runtime.Address, publicKey []byte) error { if i.OnAddEncodedAccountKey == nil { - panic("must specify testRuntimeInterface.addEncodedAccountKey") + panic("must specify TestRuntimeInterface.OnAddEncodedAccountKey") } return i.OnAddEncodedAccountKey(address, publicKey) } func (i *TestRuntimeInterface) RevokeEncodedAccountKey(address runtime.Address, index int) ([]byte, error) { if i.OnRemoveEncodedAccountKey == nil { - panic("must specify testRuntimeInterface.removeEncodedAccountKey") + panic("must specify TestRuntimeInterface.OnRemoveEncodedAccountKey") } return i.OnRemoveEncodedAccountKey(address, index) } @@ -255,35 +255,35 @@ func (i *TestRuntimeInterface) AddAccountKey( weight int, ) (*stdlib.AccountKey, error) { if i.OnAddAccountKey == nil { - panic("must specify testRuntimeInterface.addAccountKey") + panic("must specify TestRuntimeInterface.OnAddAccountKey") } return i.OnAddAccountKey(address, publicKey, hashAlgo, weight) } func (i *TestRuntimeInterface) GetAccountKey(address runtime.Address, index int) (*stdlib.AccountKey, error) { if i.OnGetAccountKey == nil { - panic("must specify testRuntimeInterface.getAccountKey") + panic("must specify TestRuntimeInterface.OnGetAccountKey") } return i.OnGetAccountKey(address, index) } func (i *TestRuntimeInterface) AccountKeysCount(address runtime.Address) (uint64, error) { if i.OnAccountKeysCount == nil { - panic("must specify testRuntimeInterface.accountKeysCount") + panic("must specify TestRuntimeInterface.OnAccountKeysCount") } return i.OnAccountKeysCount(address) } func (i *TestRuntimeInterface) RevokeAccountKey(address runtime.Address, index int) (*stdlib.AccountKey, error) { if i.OnRemoveAccountKey == nil { - panic("must specify testRuntimeInterface.removeAccountKey") + panic("must specify TestRuntimeInterface.OnRemoveAccountKey") } return i.OnRemoveAccountKey(address, index) } func (i *TestRuntimeInterface) UpdateAccountContractCode(location common.AddressLocation, code []byte) (err error) { if i.OnUpdateAccountContractCode == nil { - panic("must specify testRuntimeInterface.updateAccountContractCode") + panic("must specify TestRuntimeInterface.OnUpdateAccountContractCode") } err = i.OnUpdateAccountContractCode(location, code) @@ -298,14 +298,14 @@ func (i *TestRuntimeInterface) UpdateAccountContractCode(location common.Address func (i *TestRuntimeInterface) GetAccountContractCode(location common.AddressLocation) (code []byte, err error) { if i.OnGetAccountContractCode == nil { - panic("must specify testRuntimeInterface.getAccountContractCode") + panic("must specify TestRuntimeInterface.OnGetAccountContractCode") } return i.OnGetAccountContractCode(location) } func (i *TestRuntimeInterface) RemoveAccountContractCode(location common.AddressLocation) (err error) { if i.OnRemoveAccountContractCode == nil { - panic("must specify testRuntimeInterface.removeAccountContractCode") + panic("must specify TestRuntimeInterface.OnRemoveAccountContractCode") } return i.OnRemoveAccountContractCode(location) } @@ -318,11 +318,17 @@ func (i *TestRuntimeInterface) GetSigningAccounts() ([]runtime.Address, error) { } func (i *TestRuntimeInterface) ProgramLog(message string) error { + if i.OnProgramLog == nil { + panic("must specify TestRuntimeInterface.OnProgramLog") + } i.OnProgramLog(message) return nil } func (i *TestRuntimeInterface) EmitEvent(event cadence.Event) error { + if i.OnEmitEvent == nil { + panic("must specify TestRuntimeInterface.OnEmitEvent") + } return i.OnEmitEvent(event) } @@ -358,6 +364,9 @@ func (i *TestRuntimeInterface) MeterComputation(compKind common.ComputationKind, } func (i *TestRuntimeInterface) DecodeArgument(b []byte, t cadence.Type) (cadence.Value, error) { + if i.OnDecodeArgument == nil { + panic("must specify TestRuntimeInterface.OnDecodeArgument") + } return i.OnDecodeArgument(b, t) } @@ -444,35 +453,35 @@ func (i *TestRuntimeInterface) Hash(data []byte, tag string, hashAlgorithm runti func (i *TestRuntimeInterface) SetCadenceValue(owner common.Address, key string, value cadence.Value) (err error) { if i.OnSetCadenceValue == nil { - panic("must specify testRuntimeInterface.setCadenceValue") + panic("must specify TestRuntimeInterface.OnSetCadenceValue") } return i.OnSetCadenceValue(owner, key, value) } func (i *TestRuntimeInterface) GetAccountBalance(address runtime.Address) (uint64, error) { if i.OnGetAccountBalance == nil { - panic("must specify testRuntimeInterface.getAccountBalance") + panic("must specify TestRuntimeInterface.OnGetAccountBalance") } return i.OnGetAccountBalance(address) } func (i *TestRuntimeInterface) GetAccountAvailableBalance(address runtime.Address) (uint64, error) { if i.OnGetAccountAvailableBalance == nil { - panic("must specify testRuntimeInterface.getAccountAvailableBalance") + panic("must specify TestRuntimeInterface.OnGetAccountAvailableBalance") } return i.OnGetAccountAvailableBalance(address) } func (i *TestRuntimeInterface) GetStorageUsed(address runtime.Address) (uint64, error) { if i.OnGetStorageUsed == nil { - panic("must specify testRuntimeInterface.getStorageUsed") + panic("must specify TestRuntimeInterface.OnGetStorageUsed") } return i.OnGetStorageUsed(address) } func (i *TestRuntimeInterface) GetStorageCapacity(address runtime.Address) (uint64, error) { if i.OnGetStorageCapacity == nil { - panic("must specify testRuntimeInterface.getStorageCapacity") + panic("must specify TestRuntimeInterface.OnGetStorageCapacity") } return i.OnGetStorageCapacity(address) } @@ -589,14 +598,14 @@ func (i *TestRuntimeInterface) InteractionUsed() (uint64, error) { } func (i *TestRuntimeInterface) onTransactionExecutionStart() { - i.invalidateUpdatedPrograms() + i.InvalidateUpdatedPrograms() } func (i *TestRuntimeInterface) onScriptExecutionStart() { - i.invalidateUpdatedPrograms() + i.InvalidateUpdatedPrograms() } -func (i *TestRuntimeInterface) invalidateUpdatedPrograms() { +func (i *TestRuntimeInterface) InvalidateUpdatedPrograms() { if i.updatedContractCode { // iteration order does not matter for location := range i.Programs { //nolint:maprange diff --git a/runtime/tests/runtime_utils/testledger.go b/runtime/tests/runtime_utils/testledger.go index 082936a253..9e7013c2ff 100644 --- a/runtime/tests/runtime_utils/testledger.go +++ b/runtime/tests/runtime_utils/testledger.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import ( "encoding/binary" "encoding/hex" "fmt" + "sort" "strconv" "strings" @@ -54,6 +55,34 @@ func (s TestLedger) AllocateStorageIndex(owner []byte) (atree.StorageIndex, erro return s.OnAllocateStorageIndex(owner) } +const testLedgerKeySeparator = "|" + +func (s TestLedger) ForEach(f func(owner, key, value []byte) error) error { + + var keys []string + for key := range s.StoredValues { //nolint:maprange + keys = append(keys, key) + } + sort.Strings(keys) + + for _, key := range keys { //nolint:maprange + value := s.StoredValues[key] + + keyParts := strings.Split(key, testLedgerKeySeparator) + owner := []byte(keyParts[0]) + key := []byte(keyParts[1]) + + if err := f(owner, key, value); err != nil { + return err + } + } + return nil +} + +func TestStorageKey(owner, key string) string { + return strings.Join([]string{owner, key}, testLedgerKeySeparator) +} + func (s TestLedger) Dump() { // Only used for testing/debugging purposes for key, data := range s.StoredValues { //nolint:maprange @@ -68,10 +97,6 @@ func NewTestLedger( onWrite func(owner, key, value []byte), ) TestLedger { - storageKey := func(owner, key string) string { - return strings.Join([]string{owner, key}, "|") - } - storedValues := map[string][]byte{} storageIndices := map[string]uint64{} @@ -79,18 +104,18 @@ func NewTestLedger( return TestLedger{ StoredValues: storedValues, OnValueExists: func(owner, key []byte) (bool, error) { - value := storedValues[storageKey(string(owner), string(key))] + value := storedValues[TestStorageKey(string(owner), string(key))] return len(value) > 0, nil }, OnGetValue: func(owner, key []byte) (value []byte, err error) { - value = storedValues[storageKey(string(owner), string(key))] + value = storedValues[TestStorageKey(string(owner), string(key))] if onRead != nil { onRead(owner, key, value) } return value, nil }, OnSetValue: func(owner, key, value []byte) (err error) { - storedValues[storageKey(string(owner), string(key))] = value + storedValues[TestStorageKey(string(owner), string(key))] = value if onWrite != nil { onWrite(owner, key, value) } diff --git a/runtime/tests/runtime_utils/testruntime.go b/runtime/tests/runtime_utils/testruntime.go index e490ceb784..5ea11f137d 100644 --- a/runtime/tests/runtime_utils/testruntime.go +++ b/runtime/tests/runtime_utils/testruntime.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,6 +38,7 @@ func NewTestInterpreterRuntimeWithConfig(config runtime.Config) TestInterpreterR var DefaultTestInterpreterConfig = runtime.Config{ AtreeValidationEnabled: true, + AttachmentsEnabled: true, } func NewTestInterpreterRuntime() TestInterpreterRuntime { diff --git a/runtime/tests/utils/occurrence_matcher.go b/runtime/tests/utils/occurrence_matcher.go index 0340568c7e..3d93ca8781 100644 --- a/runtime/tests/utils/occurrence_matcher.go +++ b/runtime/tests/utils/occurrence_matcher.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/tests/utils/utils.go b/runtime/tests/utils/utils.go index eb581635a8..fc4fb1b17e 100644 --- a/runtime/tests/utils/utils.go +++ b/runtime/tests/utils/utils.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -79,16 +79,6 @@ func AssertEqualWithDiff(t *testing.T, expected, actual any) { s.String(), ) } - -} - -func AsInterfaceType(name string, kind common.CompositeKind) string { - switch kind { - case common.CompositeKindResource, common.CompositeKindStructure: - return fmt.Sprintf("{%s}", name) - default: - return name - } } func DeploymentTransaction(name string, contract []byte) []byte { @@ -255,7 +245,7 @@ func DictionaryKeyValues(inter *interpreter.Interpreter, dict *interpreter.Dicti i++ return true - }) + }, interpreter.EmptyLocationRange) return result } @@ -299,7 +289,7 @@ func DictionaryEntries[K, V any]( Value: value, } return iterStatus - }) + }, interpreter.EmptyLocationRange) return res, iterStatus } diff --git a/runtime/transaction_executor.go b/runtime/transaction_executor.go index 6c1b2323c4..5ac6ee08a1 100644 --- a/runtime/transaction_executor.go +++ b/runtime/transaction_executor.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -206,7 +206,7 @@ func (executor *interpreterTransactionExecutor) authorizerValues( addressValue := interpreter.NewAddressValue(inter, address) - accountValue := executor.environment.NewAccountValue(addressValue) + accountValue := executor.environment.NewAccountValue(inter, addressValue) referenceType, ok := parameter.TypeAnnotation.Type.(*sema.ReferenceType) if !ok || referenceType.Type != sema.AccountType { @@ -223,6 +223,8 @@ func (executor *interpreterTransactionExecutor) authorizerValues( authorization, accountValue, sema.AccountType, + // okay to pass an empty range here because the account value is never a reference, so this can't fail + interpreter.EmptyLocationRange, ) authorizerValues = append(authorizerValues, accountReferenceValue) diff --git a/runtime/type_test.go b/runtime/type_test.go index 8bfbf32299..cfabeafec1 100644 --- a/runtime/type_test.go +++ b/runtime/type_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/types.go b/runtime/types.go index 0278bcb618..fce7de6778 100644 --- a/runtime/types.go +++ b/runtime/types.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/validation_test.go b/runtime/validation_test.go index 8f88d8a5ca..951907b277 100644 --- a/runtime/validation_test.go +++ b/runtime/validation_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/value.go b/runtime/value.go index 8f085a79c8..7ef95fb61f 100644 --- a/runtime/value.go +++ b/runtime/value.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/runtime/webassembly.go b/runtime/webassembly.go index a867c8c5ae..80dbfd1afd 100644 --- a/runtime/webassembly.go +++ b/runtime/webassembly.go @@ -155,7 +155,7 @@ func newWasmtimeFunctionWebAssemblyExport( return nil, fmt.Errorf("unsupported export: function has more than one result") } - hostFunctionValue := interpreter.NewHostFunctionValue( + hostFunctionValue := interpreter.NewStaticHostFunctionValue( gauge, functionType, func(invocation interpreter.Invocation) interpreter.Value { diff --git a/tools/analysis/analysis.go b/tools/analysis/analysis.go index 85cc1cc604..4c5513a95a 100644 --- a/tools/analysis/analysis.go +++ b/tools/analysis/analysis.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/analysis/analysis_test.go b/tools/analysis/analysis_test.go index e7f1121ef9..d1321debf5 100644 --- a/tools/analysis/analysis_test.go +++ b/tools/analysis/analysis_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,12 +25,11 @@ import ( "github.com/stretchr/testify/require" - "github.com/onflow/cadence/runtime/parser" - "github.com/onflow/cadence/runtime/tests/checker" - "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/parser" "github.com/onflow/cadence/runtime/sema" + "github.com/onflow/cadence/runtime/tests/checker" "github.com/onflow/cadence/tools/analysis" ) @@ -77,8 +76,8 @@ func TestNeedSyntaxAndImport(t *testing.T) { return []byte(contractCode), nil default: - require.FailNow(t, - "import of unknown location: %s", + require.FailNowf(t, + "import of unknown location", "location: %s", location, ) @@ -102,7 +101,7 @@ func TestNeedSyntaxAndImport(t *testing.T) { for _, program := range programs { require.NotNil(t, program.Program) - require.NotNil(t, program.Elaboration) + require.NotNil(t, program.Checker) // Run a simple analysis: Detect unnecessary cast @@ -114,7 +113,7 @@ func TestNeedSyntaxAndImport(t *testing.T) { return true } - types := program.Elaboration.CastingExpressionTypes(castingExpression) + types := program.Checker.Elaboration.CastingExpressionTypes(castingExpression) leftHandType := types.StaticValueType rightHandType := types.TargetType @@ -195,10 +194,9 @@ func TestParseError(t *testing.T) { switch location { case contractLocation: return []byte(contractCode), nil - default: - require.FailNow(t, - "import of unknown location: %s", + require.FailNowf(t, + "import of unknown location", "location: %s", location, ) @@ -243,8 +241,8 @@ func TestCheckError(t *testing.T) { return []byte(contractCode), nil default: - require.FailNow(t, - "import of unknown location: %s", + require.FailNowf(t, + "import of unknown location", "location: %s", location, ) @@ -260,6 +258,185 @@ func TestCheckError(t *testing.T) { require.ErrorAs(t, err, &checkerError) } +func TestHandledParserError(t *testing.T) { + + t.Parallel() + + contractAddress := common.MustBytesToAddress([]byte{0x1}) + contractLocation := common.AddressLocation{ + Address: contractAddress, + Name: "ContractA", + } + const contractCode = ` + access(all) contract ContractA { + init() { + ??? + } + } + ` + + handlerCalls := 0 + config := &analysis.Config{ + Mode: analysis.NeedSyntax, + ResolveCode: func( + location common.Location, + importingLocation common.Location, + importRange ast.Range, + ) ([]byte, error) { + switch location { + case contractLocation: + return []byte(contractCode), nil + + default: + require.FailNowf(t, + "import of unknown location", + "location: %s", + location, + ) + return nil, nil + } + }, + HandleParserError: func(err analysis.ParsingCheckingError, _ *ast.Program) error { + require.Error(t, err) + handlerCalls++ + return nil + }, + } + + programs, err := analysis.Load(config, contractLocation) + require.NoError(t, err) + + require.Equal(t, 1, handlerCalls) + + var parserError parser.Error + require.ErrorAs(t, programs[contractLocation].LoadError, &parserError) +} + +func TestHandledCheckerError(t *testing.T) { + + t.Parallel() + + contractAddress := common.MustBytesToAddress([]byte{0x1}) + contractLocation := common.AddressLocation{ + Address: contractAddress, + Name: "ContractA", + } + const contractCode = ` + access(all) contract ContractA { + init() { + X + } + } + ` + + handlerCalls := 0 + config := &analysis.Config{ + Mode: analysis.NeedTypes, + ResolveCode: func( + location common.Location, + importingLocation common.Location, + importRange ast.Range, + ) ([]byte, error) { + switch location { + case contractLocation: + return []byte(contractCode), nil + default: + require.FailNowf(t, + "import of unknown location", + "location: %s", + location, + ) + return nil, nil + } + }, + HandleCheckerError: func(err analysis.ParsingCheckingError, _ *sema.Checker) error { + require.Error(t, err) + handlerCalls++ + return nil + }, + } + + programs, err := analysis.Load(config, contractLocation) + require.Equal(t, 1, handlerCalls) + require.NoError(t, err) + + var checkerError *sema.CheckerError + require.ErrorAs(t, programs[contractLocation].LoadError, &checkerError) +} + +// Tests that an error handled by the custom error handler is not returned +// However, it must set LoadError to the handled error so that checkers later importing the program can see it +func TestHandledLoadErrorImportedProgram(t *testing.T) { + + t.Parallel() + + contract1Address := common.MustBytesToAddress([]byte{0x1}) + contract1Location := common.AddressLocation{ + Address: contract1Address, + Name: "ContractA", + } + const contract1Code = ` + import ContractB from 0x2 + + access(all) contract ContractA { + init() {} + } + ` + contract2Address := common.MustBytesToAddress([]byte{0x2}) + contract2Location := common.AddressLocation{ + Address: contract2Address, + Name: "ContractB", + } + const contract2Code = ` + access(all) contract ContractB { + init() { + X + } + } + ` + + handlerCalls := 0 + config := &analysis.Config{ + Mode: analysis.NeedTypes, + ResolveCode: func( + location common.Location, + importingLocation common.Location, + importRange ast.Range, + ) ([]byte, error) { + switch location { + case contract1Location: + return []byte(contract1Code), nil + case contract2Location: + return []byte(contract2Code), nil + default: + require.FailNowf(t, + "import of unknown location", + "location: %s", + location, + ) + return nil, nil + } + }, + HandleCheckerError: func(err analysis.ParsingCheckingError, _ *sema.Checker) error { + require.Error(t, err) + handlerCalls++ + return nil + }, + } + + programs, err := analysis.Load(config, contract1Location) + require.Equal(t, 2, handlerCalls) + require.NoError(t, err) + + var checkerError *sema.CheckerError + require.ErrorAs(t, programs[contract1Location].LoadError, &checkerError) + require.ErrorAs(t, programs[contract2Location].LoadError, &checkerError) + + // Validate that parent checker receives the imported program error despite it being handled + var importedProgramErr *sema.ImportedProgramError + require.ErrorAs(t, programs[contract1Location].LoadError, &importedProgramErr) +} + func TestStdlib(t *testing.T) { t.Parallel() @@ -284,8 +461,8 @@ func TestStdlib(t *testing.T) { return []byte(code), nil default: - require.FailNow(t, - "import of unknown location: %s", + require.FailNowf(t, + "import of unknown location", "location: %s", location, ) @@ -350,8 +527,8 @@ func TestCyclicImports(t *testing.T) { return []byte(barContractCode), nil default: - require.FailNow(t, - "import of unknown location: %s", + require.FailNowf(t, + "import of unknown location", "location: %s", location, ) diff --git a/tools/analysis/analyzer.go b/tools/analysis/analyzer.go index 67db0461e3..517241dd71 100644 --- a/tools/analysis/analyzer.go +++ b/tools/analysis/analyzer.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/analysis/config.go b/tools/analysis/config.go index 020384f3ea..3bf637f9f3 100644 --- a/tools/analysis/config.go +++ b/tools/analysis/config.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import ( "github.com/onflow/cadence/runtime/ast" "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/sema" ) // A Config specifies details about how programs should be loaded. @@ -40,6 +41,10 @@ type Config struct { ) ([]byte, error) // Mode controls the level of information returned for each program Mode LoadMode + // HandleParserError is called when a parser error occurs instead of returning it + HandleParserError func(err ParsingCheckingError, program *ast.Program) error + // HandleCheckerError is called when a checker error occurs instead of returning it + HandleCheckerError func(err ParsingCheckingError, checker *sema.Checker) error } func NewSimpleConfig( diff --git a/tools/analysis/diagnostic.go b/tools/analysis/diagnostic.go index 2eb21cc85d..11e0ff44e0 100644 --- a/tools/analysis/diagnostic.go +++ b/tools/analysis/diagnostic.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,6 +33,8 @@ type Diagnostic struct { Category string Message string SecondaryMessage string + Code string // Diagnostic code (e.g. "unused-variable") + URL string // URL to documentation SuggestedFixes []SuggestedFix ast.Range } diff --git a/tools/analysis/error.go b/tools/analysis/error.go index 857c7730d5..a1ecf2c603 100644 --- a/tools/analysis/error.go +++ b/tools/analysis/error.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/analysis/inspector.go b/tools/analysis/inspector.go index e6483cc07f..547d47b777 100644 --- a/tools/analysis/inspector.go +++ b/tools/analysis/inspector.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/analysis/loadmode.go b/tools/analysis/loadmode.go index c7fae395be..ac2ce41a46 100644 --- a/tools/analysis/loadmode.go +++ b/tools/analysis/loadmode.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/analysis/pass.go b/tools/analysis/pass.go index 9151c1977f..8cb27552c8 100644 --- a/tools/analysis/pass.go +++ b/tools/analysis/pass.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/analysis/program.go b/tools/analysis/program.go index d48abb4a95..789c279af1 100644 --- a/tools/analysis/program.go +++ b/tools/analysis/program.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,10 +27,11 @@ import ( ) type Program struct { - Location common.Location - Program *ast.Program - Elaboration *sema.Elaboration - Code []byte + Location common.Location + Program *ast.Program + Checker *sema.Checker + Code []byte + LoadError error } // Run runs the given DAG of analyzers in parallel diff --git a/tools/analysis/programs.go b/tools/analysis/programs.go index 99ebd821e9..08ae11ae49 100644 --- a/tools/analysis/programs.go +++ b/tools/analysis/programs.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,11 +50,11 @@ func (programs Programs) load( importRange ast.Range, seenImports importResolutionResults, ) error { - if programs[location] != nil { return nil } + var loadError error wrapError := func(err error) ParsingCheckingError { return ParsingCheckingError{ error: err, @@ -69,22 +69,47 @@ func (programs Programs) load( program, err := parser.ParseProgram(nil, code, parser.Config{}) if err != nil { - return wrapError(err) + wrappedErr := wrapError(err) + loadError = wrappedErr + + // If a custom error handler is set, use it to potentially handle the error + if config.HandleParserError != nil { + err = config.HandleParserError(wrappedErr, program) + if err != nil { + return err + } + } else { + return wrappedErr + } } - var elaboration *sema.Elaboration + var checker *sema.Checker if config.Mode&NeedTypes != 0 { - elaboration, err = programs.check(config, program, location, seenImports) + checker, err = programs.check(config, program, location, seenImports) if err != nil { - return wrapError(err) + wrappedErr := wrapError(err) + if loadError == nil { + loadError = wrappedErr + } + + // If a custom error handler is set, use it to potentially handle the error + if config.HandleCheckerError != nil { + err = config.HandleCheckerError(wrappedErr, checker) + if err != nil { + return err + } + } else { + return wrappedErr + } } } programs[location] = &Program{ - Location: location, - Code: code, - Program: program, - Elaboration: elaboration, + Location: location, + Code: code, + Program: program, + Checker: checker, + LoadError: loadError, } return nil @@ -96,7 +121,7 @@ func (programs Programs) check( location common.Location, seenImports importResolutionResults, ) ( - *sema.Elaboration, + *sema.Checker, error, ) { baseValueActivation := sema.NewVariableActivation(sema.BaseValueActivation) @@ -109,8 +134,10 @@ func (programs Programs) check( location, nil, &sema.Config{ - BaseValueActivation: baseValueActivation, - AccessCheckMode: sema.AccessCheckModeStrict, + BaseValueActivationHandler: func(_ common.Location) *sema.VariableActivation { + return baseValueActivation + }, + AccessCheckMode: sema.AccessCheckModeStrict, LocationHandler: sema.AddressLocationHandlerFunc( config.ResolveAddressContractNames, ), @@ -123,6 +150,8 @@ func (programs Programs) check( ) (sema.Import, error) { var elaboration *sema.Elaboration + var loadError error + switch importedLocation { case stdlib.CryptoCheckerLocation: cryptoChecker := stdlib.CryptoChecker() @@ -143,7 +172,20 @@ func (programs Programs) check( return nil, err } - elaboration = programs[importedLocation].Elaboration + program := programs[importedLocation] + checker := program.Checker + + // If the imported program has a checker, use its elaboration for the import + if checker != nil { + elaboration = checker.Elaboration + } + + // If the imported program had an error while loading, record it + loadError = program.LoadError + } + + if loadError != nil { + return nil, loadError } return sema.ElaborationImport{ @@ -158,8 +200,8 @@ func (programs Programs) check( err = checker.Check() if err != nil { - return nil, err + return checker, err } - return checker.Elaboration, nil + return checker, nil } diff --git a/tools/astexplorer/.eslintrc b/tools/ast-explorer/.eslintrc similarity index 100% rename from tools/astexplorer/.eslintrc rename to tools/ast-explorer/.eslintrc diff --git a/tools/astexplorer/.gitignore b/tools/ast-explorer/.gitignore similarity index 100% rename from tools/astexplorer/.gitignore rename to tools/ast-explorer/.gitignore diff --git a/tools/astexplorer/README.md b/tools/ast-explorer/README.md similarity index 100% rename from tools/astexplorer/README.md rename to tools/ast-explorer/README.md diff --git a/tools/astexplorer/main.go b/tools/ast-explorer/main.go similarity index 97% rename from tools/astexplorer/main.go rename to tools/ast-explorer/main.go index b10c8eece6..cd83dbc648 100644 --- a/tools/astexplorer/main.go +++ b/tools/ast-explorer/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,6 +42,7 @@ type Response struct { func main() { portFlag := flag.Int("port", 3000, "port") + flag.Parse() http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) { var req Request diff --git a/tools/astexplorer/package-lock.json b/tools/ast-explorer/package-lock.json similarity index 100% rename from tools/astexplorer/package-lock.json rename to tools/ast-explorer/package-lock.json diff --git a/tools/astexplorer/package.json b/tools/ast-explorer/package.json similarity index 100% rename from tools/astexplorer/package.json rename to tools/ast-explorer/package.json diff --git a/tools/astexplorer/src/cadence.ts b/tools/ast-explorer/src/cadence.ts similarity index 99% rename from tools/astexplorer/src/cadence.ts rename to tools/ast-explorer/src/cadence.ts index 7ccd7d5aa0..55ca3558a9 100644 --- a/tools/astexplorer/src/cadence.ts +++ b/tools/ast-explorer/src/cadence.ts @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/astexplorer/src/index.html b/tools/ast-explorer/src/index.html similarity index 100% rename from tools/astexplorer/src/index.html rename to tools/ast-explorer/src/index.html diff --git a/tools/astexplorer/src/index.tsx b/tools/ast-explorer/src/index.tsx similarity index 99% rename from tools/astexplorer/src/index.tsx rename to tools/ast-explorer/src/index.tsx index c7d798ae39..265465b82d 100644 --- a/tools/astexplorer/src/index.tsx +++ b/tools/ast-explorer/src/index.tsx @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/astexplorer/src/tree.tsx b/tools/ast-explorer/src/tree.tsx similarity index 98% rename from tools/astexplorer/src/tree.tsx rename to tools/ast-explorer/src/tree.tsx index d6f6de60d1..acfa9d7c75 100644 --- a/tools/astexplorer/src/tree.tsx +++ b/tools/ast-explorer/src/tree.tsx @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/astexplorer/tsconfig.json b/tools/ast-explorer/tsconfig.json similarity index 100% rename from tools/astexplorer/tsconfig.json rename to tools/ast-explorer/tsconfig.json diff --git a/tools/astexplorer/webpack.config.js b/tools/ast-explorer/webpack.config.js similarity index 100% rename from tools/astexplorer/webpack.config.js rename to tools/ast-explorer/webpack.config.js diff --git a/tools/batch-script/.gitignore b/tools/batch-script/.gitignore deleted file mode 100644 index 183505d92f..0000000000 --- a/tools/batch-script/.gitignore +++ /dev/null @@ -1 +0,0 @@ -contracts.csv \ No newline at end of file diff --git a/tools/batch-script/README.md b/tools/batch-script/README.md deleted file mode 100644 index e8bfdc26c8..0000000000 --- a/tools/batch-script/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# batch-script - -A tool to run a Cadence script against all accounts - -## Fetching all contracts - -To fetch all contracts as a CSV file: - -```shell -go run ./cmd/get_contracts/main.go > contracts.csv -``` diff --git a/tools/batch-script/address_provider.go b/tools/batch-script/address_provider.go deleted file mode 100644 index ce56d76e93..0000000000 --- a/tools/batch-script/address_provider.go +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Cadence - The resource-oriented smart contract programming language - * - * Copyright Dapper Labs, Inc. - * - * 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. - */ - -package batch_script - -import ( - "context" - "strings" - "time" - - "github.com/rs/zerolog" - "github.com/schollz/progressbar/v3" - - "github.com/onflow/cadence" - - "github.com/onflow/flow-go-sdk" - "github.com/onflow/flow-go-sdk/client" -) - -// AddressProvider Is used to get all the addresses that exists at a certain referenceBlockId -type AddressProvider struct { - log zerolog.Logger - lastAddress flow.Address - generator *flow.AddressGenerator - lastAddressIndex uint - referenceBlockID flow.Identifier - currentIndex uint - progress *progressbar.ProgressBar -} - -const endOfAccountsError = "get storage used failed" - -const accountStorageUsageScript = ` -access(all) fun main(address: Address): UInt64 { - return getAccount(address).storage.used -} -` - -// InitAddressProvider uses bisection to get the last existing address. -func InitAddressProvider( - ctx context.Context, - log zerolog.Logger, - chain flow.ChainID, - referenceBlockID flow.Identifier, - client *client.Client, - pause time.Duration, -) (*AddressProvider, error) { - ap := &AddressProvider{ - log: log, - generator: flow.NewAddressGenerator(chain), - referenceBlockID: referenceBlockID, - currentIndex: 1, - } - - last := time.Now() - - searchStep := 0 - addressExistsAtIndex := func(index uint) (bool, error) { - if time.Since(last) < pause { - time.Sleep(pause) - } - last = time.Now() - - searchStep += 1 - address := ap.indexToAddress(index) - - log.Info().Msgf("testing account %d = %s", index, address) - - // This script will fail with endOfAccountsError - // if the account (address at given index) doesn't exist yet - _, err := client.ExecuteScriptAtBlockID( - ctx, - referenceBlockID, - []byte(accountStorageUsageScript), - []cadence.Value{cadence.NewAddress(address)}, - ) - if err == nil { - return true, nil - } - if strings.Contains(err.Error(), endOfAccountsError) { - return false, nil - } - return false, err - } - - // We assume address #2 exists - lastAddressIndex, err := ap.getLastAddress(1, 2, true, addressExistsAtIndex) - if err != nil { - return nil, err - } - - log.Info(). - Str("lastAddress", ap.indexToAddress(lastAddressIndex).Hex()). - Uint("numAccounts", lastAddressIndex). - Int("stepsNeeded", searchStep). - Msg("Found last address") - - ap.lastAddress = ap.indexToAddress(lastAddressIndex) - ap.lastAddressIndex = lastAddressIndex - - ap.progress = progressbar.Default( - 100, - "Executing script...", - ) - - return ap, nil -} - -// getLastAddress is a recursive function that finds the last address. Will use max 2 * log2(number_of_addresses) steps -// If the last address is at index 7 the algorithm goes like this: -// (x,y) <- lower and upper index -// 0. start at (1,2); address exists at 2 -// 1. (2,4): address exists at 4 -// 2. (4,8): address doesnt exist at 8 -// 3. (4,8): check address (8 - 4) / 2 = 6 address exists so next pair is (6,8) -// 4. (6,8): check address 7 address exists so next pair is (7,8) -// 5. (7,8): check address (8 - 7) / 2 = 7 ... ok already checked so this is the last existing address -func (p *AddressProvider) getLastAddress( - lowerIndex uint, - upperIndex uint, - upperExists bool, - addressExistsAtIndex func(uint) (bool, error), -) (uint, error) { - - // Does the address exist at upper bound? - if upperExists { - // double the upper bound, the current upper bound is now the lower upper bound - newUpperIndex := upperIndex * 2 - newUpperExists, err := addressExistsAtIndex(newUpperIndex) - if err != nil { - return 0, err - } - return p.getLastAddress(upperIndex, newUpperIndex, newUpperExists, addressExistsAtIndex) - } - - midIndex := (upperIndex-lowerIndex)/2 + lowerIndex - if midIndex == lowerIndex { - // we found the last address - return midIndex, nil - } - - // Check if the address exists in the middle of the interval. - // If yes, then take the (mid, upper) as the next pair, - // else take (lower, mid) as the next pair - midIndexExists, err := addressExistsAtIndex(midIndex) - if err != nil { - return 0, err - } - if midIndexExists { - return p.getLastAddress(midIndex, upperIndex, upperExists, addressExistsAtIndex) - } else { - return p.getLastAddress(lowerIndex, midIndex, midIndexExists, addressExistsAtIndex) - } -} - -func (p *AddressProvider) indexToAddress(index uint) flow.Address { - p.generator.SetIndex(index) - return p.generator.Address() -} - -func (p *AddressProvider) GetNextAddress() (address flow.Address, isOutOfBounds bool) { - address = p.indexToAddress(p.currentIndex) - - // Give some progress information every so often - // Note: Progress is printed at a reduced frequency, since in some environments (e.g: github CI), - // progress bar doesn't get overwritten upon updates, and would clutter the output. - if p.currentIndex%(p.lastAddressIndex/20) == 0 { - _ = p.progress.Add(5) - } - - if p.currentIndex > p.lastAddressIndex { - isOutOfBounds = true - } - p.currentIndex += 1 - - return -} - -// These addresses are known to be broken on Mainnet -var brokenAddresses = map[flow.Address]struct{}{ - flow.HexToAddress("bf48a20670f179b8"): {}, - flow.HexToAddress("5eba0297874a2bfd"): {}, - flow.HexToAddress("474ec037bcd8accf"): {}, - flow.HexToAddress("b0e80595d267f4eb"): {}, -} - -func (p *AddressProvider) GenerateAddressBatches(addressChan chan<- []flow.Address, batchSize int) { - var done bool - for !done { - addresses := make([]flow.Address, 0) - - for i := 0; i < batchSize; i++ { - addr, oob := p.GetNextAddress() - if oob { - // Out of bounds, there are no more addresses - done = true - break - } - - // Skip address if known broken - if _, ok := brokenAddresses[addr]; ok { - i-- - continue - } - addresses = append(addresses, addr) - } - - if len(addresses) > 0 { - addressChan <- addresses - } - } - - return -} - -func (p *AddressProvider) LastAddress() flow.Address { - return p.lastAddress -} diff --git a/tools/batch-script/batch.go b/tools/batch-script/batch.go deleted file mode 100644 index 3097a671c3..0000000000 --- a/tools/batch-script/batch.go +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Cadence - The resource-oriented smart contract programming language - * - * Copyright Dapper Labs, Inc. - * - * 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. - */ - -package batch_script - -import ( - "context" - _ "embed" - "fmt" - "sync" - "time" - - "github.com/onflow/cadence" - "github.com/onflow/flow-go-sdk" - flowclient "github.com/onflow/flow-go-sdk/client" - "github.com/rs/zerolog" - "google.golang.org/grpc" -) - -// getFlowClient initializes and returns a flow client -func getFlowClient(flowClientUrl string) *flowclient.Client { - flowClient, err := flowclient.New(flowClientUrl, grpc.WithInsecure()) - if err != nil { - panic(err) - } - return flowClient -} - -// Config defines that application's config -type Config struct { - // BachSize is the number of addresses for which to run each script - BatchSize int - // 0 is treated as the latest block height. - AtBlockHeight uint64 - FlowAccessNodeURL string - Chain flow.ChainID - ConcurrentClients int - Pause time.Duration -} - -var DefaultConfig = Config{ - BatchSize: 1000, - AtBlockHeight: 0, - FlowAccessNodeURL: "access.mainnet.nodes.onflow.org:9000", - Chain: flow.Mainnet, - ConcurrentClients: 10, // should be a good number to not produce too much traffic - Pause: 500 * time.Millisecond, -} - -func BatchScript( - ctx context.Context, - log zerolog.Logger, - conf Config, - script string, - handler func(cadence.Value), - retryOnErrors bool, -) error { - - code := []byte(script) - - flowClient := getFlowClient(conf.FlowAccessNodeURL) - - currentBlock, err := getBlockHeight(ctx, conf, flowClient) - if err != nil { - return err - } - log.Info().Uint64("blockHeight", currentBlock.Height).Msg("Fetched block info") - - ap, err := InitAddressProvider(ctx, log, conf.Chain, currentBlock.ID, flowClient, conf.Pause) - if err != nil { - return err - } - - wg := &sync.WaitGroup{} - addressChan := make(chan []flow.Address) - - for i := 0; i < conf.ConcurrentClients; i++ { - wg.Add(1) - go func() { - // Each worker has a separate Flow client - client := getFlowClient(conf.FlowAccessNodeURL) - defer func() { - err = client.Close() - if err != nil { - log.Warn(). - Err(err). - Msg("error closing client") - } - }() - - // Get the batches of address through addressChan, - // run the script with that batch of addresses, - // and pass the result to the handler - - for accountAddresses := range addressChan { - accountsCadenceValues := convertAddresses(accountAddresses) - arguments := []cadence.Value{cadence.NewArray(accountsCadenceValues)} - result, success := retryScriptUntilSuccess( - ctx, - log, - currentBlock.Height, - code, - arguments, - client, - conf.Pause, - retryOnErrors, - ) - - if !success { - continue - } - - handler(result) - } - - wg.Done() - }() - } - - ap.GenerateAddressBatches(addressChan, conf.BatchSize) - - // Close the addressChan and wait for the workers to finish - close(addressChan) - wg.Wait() - - return nil -} - -func getBlockHeight(ctx context.Context, conf Config, flowClient *flowclient.Client) (*flow.BlockHeader, error) { - if conf.AtBlockHeight != 0 { - blk, err := flowClient.GetBlockByHeight(ctx, conf.AtBlockHeight) - if err != nil { - return nil, fmt.Errorf("failed to get block at the specified height: %w", err) - } - return &blk.BlockHeader, nil - } else { - block, err := flowClient.GetLatestBlockHeader(ctx, true) - if err != nil { - return nil, fmt.Errorf("failed to get the latest block header: %w", err) - } - return block, nil - } -} - -// retryScriptUntilSuccess retries running the cadence script until we get a successful response back, -// returning an array of balance pairs, along with a boolean representing whether we can continue -// or are finished processing. -func retryScriptUntilSuccess( - ctx context.Context, - log zerolog.Logger, - blockHeight uint64, - script []byte, - arguments []cadence.Value, - flowClient *flowclient.Client, - pause time.Duration, - retryOnErrors bool, -) (result cadence.Value, success bool) { - var err error - - for { - time.Sleep(pause) - - log.Debug().Msgf("executing script") - - result, err = flowClient.ExecuteScriptAtLatestBlock( - ctx, - script, - arguments, - grpc.MaxCallRecvMsgSize(16*1024*1024), - ) - if err == nil { - success = true - break - } - - if !retryOnErrors { - log.Warn().Msgf("received unknown error: %s", err.Error()) - break - } - - log.Warn().Msgf("received unknown error, retrying: %s", err.Error()) - } - - return result, success -} - -// convertAddresses generates an array of cadence.Value from an array of flow.Address -func convertAddresses(addresses []flow.Address) []cadence.Value { - var accounts []cadence.Value - for _, address := range addresses { - accounts = append(accounts, cadence.Address(address)) - } - return accounts -} diff --git a/tools/batch-script/cmd/get_contracts/main.go b/tools/batch-script/cmd/get_contracts/main.go deleted file mode 100644 index 56da69546b..0000000000 --- a/tools/batch-script/cmd/get_contracts/main.go +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Cadence - The resource-oriented smart contract programming language - * - * Copyright Dapper Labs, Inc. - * - * 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. - */ - -// Get all contracts from a network and write them as a CSV file to standard output. -// The CSV file has the header: location,code -package main - -import ( - "context" - "encoding/csv" - "flag" - "fmt" - "os" - "time" - - "github.com/rs/zerolog" - "github.com/rs/zerolog/log" - - "github.com/onflow/flow-go-sdk" - - "github.com/onflow/cadence" - "github.com/onflow/cadence/runtime/common" - - "github.com/onflow/cadence/tools/batch-script" -) - -var urlFlag = flag.String("u", "", "Flow Access Node URL") -var pauseFlag = flag.String("p", "", "pause duration") -var clientsFlag = flag.Int("c", 0, "number of clients") -var chainFlag = flag.String("chain", "", "Flow blockchain") -var retryFlag = flag.Bool("retry", false, "Retry on errors") - -var csvHeader = []string{"location", "code"} - -func main() { - flag.Parse() - - config := batch_script.DefaultConfig - - url := *urlFlag - if url != "" { - config.FlowAccessNodeURL = url - } - - chain := *chainFlag - if chain != "" { - var err error - config.Chain, err = chainIdFromString(chain) - if err != nil { - log.Err(err).Msg("invalid chain name") - return - } - } - - pause := *pauseFlag - if pause != "" { - pause, err := time.ParseDuration(pause) - if err == nil { - config.Pause = pause - } else { - log.Error().Msg("invalid pause duration") - return - } - } - - clients := *clientsFlag - if clients > 0 { - config.ConcurrentClients = clients - } - - log.Logger = log. - Output(zerolog.ConsoleWriter{Out: os.Stderr}). - Level(zerolog.InfoLevel) - - contracts := make(chan []string) - - go func() { - err := batch_script.BatchScript( - context.Background(), - log.Logger, - config, - batch_script.GetContracts, - batch_script.NewGetContractsHandler( - func(address cadence.Address, contractName, contractCode string, err error) { - if err != nil { - log.Err(err).Msg("failed to get contract info") - return - } - location := common.AddressLocation{ - Address: common.Address(address), - Name: contractName, - } - contracts <- []string{ - string(location.ID()), - contractCode, - } - }, - ), - *retryFlag, - ) - - if err != nil { - log.Err(err).Msg("batch script failed") - } - - close(contracts) - }() - - writer := csv.NewWriter(os.Stdout) - - if err := writer.Write(csvHeader); err != nil { - log.Err(err).Msg("failed to write CSV header") - return - } - - for contract := range contracts { - err := writer.Write(contract) - if err != nil { - log.Err(err).Msg("failed to write contract to CSV") - return - } - } - - writer.Flush() - - if err := writer.Error(); err != nil { - log.Err(err).Msg("failed to write CSV") - } -} - -func chainIdFromString(chain string) (flow.ChainID, error) { - chainID := flow.ChainID(chain) - switch chainID { - case flow.Mainnet, - flow.Testnet, - flow.Emulator: - return chainID, nil - default: - return chainID, fmt.Errorf("unsupported chain: %s", chain) - } -} diff --git a/tools/batch-script/get_contracts.cdc b/tools/batch-script/get_contracts.cdc deleted file mode 100644 index 2d1cfef5e0..0000000000 --- a/tools/batch-script/get_contracts.cdc +++ /dev/null @@ -1,21 +0,0 @@ -access(self) fun main(addresses: [Address]): {Address: {String: String}} { - let accountContracts: {Address: {String: String}} = {} - - for address in addresses { - let account = getAccount(address) - let contracts: {String: String} = {} - - let names = account.contracts.names - if names.length == 0 { - continue - } - - for name in names { - contracts[name] = String.encodeHex(account.contracts.get(name: name)!.code) - } - - accountContracts[address] = contracts - } - - return accountContracts -} \ No newline at end of file diff --git a/tools/batch-script/go.mod b/tools/batch-script/go.mod deleted file mode 100644 index 39fb396bfa..0000000000 --- a/tools/batch-script/go.mod +++ /dev/null @@ -1,41 +0,0 @@ -module github.com/onflow/cadence/tools/batch-script - -go 1.20 - -require ( - github.com/onflow/cadence v0.21.2 - github.com/onflow/flow-go-sdk v0.24.0 - github.com/rs/zerolog v1.26.1 - github.com/schollz/progressbar/v3 v3.8.3 - google.golang.org/grpc v1.40.0 -) - -require ( - github.com/btcsuite/btcd v0.20.1-beta // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/ethereum/go-ethereum v1.9.9 // indirect - github.com/fxamacker/cbor/v2 v2.3.1-0.20211029162100-5d5d7c3edd41 // indirect - github.com/fxamacker/circlehash v0.1.0 // indirect - github.com/go-test/deep v1.0.5 // indirect - github.com/golang/protobuf v1.5.2 // indirect - github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381 // indirect - github.com/mattn/go-runewidth v0.0.13 // indirect - github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect - github.com/onflow/atree v0.1.1 // indirect - github.com/onflow/flow-go/crypto v0.21.3 // indirect - github.com/onflow/flow/protobuf/go/flow v0.2.2 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect - github.com/stretchr/testify v1.7.0 // indirect - github.com/x448/float16 v0.8.4 // indirect - github.com/zeebo/blake3 v0.2.0 // indirect - golang.org/x/crypto v0.0.0-20211215165025-cf75a172585e // indirect - golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect - golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 // indirect - golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b // indirect - golang.org/x/text v0.3.6 // indirect - google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4 // indirect - google.golang.org/protobuf v1.27.1 // indirect - gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect -) diff --git a/tools/batch-script/go.sum b/tools/batch-script/go.sum deleted file mode 100644 index b2a01fe210..0000000000 --- a/tools/batch-script/go.sum +++ /dev/null @@ -1,797 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/kms v1.0.0/go.mod h1:nhUehi+w7zht2XrUfvTRNpxrfayBHqP4lu2NSywui/0= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= -github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= -github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= -github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/VictoriaMetrics/fastcache v1.5.3/go.mod h1:+jv9Ckb+za/P1ZRg/sulP5Ni1v49daAVERr0H3CuscE= -github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/aristanetworks/goarista v0.0.0-20170210015632-ea17b1a17847/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= -github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw= -github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= -github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/bytecodealliance/wasmtime-go v0.22.0/go.mod h1:q320gUxqyI8yB+ZqRuaJOEnGkAnHh6WtJjMaT2CW4wI= -github.com/c-bata/go-prompt v0.2.5/go.mod h1:vFnjEGDIIA/Lib7giyE4E9c50Lvl8j0S+7FVlAwDAVw= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.0.1-0.20190104013014-3767db7a7e18/go.mod h1:HD5P3vAIAh+Y2GAxg0PrPN1P8WkepXGpjbUPDHJqqKM= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod h1:1MxXX1Ux4x6mqPmjkUgTP1CdXIBXKX7T+Jk9Gxrmx+U= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/elastic/gosigar v0.8.1-0.20180330100440-37f05ff46ffa/go.mod h1:cdorVVzy1fhmEqmtgqkoE3bYtCfSCkVyjTyCIo22xvs= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.9.9 h1:jnoBvjH8aMH++iH14XmiJdAsnRcmZUM+B5fsnEZBVE0= -github.com/ethereum/go-ethereum v1.9.9/go.mod h1:a9TqabFudpDu1nucId+k9S8R9whYaHnGBLKFouA5EAo= -github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fxamacker/cbor/v2 v2.2.1-0.20210927235116-3d6d5d1de29b/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= -github.com/fxamacker/cbor/v2 v2.3.1-0.20211029162100-5d5d7c3edd41 h1:adk2SdM72B9LVdNPVgLDO+UBdGW5JmDIJEdzlI2ZYC8= -github.com/fxamacker/cbor/v2 v2.3.1-0.20211029162100-5d5d7c3edd41/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= -github.com/fxamacker/circlehash v0.1.0 h1:wXK52nkcBzGM+FyYc3wFYshm+0523BfX7h1XsUJLl70= -github.com/fxamacker/circlehash v0.1.0/go.mod h1:3aq3OfVvsWtkWMb6A1owjOQFA+TLsD5FgJflnaQwtMM= -github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-test/deep v1.0.5 h1:AKODKU3pDH1RzZzm6YZu77YWtEAq6uh1rLIAQlay2qc= -github.com/go-test/deep v1.0.5/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2-0.20190517061210-b285ee9cfc6c/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/gorilla/websocket v1.4.1-0.20190629185528-ae1634f6a989/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/graph-gophers/graphql-go v0.0.0-20191115155744-f33e81362277/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/golang-lru v0.0.0-20160813221303-0a025b7e63ad/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huin/goupnp v0.0.0-20161224104101-679507af18f3/go.mod h1:MZ2ZmwcBpvOoJ22IJsc7va19ZwoheaBk43rKg12SKag= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/influxdata/influxdb v1.2.3-0.20180221223340-01288bdb0883/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= -github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213/go.mod h1:vNUNkEQ1e29fT/6vq2aBdFsgNPmy8qMdSay1npru+Sw= -github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381 h1:bqDmpDG49ZRnB5PcgP0RXtQvnMSgIF14M7CBd2shtXs= -github.com/logrusorgru/aurora v0.0.0-20200102142835-e9ef32dff381/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= -github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= -github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/onflow/atree v0.1.0-beta1.0.20211027184039-559ee654ece9/go.mod h1:+6x071HgCF/0v5hQcaE5qqjc2UqN5gCU8h5Mk6uqpOg= -github.com/onflow/atree v0.1.1 h1:KTJt70E3FEhDDLf6ViyKypqI3iVMlR6gsieOsN4Ewu4= -github.com/onflow/atree v0.1.1/go.mod h1:95SqSEPgfijF1ZkLKbVgYVrfQzvP0fhayh555v1oLbs= -github.com/onflow/cadence v0.20.1/go.mod h1:7mzUvPZUIJztIbr9eTvs+fQjWWHTF8veC+yk4ihcNIA= -github.com/onflow/cadence v0.21.2 h1:LsYsCjpf9zBVU2B5Zuby96bHO5VdmX4dUZ88YY2ZnYI= -github.com/onflow/cadence v0.21.2/go.mod h1:KBxn7AyO+R2RFpFHjsWKJFAokyJaCZXc9Hr9MlEOq9g= -github.com/onflow/flow-go-sdk v0.24.0 h1:+p9Cqs3U34KVs5vvnjdLyRAne0ROEfjgJDeDn7ne+4k= -github.com/onflow/flow-go-sdk v0.24.0/go.mod h1:IoptMLPyFXWvyd9yYA6/4EmSeeozl6nJoIv4FaEMg74= -github.com/onflow/flow-go/crypto v0.21.3 h1:gbG9N6QKC+fAo3b4x8+enK9Lzd1annaB7Hp6H8dW8Ec= -github.com/onflow/flow-go/crypto v0.21.3/go.mod h1:vI6V4CY3R6c4JKBxdcRiR/AnjBfL8OSD97bJc60cLuQ= -github.com/onflow/flow/protobuf/go/flow v0.2.2 h1:EVhA0w3lu+BG7RK39ojIJVghLH998iP7YC0V/Op0KnU= -github.com/onflow/flow/protobuf/go/flow v0.2.2/go.mod h1:gQxYqCfkI8lpnKsmIjwtN2mV/N2PIwc1I+RUK4HPIc8= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pborman/uuid v0.0.0-20170112150404-1b00554d8222/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= -github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= -github.com/robertkrimen/otto v0.0.0-20170205013659-6a77b7cbc37d/go.mod h1:xvqspoSXJTIpemEonrMDFq6XzwHYYgToXWj5eRX1OtY= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ= -github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.26.1 h1:/ihwxqH+4z8UxyI70wM1z9yCvkWcfz/a3mj48k/Zngc= -github.com/rs/zerolog v1.26.1/go.mod h1:/wSSJWX7lVrsOwlbyTRSOJvqRlc+WjWlfes+CiJ+tmc= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/schollz/progressbar/v3 v3.8.3 h1:FnLGl3ewlDUP+YdSwveXBaXs053Mem/du+wr7XSYKl8= -github.com/schollz/progressbar/v3 v3.8.3/go.mod h1:pWnVCjSBZsT2X3nx9HfRdnCDrpbevliMeoEVhStwHko= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spaolacci/murmur3 v1.0.1-0.20190317074736-539464a789e9/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= -github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570/go.mod h1:8OR4w3TdeIHIh1g6EMY5p0gVNOovcWC+1vpc7naMuAw= -github.com/steakknife/hamming v0.0.0-20180906055917-c99c65617cd3/go.mod h1:hpGUWaI9xL8pRQCTXQgocU38Qw1g0Us7n5PxxTwTCYU= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/supranational/blst v0.3.4 h1:iZE9lBMoywK2uy2U/5hDOvobQk9FnOQ2wNlu9GmRCoA= -github.com/supranational/blst v0.3.4/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= -github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA= -github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= -github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= -github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/zeebo/assert v1.1.0 h1:hU1L1vLTHsnO8x8c9KAR5GmM5QscxHg5RNU5z5qbUWY= -github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= -github.com/zeebo/blake3 v0.2.0 h1:1SGx3IvKWFUU/xl+/7kjdcjjMcvVSm+3dMo/N42afC8= -github.com/zeebo/blake3 v0.2.0/go.mod h1:G9pM4qQwjRzF1/v7+vabMj/c5mWpGZ2Wzo3Eb4z0pb4= -github.com/zeebo/pcg v1.0.0 h1:dt+dx+HvX8g7Un32rY9XWoYnd0NmKmrIzpHF7qiTDj0= -github.com/zeebo/pcg v1.0.0/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= -go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211215165025-cf75a172585e h1:1SzTfNOXwIS2oWiMF+6qu0OUDKb0dauo6MoDUQyu+yU= -golang.org/x/crypto v0.0.0-20211215165025-cf75a172585e/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d h1:20cMwl2fHAzkJMEA+8J4JgqBQcQGzbisXo31MIeenXI= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201014080544-cc95f250f6bc/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210910150752-751e447fb3d0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 h1:J27LZFQBFoihqXoegpscI10HpjZ7B5WQLLKL2FZXQKw= -golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b h1:9zKuko04nR4gjZ4+DNjHqRlAJqbJETHwiNKDqTfOjfE= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200828161849-5deb26317202/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.6.1/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.58.0/go.mod h1:cAbP2FsxoGVNwtgNAmmn3y5G1TWAiVYRmg4yku3lv+E= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210921142501-181ce0d877f6/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4 h1:YXPV/eKW0ZWRdB5tyI6aPoaa2Wxb4OSlFrTREMdwn64= -google.golang.org/genproto v0.0.0-20211007155348-82e027067bd4/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= -gopkg.in/olebedev/go-duktape.v3 v3.0.0-20190213234257-ec84240a7772/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= -gopkg.in/sourcemap.v1 v1.0.5/go.mod h1:2RlvNNSMglmRrcvhfuzp4hQHwOtjxlbjX7UPY/GXb78= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -pgregory.net/rapid v0.4.7 h1:MTNRktPuv5FNqOO151TM9mDTa+XHcX6ypYeISDVD14g= -pgregory.net/rapid v0.4.7/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/tools/batch-script/use_cases.go b/tools/batch-script/use_cases.go deleted file mode 100644 index f145bb23f1..0000000000 --- a/tools/batch-script/use_cases.go +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Cadence - The resource-oriented smart contract programming language - * - * Copyright Dapper Labs, Inc. - * - * 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. - */ - -package batch_script - -import ( - _ "embed" - "encoding/hex" - - "github.com/onflow/cadence" -) - -//go:embed get_contracts.cdc -var GetContracts string - -type GetContractsHandler func(address cadence.Address, contractName, contractCode string, err error) - -func NewGetContractsHandler(handler GetContractsHandler) func(value cadence.Value) { - return func(value cadence.Value) { - for _, addressContractsPair := range value.(cadence.Dictionary).Pairs { - address := addressContractsPair.Key.(cadence.Address) - for _, nameCodePair := range addressContractsPair.Value.(cadence.Dictionary).Pairs { - name := string(nameCodePair.Key.(cadence.String)) - rawCode, err := hex.DecodeString(string(nameCodePair.Value.(cadence.String))) - if err != nil { - handler(cadence.Address{}, "", "", err) - continue - } - code := string(rawCode) - handler(address, name, code, nil) - } - } - } -} diff --git a/tools/compare-parsing/main.go b/tools/compare-parsing/main.go index 36ea0cfab5..7300522659 100644 --- a/tools/compare-parsing/main.go +++ b/tools/compare-parsing/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/compatibility-check/cmd/check_contracts/main.go b/tools/compatibility-check/cmd/check_contracts/main.go index dc5aebff53..4e472c2e00 100644 --- a/tools/compatibility-check/cmd/check_contracts/main.go +++ b/tools/compatibility-check/cmd/check_contracts/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/compatibility-check/contracts_checker.go b/tools/compatibility-check/contracts_checker.go index f83a7c3d8e..db66be90ea 100644 --- a/tools/compatibility-check/contracts_checker.go +++ b/tools/compatibility-check/contracts_checker.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/compatibility-check/contracts_checker_test.go b/tools/compatibility-check/contracts_checker_test.go index 150f045251..55d25d844a 100644 --- a/tools/compatibility-check/contracts_checker_test.go +++ b/tools/compatibility-check/contracts_checker_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/compatibility-check/go.mod b/tools/compatibility-check/go.mod index baed296863..00ce331115 100644 --- a/tools/compatibility-check/go.mod +++ b/tools/compatibility-check/go.mod @@ -1,6 +1,6 @@ module github.com/onflow/cadence/tools/compatibility_check -go 1.20 +go 1.22 require ( github.com/onflow/cadence v0.31.2-0.20230207221811-9eb6e7fe4121 diff --git a/tools/constructorcheck/Makefile b/tools/constructorcheck/Makefile index 24c52ef2dc..a6c5aea644 100644 --- a/tools/constructorcheck/Makefile +++ b/tools/constructorcheck/Makefile @@ -1,2 +1,2 @@ -constructorcheck.so: go.mod +constructorcheck.so: go.mod *.go go build -buildmode=plugin . diff --git a/tools/constructorcheck/analyzer.go b/tools/constructorcheck/analyzer.go index c008724ba3..ab11c22a32 100644 --- a/tools/constructorcheck/analyzer.go +++ b/tools/constructorcheck/analyzer.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/constructorcheck/analyzer_test.go b/tools/constructorcheck/analyzer_test.go index c9341a7091..e1807b9231 100644 --- a/tools/constructorcheck/analyzer_test.go +++ b/tools/constructorcheck/analyzer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/constructorcheck/go.mod b/tools/constructorcheck/go.mod index 92a60226b2..57adcbf9a7 100644 --- a/tools/constructorcheck/go.mod +++ b/tools/constructorcheck/go.mod @@ -1,10 +1,10 @@ module github.com/onflow/cadence/tools/constructorcheck -go 1.20 +go 1.22 -require golang.org/x/tools v0.6.0 +require golang.org/x/tools v0.21.0 require ( - golang.org/x/mod v0.8.0 // indirect - golang.org/x/sys v0.5.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/sync v0.7.0 // indirect ) diff --git a/tools/constructorcheck/go.sum b/tools/constructorcheck/go.sum index 44d387ef3f..05680b3128 100644 --- a/tools/constructorcheck/go.sum +++ b/tools/constructorcheck/go.sum @@ -1,7 +1,6 @@ -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= diff --git a/tools/constructorcheck/main.go b/tools/constructorcheck/main.go index c58204b26f..5d8fd711cb 100644 --- a/tools/constructorcheck/main.go +++ b/tools/constructorcheck/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,14 +27,10 @@ func main() { singlechecker.Main(Analyzer) } -type analyzerPlugin struct{} - -func (*analyzerPlugin) GetAnalyzers() []*analysis.Analyzer { +// This must be defined and named 'New' for golangci-lint, +// see https://golangci-lint.run/plugins/go-plugins/#create-a-plugin +func New(_ any) ([]*analysis.Analyzer, error) { return []*analysis.Analyzer{ Analyzer, - } + }, nil } - -// This must be defined and named 'AnalyzerPlugin' for golangci-lint, -// see https://golangci-lint.run/contributing/new-linters/#how-to-write-a-custom-linter -var AnalyzerPlugin analyzerPlugin diff --git a/tools/constructorcheck/testdata/test.go b/tools/constructorcheck/testdata/test.go index 29381b811e..6b849e049b 100644 --- a/tools/constructorcheck/testdata/test.go +++ b/tools/constructorcheck/testdata/test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/get-contracts/go.mod b/tools/get-contracts/go.mod new file mode 100644 index 0000000000..94a8db16a0 --- /dev/null +++ b/tools/get-contracts/go.mod @@ -0,0 +1,10 @@ +module github.com/onflow/cadence/tools/get-contracts + +go 1.22 + +require github.com/hasura/go-graphql-client v0.10.2 + +require ( + github.com/google/uuid v1.5.0 // indirect + nhooyr.io/websocket v1.8.10 // indirect +) diff --git a/tools/get-contracts/go.sum b/tools/get-contracts/go.sum new file mode 100644 index 0000000000..a8ff786ed5 --- /dev/null +++ b/tools/get-contracts/go.sum @@ -0,0 +1,10 @@ +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= +github.com/graph-gophers/graphql-transport-ws v0.0.2 h1:DbmSkbIGzj8SvHei6n8Mh9eLQin8PtA8xY9eCzjRpvo= +github.com/hasura/go-graphql-client v0.10.2 h1:+/v5/gWYgWr0cpd0aCi4GNtiy8uAIxnkADHTKDM+boY= +github.com/hasura/go-graphql-client v0.10.2/go.mod h1:eNNnmHAp6NgwKZ4xRbZEfywxr07qk34Y0QhbPsYIfhw= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +nhooyr.io/websocket v1.8.10 h1:mv4p+MnGrLDcPlBoWsvPP7XCzTYMXP9F9eIGoKbgx7Q= +nhooyr.io/websocket v1.8.10/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= diff --git a/tools/get-contracts/main.go b/tools/get-contracts/main.go new file mode 100644 index 0000000000..3519d24f27 --- /dev/null +++ b/tools/get-contracts/main.go @@ -0,0 +1,176 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +// Get all contracts from a network and write them as a CSV file to standard output. +// The CSV file has the header: location,code +package main + +import ( + "context" + "encoding/csv" + "flag" + "fmt" + "log" + "net/http" + "os" + "sort" + + "github.com/hasura/go-graphql-client" +) + +type chainID string + +const ( + mainnet chainID = "mainnet" + testnet chainID = "testnet" +) + +var chainFlag = flag.String("chain", "", "mainnet or testnet") +var apiKeyFlag = flag.String("apiKey", "", "Flowdiver API key") +var batchFlag = flag.Int("batch", 500, "batch size") + +var csvHeader = []string{"location", "code"} + +func main() { + flag.Parse() + + // Get batch size from flags + + batchSize := *batchFlag + + // Get chain ID from flags + + chain := chainID(*chainFlag) + switch chain { + case mainnet, testnet: + break + case "": + log.Fatal("missing chain ID") + default: + log.Fatalf("invalid chain: %s", chain) + } + + // Get API key from flags + + apiKey := *apiKeyFlag + if apiKey == "" { + log.Fatal("missing Flowdiver API key") + } + + // Get contracts from network + + var apiURL string + switch chain { + case mainnet: + apiURL = "https://api.findlabs.io/hasura/v1/graphql" + case testnet: + apiURL = "https://api.findlabs.io/hasura_testnet/v1/graphql" + } + + client := graphql.NewClient(apiURL, nil). + WithRequestModifier(func(r *http.Request) { + r.Header.Set("Authorization", fmt.Sprintf("Bearer %s", apiKey)) + // NOTE: important, default is forbidden by API's bot prevention + // (https://github.com/Kong/kong/blob/master/kong/plugins/bot-detection/rules.lua) + r.Header.Set("User-Agent", "Flow Foundation Cadence Tool") + }) + + var total, offset int + var contracts [][]string + + for { + + log.Printf("fetching contracts %d-%d", offset, offset+batchSize) + + var req struct { + ContractsAggregate struct { + Aggregate struct { + Count int + } + } `graphql:"contracts_aggregate(where: {valid_to: {_is_null: true}})"` + Contracts []struct { + Identifier string + Body string + } `graphql:"contracts(where: {valid_to: {_is_null: true}}, limit: $limit, offset: $offset)"` + } + + if err := client.Query( + context.Background(), + &req, + map[string]any{ + "offset": offset, + "limit": batchSize, + }, + ); err != nil { + log.Fatalf("failed to query: %s", err) + } + + total = req.ContractsAggregate.Aggregate.Count + + if contracts == nil { + contracts = make([][]string, 0, total) + } + + for _, contract := range req.Contracts { + contracts = append( + contracts, []string{ + contract.Identifier, + contract.Body, + }, + ) + } + + offset += batchSize + + if offset >= total { + break + } + } + + // Sort + + sort.Slice( + contracts, + func(i, j int) bool { + return contracts[i][0] < contracts[j][0] + }, + ) + + // Write contracts to CSV + + writer := csv.NewWriter(os.Stdout) + + if err := writer.Write(csvHeader); err != nil { + log.Fatalf("failed to write CSV header: %s", err) + return + } + + for _, contract := range contracts { + err := writer.Write(contract) + if err != nil { + log.Fatalf("failed to write contract to CSV: %s", err) + return + } + } + + writer.Flush() + + if err := writer.Error(); err != nil { + log.Fatalf("failed to write CSV: %s", err) + } +} diff --git a/tools/golangci-lint/go.mod b/tools/golangci-lint/go.mod index cd92d2b227..ce7784304a 100644 --- a/tools/golangci-lint/go.mod +++ b/tools/golangci-lint/go.mod @@ -1,179 +1,190 @@ module github.com/onflow/cadence/tools/golangci-lint -go 1.20 +go 1.22 -require github.com/golangci/golangci-lint v1.51.2 +require github.com/golangci/golangci-lint v1.59.0 require ( 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect 4d63.com/gochecknoglobals v0.2.1 // indirect - github.com/Abirdcfly/dupword v0.0.9 // indirect - github.com/Antonboom/errname v0.1.7 // indirect - github.com/Antonboom/nilnil v0.1.1 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/4meepo/tagalign v1.3.4 // indirect + github.com/Abirdcfly/dupword v0.0.14 // indirect + github.com/Antonboom/errname v0.1.13 // indirect + github.com/Antonboom/nilnil v0.1.9 // indirect + github.com/Antonboom/testifylint v1.3.0 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/Crocmagnon/fatcontext v0.2.2 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect - github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 // indirect - github.com/Masterminds/semver v1.5.0 // indirect - github.com/OpenPeeDeeP/depguard v1.1.1 // indirect + github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect + github.com/Masterminds/semver/v3 v3.2.1 // indirect + github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect + github.com/alecthomas/go-check-sumtype v0.1.4 // indirect + github.com/alexkohler/nakedret/v2 v2.0.4 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect - github.com/ashanbrown/forbidigo v1.4.0 // indirect + github.com/ashanbrown/forbidigo v1.6.0 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bkielbasa/cyclop v1.2.0 // indirect + github.com/bkielbasa/cyclop v1.2.1 // indirect github.com/blizzy78/varnamelen v0.8.0 // indirect - github.com/bombsimon/wsl/v3 v3.4.0 // indirect - github.com/breml/bidichk v0.2.3 // indirect - github.com/breml/errchkjson v0.3.0 // indirect - github.com/butuzov/ireturn v0.1.1 // indirect + github.com/bombsimon/wsl/v4 v4.2.1 // indirect + github.com/breml/bidichk v0.2.7 // indirect + github.com/breml/errchkjson v0.3.6 // indirect + github.com/butuzov/ireturn v0.3.0 // indirect + github.com/butuzov/mirror v1.2.0 // indirect + github.com/catenacyber/perfsprint v0.7.1 // indirect + github.com/ccojocar/zxcvbn-go v1.0.2 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/charithe/durationcheck v0.0.9 // indirect - github.com/chavacava/garif v0.0.0-20221024190013-b3ef35877348 // indirect + github.com/charithe/durationcheck v0.0.10 // indirect + github.com/chavacava/garif v0.1.0 // indirect + github.com/ckaznocha/intrange v0.1.2 // indirect github.com/curioswitch/go-reassign v0.2.0 // indirect - github.com/daixiang0/gci v0.9.1 // indirect + github.com/daixiang0/gci v0.13.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/denis-tingaikin/go-header v0.4.3 // indirect - github.com/esimonov/ifshort v1.0.4 // indirect - github.com/ettle/strcase v0.1.1 // indirect - github.com/fatih/color v1.14.1 // indirect + github.com/denis-tingaikin/go-header v0.5.0 // indirect + github.com/ettle/strcase v0.2.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/fatih/structtag v1.2.0 // indirect - github.com/firefart/nonamedreturns v1.0.4 // indirect + github.com/firefart/nonamedreturns v1.0.5 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect - github.com/go-critic/go-critic v0.6.7 // indirect + github.com/ghostiam/protogetter v0.3.6 // indirect + github.com/go-critic/go-critic v0.11.4 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect - github.com/go-toolsmith/astcopy v1.0.3 // indirect - github.com/go-toolsmith/astequal v1.1.0 // indirect + github.com/go-toolsmith/astcopy v1.1.0 // indirect + github.com/go-toolsmith/astequal v1.2.0 // indirect github.com/go-toolsmith/astfmt v1.1.0 // indirect github.com/go-toolsmith/astp v1.1.0 // indirect github.com/go-toolsmith/strparse v1.1.0 // indirect github.com/go-toolsmith/typep v1.1.0 // indirect + github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/gofrs/flock v0.8.1 // indirect - github.com/golang/protobuf v1.5.2 // indirect - github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect - github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe // indirect - github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 // indirect - github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 // indirect - github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect - github.com/golangci/misspell v0.4.0 // indirect - github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 // indirect - github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect - github.com/google/go-cmp v0.5.9 // indirect - github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 // indirect + github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect + github.com/golangci/misspell v0.5.1 // indirect + github.com/golangci/modinfo v0.3.4 // indirect + github.com/golangci/plugin-module-register v0.1.1 // indirect + github.com/golangci/revgrep v0.5.3 // indirect + github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/gordonklaus/ineffassign v0.1.0 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect github.com/gostaticanalysis/nilerr v0.1.1 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect - github.com/jgautheron/goconst v1.5.1 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jgautheron/goconst v1.7.1 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect + github.com/jjti/go-spancheck v0.6.1 // indirect github.com/julz/importas v0.1.0 // indirect - github.com/junk1tm/musttag v0.4.5 // indirect - github.com/kisielk/errcheck v1.6.3 // indirect - github.com/kisielk/gotool v1.0.0 // indirect - github.com/kkHAIKE/contextcheck v1.1.3 // indirect + github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect + github.com/kisielk/errcheck v1.7.0 // indirect + github.com/kkHAIKE/contextcheck v1.1.5 // indirect github.com/kulti/thelper v0.6.3 // indirect - github.com/kunwardeep/paralleltest v1.0.6 // indirect + github.com/kunwardeep/paralleltest v1.0.10 // indirect github.com/kyoh86/exportloopref v0.1.11 // indirect - github.com/ldez/gomoddirectives v0.2.3 // indirect - github.com/ldez/tagliatelle v0.4.0 // indirect - github.com/leonklingele/grouper v1.1.1 // indirect + github.com/lasiar/canonicalheader v1.1.1 // indirect + github.com/ldez/gomoddirectives v0.2.4 // indirect + github.com/ldez/tagliatelle v0.5.0 // indirect + github.com/leonklingele/grouper v1.1.2 // indirect github.com/lufeee/execinquery v1.2.1 // indirect + github.com/macabu/inamedparam v0.1.3 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/maratori/testableexamples v1.0.0 // indirect - github.com/maratori/testpackage v1.1.0 // indirect - github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // indirect + github.com/maratori/testpackage v1.1.1 // indirect + github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/mbilski/exhaustivestruct v1.2.0 // indirect - github.com/mgechev/revive v1.2.5 // indirect + github.com/mgechev/revive v1.3.7 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/moricho/tparallel v0.2.1 // indirect + github.com/moricho/tparallel v0.3.1 // indirect github.com/nakabonne/nestif v0.3.1 // indirect - github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect - github.com/nishanths/exhaustive v0.9.5 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect + github.com/nishanths/exhaustive v0.12.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect - github.com/nunnatsa/ginkgolinter v0.8.1 // indirect + github.com/nunnatsa/ginkgolinter v0.16.2 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.5 // indirect - github.com/pkg/errors v0.9.1 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/polyfloyd/go-errorlint v1.1.0 // indirect + github.com/polyfloyd/go-errorlint v1.5.1 // indirect github.com/prometheus/client_golang v1.12.1 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.32.1 // indirect github.com/prometheus/procfs v0.7.3 // indirect - github.com/quasilyte/go-ruleguard v0.3.19 // indirect + github.com/quasilyte/go-ruleguard v0.4.2 // indirect + github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect github.com/quasilyte/gogrep v0.5.0 // indirect - github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect + github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/ryancurrah/gomodguard v1.3.0 // indirect - github.com/ryanrolds/sqlclosecheck v0.4.0 // indirect + github.com/ryancurrah/gomodguard v1.3.2 // indirect + github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect + github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect - github.com/sashamelentyev/usestdlibvars v1.23.0 // indirect - github.com/securego/gosec/v2 v2.15.0 // indirect + github.com/sashamelentyev/usestdlibvars v1.25.0 // indirect + github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect - github.com/sirupsen/logrus v1.9.0 // indirect - github.com/sivchari/containedctx v1.0.2 // indirect - github.com/sivchari/nosnakecase v1.7.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/sivchari/containedctx v1.0.3 // indirect github.com/sivchari/tenv v1.7.1 // indirect - github.com/sonatard/noctx v0.0.1 // indirect + github.com/sonatard/noctx v0.0.2 // indirect github.com/sourcegraph/go-diff v0.7.0 // indirect - github.com/spf13/afero v1.8.2 // indirect + github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/cobra v1.6.1 // indirect + github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.12.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect - github.com/stretchr/objx v0.5.0 // indirect - github.com/stretchr/testify v1.8.1 // indirect + github.com/stretchr/objx v0.5.2 // indirect + github.com/stretchr/testify v1.9.0 // indirect github.com/subosito/gotenv v1.4.1 // indirect github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect - github.com/tdakkota/asciicheck v0.1.1 // indirect - github.com/tetafro/godot v1.4.11 // indirect - github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e // indirect - github.com/timonwong/loggercheck v0.9.3 // indirect - github.com/tomarrell/wrapcheck/v2 v2.8.0 // indirect + github.com/tdakkota/asciicheck v0.2.0 // indirect + github.com/tetafro/godot v1.4.16 // indirect + github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect + github.com/timonwong/loggercheck v0.9.4 // indirect + github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect - github.com/ultraware/funlen v0.0.3 // indirect - github.com/ultraware/whitespace v0.0.5 // indirect - github.com/uudashr/gocognit v1.0.6 // indirect + github.com/ultraware/funlen v0.1.0 // indirect + github.com/ultraware/whitespace v0.1.1 // indirect + github.com/uudashr/gocognit v1.1.2 // indirect + github.com/xen0n/gosmopolitan v1.2.2 // indirect github.com/yagipy/maintidx v1.0.0 // indirect - github.com/yeya24/promlinter v0.2.0 // indirect - gitlab.com/bosi/decorder v0.2.3 // indirect + github.com/yeya24/promlinter v0.3.0 // indirect + github.com/ykadowak/zerologlint v0.1.5 // indirect + gitlab.com/bosi/decorder v0.4.2 // indirect + go-simpler.org/musttag v0.12.2 // indirect + go-simpler.org/sloglint v0.7.0 // indirect go.uber.org/atomic v1.7.0 // indirect + go.uber.org/automaxprocs v1.5.3 // indirect go.uber.org/multierr v1.6.0 // indirect - go.uber.org/zap v1.17.0 // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9 // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/text v0.6.0 // indirect - golang.org/x/tools v0.6.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc // indirect + golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect + golang.org/x/tools v0.21.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - honnef.co/go/tools v0.4.2 // indirect - mvdan.cc/gofumpt v0.4.0 // indirect - mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect - mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect - mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d // indirect + honnef.co/go/tools v0.4.7 // indirect + mvdan.cc/gofumpt v0.6.0 // indirect + mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1 // indirect ) diff --git a/tools/golangci-lint/go.sum b/tools/golangci-lint/go.sum index d721114bbb..be04ca737e 100644 --- a/tools/golangci-lint/go.sum +++ b/tools/golangci-lint/go.sum @@ -7,7 +7,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -18,9 +17,6 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -38,103 +34,123 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Abirdcfly/dupword v0.0.9 h1:MxprGjKq3yDBICXDgEEsyGirIXfMYXkLNT/agPsE1tk= -github.com/Abirdcfly/dupword v0.0.9/go.mod h1:PzmHVLLZ27MvHSzV7eFmMXSFArWXZPZmfuuziuUrf2g= -github.com/Antonboom/errname v0.1.7 h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako= -github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= -github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q= -github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= +github.com/4meepo/tagalign v1.3.4 h1:P51VcvBnf04YkHzjfclN6BbsopfJR5rxs1n+5zHt+w8= +github.com/4meepo/tagalign v1.3.4/go.mod h1:M+pnkHH2vG8+qhE5bVc/zeP7HS/j910Fwa9TUSyZVI0= +github.com/Abirdcfly/dupword v0.0.14 h1:3U4ulkc8EUo+CaT105/GJ1BQwtgyj6+VaBVbAX11Ba8= +github.com/Abirdcfly/dupword v0.0.14/go.mod h1:VKDAbxdY8YbKUByLGg8EETzYSuC4crm9WwI6Y3S0cLI= +github.com/Antonboom/errname v0.1.13 h1:JHICqsewj/fNckzrfVSe+T33svwQxmjC+1ntDsHOVvM= +github.com/Antonboom/errname v0.1.13/go.mod h1:uWyefRYRN54lBg6HseYCFhs6Qjcy41Y3Jl/dVhA87Ns= +github.com/Antonboom/nilnil v0.1.9 h1:eKFMejSxPSA9eLSensFmjW2XTgTwJMjZ8hUHtV4s/SQ= +github.com/Antonboom/nilnil v0.1.9/go.mod h1:iGe2rYwCq5/Me1khrysB4nwI7swQvjclR8/YRPl5ihQ= +github.com/Antonboom/testifylint v1.3.0 h1:UiqrddKs1W3YK8R0TUuWwrVKlVAnS07DTUVWWs9c+y4= +github.com/Antonboom/testifylint v1.3.0/go.mod h1:NV0hTlteCkViPW9mSR4wEMfwp+Hs1T3dY60bkvSfhpM= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= -github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Crocmagnon/fatcontext v0.2.2 h1:OrFlsDdOj9hW/oBEJBNSuH7QWf+E9WPVHw+x52bXVbk= +github.com/Crocmagnon/fatcontext v0.2.2/go.mod h1:WSn/c/+MMNiD8Pri0ahRj0o9jVpeowzavOQplBJw6u0= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 h1:+r1rSv4gvYn0wmRjC8X7IAzX8QezqtFV9m0MUHFJgts= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/OpenPeeDeeP/depguard v1.1.1 h1:TSUznLjvp/4IUP+OQ0t/4jF4QUyxIcVX8YnghZdunyA= -github.com/OpenPeeDeeP/depguard v1.1.1/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0/go.mod h1:Nl76DrGNJTA1KJ0LePKBw/vznBX1EHbAZX8mwjR82nI= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA= +github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ= +github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= +github.com/alecthomas/assert/v2 v2.2.2/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= +github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c= +github.com/alecthomas/go-check-sumtype v0.1.4/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ= +github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk= +github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alexkohler/nakedret/v2 v2.0.4 h1:yZuKmjqGi0pSmjGpOC016LtPJysIL0WEUiaXW5SUnNg= +github.com/alexkohler/nakedret/v2 v2.0.4/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= -github.com/ashanbrown/forbidigo v1.4.0 h1:spdPbupaSqtWORq1Q4eHBoPBmHtwVyLKwaedbSLc5Sw= -github.com/ashanbrown/forbidigo v1.4.0/go.mod h1:IvgwB5Y4fzqSAj/WVXKWigoTkB0dzI2FBbpKWuh7ph8= +github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY= +github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= -github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= +github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJY= +github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= -github.com/bombsimon/wsl/v3 v3.4.0 h1:RkSxjT3tmlptwfgEgTgU+KYKLI35p/tviNXNXiL2aNU= -github.com/bombsimon/wsl/v3 v3.4.0/go.mod h1:KkIB+TXkqy6MvK9BDZVbZxKNYsE1/oLRJbIFtf14qqo= -github.com/breml/bidichk v0.2.3 h1:qe6ggxpTfA8E75hdjWPZ581sY3a2lnl0IRxLQFelECI= -github.com/breml/bidichk v0.2.3/go.mod h1:8u2C6DnAy0g2cEq+k/A2+tr9O1s+vHGxWn0LTc70T2A= -github.com/breml/errchkjson v0.3.0 h1:YdDqhfqMT+I1vIxPSas44P+9Z9HzJwCeAzjB8PxP1xw= -github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92zSDFcofU= -github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= -github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= +github.com/bombsimon/wsl/v4 v4.2.1 h1:Cxg6u+XDWff75SIFFmNsqnIOgob+Q9hG6y/ioKbRFiM= +github.com/bombsimon/wsl/v4 v4.2.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo= +github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY= +github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ= +github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA= +github.com/breml/errchkjson v0.3.6/go.mod h1:jhSDoFheAF2RSDOlCfhHO9KqhZgAYLyvHe7bRCX8f/U= +github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0= +github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD6edP5ZA= +github.com/butuzov/mirror v1.2.0 h1:9YVK1qIjNspaqWutSv8gsge2e/Xpq1eqEkslEUHy5cs= +github.com/butuzov/mirror v1.2.0/go.mod h1:DqZZDtzm42wIAIyHXeN8W/qb1EPlb9Qn/if9icBOpdQ= +github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc= +github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50= +github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= +github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charithe/durationcheck v0.0.9 h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy6EEutYk= -github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= -github.com/chavacava/garif v0.0.0-20221024190013-b3ef35877348 h1:cy5GCEZLUCshCGCRRUjxHrDUqkB4l5cuUt3ShEckQEo= -github.com/chavacava/garif v0.0.0-20221024190013-b3ef35877348/go.mod h1:f/miWtG3SSuTxKsNK3o58H1xl+XV6ZIfbC6p7lPPB8U= +github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= +github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= +github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= +github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI= +github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= -github.com/daixiang0/gci v0.9.1 h1:jBrwBmBZTDsGsXiaCTLIe9diotp1X4X64zodFrh7l+c= -github.com/daixiang0/gci v0.9.1/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/daixiang0/gci v0.13.4 h1:61UGkmpoAcxHM2hhNkZEf5SzwQtWJXTSws7jaPyqwlw= +github.com/daixiang0/gci v0.13.4/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20Ha7UVm+mtU= -github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= +github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= +github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= -github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= -github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= -github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= -github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= -github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= +github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q= +github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= -github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA= +github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/go-critic/go-critic v0.6.7 h1:1evPrElnLQ2LZtJfmNDzlieDhjnq36SLgNzisx06oPM= -github.com/go-critic/go-critic v0.6.7/go.mod h1:fYZUijFdcnxgx6wPjQA2QEjIRaNCT0gO8bhexy6/QmE= +github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk= +github.com/ghostiam/protogetter v0.3.6/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw= +github.com/go-critic/go-critic v0.11.4 h1:O7kGOCx0NDIni4czrkRIXTnit0mkyKOCePh3My6OyEU= +github.com/go-critic/go-critic v0.11.4/go.mod h1:2QAdo4iuLik5S9YG0rT4wcZ8QxwHYkrr6/2MWAiv/vc= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -144,26 +160,32 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8= github.com/go-toolsmith/astcast v1.1.0/go.mod h1:qdcuFWeGGS2xX5bLM/c3U9lewg7+Zu4mr+xPwZIB4ZU= -github.com/go-toolsmith/astcopy v1.0.3 h1:r0bgSRlMOAgO+BdQnVAcpMSMkrQCnV6ZJmIkrJgcJj0= -github.com/go-toolsmith/astcopy v1.0.3/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= -github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= +github.com/go-toolsmith/astcopy v1.1.0 h1:YGwBN0WM+ekI/6SS6+52zLDEf8Yvp3n2seZITCUBt5s= +github.com/go-toolsmith/astcopy v1.1.0/go.mod h1:hXM6gan18VA1T/daUEHCFcYiW8Ai1tIwIzHY6srfEAw= github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= -github.com/go-toolsmith/astequal v1.1.0 h1:kHKm1AWqClYn15R0K1KKE4RG614D46n+nqUQ06E1dTw= github.com/go-toolsmith/astequal v1.1.0/go.mod h1:sedf7VIdCL22LD8qIvv7Nn9MuWJruQA/ysswh64lffQ= +github.com/go-toolsmith/astequal v1.2.0 h1:3Fs3CYZ1k9Vo4FzFhwwewC3CHISHDnVUPC4x0bI2+Cw= +github.com/go-toolsmith/astequal v1.2.0/go.mod h1:c8NZ3+kSFtFY/8lPso4v8LuJjdJiUFVnSuU3s0qrrDY= github.com/go-toolsmith/astfmt v1.1.0 h1:iJVPDPp6/7AaeLJEruMsBUlOYCmvg0MoCfJprsOmcco= github.com/go-toolsmith/astfmt v1.1.0/go.mod h1:OrcLlRwu0CuiIBp/8b5PYF9ktGVZUjlNMV634mhwuQ4= github.com/go-toolsmith/astp v1.1.0 h1:dXPuCl6u2llURjdPLLDxJeZInAeZ0/eZwFJmqZMnpQA= github.com/go-toolsmith/astp v1.1.0/go.mod h1:0T1xFGz9hicKs8Z5MfAqSUitoUYS30pDMsRVIDHs8CA= -github.com/go-toolsmith/pkgload v1.0.2-0.20220101231613-e814995d17c5 h1:eD9POs68PHkwrx7hAB78z1cb6PfGq/jyWn3wJywsH1o= +github.com/go-toolsmith/pkgload v1.2.2 h1:0CtmHq/02QhxcF7E9N5LIFcYFsMR5rdovfqTtRKkgIk= +github.com/go-toolsmith/pkgload v1.2.2/go.mod h1:R2hxLNRKuAsiXCo2i5J6ZQPhnPMOVtU+f0arbFPWCus= github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQiyP2Bvw= github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ= github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus= github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig= +github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsMBaUOKXq6HSv655U1c= +github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U= github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= @@ -197,28 +219,25 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= -github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe h1:6RGUuS7EGotKx6J5HIP8ZtyMdiDscjMLfRBSPuzVVeo= -github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= -github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 h1:amWTbTGqOZ71ruzrdA+Nx5WA3tV1N0goTspwmKCQvBY= -github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2/go.mod h1:9wOXstvyDRshQ9LggQuzBCGysxs3b6Uo/1MvYCR2NMs= -github.com/golangci/golangci-lint v1.51.2 h1:yIcsT1X9ZYHdSpeWXRT1ORC/FPGSqDHbHsu9uk4FK7M= -github.com/golangci/golangci-lint v1.51.2/go.mod h1:KH9Q7/3glwpYSknxUgUyLlAv46A8fsSKo1hH2wDvkr8= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= -github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= -github.com/golangci/misspell v0.4.0 h1:KtVB/hTK4bbL/S6bs64rYyk8adjmh1BygbBiaAiX+a0= -github.com/golangci/misspell v0.4.0/go.mod h1:W6O/bwV6lGDxUCChm2ykw9NQdd5bYd1Xkjo88UcWyJc= -github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ= -github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= +github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g= +github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM= +github.com/golangci/golangci-lint v1.59.0 h1:st69YDnAH/v2QXDcgUaZ0seQajHScPALBVkyitYLXEk= +github.com/golangci/golangci-lint v1.59.0/go.mod h1:QNA32UWdUdHXnu+Ap5/ZU4WVwyp2tL94UxEXrSErjg0= +github.com/golangci/misspell v0.5.1 h1:/SjR1clj5uDjNLwYzCahHwIOPmQgoH04AyQIiWGbhCM= +github.com/golangci/misspell v0.5.1/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo= +github.com/golangci/modinfo v0.3.4 h1:oU5huX3fbxqQXdfspamej74DFX0kyGLkw1ppvXoJ8GA= +github.com/golangci/modinfo v0.3.4/go.mod h1:wytF1M5xl9u0ij8YSvhkEVPP3M5Mc7XLl1pxH3B2aUM= +github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c= +github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc= +github.com/golangci/revgrep v0.5.3 h1:3tL7c1XBMtWHHqVpS5ChmiAAoe4PF/d5+ULzV9sLAzs= +github.com/golangci/revgrep v0.5.3/go.mod h1:U4R/s9dlXZsg8uJmaR1GrloUr14D7qDl8gi2iPXJH8k= +github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs= +github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -231,13 +250,13 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -245,21 +264,15 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 h1:9alfqbrhuD+9fLZ4iaAVwhlp5PEhmnBt7yvK2Oy5C1U= -github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= -github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= +github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= +github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= github.com/gostaticanalysis/comment v1.4.2 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q= github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= @@ -269,13 +282,10 @@ github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3 github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= -github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -283,15 +293,16 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM= -github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk= +github.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= +github.com/jjti/go-spancheck v0.6.1 h1:ZK/wE5Kyi1VX3PJpUO2oEgeoI4FWOUm7Shb2Gbv5obI= +github.com/jjti/go-spancheck v0.6.1/go.mod h1:vF1QkOO159prdo6mHRxak2CpzDpHAfKiPUDP/NeRnX8= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -303,60 +314,62 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= -github.com/junk1tm/musttag v0.4.5 h1:d+mpJ1vn6WFEVKHwkgJiIedis1u/EawKOuUTygAUtCo= -github.com/junk1tm/musttag v0.4.5/go.mod h1:XkcL/9O6RmD88JBXb+I15nYRl9W4ExhgQeCBEhfMC8U= -github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8= -github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= -github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym7fCjIP8RPos= +github.com/karamaru-alpha/copyloopvar v1.1.0/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k= +github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0= +github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkHAIKE/contextcheck v1.1.3 h1:l4pNvrb8JSwRd51ojtcOxOeHJzHek+MtOyXbaR0uvmw= -github.com/kkHAIKE/contextcheck v1.1.3/go.mod h1:PG/cwd6c0705/LM0KTr1acO2gORUxkSVWyLJOFW5qoo= +github.com/kkHAIKE/contextcheck v1.1.5 h1:CdnJh63tcDe53vG+RebdpdXJTc9atMgGqdx8LXxiilg= +github.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7uyFptcnWTYUA= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.6 h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g= -github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= +github.com/kunwardeep/paralleltest v1.0.10 h1:wrodoaKYzS2mdNVnc4/w31YaXFtsc21PCTdvWJ/lDDs= +github.com/kunwardeep/paralleltest v1.0.10/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY= github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ= github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA= -github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= -github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= -github.com/ldez/tagliatelle v0.4.0 h1:sylp7d9kh6AdXN2DpVGHBRb5guTVAgOxqNGhbqc4b1c= -github.com/ldez/tagliatelle v0.4.0/go.mod h1:mNtTfrHy2haaBAw+VT7IBV6VXBThS7TCreYWbBcJ87I= -github.com/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU= -github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= +github.com/lasiar/canonicalheader v1.1.1 h1:wC+dY9ZfiqiPwAexUApFush/csSPXeIi4QqyxXmng8I= +github.com/lasiar/canonicalheader v1.1.1/go.mod h1:cXkb3Dlk6XXy+8MVQnF23CYKWlyA7kfQhSw2CcZtZb0= +github.com/ldez/gomoddirectives v0.2.4 h1:j3YjBIjEBbqZ0NKtBNzr8rtMHTOrLPeiwTkfUJZ3alg= +github.com/ldez/gomoddirectives v0.2.4/go.mod h1:oWu9i62VcQDYp9EQ0ONTfqLNh+mDLWWDO+SO0qSQw5g= +github.com/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo= +github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4= +github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= +github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= +github.com/macabu/inamedparam v0.1.3 h1:2tk/phHkMlEL/1GNe/Yf6kkR/hkcUdAEY3L0hjYV1Mk= +github.com/macabu/inamedparam v0.1.3/go.mod h1:93FLICAIk/quk7eaPPQvbzihUdn/QkGDwIZEoLtpH6I= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= -github.com/maratori/testpackage v1.1.0 h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q= -github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= -github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04= +github.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc= +github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 h1:gWg6ZQ4JhDfJPqlo2srm/LN17lpybq15AryXIRcWYLE= +github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= -github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/mgechev/revive v1.2.5 h1:UF9AR8pOAuwNmhXj2odp4mxv9Nx2qUIwVz8ZsU+Mbec= -github.com/mgechev/revive v1.2.5/go.mod h1:nFOXent79jMTISAfOAasKfy0Z2Ejq0WX7Qn/KAdYopI= +github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE= +github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -366,44 +379,47 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= -github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= +github.com/moricho/tparallel v0.3.1 h1:fQKD4U1wRMAYNngDonW5XupoB/ZGJHdpzrWqgyg9krA= +github.com/moricho/tparallel v0.3.1/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bcn8pqzeYNI= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= -github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= -github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/nishanths/exhaustive v0.9.5 h1:TzssWan6orBiLYVqewCG8faud9qlFntJE30ACpzmGME= -github.com/nishanths/exhaustive v0.9.5/go.mod h1:IbwrGdVMizvDcIxPYGVdQn5BqWJaOwpCvg4RGb8r/TA= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhKRf3Swg= +github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nunnatsa/ginkgolinter v0.8.1 h1:/y4o/0hV+ruUHj4xXh89xlFjoaitnI4LnkpuYs02q1c= -github.com/nunnatsa/ginkgolinter v0.8.1/go.mod h1:FYYLtszIdmzCH8XMaMPyxPVXZ7VCaIm55bA+gugx+14= +github.com/nunnatsa/ginkgolinter v0.16.2 h1:8iLqHIZvN4fTLDC0Ke9tbSZVcyVHoBs0HIbnVSxfHJk= +github.com/nunnatsa/ginkgolinter v0.16.2/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo/v2 v2.8.0 h1:pAM+oBNPrpXRs+E/8spkeGx9QgekbRVyr74EUvRVOUI= -github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= -github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= +github.com/onsi/ginkgo/v2 v2.17.3 h1:oJcvKpIb7/8uLpDDtnQuf18xVnwKp8DTD7DQ6gTd/MU= +github.com/onsi/ginkgo/v2 v2.17.3/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= +github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= +github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/polyfloyd/go-errorlint v1.1.0 h1:VKoEFg5yxSgJ2yFPVhxW7oGz+f8/OVcuMeNvcPIi6Eg= -github.com/polyfloyd/go-errorlint v1.1.0/go.mod h1:Uss7Bc/izYG0leCMRx3WVlrpqWedSZk7V/FUQW6VJ6U= +github.com/polyfloyd/go-errorlint v1.5.1 h1:5gHxDjLyyWij7fhfrjYNNlHsUNQeyx0LFQKUelO3RBo= +github.com/polyfloyd/go-errorlint v1.5.1/go.mod h1:sH1QC1pxxi0fFecsVIzBmxtrgd9IF/SkJpA6wqyKAJs= +github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -426,29 +442,34 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/quasilyte/go-ruleguard v0.3.19 h1:tfMnabXle/HzOb5Xe9CUZYWXKfkS1KwRmZyPmD9nVcc= -github.com/quasilyte/go-ruleguard v0.3.19/go.mod h1:lHSn69Scl48I7Gt9cX3VrbsZYvYiBYszZOZW4A+oTEw= +github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= +github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= +github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= +github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf68pVdQ3bCFZMDmnt9yqcMBro1pC7F+IPYMY= -github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= +github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU= +github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryancurrah/gomodguard v1.3.0 h1:q15RT/pd6UggBXVBuLps8BXRvl5GPBcwVA7BJHMLuTw= -github.com/ryancurrah/gomodguard v1.3.0/go.mod h1:ggBxb3luypPEzqVtq33ee7YSN35V28XeGnid8dnni50= -github.com/ryanrolds/sqlclosecheck v0.4.0 h1:i8SX60Rppc1wRuyQjMciLqIzV3xnoHB7/tXbr6RGYNI= -github.com/ryanrolds/sqlclosecheck v0.4.0/go.mod h1:TBRRjzL31JONc9i4XMinicuo+s+E8yKZ5FN8X3G6CKQ= +github.com/ryancurrah/gomodguard v1.3.2 h1:CuG27ulzEB1Gu5Dk5gP8PFxSOZ3ptSdP5iI/3IXxM18= +github.com/ryancurrah/gomodguard v1.3.2/go.mod h1:LqdemiFomEjcxOqirbQCb3JFvSxH2JUYMerTFd3sF2o= +github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU= +github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ= github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc= github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.23.0 h1:01h+/2Kd+NblNItNeux0veSL5cBF1jbEOPrEhDzGYq0= -github.com/sashamelentyev/usestdlibvars v1.23.0/go.mod h1:YPwr/Y1LATzHI93CqoPUN/2BzGQ/6N/cl/KwgR0B/aU= -github.com/securego/gosec/v2 v2.15.0 h1:v4Ym7FF58/jlykYmmhZ7mTm7FQvN/setNm++0fgIAtw= -github.com/securego/gosec/v2 v2.15.0/go.mod h1:VOjTrZOkUtSDt2QLSJmQBMWnvwiQPEjg0l+5juIqGk8= +github.com/sashamelentyev/usestdlibvars v1.25.0 h1:IK8SI2QyFzy/2OD2PYnhy84dpfNo9qADrRt6LH8vSzU= +github.com/sashamelentyev/usestdlibvars v1.25.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8= +github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 h1:rnO6Zp1YMQwv8AyxzuwsVohljJgp4L0ZqiCgtACsPsc= +github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9/go.mod h1:dg7lPlu/xK/Ut9SedURCoZbVCR4yC7fM65DtH9/CDHs= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= @@ -456,24 +477,22 @@ github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOms github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= -github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= -github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= -github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= +github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak= github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= -github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= -github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= +github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00= +github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo= github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= -github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -487,9 +506,9 @@ github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8L github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -497,38 +516,43 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk= -github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= -github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= +github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= +github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= -github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e h1:MV6KaVu/hzByHP0UvJ4HcMGE/8a6A4Rggc/0wx2AvJo= -github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= -github.com/timonwong/loggercheck v0.9.3 h1:ecACo9fNiHxX4/Bc02rW2+kaJIAMAes7qJ7JKxt0EZI= -github.com/timonwong/loggercheck v0.9.3/go.mod h1:wUqnk9yAOIKtGA39l1KLE9Iz0QiTocu/YZoOf+OzFdw= -github.com/tomarrell/wrapcheck/v2 v2.8.0 h1:qDzbir0xmoE+aNxGCPrn+rUSxAX+nG6vREgbbXAR81I= -github.com/tomarrell/wrapcheck/v2 v2.8.0/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= +github.com/tetafro/godot v1.4.16 h1:4ChfhveiNLk4NveAZ9Pu2AN8QZ2nkUGFuadM9lrr5D0= +github.com/tetafro/godot v1.4.16/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio= +github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 h1:quvGphlmUVU+nhpFa4gg4yJyTRJ13reZMDHrKwYw53M= +github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= +github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= +github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= +github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs= +github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= -github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= -github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqzi/CzI= -github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= -github.com/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= -github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= +github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI= +github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4= +github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/Gk8VQ= +github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= +github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI= +github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k= +github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU= +github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= -github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o= -github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= +github.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs= +github.com/yeya24/promlinter v0.3.0/go.mod h1:cDfJQQYv9uYciW60QT0eeHlFodotkYZlL+YcPQN+mW4= +github.com/ykadowak/zerologlint v0.1.5 h1:Gy/fMz1dFQN9JZTPjv1hxEk+sRWm05row04Yoolgdiw= +github.com/ykadowak/zerologlint v0.1.5/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -536,29 +560,36 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= -gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= +gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= +gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= +go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ= +go-simpler.org/assert v0.9.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28= +go-simpler.org/musttag v0.12.2 h1:J7lRc2ysXOq7eM8rwaTYnNrHd5JwjppzB6mScysB2Cs= +go-simpler.org/musttag v0.12.2/go.mod h1:uN1DVIasMTQKk6XSik7yrJoEysGtR2GRqvWnI9S7TYM= +go-simpler.org/sloglint v0.7.0 h1:rMZRxD9MbaGoRFobIOicMxZzum7AXNFDlez6xxJs5V4= +go-simpler.org/sloglint v0.7.0/go.mod h1:g9SXiSWY0JJh4LS39/Q0GxzP/QX2cVcbTOYhDpXrJEs= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= +go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -570,11 +601,12 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc h1:ao2WRsKSzW6KuUY9IWPwWahcHCgR0s52IfwutMfEbdM= +golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9 h1:6WHiuFL9FNjg8RljAaT7FNUuKDbvMqS1i5cr2OE2sLQ= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -587,7 +619,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -596,7 +627,6 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= @@ -604,8 +634,9 @@ golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -635,9 +666,6 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -645,18 +673,15 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -670,8 +695,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -703,17 +729,12 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -728,38 +749,36 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -782,7 +801,6 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -795,26 +813,16 @@ golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= @@ -826,10 +834,10 @@ golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4 golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -850,16 +858,12 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -889,13 +893,6 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -908,10 +905,6 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -924,13 +917,14 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -938,12 +932,10 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -953,16 +945,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.4.2 h1:6qXr+R5w+ktL5UkwEbPp+fEvfyoMPche6GkOpGHZcLc= -honnef.co/go/tools v0.4.2/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA= -mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= -mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d h1:3rvTIIM22r9pvXk+q3swxUQAQOxksVMGK7sml4nG57w= -mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d/go.mod h1:IeHQjmn6TOD+e4Z3RFiZMMsLVL+A96Nvptar8Fj71is= +honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= +honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= +mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= +mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= +mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1 h1:Nykk7fggxChwLK4rUPYESzeIwqsuxXXlFEAh5YhaMRo= +mvdan.cc/unparam v0.0.0-20240427195214-063aff900ca1/go.mod h1:ZzZjEpJDOmx8TdVU6umamY3Xy0UAQUI2DHbf05USVbI= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/tools/golangci-lint/main.go b/tools/golangci-lint/main.go index 3d54fe4320..9ecd33aba0 100644 --- a/tools/golangci-lint/main.go +++ b/tools/golangci-lint/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/maprange/Makefile b/tools/maprange/Makefile index 5485d4a205..ec0cf5fbe8 100644 --- a/tools/maprange/Makefile +++ b/tools/maprange/Makefile @@ -1,2 +1,2 @@ -maprange.so: go.mod +maprange.so: go.mod *.go go build -buildmode=plugin . diff --git a/tools/maprange/analyzer.go b/tools/maprange/analyzer.go index a4962a55b1..6073ca6d37 100644 --- a/tools/maprange/analyzer.go +++ b/tools/maprange/analyzer.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/maprange/analyzer_test.go b/tools/maprange/analyzer_test.go index bb71574edf..6d1d9f1672 100644 --- a/tools/maprange/analyzer_test.go +++ b/tools/maprange/analyzer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/maprange/go.mod b/tools/maprange/go.mod index bc581c315e..d2ed5e21a6 100644 --- a/tools/maprange/go.mod +++ b/tools/maprange/go.mod @@ -1,10 +1,10 @@ module github.com/onflow/cadence/tools/maprange -go 1.20 +go 1.22 -require golang.org/x/tools v0.6.0 +require golang.org/x/tools v0.21.0 require ( - golang.org/x/mod v0.8.0 // indirect - golang.org/x/sys v0.5.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/sync v0.7.0 // indirect ) diff --git a/tools/maprange/go.sum b/tools/maprange/go.sum index 44d387ef3f..05680b3128 100644 --- a/tools/maprange/go.sum +++ b/tools/maprange/go.sum @@ -1,7 +1,6 @@ -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= diff --git a/tools/maprange/main.go b/tools/maprange/main.go index c58204b26f..5d8fd711cb 100644 --- a/tools/maprange/main.go +++ b/tools/maprange/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,14 +27,10 @@ func main() { singlechecker.Main(Analyzer) } -type analyzerPlugin struct{} - -func (*analyzerPlugin) GetAnalyzers() []*analysis.Analyzer { +// This must be defined and named 'New' for golangci-lint, +// see https://golangci-lint.run/plugins/go-plugins/#create-a-plugin +func New(_ any) ([]*analysis.Analyzer, error) { return []*analysis.Analyzer{ Analyzer, - } + }, nil } - -// This must be defined and named 'AnalyzerPlugin' for golangci-lint, -// see https://golangci-lint.run/contributing/new-linters/#how-to-write-a-custom-linter -var AnalyzerPlugin analyzerPlugin diff --git a/tools/maprange/testdata/src/a/test.go b/tools/maprange/testdata/src/a/test.go index 60fc3c24b9..241c689197 100644 --- a/tools/maprange/testdata/src/a/test.go +++ b/tools/maprange/testdata/src/a/test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/pretty/main.go b/tools/pretty/main.go index 0561bee162..29cb6d32b8 100644 --- a/tools/pretty/main.go +++ b/tools/pretty/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/staged-contracts-report-printer/README.md b/tools/staged-contracts-report-printer/README.md new file mode 100644 index 0000000000..322c8d7230 --- /dev/null +++ b/tools/staged-contracts-report-printer/README.md @@ -0,0 +1,11 @@ +# Readme + +A tool that takes in a JSON report produced from staged contract migration, and outputs a more +human-readable report in Markdown format. + +```sh +go run . --report /path/to/staged-contracts-migrator_report.json +``` + +This will produce a Markdown format report with the same name, but with the makdown extension. +e.g: `/path/to/staged-contracts-migrator_report.md` \ No newline at end of file diff --git a/tools/staged-contracts-report-printer/main.go b/tools/staged-contracts-report-printer/main.go new file mode 100644 index 0000000000..67569a5d50 --- /dev/null +++ b/tools/staged-contracts-report-printer/main.go @@ -0,0 +1,102 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package main + +import ( + "encoding/json" + "flag" + "fmt" + "os" + "path" + "strings" + "time" + + "github.com/kodova/html-to-markdown/escape" +) + +var reportPathFlag = flag.String("report", "", "staged contract report JSON file") + +func main() { + flag.Parse() + + reportPath := *reportPathFlag + + content, err := os.ReadFile(reportPath) + if err != nil { + panic(err) + } + + var reportEntries []contractUpdateStatus + + err = json.Unmarshal(content, &reportEntries) + if err != nil { + panic(err) + } + + now := time.Now() + + markdownBuilder := strings.Builder{} + markdownBuilder.WriteString("## Cadence 1.0 staged contracts migration results\n") + markdownBuilder.WriteString(fmt.Sprintf("Date: %s\n", now.Format("02 January, 2006"))) + markdownBuilder.WriteString("|Account Address | Contract Name | Status |\n") + markdownBuilder.WriteString("| --- | --- | --- | \n") + + for _, entry := range reportEntries { + status := entry.Error + if status == "" { + status = "✅" + } else { + status = escape.Markdown(status) + status = strings.ReplaceAll(status, "|", "\\|") + status = strings.ReplaceAll(status, "\r\n", "
") + status = strings.ReplaceAll(status, "\n", "
") + status = fmt.Sprintf("❌

Error:
%s
", status) + } + markdownBuilder.WriteString( + fmt.Sprintf( + "| %s | %s | %s | \n", + entry.AccountAddress, + entry.ContractName, + status, + ), + ) + } + + ext := path.Ext(reportPath) + mdOutput := fmt.Sprintf("%s.md", reportPath[0:len(reportPath)-len(ext)]) + + file, err := os.Create(mdOutput) + if err != nil { + panic(err) + } + + mdContent := markdownBuilder.String() + _, err = file.Write([]byte(mdContent)) + if err != nil { + panic(err) + } + + fmt.Println("Markdown content is written to: ", mdOutput) +} + +type contractUpdateStatus struct { + AccountAddress string `json:"account_address"` + ContractName string `json:"contract_name"` + Error string `json:"error"` +} diff --git a/tools/storage-explorer/.gitignore b/tools/storage-explorer/.gitignore new file mode 100644 index 0000000000..a547bf36d8 --- /dev/null +++ b/tools/storage-explorer/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/tools/storage-explorer/README.md b/tools/storage-explorer/README.md new file mode 100644 index 0000000000..03356a9eb2 --- /dev/null +++ b/tools/storage-explorer/README.md @@ -0,0 +1,23 @@ +# storage-explorer + +Load a payloads file and browse its accounts, their storage maps, and their stored values. + +## Usage + +```shell +npm i +npm run build +go run . -port 4000 -payloads payloads-file +``` + +## Development + +```shell +gow -e go,gohtml run . -port 4000 -payloads payloads-file +``` + +and + +```shell +npx vite build --watch +``` diff --git a/tools/storage-explorer/addresses.go b/tools/storage-explorer/addresses.go new file mode 100644 index 0000000000..8a291d7a75 --- /dev/null +++ b/tools/storage-explorer/addresses.go @@ -0,0 +1,57 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package main + +import ( + "encoding/json" + "sort" + + "github.com/onflow/flow-go/cmd/util/ledger/util/registers" + + "github.com/onflow/cadence/runtime/common" +) + +func addressesJSON(registersByAccount *registers.ByAccount) ([]byte, error) { + + var addresses []string + + err := registersByAccount.ForEachAccount(func(accountRegisters *registers.AccountRegisters) error { + owner := accountRegisters.Owner() + if len(owner) == 0 { + return nil + } + + address := common.Address([]byte(owner)).Hex() + addresses = append(addresses, address) + + return nil + }) + if err != nil { + return nil, err + } + + sort.Strings(addresses) + + encoded, err := json.Marshal(addresses) + if err != nil { + return nil, err + } + + return encoded, nil +} diff --git a/tools/storage-explorer/go.mod b/tools/storage-explorer/go.mod new file mode 100644 index 0000000000..0a9784f6b3 --- /dev/null +++ b/tools/storage-explorer/go.mod @@ -0,0 +1,196 @@ +module github.com/onflow/cadence/tools/storage-explorer + +go 1.22 + +require ( + github.com/gorilla/mux v1.8.1 + github.com/onflow/atree v0.7.0-rc.2 + github.com/onflow/cadence v1.0.0-preview.29 + github.com/onflow/flow-go v0.35.10-0.20240524201939-d3680b8f9373 + github.com/rs/zerolog v1.32.0 +) + +require ( + github.com/DataDog/zstd v1.5.2 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/SaveTheRbtz/mph v0.1.1-0.20240117162131-4166ec7869bc // indirect + github.com/StackExchange/wmi v1.2.1 // indirect + github.com/VictoriaMetrics/fastcache v1.12.1 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.2.1 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cockroachdb/errors v1.9.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 // indirect + github.com/cockroachdb/redact v1.1.3 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/coreos/go-semver v0.3.0 // indirect + github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/deckarep/golang-set/v2 v2.1.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/dgraph-io/badger/v2 v2.2007.4 // indirect + github.com/dgraph-io/ristretto v0.1.0 // indirect + github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/ef-ds/deque v1.0.4 // indirect + github.com/ethereum/c-kzg-4844 v0.4.0 // indirect + github.com/ethereum/go-ethereum v1.13.10 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fxamacker/cbor/v2 v2.4.1-0.20230228173756-c0c9f774e40c // indirect + github.com/fxamacker/circlehash v0.3.0 // indirect + github.com/getsentry/sentry-go v0.18.0 // indirect + github.com/go-kit/kit v0.12.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-stack/stack v1.8.1 // indirect + github.com/gofrs/flock v0.8.1 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/glog v1.2.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/holiman/bloomfilter/v2 v2.0.3 // indirect + github.com/holiman/uint256 v1.2.4 // indirect + github.com/huandu/go-clone v1.6.0 // indirect + github.com/huandu/go-clone/generic v1.7.2 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/ipfs/bbloom v0.0.4 // indirect + github.com/ipfs/boxo v0.17.1-0.20240131173518-89bceff34bf1 // indirect + github.com/ipfs/go-block-format v0.2.0 // indirect + github.com/ipfs/go-cid v0.4.1 // indirect + github.com/ipfs/go-datastore v0.6.0 // indirect + github.com/ipfs/go-ipfs-util v0.0.3 // indirect + github.com/ipfs/go-ipld-format v0.6.0 // indirect + github.com/ipfs/go-log/v2 v2.5.1 // indirect + github.com/ipfs/go-metrics-interface v0.0.1 // indirect + github.com/jbenet/goprocess v0.1.4 // indirect + github.com/k0kubun/pp v3.0.1+incompatible // indirect + github.com/kevinburke/go-bindata v3.24.0+incompatible // indirect + github.com/klauspost/compress v1.17.4 // indirect + github.com/klauspost/cpuid/v2 v2.2.6 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/libp2p/go-buffer-pool v0.1.0 // indirect + github.com/libp2p/go-libp2p v0.32.2 // indirect + github.com/libp2p/go-libp2p-pubsub v0.10.0 // indirect + github.com/libp2p/go-msgio v0.3.0 // indirect + github.com/logrusorgru/aurora/v4 v4.0.0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect + github.com/minio/sha256-simd v1.0.1 // indirect + github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect + github.com/mr-tron/base58 v1.2.0 // indirect + github.com/multiformats/go-base32 v0.1.0 // indirect + github.com/multiformats/go-base36 v0.2.0 // indirect + github.com/multiformats/go-multiaddr v0.12.2 // indirect + github.com/multiformats/go-multibase v0.2.0 // indirect + github.com/multiformats/go-multicodec v0.9.0 // indirect + github.com/multiformats/go-multihash v0.2.3 // indirect + github.com/multiformats/go-multistream v0.5.0 // indirect + github.com/multiformats/go-varint v0.0.7 // indirect + github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/onflow/crypto v0.25.1 // indirect + github.com/onflow/flow-core-contracts/lib/go/contracts v1.1.0 // indirect + github.com/onflow/flow-core-contracts/lib/go/templates v1.0.0 // indirect + github.com/onflow/flow-ft/lib/go/contracts v1.0.0 // indirect + github.com/onflow/flow-ft/lib/go/templates v1.0.0 // indirect + github.com/onflow/flow-go-sdk v1.0.0-preview.30 // indirect + github.com/onflow/flow-nft/lib/go/contracts v1.2.1 // indirect + github.com/onflow/flow-nft/lib/go/templates v1.2.0 // indirect + github.com/onflow/flow/protobuf/go/flow v0.4.3 // indirect + github.com/onflow/go-ethereum v1.13.4 // indirect + github.com/onflow/nft-storefront/lib/go/contracts v1.0.0 // indirect + github.com/onflow/sdks v0.5.1-0.20230912225508-b35402f12bba // indirect + github.com/onflow/wal v1.0.2 // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect + github.com/pelletier/go-toml/v2 v2.0.6 // indirect + github.com/pierrec/lz4 v2.6.1+incompatible // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect + github.com/psiemens/sconfig v0.1.0 // indirect + github.com/rivo/uniseg v0.4.4 // indirect + github.com/rogpeppe/go-internal v1.10.0 // indirect + github.com/schollz/progressbar/v3 v3.13.1 // indirect + github.com/sethvargo/go-retry v0.2.3 // indirect + github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect + github.com/slok/go-http-metrics v0.10.0 // indirect + github.com/spaolacci/murmur3 v1.1.0 // indirect + github.com/spf13/afero v1.10.0 // indirect + github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.15.0 // indirect + github.com/stretchr/objx v0.5.2 // indirect + github.com/stretchr/testify v1.9.0 // indirect + github.com/subosito/gotenv v1.4.2 // indirect + github.com/supranational/blst v0.3.11 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/texttheater/golang-levenshtein/levenshtein v0.0.0-20200805054039-cae8b0eaed6c // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/turbolent/prettier v0.0.0-20220320183459-661cc755135d // indirect + github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect + github.com/vmihailenco/msgpack/v4 v4.3.11 // indirect + github.com/vmihailenco/tagparser v0.1.1 // indirect + github.com/x448/float16 v0.8.4 // indirect + github.com/zeebo/blake3 v0.2.3 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/sdk v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/proto/otlp v1.0.0 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.26.0 // indirect + golang.org/x/crypto v0.19.0 // indirect + golang.org/x/exp v0.0.0-20240119083558-1b970713d09a // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.17.0 // indirect + golang.org/x/term v0.17.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.17.0 // indirect + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect + gonum.org/v1/gonum v0.14.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/grpc v1.63.2 // indirect + google.golang.org/protobuf v1.33.0 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/blake3 v1.2.1 // indirect + rsc.io/tmplfunc v0.0.3 // indirect +) + +replace github.com/onflow/cadence => ../.. diff --git a/tools/storage-explorer/go.sum b/tools/storage-explorer/go.sum new file mode 100644 index 0000000000..cb23d5b2bd --- /dev/null +++ b/tools/storage-explorer/go.sum @@ -0,0 +1,3196 @@ +cloud.google.com/go v0.0.0-20170206221025-ce650573d812/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= +cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.110.6/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.110.7/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= +cloud.google.com/go/accessapproval v1.7.2/go.mod h1:/gShiq9/kK/h8T/eEn1BTzalDvk0mZxJlhfw0p+Xuc0= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= +cloud.google.com/go/accesscontextmanager v1.8.0/go.mod h1:uI+AI/r1oyWK99NN8cQ3UK76AMelMzgZCvJfsi2c+ps= +cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= +cloud.google.com/go/accesscontextmanager v1.8.2/go.mod h1:E6/SCRM30elQJ2PKtFMs2YhfJpZSNcJyejhuzoId4Zk= +cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= +cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= +cloud.google.com/go/aiplatform v1.48.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= +cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= +cloud.google.com/go/aiplatform v1.51.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= +cloud.google.com/go/aiplatform v1.51.1/go.mod h1:kY3nIMAVQOK2XDqDPHaOuD9e+FdMA6OOpfBjsvaFSOo= +cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= +cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= +cloud.google.com/go/analytics v0.21.4/go.mod h1:zZgNCxLCy8b2rKKVfC1YkC2vTrpfZmeRCySM3aUbskA= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= +cloud.google.com/go/apigateway v1.6.2/go.mod h1:CwMC90nnZElorCW63P2pAYm25AtQrHfuOkbRSHj0bT8= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= +cloud.google.com/go/apigeeconnect v1.6.2/go.mod h1:s6O0CgXT9RgAxlq3DLXvG8riw8PYYbU/v25jqP3Dy18= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= +cloud.google.com/go/apigeeregistry v0.7.2/go.mod h1:9CA2B2+TGsPKtfi3F7/1ncCCsL62NXBRfM6iPoGSM+8= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= +cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= +cloud.google.com/go/appengine v1.8.2/go.mod h1:WMeJV9oZ51pvclqFN2PqHoGnys7rK0rz6s3Mp6yMvDo= +cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= +cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= +cloud.google.com/go/area120 v0.8.2/go.mod h1:a5qfo+x77SRLXnCynFWPUZhnZGeSgvQ+Y0v1kSItkh4= +cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= +cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= +cloud.google.com/go/artifactregistry v1.14.2/go.mod h1:Xk+QbsKEb0ElmyeMfdHAey41B+qBq3q5R5f5xD4XT3U= +cloud.google.com/go/artifactregistry v1.14.3/go.mod h1:A2/E9GXnsyXl7GUvQ/2CjHA+mVRoWAXC0brg2os+kNI= +cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= +cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= +cloud.google.com/go/asset v1.15.0/go.mod h1:tpKafV6mEut3+vN9ScGvCHXHj7FALFVta+okxFECHcg= +cloud.google.com/go/asset v1.15.1/go.mod h1:yX/amTvFWRpp5rcFq6XbCxzKT8RJUam1UoboE179jU4= +cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= +cloud.google.com/go/assuredworkloads v1.11.2/go.mod h1:O1dfr+oZJMlE6mw0Bp0P1KZSlj5SghMBvTpZqIcUAW4= +cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= +cloud.google.com/go/automl v1.13.2/go.mod h1:gNY/fUmDEN40sP8amAX3MaXkxcqPIn7F1UIIPZpy4Mg= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/baremetalsolution v1.1.1/go.mod h1:D1AV6xwOksJMV4OSlWHtWuFNZZYujJknMAP4Qa27QIA= +cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw= +cloud.google.com/go/baremetalsolution v1.2.1/go.mod h1:3qKpKIw12RPXStwQXcbhfxVj1dqQGEvcmA+SX/mUR88= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/batch v1.3.1/go.mod h1:VguXeQKXIYaeeIYbuozUmBR13AfL4SJP7IltNPS+A4A= +cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= +cloud.google.com/go/batch v1.5.0/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= +cloud.google.com/go/batch v1.5.1/go.mod h1:RpBuIYLkQu8+CWDk3dFD/t/jOCGuUpkpX+Y0n1Xccs8= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= +cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= +cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= +cloud.google.com/go/beyondcorp v1.0.1/go.mod h1:zl/rWWAFVeV+kx+X2Javly7o1EIQThU4WlkynffL/lk= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= +cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= +cloud.google.com/go/bigquery v1.53.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= +cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec= +cloud.google.com/go/bigquery v1.56.0/go.mod h1:KDcsploXTEY7XT3fDQzMUZlpQLHzE4itubHrnmhUrZA= +cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= +cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= +cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= +cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= +cloud.google.com/go/billing v1.17.1/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= +cloud.google.com/go/billing v1.17.2/go.mod h1:u/AdV/3wr3xoRBk5xvUzYMS1IawOAPwQMuHgHMdljDg= +cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= +cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154= +cloud.google.com/go/binaryauthorization v1.7.1/go.mod h1:GTAyfRWYgcbsP3NJogpV3yeunbUIjx2T9xVeYovtURE= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= +cloud.google.com/go/certificatemanager v1.7.2/go.mod h1:15SYTDQMd00kdoW0+XY5d9e+JbOPjp24AvF48D8BbcQ= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= +cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0= +cloud.google.com/go/channel v1.17.1/go.mod h1:xqfzcOZAcP4b/hUDH0GkGg1Sd5to6di1HOJn/pi5uBQ= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.13.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.14.1/go.mod h1:K7wGc/3zfvmYWOWwYTgF/d/UVJhS4pu+HAy7PL7mCsU= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= +cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= +cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM= +cloud.google.com/go/clouddms v1.7.1/go.mod h1:o4SR8U95+P7gZ/TX+YbJxehOCsM+fe6/brlrFquiszk= +cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= +cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= +cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= +cloud.google.com/go/cloudtasks v1.12.2/go.mod h1:A7nYkjNlW2gUoROg1kvJrQGhJP/38UaWwsnuBDOBVUk= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= +cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= +cloud.google.com/go/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= +cloud.google.com/go/contactcenterinsights v1.11.0/go.mod h1:hutBdImE4XNZ1NV4vbPJKSFOnQruhC5Lj9bZqWMTKiU= +cloud.google.com/go/contactcenterinsights v1.11.1/go.mod h1:FeNP3Kg8iteKM80lMwSk3zZZKVxr+PGnAId6soKuXwE= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= +cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= +cloud.google.com/go/container v1.24.0/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= +cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4= +cloud.google.com/go/container v1.26.1/go.mod h1:5smONjPRUxeEpDG7bMKWfDL4sauswqEtnBK1/KKpR04= +cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= +cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= +cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U= +cloud.google.com/go/containeranalysis v0.11.1/go.mod h1:rYlUOM7nem1OJMKwE1SadufX0JP3wnXj844EtZAwWLY= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/datacatalog v1.14.0/go.mod h1:h0PrGtlihoutNMp/uvwhawLQ9+c63Kz65UFqh49Yo+E= +cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= +cloud.google.com/go/datacatalog v1.16.0/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= +cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= +cloud.google.com/go/datacatalog v1.18.0/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= +cloud.google.com/go/datacatalog v1.18.1/go.mod h1:TzAWaz+ON1tkNr4MOcak8EBHX7wIRX/gZKM+yTVsv+A= +cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= +cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= +cloud.google.com/go/dataflow v0.9.2/go.mod h1:vBfdBZ/ejlTaYIGB3zB4T08UshH70vbtZeMD+urnUSo= +cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= +cloud.google.com/go/dataform v0.8.2/go.mod h1:X9RIqDs6NbGPLR80tnYoPNiO1w0wenKTb8PxxlhTMKM= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= +cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= +cloud.google.com/go/datafusion v1.7.2/go.mod h1:62K2NEC6DRlpNmI43WHMWf9Vg/YvN6QVi8EVwifElI0= +cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= +cloud.google.com/go/datalabeling v0.8.2/go.mod h1:cyDvGHuJWu9U/cLDA7d8sb9a0tWLEletStu2sTmg3BE= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.9.0/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.10.1/go.mod h1:1MzmBv8FvjYfc7vDdxhnLFNskikkB+3vl475/XdCDhs= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataproc/v2 v2.0.1/go.mod h1:7Ez3KRHdFGcfY7GcevBbvozX+zyWGcwLJvvAMwCaoZ4= +cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY= +cloud.google.com/go/dataproc/v2 v2.2.1/go.mod h1:QdAJLaBjh+l4PVlVZcmrmhGccosY/omC1qwfQ61Zv/o= +cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= +cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= +cloud.google.com/go/dataqna v0.8.2/go.mod h1:KNEqgx8TTmUipnQsScOoDpq/VlXVptUqVMZnt30WAPs= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= +cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.13.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= +cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= +cloud.google.com/go/datastream v1.10.1/go.mod h1:7ngSYwnw95YFyTd5tOGBxHlOZiL+OtpjheqU7t2/s/c= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= +cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= +cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= +cloud.google.com/go/deploy v1.13.1/go.mod h1:8jeadyLkH9qu9xgO3hVWw8jVr29N1mnW42gRJT8GY6g= +cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= +cloud.google.com/go/dialogflow v1.40.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= +cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= +cloud.google.com/go/dialogflow v1.44.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= +cloud.google.com/go/dialogflow v1.44.1/go.mod h1:n/h+/N2ouKOO+rbe/ZnI186xImpqvCVj2DdsWS/0EAk= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= +cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= +cloud.google.com/go/dlp v1.10.2/go.mod h1:ZbdKIhcnyhILgccwVDzkwqybthh7+MplGC3kZVZsIOQ= +cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= +cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= +cloud.google.com/go/documentai v1.22.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= +cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= +cloud.google.com/go/documentai v1.23.0/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= +cloud.google.com/go/documentai v1.23.2/go.mod h1:Q/wcRT+qnuXOpjAkvOV4A+IeQl04q2/ReT7SSbytLSo= +cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= +cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= +cloud.google.com/go/domains v0.9.2/go.mod h1:3YvXGYzZG1Temjbk7EyGCuGGiXHJwVNmwIf+E/cUp5I= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= +cloud.google.com/go/edgecontainer v1.1.2/go.mod h1:wQRjIzqxEs9e9wrtle4hQPSR1Y51kqN75dgF7UllZZ4= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= +cloud.google.com/go/essentialcontacts v1.6.3/go.mod h1:yiPCD7f2TkP82oJEFXFTou8Jl8L6LBRPeBEkTaO0Ggo= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= +cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= +cloud.google.com/go/eventarc v1.13.1/go.mod h1:EqBxmGHFrruIara4FUQ3RHlgfCn7yo1HYsu2Hpt/C3Y= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= +cloud.google.com/go/filestore v1.7.2/go.mod h1:TYOlyJs25f/omgj+vY7/tIG/E7BX369triSPzE4LdgE= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= +cloud.google.com/go/firestore v1.12.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= +cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8= +cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= +cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= +cloud.google.com/go/functions v1.15.2/go.mod h1:CHAjtcR6OU4XF2HuiVeriEdELNcnvRZSk1Q8RMqy4lE= +cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gkebackup v1.3.0/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= +cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= +cloud.google.com/go/gkebackup v1.3.2/go.mod h1:OMZbXzEJloyXMC7gqdSB+EOEQ1AKcpGYvO3s1ec5ixk= +cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= +cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= +cloud.google.com/go/gkeconnect v0.8.2/go.mod h1:6nAVhwchBJYgQCXD2pHBFQNiJNyAd/wyxljpaa6ZPrY= +cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= +cloud.google.com/go/gkehub v0.14.2/go.mod h1:iyjYH23XzAxSdhrbmfoQdePnlMj2EWcvnR+tHdBQsCY= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= +cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= +cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= +cloud.google.com/go/gkemulticloud v1.0.1/go.mod h1:AcrGoin6VLKT/fwZEYuqvVominLriQBCKmbjtnbMjG8= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= +cloud.google.com/go/gsuiteaddons v1.6.2/go.mod h1:K65m9XSgs8hTF3X9nNTPi8IQueljSdYo9F+Mi+s4MyU= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8= +cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= +cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.3/go.mod h1:3khUlaBXfPKKe7huYgEpDn6FtgRyMEqbkvBxrQyY5SE= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= +cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY= +cloud.google.com/go/iap v1.9.1/go.mod h1:SIAkY7cGMLohLSdBR25BuIxO+I4fXJiL06IBL7cy/5Q= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= +cloud.google.com/go/ids v1.4.2/go.mod h1:3vw8DX6YddRu9BncxuzMyWn0g8+ooUjI2gslJ7FH3vk= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= +cloud.google.com/go/iot v1.7.2/go.mod h1:q+0P5zr1wRFpw7/MOgDXrG/HVA+l+cSwdObffkrpnSg= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= +cloud.google.com/go/kms v1.11.0/go.mod h1:hwdiYC0xjnWsKQQCQQmIQnS9asjYVSK6jtXm+zFqXLM= +cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= +cloud.google.com/go/kms v1.15.0/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= +cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= +cloud.google.com/go/kms v1.15.3/go.mod h1:AJdXqHxS2GlPyduM99s9iGqi2nwbviBbhV/hdmt4iOQ= +cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= +cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= +cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= +cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ= +cloud.google.com/go/language v1.11.1/go.mod h1:Xyid9MG9WOX3utvDbpX7j3tXDmmDooMyMDqgUVpH17U= +cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= +cloud.google.com/go/lifesciences v0.9.2/go.mod h1:QHEOO4tDzcSAzeJg7s2qwnLM2ji8IRpQl4p6m5Z9yTA= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ= +cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +cloud.google.com/go/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= +cloud.google.com/go/managedidentities v1.6.2/go.mod h1:5c2VG66eCa0WIq6IylRk3TBW83l161zkFvCj28X7jn8= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/maps v1.3.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= +cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= +cloud.google.com/go/maps v1.4.1/go.mod h1:BxSa0BnW1g2U2gNdbq5zikLlHUuHW0GFWh7sgML2kIY= +cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= +cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= +cloud.google.com/go/mediatranslation v0.8.2/go.mod h1:c9pUaDRLkgHRx3irYE5ZC8tfXGrMYwNZdmDqKMSfFp8= +cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= +cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= +cloud.google.com/go/memcache v1.10.2/go.mod h1:f9ZzJHLBrmd4BkguIAa/l/Vle6uTHzHokdnzSWOdQ6A= +cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= +cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= +cloud.google.com/go/metastore v1.13.0/go.mod h1:URDhpG6XLeh5K+Glq0NOt74OfrPKTwS62gEPZzb5SOk= +cloud.google.com/go/metastore v1.13.1/go.mod h1:IbF62JLxuZmhItCppcIfzBBfUFq0DIB9HPDoLgWrVOU= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= +cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY= +cloud.google.com/go/monitoring v1.16.1/go.mod h1:6HsxddR+3y9j+o/cMJH6q/KJ/CBTvM/38L/1m7bTRJ4= +cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= +cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= +cloud.google.com/go/networkconnectivity v1.14.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= +cloud.google.com/go/networkconnectivity v1.14.1/go.mod h1:LyGPXR742uQcDxZ/wv4EI0Vu5N6NKJ77ZYVnDe69Zug= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= +cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= +cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw= +cloud.google.com/go/networkmanagement v1.9.1/go.mod h1:CCSYgrQQvW73EJawO2QamemYcOb57LvrDdDU51F0mcI= +cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= +cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= +cloud.google.com/go/networksecurity v0.9.2/go.mod h1:jG0SeAttWzPMUILEHDUvFYdQTl8L/E/KC8iZDj85lEI= +cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= +cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k= +cloud.google.com/go/notebooks v1.10.1/go.mod h1:5PdJc2SgAybE76kFQCWrTfJolCOUQXF97e+gteUUA6A= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= +cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU= +cloud.google.com/go/optimization v1.5.1/go.mod h1:NC0gnUD5MWVAF7XLdoYVPmYYVth93Q6BUzqAq3ZwtV8= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= +cloud.google.com/go/orchestration v1.8.2/go.mod h1:T1cP+6WyTmh6LSZzeUhvGf0uZVmJyTx7t8z7Vg87+A0= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= +cloud.google.com/go/orgpolicy v1.11.0/go.mod h1:2RK748+FtVvnfuynxBzdnyu7sygtoZa1za/0ZfpOs1M= +cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= +cloud.google.com/go/orgpolicy v1.11.2/go.mod h1:biRDpNwfyytYnmCRWZWxrKF22Nkz9eNVj9zyaBdpm1o= +cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= +cloud.google.com/go/osconfig v1.12.0/go.mod h1:8f/PaYzoS3JMVfdfTubkowZYGmAhUCjjwnjqWI7NVBc= +cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= +cloud.google.com/go/osconfig v1.12.2/go.mod h1:eh9GPaMZpI6mEJEuhEjUJmaxvQ3gav+fFEJon1Y8Iw0= +cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= +cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= +cloud.google.com/go/oslogin v1.11.0/go.mod h1:8GMTJs4X2nOAUVJiPGqIWVcDaF0eniEto3xlOxaboXE= +cloud.google.com/go/oslogin v1.11.1/go.mod h1:OhD2icArCVNUxKqtK0mcSmKL7lgr0LVlQz+v9s1ujTg= +cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= +cloud.google.com/go/phishingprotection v0.8.2/go.mod h1:LhJ91uyVHEYKSKcMGhOa14zMMWfbEdxG032oT6ECbC8= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= +cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= +cloud.google.com/go/policytroubleshooter v1.8.0/go.mod h1:tmn5Ir5EToWe384EuboTcVQT7nTag2+DuH3uHmKd1HU= +cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64= +cloud.google.com/go/policytroubleshooter v1.9.1/go.mod h1:MYI8i0bCrL8cW+VHN1PoiBTyNZTstCg2WUw2eVC4c4U= +cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= +cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= +cloud.google.com/go/privatecatalog v0.9.2/go.mod h1:RMA4ATa8IXfzvjrhhK8J6H4wwcztab+oZph3c6WmtFc= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= +cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= +cloud.google.com/go/recaptchaenterprise/v2 v2.8.0/go.mod h1:QuE8EdU9dEnesG8/kG3XuJyNsjEqMlMzg3v3scCJ46c= +cloud.google.com/go/recaptchaenterprise/v2 v2.8.1/go.mod h1:JZYZJOeZjgSSTGP4uz7NlQ4/d1w5hGmksVgM0lbEij0= +cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= +cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= +cloud.google.com/go/recommendationengine v0.8.2/go.mod h1:QIybYHPK58qir9CV2ix/re/M//Ty10OxjnnhWdaKS1Y= +cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= +cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= +cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII= +cloud.google.com/go/recommender v1.11.1/go.mod h1:sGwFFAyI57v2Hc5LbIj+lTwXipGu9NW015rkaEM5B18= +cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= +cloud.google.com/go/redis v1.13.2/go.mod h1:0Hg7pCMXS9uz02q+LoEVl5dNHUkIQv+C/3L76fandSA= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= +cloud.google.com/go/resourcemanager v1.9.2/go.mod h1:OujkBg1UZg5lX2yIyMo5Vz9O5hf7XQOSV7WxqxxMtQE= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= +cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= +cloud.google.com/go/resourcesettings v1.6.2/go.mod h1:mJIEDd9MobzunWMeniaMp6tzg4I2GvD3TTmPkc8vBXk= +cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= +cloud.google.com/go/retail v1.14.2/go.mod h1:W7rrNRChAEChX336QF7bnMxbsjugcOCPU44i5kbLiL8= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo= +cloud.google.com/go/run v1.3.0/go.mod h1:S/osX/4jIPZGg+ssuqh6GNgg7syixKe3YnprwehzHKU= +cloud.google.com/go/run v1.3.1/go.mod h1:cymddtZOzdwLIAsmS6s+Asl4JoXIDm/K1cpZTxV4Q5s= +cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= +cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= +cloud.google.com/go/scheduler v1.10.2/go.mod h1:O3jX6HRH5eKCA3FutMw375XHZJudNIKVonSCHv7ropY= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= +cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= +cloud.google.com/go/secretmanager v1.11.2/go.mod h1:MQm4t3deoSub7+WNwiC4/tRYgDBHJgJPvswqQVB1Vss= +cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= +cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= +cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= +cloud.google.com/go/security v1.15.2/go.mod h1:2GVE/v1oixIRHDaClVbHuPcZwAqFM28mXuAKCfMgYIg= +cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= +cloud.google.com/go/securitycenter v1.23.1/go.mod h1:w2HV3Mv/yKhbXKwOCu2i8bCuLtNP1IMHuiYQn4HJq5s= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= +cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= +cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= +cloud.google.com/go/servicedirectory v1.11.1/go.mod h1:tJywXimEWzNzw9FvtNjsQxxJ3/41jseeILgwU/QLrGI= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= +cloud.google.com/go/shell v1.7.2/go.mod h1:KqRPKwBV0UyLickMn0+BY1qIyE98kKyI216sH/TuHmc= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= +cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= +cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= +cloud.google.com/go/spanner v1.50.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= +cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= +cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= +cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= +cloud.google.com/go/speech v1.19.1/go.mod h1:WcuaWz/3hOlzPFOVo9DUsblMIHwxP589y6ZMtaG+iAA= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= +cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= +cloud.google.com/go/storagetransfer v1.10.1/go.mod h1:rS7Sy0BtPviWYTTJVWCSV4QrbBitgPeuK4/FKa4IdLs= +cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= +cloud.google.com/go/talent v1.6.3/go.mod h1:xoDO97Qd4AK43rGjJvyBHMskiEf3KulgYzcH6YWOVoo= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= +cloud.google.com/go/texttospeech v1.7.2/go.mod h1:VYPT6aTOEl3herQjFHYErTlSZJ4vB00Q2ZTmuVgluD4= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= +cloud.google.com/go/tpu v1.6.2/go.mod h1:NXh3NDwt71TsPZdtGWgAG5ThDfGd32X1mJ2cMaRlVgU= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= +cloud.google.com/go/trace v1.10.2/go.mod h1:NPXemMi6MToRFcSxRl2uDnu/qAlAQ3oULUphcHGh1vA= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.8.2/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.9.1/go.mod h1:TWIgDZknq2+JD4iRcojgeDtqGEp154HN/uL6hMvylS8= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= +cloud.google.com/go/video v1.19.0/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= +cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM= +cloud.google.com/go/video v1.20.1/go.mod h1:3gJS+iDprnj8SY6pe0SwLeC5BUW80NjhwX7INWEuWGU= +cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= +cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= +cloud.google.com/go/videointelligence v1.11.2/go.mod h1:ocfIGYtIVmIcWk1DsSGOoDiXca4vaZQII1C85qtoplc= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= +cloud.google.com/go/vision/v2 v2.7.3/go.mod h1:V0IcLCY7W+hpMKXK1JYE0LV5llEqVmj+UJChjvA1WsM= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= +cloud.google.com/go/vmmigration v1.7.2/go.mod h1:iA2hVj22sm2LLYXGPT1pB63mXHhrH1m/ruux9TwWLd8= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= +cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= +cloud.google.com/go/vmwareengine v1.0.1/go.mod h1:aT3Xsm5sNx0QShk1Jc1B8OddrxAScYLwzVoaiXfdzzk= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= +cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= +cloud.google.com/go/vpcaccess v1.7.2/go.mod h1:mmg/MnRHv+3e8FJUjeSibVFvQF1cCy2MsFaFqxeY1HU= +cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= +cloud.google.com/go/webrisk v1.9.2/go.mod h1:pY9kfDgAqxUpDBOrG4w8deLfhvJmejKB0qd/5uQIPBc= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= +cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= +cloud.google.com/go/websecurityscanner v1.6.2/go.mod h1:7YgjuU5tun7Eg2kpKgGnDuEOXWIrh8x8lWrJT4zfmas= +cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= +cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= +cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM= +cloud.google.com/go/workflows v1.12.1/go.mod h1:5A95OhD/edtOhQd/O741NSfIMezNTbCwLM1P1tBRGHM= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.21.1/go.mod h1:fBF9PQNqB8scdgpZ3ufzaLntG0AG7C1WjPMsiFOmfHM= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= +github.com/Azure/azure-sdk-for-go/sdk/internal v0.8.3/go.mod h1:KLF4gFr6DcKFZwSuH8w8yEK6DpFl3LP5rhdvAb7Yz5I= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.0.0/go.mod h1:ceIuwmxDWptoW3eCqSXlnPsZFKh4X+R38dWPv7GS9Vs= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.0.0/go.mod h1:s1tW/At+xHqjNFvWU4G0c0Qv33KOhvbGNj0RCTQDV8s= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.2.0/go.mod h1:c+Lifp3EDEamAkPVzMooRNOK6CZjNSdEnf1A7jsI9u4= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.3.0/go.mod h1:tPaiy8S5bQ+S5sOiDlINkp7+Ef339+Nz5L5XO+cnOHo= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0/go.mod h1:+6KLcKIVgxoBDMqMO/Nvy7bZ9a0nbU3I1DtFQK3YvB4= +github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= +github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet v2.1.3-0.20180809161101-62edd43e4f88+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= +github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20190129172621-c8b1d7a94ddf/go.mod h1:aJ4qN3TfrelA6NZ6AXsXRfmEVaYin3EDbSPJrKS8OXo= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/Joker/jade v1.0.1-0.20190614124447-d475f43051e7/go.mod h1:6E6s8o2AE4KhCrqr6GRJjdC/gNfTdxkIXvuGZZda2VM= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8= +github.com/PuerkitoBio/goquery v1.5.0/go.mod h1:qD2PgZ9lccMbQlc7eEOjaeRlFQON7xY8kdmcsrnKqMg= +github.com/SaveTheRbtz/mph v0.1.1-0.20240117162131-4166ec7869bc h1:DCHzPQOcU/7gwDTWbFQZc5qHMPS1g0xTO56k8NXsv9M= +github.com/SaveTheRbtz/mph v0.1.1-0.20240117162131-4166ec7869bc/go.mod h1:LJM5a3zcIJ/8TmZwlUczvROEJT8ntOdhdG9jjcR1B0I= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= +github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40= +github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o= +github.com/aclements/go-gg v0.0.0-20170118225347-6dbb4e4fefb0/go.mod h1:55qNq4vcpkIuHowELi5C8e+1yUHtoLoOUR9QU5j7Tes= +github.com/aclements/go-moremath v0.0.0-20210112150236-f10218a38794/go.mod h1:7e+I0LQFUI9AXWxOfsQROs9xPhoJtbsyWcjJqDd4KPY= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20210923152817-c3b6e2f0c527/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= +github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2 v1.23.1/go.mod h1:i1XDttT4rnf6vxc9AuskLc6s7XBee8rlLilKlc03uAA= +github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= +github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= +github.com/aws/aws-sdk-go-v2/config v1.18.45/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/config v1.25.5/go.mod h1:Bf4gDvy4ZcFIK0rqDu1wp9wrubNba2DojiPB2rt6nvI= +github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= +github.com/aws/aws-sdk-go-v2/credentials v1.16.4/go.mod h1:Kdh/okh+//vQ/AjEt81CjvkTo64+/zIE4OewP7RpfXk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.5/go.mod h1:VhnExhw6uXy9QzetvpXDolo1/hjhx4u9qukBGkuUwjs= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.5.1 h1:VGkV9KmhGqOQWnHyi4gLG98kE6OecT42fdrCGFWxJsc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.4/go.mod h1:xEhvbJcyUf/31yfGSQBe01fukXwXJ0gxDp7rLfymWE0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.4/go.mod h1:dYvTNAggxDZy6y1AF7YDwXsPuHFy/VNEpEI/2dWK9IU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/internal/ini v1.7.1/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.1/go.mod h1:l9ymW25HOqymeU2m1gbUQ3rUIsTwKs8gYHXkqDQUhiI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.4/go.mod h1:aYCGNjyUCUelhofxlZyj63srdxWUSsBSGg5l6MCuXuE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.7.0 h1:HWsM0YQWX76V6MOp07YuTYacm8k7h69ObJuw7Nck+og= +github.com/aws/aws-sdk-go-v2/service/kms v1.26.3/go.mod h1:N3++/sLV97B8Zliz7KRqNcojOX7iMBZWKiuit5FKtH0= +github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= +github.com/aws/aws-sdk-go-v2/service/route53 v1.30.2/go.mod h1:TQZBt/WaQy+zTHoW++rnl8JBrmZ0VO6EUbVua1+foCA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.15.0 h1:nPLfLPfglacc29Y949sDxpr3X/blaY40s3B85WT2yZU= +github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/sso v1.17.3/go.mod h1:oA6VjNsLll2eVuUoF2D+CMyORgNzPEW/3PyUdq6WQjI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.20.1/go.mod h1:hHL974p5auvXlZPIjJTblXJpbkfK4klBczlsEaMCGVY= +github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.25.4/go.mod h1:feTnm2Tk/pJxdX+eooEsxvlvTWBvDm6CasRZ+JOs2IY= +github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.17.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= +github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.5.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.7.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= +github.com/btcsuite/btcd/btcec/v2 v2.2.1 h1:xP60mv8fvp+0khmrN0zTdPC3cNm24rfeE6lh2R/Yv3E= +github.com/btcsuite/btcd/btcec/v2 v2.2.1/go.mod h1:9/CSmJxmuvqzX9Wh2fXMWToLOHhPd11lSPuIupwTkI8= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 h1:KdUfX2zKommPRa+PD0sWZUyXe9w277ABlgELO7H04IM= +github.com/bytecodealliance/wasmtime-go/v12 v12.0.0/go.mod h1:a3PRoftJxxUzkQvgjC6sv7pKyJJK0ZsFVmH+eeEKQC4= +github.com/bytecodealliance/wasmtime-go/v7 v7.0.0/go.mod h1:bu6fic7trDt20w+LMooX7j3fsOwv4/ln6j8gAdP6vmA= +github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= +github.com/c-bata/go-prompt v0.2.6/go.mod h1:/LMAke8wD2FsNu9EXNdHxNLbd9MedkPnCdfpU9wwHfY= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= +github.com/cloudflare/cloudflare-go v0.79.0/go.mod h1:gkHQf9xEubaQPEuerBuoinR9P8bf8a05Lq0X6WKy1Oc= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.6.1/go.mod h1:tm6FTP5G81vwJ5lC0SizQo374JNCOPrHyXGitRJoDqM= +github.com/cockroachdb/errors v1.8.1/go.mod h1:qGwQn6JmZ+oMjuLwjWzUNqblqk0xl4CVV3SQbGwK7Ac= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A= +github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593/go.mod h1:6hk1eMY/u5t+Cf18q5lFMUA1Rc+Sm5I6Ra1QuPyxXCo= +github.com/cockroachdb/redact v1.0.8/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= +github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2/go.mod h1:8BT+cPK6xvFOcRlk0R8eg+OTkcqI6baNH4xAkpiYVvQ= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= +github.com/consensys/gnark-crypto v0.10.0/go.mod h1:Iq/P3HHl0ElSjsg2E1gsMwhAyxnxoKK5nVyZKd+/KhU= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-ipa v0.0.0-20230601170251-1830d0757c80/go.mod h1:gzbVz57IDJgQ9rLQwfSk696JGWof8ftznEL9GoAv3NI= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= +github.com/dave/astrid v0.0.0-20170323122508-8c2895878b14/go.mod h1:Sth2QfxfATb/nW4EsrSi2KyJmbcniZ8TgTaji17D6ms= +github.com/dave/brenda v1.1.0/go.mod h1:4wCUr6gSlu5/1Tk7akE5X7UorwiQ8Rij0SKH3/BGMOM= +github.com/dave/courtney v0.3.0/go.mod h1:BAv3hA06AYfNUjfjQr+5gc6vxeBVOupLqrColj+QSD8= +github.com/dave/dst v0.27.2/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEyc= +github.com/dave/gopackages v0.0.0-20170318123100-46e7023ec56e/go.mod h1:i00+b/gKdIDIxuLDFob7ustLAVqhsZRk2qVZrArELGQ= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= +github.com/dave/jennifer v1.5.0/go.mod h1:4MnyiFIlZS3l5tSDn8VnzE6ffAhYBMB2SZntBsZGUok= +github.com/dave/kerr v0.0.0-20170318121727-bc25dd6abe8e/go.mod h1:qZqlPyPvfsDJt+3wHJ1EvSXDuVjFTK0j2p/ca+gtsb8= +github.com/dave/patsy v0.0.0-20210517141501-957256f50cba/go.mod h1:qfR88CgEGLoiqDaE+xxDCi5QA5v4vUoW0UCX2Nd5Tlc= +github.com/dave/rebecca v0.9.1/go.mod h1:N6XYdMD/OKw3lkF3ywh8Z6wPGuwNFDNtWYEMFWEmXBA= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= +github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= +github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= +github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= +github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= +github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= +github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= +github.com/docker/docker v1.6.2/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= +github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= +github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4= +github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= +github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/ef-ds/deque v1.0.4 h1:iFAZNmveMT9WERAkqLJ+oaABF9AcVQ5AjXem/hroniI= +github.com/ef-ds/deque v1.0.4/go.mod h1:gXDnTC3yqvBcHbq2lcExjtAcVrOnJCbMcZXmuj8Z4tg= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= +github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= +github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87KZaeN4x9zpL9Qt8fQC7d+vs= +github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= +github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-ethereum v1.10.26/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= +github.com/ethereum/go-ethereum v1.13.5/go.mod h1:yMTu38GSuyxaYzQMViqNmQ1s3cE84abZexQmTgenWk0= +github.com/ethereum/go-ethereum v1.13.10 h1:Ppdil79nN+Vc+mXfge0AuUgmKWuVv4eMqzoIVSdqZek= +github.com/ethereum/go-ethereum v1.13.10/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZzNAmIKnceogzsA= +github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= +github.com/fjl/gencodec v0.0.0-20230517082657-f9840df7b83e/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4/go.mod h1:T9YF2M40nIgbVgp3rreNmTged+9HrbNTIQf1PsaIiTA= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fxamacker/cbor/v2 v2.4.1-0.20220515183430-ad2eae63303f/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= +github.com/fxamacker/cbor/v2 v2.4.1-0.20230228173756-c0c9f774e40c h1:5tm/Wbs9d9r+qZaUFXk59CWDD0+77PBqDREffYkyi5c= +github.com/fxamacker/cbor/v2 v2.4.1-0.20230228173756-c0c9f774e40c/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= +github.com/fxamacker/circlehash v0.3.0 h1:XKdvTtIJV9t7DDUtsf0RIpC1OcxZtPbmgIH7ekx28WA= +github.com/fxamacker/circlehash v0.3.0/go.mod h1:3aq3OfVvsWtkWMb6A1owjOQFA+TLsD5FgJflnaQwtMM= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gammazero/deque v0.1.0 h1:f9LnNmq66VDeuAlSAapemq/U7hJ2jpIWa4c09q8Dlik= +github.com/gammazero/workerpool v1.1.2 h1:vuioDQbgrz4HoaCi2q1HLlOXdpbap5AET7xu5/qj87g= +github.com/garslo/gogen v0.0.0-20170306192744-1d203ffc1f61/go.mod h1:Q0X6pkwTILDlzrGEckF6HKjXe48EgsY/l7K7vhY4MW8= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/gballet/go-verkle v0.0.0-20230607174250-df487255f46b/go.mod h1:CDncRYVRSDqwakm282WEkjfaAj1hxU/v5RXxk5nXOiI= +github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= +github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= +github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkNC1sN0= +github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= +github.com/ghemawat/stream v0.0.0-20171120220530-696b145b53b9/go.mod h1:106OIgooyS7OzLDOpUGgm9fA3bQENb/cFSyyBmMoJDs= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/latin-modern v0.3.0/go.mod h1:ysEQXnuT/sCDOAONxC7ImeEDVINbltClhasMAqEtRK0= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.3.0/go.mod h1:jdJ+cqF+F4SUL2V+qxBth8fvBpBDS7yloUL5Fi8GTGY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= +github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= +github.com/go-latex/latex v0.0.0-20230307184459-12ec69307ad9/go.mod h1:gWuR/CrFDDeVRFQwHPvsv9soJVB/iqymhuZQuJ3a9OM= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= +github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= +github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= +github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= +github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= +github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= +github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= +github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= +github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= +github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-pkcs11 v0.2.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= +github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= +github.com/google/pprof v0.0.0-20231229205709-960ae82b1e42 h1:dHLYa5D8/Ta0aLR2XcPsrkpAgGeFs6thhMcQK0oQ0n8= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/safehtml v0.0.2/go.mod h1:L4KWwDsUJdECRAEpZoBn3O64bQaywRscowZjJAzjHnU= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go v0.0.0-20161107002406-da06d194a00e h1:CYRpN206UTHUinz3VJoLaBdy1gEGeJNsqT0mvswDcMw= +github.com/googleapis/gax-go v0.0.0-20161107002406-da06d194a00e/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= +github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 h1:Wqo399gCIufwto+VfwCSvsnfGpF/w5E9CNxSwbpD6No= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0/go.mod h1:qmOFXW2epJhM0qSnUUYpldc7gVz2KMQwJ/QYCDIa7XU= +github.com/guptarohit/asciigraph v0.5.5/go.mod h1:dYl5wwK4gNsnFf9Zp+l06rFiDZ5YtXM6x7SRWZ3KGag= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= +github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= +github.com/holiman/uint256 v1.2.3/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= +github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= +github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= +github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= +github.com/huandu/go-clone v1.6.0 h1:HMo5uvg4wgfiy5FoGOqlFLQED/VGRm2D9Pi8g1FXPGc= +github.com/huandu/go-clone v1.6.0/go.mod h1:ReGivhG6op3GYr+UY3lS6mxjKp7MIGTknuU5TbTVaXE= +github.com/huandu/go-clone/generic v1.7.2 h1:47pQphxs1Xc9cVADjOHN+Bm5D0hNagwH9UXErbxgVKA= +github.com/huandu/go-clone/generic v1.7.2/go.mod h1:xgd9ZebcMsBWWcBx5mVMCoqMX24gLWr5lQicr+nVXNs= +github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= +github.com/hydrogen18/memlistener v0.0.0-20141126152155-54553eb933fb/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= +github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= +github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= +github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= +github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= +github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0= +github.com/ipfs/boxo v0.17.1-0.20240131173518-89bceff34bf1 h1:5H/HYvdmbxp09+sAvdqJzyrWoyCS6OroeW9Ym06Tb+0= +github.com/ipfs/boxo v0.17.1-0.20240131173518-89bceff34bf1/go.mod h1:pIZgTWdm3k3pLF9Uq6MB8JEcW07UDwNJjlXW1HELW80= +github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNiW1Ycs= +github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM= +github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= +github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= +github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= +github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= +github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= +github.com/ipfs/go-ipfs-util v0.0.3 h1:2RFdGez6bu2ZlZdI+rWfIdbQb1KudQp3VGwPtdNCmE0= +github.com/ipfs/go-ipfs-util v0.0.3/go.mod h1:LHzG1a0Ig4G+iZ26UUOMjHd+lfM84LZCrn17xAKWBvs= +github.com/ipfs/go-ipld-format v0.6.0 h1:VEJlA2kQ3LqFSIm5Vu6eIlSxD/Ze90xtc4Meten1F5U= +github.com/ipfs/go-ipld-format v0.6.0/go.mod h1:g4QVMTn3marU3qXchwjpKPKgJv+zF+OlaKMyhJ4LHPg= +github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= +github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= +github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= +github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/i18n v0.0.0-20171121225848-987a633949d0/go.mod h1:pMCz62A0xJL6I+umB2YTlFRwWXaDFA0jy+5HzGiJjqI= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/itchyny/gojq v0.12.14/go.mod h1:y1G7oO7XkcR1LPZO59KyoCRy08T3j9vDYRV0GgYSS+s= +github.com/itchyny/timefmt-go v0.1.5/go.mod h1:nEP7L+2YmAbT2kZ2HfSs1d8Xtw9LY8D2stDBckWakZ8= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= +github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= +github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= +github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= +github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= +github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267/go.mod h1:h1nSAbGFqGVzn6Jyl1R/iCcBUHN4g+gW1u9CoBTrb9E= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213/go.mod h1:vNUNkEQ1e29fT/6vq2aBdFsgNPmy8qMdSay1npru+Sw= +github.com/k0kubun/pp v3.0.1+incompatible h1:3tqvf7QgUnZ5tXO6pNAZlrvHgl6DvifjDrd9g2S9Z40= +github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg= +github.com/k0kubun/pp/v3 v3.2.0/go.mod h1:ODtJQbQcIRfAD3N+theGCV1m/CBxweERz2dapdz1EwA= +github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= +github.com/kataras/golog v0.0.9/go.mod h1:12HJgwBIZFNGL0EJnMRhmvGA0PQGx8VFwrZtM4CqbAk= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris/v12 v12.0.1/go.mod h1:udK4vLQKkdDqMGJJVd/msuMtN6hpYJhg/lSzuxjhO+U= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.10/go.mod h1:ZYmJC07hQPW67eKuzlfY7SO3bC0mw83A3j6im82hfqw= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.0-20190103105442-ea782b38602d/go.mod h1:NV88laa9UiiDuX9AhMbDPkGYSPugBOV6yTZB1l2K9Z0= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/kevinburke/go-bindata v3.23.0+incompatible/go.mod h1:/pEEZ72flUW2p0yi30bslSp9YqD9pysLxunQDdb2CPM= +github.com/kevinburke/go-bindata v3.24.0+incompatible h1:qajFA3D0pH94OTLU4zcCCKCDgR+Zr2cZK/RPJHDdFoY= +github.com/kevinburke/go-bindata v3.24.0+incompatible/go.mod h1:/pEEZ72flUW2p0yi30bslSp9YqD9pysLxunQDdb2CPM= +github.com/kilic/bls12-381 v0.1.0/go.mod h1:vDTTHJONJ6G+P2R74EhnyotQDTliQDnFEwhdmfzw1ig= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= +github.com/klauspost/cpuid/v2 v2.2.0/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= +github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/kodova/html-to-markdown v1.0.1/go.mod h1:NhDrT7QdSrdpezFg/0EQx9zeobCHR5oAguzrKrC6mVU= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v0.0.0-20170224010052-a616ab194758/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= +github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= +github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= +github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= +github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= +github.com/libp2p/go-libp2p v0.32.2 h1:s8GYN4YJzgUoyeYNPdW7JZeZ5Ee31iNaIBfGYMAY4FQ= +github.com/libp2p/go-libp2p v0.32.2/go.mod h1:E0LKe+diV/ZVJVnOJby8VC5xzHF0660osg71skcxJvk= +github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94= +github.com/libp2p/go-libp2p-kbucket v0.6.3 h1:p507271wWzpy2f1XxPzCQG9NiN6R6lHL9GiSErbQQo0= +github.com/libp2p/go-libp2p-pubsub v0.10.0 h1:wS0S5FlISavMaAbxyQn3dxMOe2eegMfswM471RuHJwA= +github.com/libp2p/go-libp2p-pubsub v0.10.0/go.mod h1:1OxbaT/pFRO5h+Dpze8hdHQ63R0ke55XTs6b6NwLLkw= +github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= +github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= +github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= +github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU= +github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s= +github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ= +github.com/logrusorgru/aurora/v4 v4.0.0 h1:sRjfPpun/63iADiSvGGjgA1cAYegEWMPCJdUpJYn9JA= +github.com/logrusorgru/aurora/v4 v4.0.0/go.mod h1:lP0iIa2nrnT/qoFXcOZSrZQpJ1o6n2CUf/hyHi2Q4ZQ= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= +github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= +github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= +github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg= +github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM= +github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= +github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= +github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= +github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= +github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= +github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= +github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= +github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= +github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= +github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= +github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= +github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= +github.com/multiformats/go-multiaddr v0.12.2 h1:9G9sTY/wCYajKa9lyfWPmpZAwe6oV+Wb1zcmMS1HG24= +github.com/multiformats/go-multiaddr v0.12.2/go.mod h1:GKyaTYjZRdcUhyOetrxTk9z0cW+jA/YrnqTOvKgi44M= +github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= +github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= +github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= +github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= +github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= +github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= +github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= +github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= +github.com/multiformats/go-multistream v0.5.0 h1:5htLSLl7lvJk3xx3qT/8Zm9J4K8vEOf/QGkvOGQAyiE= +github.com/multiformats/go-multistream v0.5.0/go.mod h1:n6tMZiwiP2wUsR8DgfDWw1dydlEqV3l6N3/GBsX6ILA= +github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= +github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= +github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/onflow/atree v0.6.1-0.20230711151834-86040b30171f/go.mod h1:xvP61FoOs95K7IYdIYRnNcYQGf4nbF/uuJ0tHf4DRuM= +github.com/onflow/atree v0.7.0-rc.2 h1:mZmVrl/zPlfI44EjV3FdR2QwIqT8nz1sCONUBFcML/U= +github.com/onflow/atree v0.7.0-rc.2/go.mod h1:xvP61FoOs95K7IYdIYRnNcYQGf4nbF/uuJ0tHf4DRuM= +github.com/onflow/crypto v0.25.0/go.mod h1:C8FbaX0x8y+FxWjbkHy0Q4EASCDR9bSPWZqlpCLYyVI= +github.com/onflow/crypto v0.25.1 h1:0txy2PKPMM873JbpxQNbJmuOJtD56bfs48RQfm0ts5A= +github.com/onflow/crypto v0.25.1/go.mod h1:C8FbaX0x8y+FxWjbkHy0Q4EASCDR9bSPWZqlpCLYyVI= +github.com/onflow/flow-core-contracts/lib/go/contracts v1.1.0 h1:AegPBm079X0qjneUYs+mRCpEUxSZ1lw5h4MbuXHlqn0= +github.com/onflow/flow-core-contracts/lib/go/contracts v1.1.0/go.mod h1:u/mkP/B+PbV33tEG3qfkhhBlydSvAKxfLZSfB4lsJHg= +github.com/onflow/flow-core-contracts/lib/go/templates v1.0.0 h1:za6bxPPW4JIsthhasUDTa1ruKjIO8DIhun9INQfj61Y= +github.com/onflow/flow-core-contracts/lib/go/templates v1.0.0/go.mod h1:NgbMOYnMh0GN48VsNKZuiwK7uyk38Wyo8jN9+C9QE30= +github.com/onflow/flow-ft/lib/go/contracts v1.0.0 h1:mToacZ5NWqtlWwk/7RgIl/jeKB/Sy/tIXdw90yKHcV0= +github.com/onflow/flow-ft/lib/go/contracts v1.0.0/go.mod h1:PwsL8fC81cjnUnTfmyL/HOIyHnyaw/JA474Wfj2tl6A= +github.com/onflow/flow-ft/lib/go/templates v1.0.0 h1:6cMS/lUJJ17HjKBfMO/eh0GGvnpElPgBXx7h5aoWJhs= +github.com/onflow/flow-ft/lib/go/templates v1.0.0/go.mod h1:uQ8XFqmMK2jxyBSVrmyuwdWjTEb+6zGjRYotfDJ5pAE= +github.com/onflow/flow-go v0.35.10-0.20240524201939-d3680b8f9373 h1:72anyg2l9Ay4EfcJiw+FcIF2olLUPo3jlaL6SkwOrkw= +github.com/onflow/flow-go v0.35.10-0.20240524201939-d3680b8f9373/go.mod h1:Ah3rDfrxI38WZaFlHzcpL1Wkah8x7UFkhqbk86STvK4= +github.com/onflow/flow-go-sdk v1.0.0-M1/go.mod h1:TDW0MNuCs4SvqYRUzkbRnRmHQL1h4X8wURsCw9P9beo= +github.com/onflow/flow-go-sdk v1.0.0-preview.30 h1:62IwC7l8Uw1mxoZe7ewJII0HFHLUMsg04z1BW3JSEfM= +github.com/onflow/flow-go-sdk v1.0.0-preview.30/go.mod h1:PBIk3vLqU1aLdbWPw7ljRDmwSGLcsuk/ipL9eLMgWwc= +github.com/onflow/flow-nft/lib/go/contracts v1.2.1 h1:woAAS5z651sDpi7ihAHll8NvRS9uFXIXkL6xR+bKFZY= +github.com/onflow/flow-nft/lib/go/contracts v1.2.1/go.mod h1:2gpbza+uzs1k7x31hkpBPlggIRkI53Suo0n2AyA2HcE= +github.com/onflow/flow-nft/lib/go/templates v1.2.0 h1:JSQyh9rg0RC+D1930BiRXN8lrtMs+ubVMK6aQPon6Yc= +github.com/onflow/flow-nft/lib/go/templates v1.2.0/go.mod h1:p+2hRvtjLUR3MW1NsoJe5Gqgr2eeH49QB6+s6ze00w0= +github.com/onflow/flow/protobuf/go/flow v0.3.2-0.20231121210617-52ee94b830c2/go.mod h1:NA2pX2nw8zuaxfKphhKsk00kWLwfd+tv8mS23YXO4Sk= +github.com/onflow/flow/protobuf/go/flow v0.4.3 h1:gdY7Ftto8dtU+0wI+6ZgW4oE+z0DSDUMIDwVx8mqae8= +github.com/onflow/flow/protobuf/go/flow v0.4.3/go.mod h1:NA2pX2nw8zuaxfKphhKsk00kWLwfd+tv8mS23YXO4Sk= +github.com/onflow/go-ethereum v1.13.4 h1:iNO86fm8RbBbhZ87ZulblInqCdHnAQVY8okBrNsTevc= +github.com/onflow/go-ethereum v1.13.4/go.mod h1:cE/gEUkAffhwbVmMJYz+t1dAfVNHNwZCgc3BWtZxBGY= +github.com/onflow/nft-storefront/lib/go/contracts v1.0.0 h1:sxyWLqGm/p4EKT6DUlQESDG1ZNMN9GjPCm1gTq7NGfc= +github.com/onflow/nft-storefront/lib/go/contracts v1.0.0/go.mod h1:kMeq9zUwCrgrSojEbTUTTJpZ4WwacVm2pA7LVFr+glk= +github.com/onflow/sdks v0.5.1-0.20230912225508-b35402f12bba h1:rIehuhO6bj4FkwE4VzwEjX7MoAlOhUJENBJLqDqVxAo= +github.com/onflow/sdks v0.5.1-0.20230912225508-b35402f12bba/go.mod h1:F0dj0EyHC55kknLkeD10js4mo14yTdMotnWMslPirrU= +github.com/onflow/wal v1.0.2 h1:5bgsJVf2O3cfMNK12fiiTyYZ8cOrUiELt3heBJfHOhc= +github.com/onflow/wal v1.0.2/go.mod h1:iMC8gkLqu4nkbkAla5HkSBb+FGyQOZiWz3DYm2wSXCk= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo/v2 v2.13.2 h1:Bi2gGVkfn6gQcjNjZJVO8Gf0FHzMPf2phUei9tejVMs= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= +github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= +github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/protolambda/bls12-381-util v0.0.0-20220416220906-d8552aa452c7/go.mod h1:IToEjHuttnUzwZI5KBSM/LOOW3qLbbrHOEfp3SbECGY= +github.com/psiemens/sconfig v0.1.0 h1:xfWqW+TRpih7mXZIqKYTmpRhlZLQ1kbxV8EjllPv76s= +github.com/psiemens/sconfig v0.1.0/go.mod h1:+MLKqdledP/8G3rOBpknbLh0IclCf4WneJUtS26JB2U= +github.com/quic-go/qtls-go1-20 v0.4.1 h1:D33340mCNDAIKBqXuAvexTNMUByrYmFYVfKfDN5nfFs= +github.com/quic-go/quic-go v0.40.1 h1:X3AGzUNFs0jVuO3esAGnTfvdgvL4fq655WaOi1snv1Q= +github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= +github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/schollz/progressbar/v3 v3.13.1 h1:o8rySDYiQ59Mwzy2FELeHY5ZARXZTVJC7iHD6PEFUiE= +github.com/schollz/progressbar/v3 v3.13.1/go.mod h1:xvrbki8kfT1fzWzBT/UZd9L6GA+jdL7HAgq2RFnO6fQ= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sethvargo/go-retry v0.2.3 h1:oYlgvIvsju3jNbottWABtbnoLC+GDtLdBHxKWxQm/iU= +github.com/sethvargo/go-retry v0.2.3/go.mod h1:1afjQuvh7s4gflMObvjLPaWgluLLyhA1wmVZ6KLpICw= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/slok/go-http-metrics v0.10.0 h1:rh0LaYEKza5eaYRGDXujKrOln57nHBi4TtVhmNEpbgM= +github.com/slok/go-http-metrics v0.10.0/go.mod h1:lFqdaS4kWMfUKCSukjC47PdCeTk+hXDUVm8kLHRqJ38= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= +github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= +github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= +github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= +github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/supranational/blst v0.3.8-0.20220526154634-513d2456b344/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= +github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/texttheater/golang-levenshtein/levenshtein v0.0.0-20200805054039-cae8b0eaed6c h1:HelZ2kAFadG0La9d+4htN4HzQ68Bm2iM9qKMSMES6xg= +github.com/texttheater/golang-levenshtein/levenshtein v0.0.0-20200805054039-cae8b0eaed6c/go.mod h1:JlzghshsemAMDGZLytTFY8C1JQxQPhnatWqNwUXjggo= +github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/turbolent/prettier v0.0.0-20220320183459-661cc755135d h1:5JInRQbk5UBX8JfUvKh2oYTLMVwj3p6n+wapDDm7hko= +github.com/turbolent/prettier v0.0.0-20220320183459-661cc755135d/go.mod h1:Nlx5Y115XQvNcIdIy7dZXaNSUpzwBSge4/Ivk93/Yog= +github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/urfave/cli/v2 v2.10.2/go.mod h1:f8iq5LtQ/bLxafbdBSLPPNsgaW0l/2fYYEHhAyPlwvo= +github.com/urfave/cli/v2 v2.24.1/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc= +github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= +github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/vmihailenco/msgpack/v4 v4.3.11 h1:Q47CePddpNGNhk4GCnAx9DDtASi2rasatE0cd26cZoE= +github.com/vmihailenco/msgpack/v4 v4.3.11/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= +github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/blake3 v0.2.3 h1:TFoLXsjeXqRNFxSbk35Dk4YtszE/MQQGK10BH4ptoTg= +github.com/zeebo/blake3 v0.2.3/go.mod h1:mjJjZpnsyIVtVgTOSpJ9vmRE4wgDeyt2HU3qXvvKCaQ= +github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo= +github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM= +go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0= +go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= +go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= +go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= +go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220426173459-3bcf042a4bf5/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= +golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.5.0/go.mod h1:FVC7BI/5Ym8R25iw5OLsgshdUBbT1h5jZTpA+mvAdZ4= +golang.org/x/image v0.6.0/go.mod h1:MXLdDR43H7cDJq5GEGXEVeeNhPgi+YYEQ2pC1byI1x0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20211013180041-c96bc1413d57/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191109021931-daa7c04131f5/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/oauth2 v0.0.0-20170207211851-4464e7848382/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= +golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= +golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= +golang.org/x/perf v0.0.0-20230113213139-801c7ef9e5c5/go.mod h1:UBKtEnL8aqnd+0JHqZ+2qoMDwtuy6cYhhKNoHLBiTQc= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200918174421-af09f7315aff/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191126055441-b0650ceb63d9/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.8-0.20211029000441-d6a9af8af023/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/gonum v0.6.1/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/gonum v0.13.0/go.mod h1:/WPYRckkfWrhWefxyYTfrTtQR0KH4iyHNuzxqXAKyAU= +gonum.org/v1/gonum v0.14.0 h1:2NiG67LD1tEH0D7kM+ps2V+fXmsAnpUeec7n8tcr4S0= +gonum.org/v1/gonum v0.14.0/go.mod h1:AoWeoz0becf9QMWtE8iWXNXc27fK4fNeHNf/oMejGfU= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.0/go.mod h1:JWIHJ7U20drSQb/aDpTetJzfC1KlAPldJLpkSy88dvQ= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= +google.golang.org/api v0.0.0-20170206182103-3d017632ea10/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= +google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= +google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= +google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= +google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +google.golang.org/api v0.139.0/go.mod h1:CVagp6Eekz9CjGZ718Z+sloknzkDJE7Vc1Ckj9+viBk= +google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= +google.golang.org/api v0.151.0/go.mod h1:ccy+MJ6nrYFgE3WgRx/AMXOxOmU8Q4hSa+jjibzhxcg= +google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= +google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= +google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= +google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230629202037-9506855d4529/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= +google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:0ggbjUrZYpy1q+ANUS30SEoGZ53cdfwtbuG7Ptgy108= +google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8= +google.golang.org/genproto v0.0.0-20230821184602-ccc8af3d0e93/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20230913181813-007df8e322eb/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb80Dq1hhioy0sOsY9jCE46YDgHlJ7fWVUWRE= +google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= +google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230803162519-f966b187b2e5/go.mod h1:5DZzOUPCLYL3mNkQ0ms0F3EuUNZ7py1Bqeq6sxzI7/Q= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/api v0.0.0-20230913181813-007df8e322eb/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= +google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230803162519-f966b187b2e5/go.mod h1:zBEcrKX2ZOcEkHWxBPAIvYUWOKKMIhYcmNiUIu2ji3I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920183334-c177e329c48b/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97/go.mod h1:v7nGkzlmW8P3n/bKmWBn2WpBjpOEx8Q6gMueudAmKfY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= +google.golang.org/grpc v0.0.0-20170208002647-2a6bf6142e96/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= +lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= +lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20= +modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g= +modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA= +modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0= +modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= +modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= +modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= +modernc.org/libc v1.37.6 h1:orZH3c5wmhIQFTXF+Nt+eeauyd+ZIt2BX6ARe+kD+aw= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= +modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= +pgregory.net/rapid v0.4.7/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/tools/storage-explorer/index.html b/tools/storage-explorer/index.html new file mode 100644 index 0000000000..222d95b224 --- /dev/null +++ b/tools/storage-explorer/index.html @@ -0,0 +1,36 @@ + + + + + + + + + Storage Explorer + + +
+
+
+

Accounts

+ +
+ +
+

Storage Maps

+ +
+
+ +
+

+ +
+ +
+
+ + diff --git a/tools/storage-explorer/main.go b/tools/storage-explorer/main.go new file mode 100644 index 0000000000..966de763b7 --- /dev/null +++ b/tools/storage-explorer/main.go @@ -0,0 +1,334 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package main + +import ( + "encoding/json" + "flag" + "fmt" + "net" + "net/http" + "os" + "sort" + "time" + + "github.com/gorilla/mux" + "github.com/onflow/flow-go/cmd/util/ledger/migrations" + "github.com/onflow/flow-go/cmd/util/ledger/util" + "github.com/onflow/flow-go/cmd/util/ledger/util/registers" + "github.com/onflow/flow-go/model/flow" + "github.com/rs/zerolog" + + jsoncdc "github.com/onflow/cadence/encoding/json" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" +) + +func main() { + + portFlag := flag.Int("port", 3000, "port") + payloadsFlag := flag.String("payloads", "", "payloads file") + chainIDFlag := flag.String("chain-id", "", "chain ID") + + flag.Parse() + + consoleWriter := zerolog.ConsoleWriter{ + Out: os.Stderr, + TimeFormat: time.DateTime, + } + log := zerolog.New(consoleWriter).With().Timestamp().Logger() + + if *chainIDFlag == "" { + log.Fatal().Msg("missing chain ID") + } + chainID := flow.ChainID(*chainIDFlag) + + payloadsPath := *payloadsFlag + if payloadsPath == "" { + log.Fatal().Msg("missing payloads") + } + + _, payloads, err := util.ReadPayloadFile(log, payloadsPath) + if err != nil { + log.Fatal().Err(err) + } + + log.Info().Msgf("read %d payloads", len(payloads)) + + log.Info().Msg("creating registers from payloads ...") + + registersByAccount, err := registers.NewByAccountFromPayloads(payloads) + if err != nil { + log.Fatal().Err(err) + } + + log.Info().Msgf("created registers (%d accounts)", registersByAccount.AccountCount()) + + mr, err := migrations.NewInterpreterMigrationRuntime( + registersByAccount, + chainID, + migrations.InterpreterMigrationRuntimeConfig{}, + ) + + if err != nil { + log.Fatal().Err(err) + } + + r := mux.NewRouter() + + r.HandleFunc( + "/accounts", + NewAccountsHandler(registersByAccount, log), + ) + + r.HandleFunc( + "/known_storage_maps", + NewKnownStorageMapsHandler(log), + ) + + const accountDomainPattern = "/accounts/{address:[0-9A-Fa-f]{16}}/{domain:.+}" + + r.PathPrefix(accountDomainPattern + "/{identifier:.+}"). + HandlerFunc(NewAccountStorageMapValueHandler(mr.Storage, mr.Interpreter, log)) + + r.HandleFunc( + accountDomainPattern, + NewAccountStorageMapKeysHandler(mr.Storage, log), + ) + + r.PathPrefix("/").Handler(http.FileServer(http.Dir("./dist/"))) + + http.Handle("/", r) + + ln, err := net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", *portFlag)) + if err != nil { + log.Fatal().Err(err) + } + log.Info().Msgf("Listening on http://%s/", ln.Addr().String()) + var srv http.Server + _ = srv.Serve(ln) +} + +func NewKnownStorageMapsHandler(log zerolog.Logger) func(w http.ResponseWriter, r *http.Request) { + knownStorageMapsJSON := knownStorageMapsJSON() + + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Add("Content-Type", "application/json") + _, err := w.Write(knownStorageMapsJSON) + if err != nil { + log.Fatal().Err(err) + } + } +} + +func NewAccountsHandler( + registersByAccount *registers.ByAccount, + log zerolog.Logger, +) func(w http.ResponseWriter, r *http.Request) { + log.Info().Msg("formatting addresses ...") + + addressesJSON, err := addressesJSON(registersByAccount) + if err != nil { + log.Fatal().Err(err) + } + + return func(w http.ResponseWriter, r *http.Request) { + w.Header().Add("Content-Type", "application/json") + _, err := w.Write(addressesJSON) + if err != nil { + log.Fatal().Err(err) + } + } +} + +func NewAccountStorageMapKeysHandler( + storage *runtime.Storage, + log zerolog.Logger, +) func(w http.ResponseWriter, r *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + + address, err := common.HexToAddress(vars["address"]) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + storageMapDomain := vars["domain"] + knownStorageMap, ok := knownStorageMaps[storageMapDomain] + if !ok { + http.Error( + w, + fmt.Sprintf("unknown storage map domain: %s", storageMapDomain), + http.StatusBadRequest, + ) + return + } + + var keys []string + storageMap := storage.GetStorageMap(address, storageMapDomain, false) + if storageMap == nil { + keys = make([]string, 0) + } else { + keys = storageMapKeys(storageMap, knownStorageMap) + } + + w.Header().Add("Content-Type", "application/json") + + err = json.NewEncoder(w).Encode(keys) + if err != nil { + log.Fatal().Err(err) + } + } +} + +func NewAccountStorageMapValueHandler( + storage *runtime.Storage, + inter *interpreter.Interpreter, + log zerolog.Logger, +) func(w http.ResponseWriter, r *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + + address, err := common.HexToAddress(vars["address"]) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + storageMapDomain := vars["domain"] + knownStorageMap, ok := knownStorageMaps[storageMapDomain] + if !ok { + http.Error( + w, + fmt.Sprintf("unknown storage map domain: %s", storageMapDomain), + http.StatusBadRequest, + ) + return + } + + storageMap := storage.GetStorageMap(address, storageMapDomain, false) + if storageMap == nil { + http.Error(w, "storage map does not exist", http.StatusNotFound) + return + } + + identifier := vars["identifier"] + + key, err := knownStorageMap.StringAsKey(identifier) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + var preparedValue Value + + value := storageMap.ReadValue(nil, key) + + var nested []any + err = json.NewDecoder(r.Body).Decode(&nested) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + value, err = getNested(inter, value, nested) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + if value != nil { + preparedValue, err = prepareValue(value, inter) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + } + + w.Header().Add("Content-Type", "application/json") + + err = json.NewEncoder(w).Encode(preparedValue) + if err != nil { + log.Fatal().Err(err) + } + } +} + +func getNested(inter *interpreter.Interpreter, value interpreter.Value, nested []any) (interpreter.Value, error) { + decoder := &jsoncdc.Decoder{} + + for index, n := range nested { + switch n := n.(type) { + case string: + memberAccessibleValue, ok := value.(interpreter.MemberAccessibleValue) + if !ok { + return nil, fmt.Errorf("value for index %d is not member accessible", index) + } + value = memberAccessibleValue.GetMember(inter, interpreter.EmptyLocationRange, n) + + case map[string]any: + valueIndexableValue, ok := value.(interpreter.ValueIndexableValue) + if !ok { + return nil, fmt.Errorf("value for index %d is not value indexable", index) + } + + decoded := decoder.DecodeJSON(n) + imported, err := runtime.ImportValue( + inter, + interpreter.EmptyLocationRange, + nil, + decoded, + nil, + ) + if err != nil { + return nil, fmt.Errorf("value for index %d is not importable: %w", index, err) + } + + value = valueIndexableValue.GetKey(inter, interpreter.EmptyLocationRange, imported) + if _, ok := valueIndexableValue.(*interpreter.DictionaryValue); ok { + if someValue := value.(*interpreter.SomeValue); ok { + value = someValue.InnerValue(inter, interpreter.EmptyLocationRange) + } + } + } + } + return value, nil +} + +func storageMapKeys(storageMap *interpreter.StorageMap, knownStorageMap KnownStorageMap) []string { + keys := make([]string, 0, storageMap.Count()) + iterator := storageMap.Iterator(nil) + for { + key := iterator.NextKey() + if key == nil { + break + } + + keys = append( + keys, + knownStorageMap.KeyAsString(key), + ) + } + + sort.Strings(keys) + + return keys +} diff --git a/tools/storage-explorer/package-lock.json b/tools/storage-explorer/package-lock.json new file mode 100644 index 0000000000..74ebd49ba7 --- /dev/null +++ b/tools/storage-explorer/package-lock.json @@ -0,0 +1,858 @@ +{ + "name": "storage-explorer", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "storage-explorer", + "version": "0.0.0", + "dependencies": { + "@types/react": "^18.2.61", + "@types/react-dom": "^18.2.19", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "typescript": "^5.2.2", + "vite": "^5.1.4" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/react": { + "version": "18.2.61", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.61.tgz", + "integrity": "sha512-NURTN0qNnJa7O/k4XUkEW2yfygA+NxS0V5h1+kp9jPwhzZy95q3ADoGMP0+JypMhrZBTTgjKAUlTctde1zzeQA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/rollup": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/vite": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz", + "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + } + } +} diff --git a/tools/storage-explorer/package.json b/tools/storage-explorer/package.json new file mode 100644 index 0000000000..6543dc36cb --- /dev/null +++ b/tools/storage-explorer/package.json @@ -0,0 +1,21 @@ +{ + "name": "storage-explorer", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "typescript": "^5.2.2", + "vite": "^5.1.4" + }, + "dependencies": { + "@types/react": "^18.2.61", + "@types/react-dom": "^18.2.19", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } +} diff --git a/tools/storage-explorer/src/array.tsx b/tools/storage-explorer/src/array.tsx new file mode 100644 index 0000000000..8492ad1c2c --- /dev/null +++ b/tools/storage-explorer/src/array.tsx @@ -0,0 +1,45 @@ +import React, {ReactNode} from "react" +import { ArrayValue } from "./value.ts" +import Type from "./type.tsx" + +interface Props { + value: ArrayValue, + onChange?: (index: number) => void, + onKeyDown?: (event: React.KeyboardEvent) => void +} + +export default function ArrayValue({ + value, + onChange, + onKeyDown +}: Props) { + + function _onChange(event: React.ChangeEvent) { + const index = Number(event.target.value) + if (index < value.count) + onChange?.(index) + } + + const options: ReactNode[] = Array.from({ length: value.count }) + for (let i = 0; i < value.count; i++) { + options.push() + } + + return ( + <> + + + + ) +} diff --git a/tools/storage-explorer/src/composite.tsx b/tools/storage-explorer/src/composite.tsx new file mode 100644 index 0000000000..23df2f77c3 --- /dev/null +++ b/tools/storage-explorer/src/composite.tsx @@ -0,0 +1,43 @@ +import React from "react" +import { CompositeValue } from "./value.ts" +import Type from "./type.tsx" + +interface Props { + value: CompositeValue + onChange?: (field: string) => void, + onKeyDown?: (event: React.KeyboardEvent) => void +} + +export default function CompositeValue({ + value, + onChange, + onKeyDown +}: Props) { + + function _onChange(event: React.ChangeEvent) { + const field = event.target.value + onChange?.(field) + } + + const options = value.fields.map(field => + + ) + + return ( + <> + + + + ) +} diff --git a/tools/storage-explorer/src/dictionary.tsx b/tools/storage-explorer/src/dictionary.tsx new file mode 100644 index 0000000000..21233d3093 --- /dev/null +++ b/tools/storage-explorer/src/dictionary.tsx @@ -0,0 +1,49 @@ +import React from "react" +import {DictionaryValue, Value} from "./value.ts" +import Type from "./type.tsx" + +interface Props { + value: DictionaryValue, + onChange?: (value: Value) => void + onKeyDown?: (event: React.KeyboardEvent) => void +} + +export default function DictionaryValue({ + value, + onChange, + onKeyDown +}: Props) { + + function _onChange(event: React.ChangeEvent) { + const selectValue = event.target.value + if (!selectValue) + return; + const index = Number(selectValue) + const key = value.keys[index].value + if (key.kind === "primitive") { + onChange?.(key.value) + } + } + + const options = value.keys.map((key, index) => + + ) + + return ( + <> + + + + ) +} diff --git a/tools/storage-explorer/src/fallback.tsx b/tools/storage-explorer/src/fallback.tsx new file mode 100644 index 0000000000..bf26aaf10b --- /dev/null +++ b/tools/storage-explorer/src/fallback.tsx @@ -0,0 +1,22 @@ +import React from "react" +import { FallbackValue } from "./value.ts" +import Type from "./type.tsx" + +interface Props { + value: FallbackValue, +} + +export default function FallbackValue({ + value, +}: Props) { + return ( + <> + +
{value.description}
+ + ) +} diff --git a/tools/storage-explorer/src/index.css b/tools/storage-explorer/src/index.css new file mode 100644 index 0000000000..27b72fce1c --- /dev/null +++ b/tools/storage-explorer/src/index.css @@ -0,0 +1,106 @@ +* { + box-sizing: border-box; + padding: 0; + margin: 0; + font-size: 0.9rem; + font-family: "Inter", sans-serif; + font-optical-sizing: auto; + color: #505c6f; +} + +:focus { + outline: none; +} + +html, body { + overscroll-behavior-x: none; +} + +main { + height: 100vh; + padding: 0.6em; + background-color: hsl(210, 40%, 96%); +} + +#account-and-storage-map { + display: flex; + flex-direction: column; + gap: 1em; +} + +.list, .value { + padding: 0.4rem 0.8rem; + display: flex; + flex-direction: column; + gap: 0.5em; + border-radius: 6px; + background-color: white; + box-shadow: rgb(255, 255, 255) 0 0 0 0, + rgb(229, 231, 235) 0 0 0 1px, + rgba(0, 0, 0, 0.1) 0 1px 3px 0, + rgba(0, 0, 0, 0.1) 0 1px 2px -1px; + animation: fadeIn ease-out 100ms; + animation-iteration-count: 1; + animation-fill-mode: forwards; +} + +#account-and-storage-map .list { + flex: 1; +} + +#accounts.list { + flex: 4; +} + +#storage-map-keys h2 { + font-family: monospace; +} + +main, #values { + flex-direction: row; + display: flex; + gap: 1em; +} + +.value { + height: 100%; + padding-top: 0.6em; +} + +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +pre { + overflow: scroll; +} + +select { + border: none; +} + +select, pre { + flex: 1; +} + +option, pre { + padding: 0.2em 0.4em; + font-family: monospace; +} + +option { + border-radius: 6px; +} + +h2 { + display: block; + padding: .3em .4em; + white-space: nowrap; + color: rgb(17, 24, 39); + font-weight: 600; +} diff --git a/tools/storage-explorer/src/index.ts b/tools/storage-explorer/src/index.ts new file mode 100644 index 0000000000..51098843c8 --- /dev/null +++ b/tools/storage-explorer/src/index.ts @@ -0,0 +1,373 @@ +import { createRoot } from 'react-dom/client' +import React, { createElement, ReactNode } from "react" +import CompositeValue from "./composite.tsx" +import DictionaryValue from "./dictionary.tsx" +import PrimitiveValue from "./primitive.tsx" +import { Value } from "./value.ts" +import ArrayValue from "./array.tsx" +import FallbackValue from "./fallback.tsx" + +function request(url: string, method: string = 'GET', body?: BodyInit) { + return fetch(url, { + method, + headers: { + 'Content-Type': 'application/json' + }, + body + }) +} + +class AccountsView { + private readonly storageMapKeysView: StorageMapKeysView + private readonly selectElement: HTMLSelectElement + + constructor(storageMapKeysView: StorageMapKeysView) { + this.storageMapKeysView = storageMapKeysView + this.selectElement = document.querySelector('#accounts select')! + + this.addKeyboardEventListeners() + + this.load().then(addresses => { + this.selectElement.addEventListener('change', this.onChange.bind(this)) + + if (addresses.length) { + this.selectElement.value = addresses[0] + this.onChange() + } + }) + } + + private onChange() { + this.storageMapKeysView.address = this.selectElement.value + } + + private async load(): Promise { + const response = await request('/accounts') + const addresses = await response.json() + for (const address of addresses) { + const option = document.createElement('option') + option.value = address + option.textContent = address + this.selectElement.appendChild(option) + } + return addresses + } + + private addKeyboardEventListeners() { + this.selectElement.addEventListener('keydown', event => { + if (event.key === 'ArrowRight') { + event.preventDefault() + this.storageMapKeysView.focus() + } + }) + } + + focus() { + this.selectElement.focus() + } +} + +class StorageMapsView { + private readonly storageMapKeysView: StorageMapKeysView + private readonly selectElement: HTMLSelectElement + + constructor(storageMapKeysView: StorageMapKeysView) { + this.storageMapKeysView = storageMapKeysView + this.selectElement = document.querySelector('#storage-maps select')! + + this.load().then(() => { + this.selectElement.addEventListener('change', this.onChange.bind(this)) + this.selectElement.value = 'storage' + this.onChange() + }) + } + + private onChange() { + this.storageMapKeysView.domain = this.selectElement.value + } + + private async load() { + const response = await request('/known_storage_maps') + const domains = await response.json() + for (const domain of domains) { + const option = document.createElement('option') + option.value = domain + option.textContent = domain + this.selectElement.appendChild(option) + } + } +} + +class KeyPath { + constructor( + public address: string, + public domain: string, + public key: string, + public nested: any[] + ) {} + + with(nested: any): KeyPath { + const newNested = this.nested.slice() + newNested.push(nested) + return new KeyPath( + this.address, + this.domain, + this.key, + newNested + ) + } +} + +interface FocusableView { + focus(): void +} + +class StorageMapKeysView implements FocusableView { + private readonly headingElement: HTMLHeadingElement + private readonly selectElement: HTMLSelectElement + private readonly valuesElement: HTMLDivElement + private _address: string | null = null + private _domain: string | null = null + accountsView: AccountsView | null = null + private valueView: ValueView | null = null + + constructor() { + this.headingElement = document.querySelector('#storage-map-keys h2')! + this.selectElement = document.querySelector('#storage-map-keys select')! + this.selectElement.addEventListener('change', this.onChange.bind(this)) + this.valuesElement = document.querySelector('#values')! + + this.addKeyboardEventListeners() + } + + private async onChange() { + const key = this.selectElement.value + this.valuesElement.innerHTML = "" + + const address = this.address + const domain = this.domain + if (!address || !domain) { + return + } + + this.valueView = new ValueView( + new KeyPath(address, domain, key, []), + this.valuesElement, + this + ) + } + + get address(): string | null { + return this._address + } + + set address(address: string) { + this._address = address + this.update() + } + + get domain(): string | null { + return this._domain + } + + set domain(domain: string) { + this._domain = domain + this.update() + } + + private async update() { + this.valuesElement.innerHTML = "" + + const address = this.address + const domain = this.domain + if (!address || !domain) { + return + } + + this.headingElement.textContent = `${address}/${domain}` + + const response = await request(`/accounts/${address}/${domain}`) + const keys = await response.json() + this.selectElement.innerHTML = "" + for (const key of keys) { + const option = document.createElement('option') + option.value = key + option.textContent = key + this.selectElement.appendChild(option) + } + } + + focus() { + const select = this.selectElement + const options = select.options + + if (!select.value && options.length) { + select.value = options[0].value + this.onChange() + } + + select.focus() + } + + private addKeyboardEventListeners() { + this.selectElement.addEventListener('keydown', event => { + switch (event.key) { + case 'ArrowLeft': + event.preventDefault() + this.accountsView?.focus() + break + case 'ArrowRight': + event.preventDefault() + this.valueView?.focus() + break + } + }) + } +} + +class ValueView implements FocusableView { + private readonly keyPath: KeyPath + private readonly valueElement: HTMLDivElement + private readonly parentElement: HTMLElement + private nextValueView: ValueView | null = null + private previousElement: FocusableView + + constructor(keyPath: KeyPath, parentElement: HTMLElement, previousElement: FocusableView) { + this.keyPath = keyPath + this.previousElement = previousElement + + this.valueElement = document.createElement('div') + this.valueElement.classList.add('value') + parentElement.appendChild(this.valueElement) + + this.parentElement = parentElement + + this.load() + } + + async load() { + const {address, domain, key, nested} = this.keyPath + const response = await request( + `/accounts/${address}/${domain}/${key}`, + 'POST', + JSON.stringify(nested) + ) + const value: Value = await response.json() + + let valueComponent: ReactNode | null + switch (value.kind) { + case "composite": + valueComponent = createElement( + CompositeValue, + { + value, + onChange: this.onChange.bind(this), + onKeyDown: this.onKeyDown.bind(this) + } + ) + break + + case "dictionary": + valueComponent = createElement( + DictionaryValue, + { + value, + onChange: this.onChange.bind(this), + onKeyDown: this.onKeyDown.bind(this) + } + ) + break + + case "array": + valueComponent = createElement( + ArrayValue, + { + value, + onChange: this.onChange.bind(this), + onKeyDown: this.onKeyDown.bind(this) + } + ) + break + + case "primitive": + valueComponent = createElement( + PrimitiveValue, + { + value + } + ) + break + + case "fallback": + valueComponent = createElement( + FallbackValue, + { + value + } + ) + break + } + + if (valueComponent) { + createRoot(this.valueElement).render(valueComponent) + } else { + const contentsElement = document.createElement('pre') + contentsElement.innerText = JSON.stringify(value, null, ' ') + this.valueElement.appendChild(contentsElement) + } + } + + private onChange(nested: any) { + // clear trailing value views + while (true) { + const lastChild = this.parentElement.lastChild + if (lastChild === this.valueElement) { + break + } + lastChild?.remove() + } + + // append new value view + this.nextValueView = new ValueView( + this.keyPath.with(nested), + this.parentElement, + this + ) + } + + private onKeyDown(event: React.KeyboardEvent) { + switch (event.key) { + case 'ArrowLeft': + event.preventDefault() + this.previousElement.focus() + break + case 'ArrowRight': + event.preventDefault() + this.nextValueView?.focus() + break + } + } + + focus() { + const select = this.valueElement.querySelector("select") + if (!select) { + return + } + + const options = select.options + + if (!select.value && options.length) { + select.value = options[0].value + } + + select.focus() + } +} + +document.addEventListener("DOMContentLoaded", function () { + const storageMapKeysView = new StorageMapKeysView() + const accountsView = new AccountsView(storageMapKeysView) + storageMapKeysView.accountsView = accountsView + new StorageMapsView(storageMapKeysView) + accountsView.focus() +}) \ No newline at end of file diff --git a/tools/storage-explorer/src/primitive.tsx b/tools/storage-explorer/src/primitive.tsx new file mode 100644 index 0000000000..37766d1f9c --- /dev/null +++ b/tools/storage-explorer/src/primitive.tsx @@ -0,0 +1,22 @@ +import React from "react" +import { PrimitiveValue } from "./value.ts" +import Type from "./type.tsx" + +interface Props { + value: PrimitiveValue, +} + +export default function PrimitiveValue({ + value, +}: Props) { + return ( + <> + +
{value.description}
+ + ) +} diff --git a/tools/storage-explorer/src/type.module.css b/tools/storage-explorer/src/type.module.css new file mode 100644 index 0000000000..408ce8d509 --- /dev/null +++ b/tools/storage-explorer/src/type.module.css @@ -0,0 +1,18 @@ +.type { + font-size: .875rem; + line-height: 1.25rem; + padding: .1rem .6rem; + border-radius: 6px; +} + +.type-container { + border: 1px solid rgba(59, 130, 246, .5); + background-color: rgb(239, 246, 255); + color: rgb(29, 78, 216); +} + +.type-leaf { + border: 1px solid rgb(16, 185, 129, .2); + background-color: rgba(16, 185, 129, 0.1); + color: rgb(5 150 105); +} diff --git a/tools/storage-explorer/src/type.tsx b/tools/storage-explorer/src/type.tsx new file mode 100644 index 0000000000..be96e11517 --- /dev/null +++ b/tools/storage-explorer/src/type.tsx @@ -0,0 +1,36 @@ +import React from "react" +import styles from "./type.module.css" +import { Type } from "./value.ts" + +type Kind = "dictionary" | "composite" | "array" | "primitive" | "fallback" + +type Category = "container" | "leaf" + +interface Props { + kind: Kind + type: Type + description: string +} + +function category(kind: Kind): Category { + switch (kind) { + case "dictionary": + case "composite": + case "array": + return "container" + case "primitive": + case "fallback": + return "leaf" + } +} + +export default function Type({ + kind, + description +}: Props) { + return ( +
+ {description} +
+ ) +} diff --git a/tools/storage-explorer/src/value.ts b/tools/storage-explorer/src/value.ts new file mode 100644 index 0000000000..351825c8af --- /dev/null +++ b/tools/storage-explorer/src/value.ts @@ -0,0 +1,46 @@ +import CompositeValue from "./composite.tsx" + +export type Type = string | any + +export interface CompositeValue { + kind: "composite" + type: Type + typeString: string + fields: string[] +} + +export interface DictionaryValue { + kind: "dictionary" + type: Type + typeString: string + keys: DictionaryKey[] +} + +interface DictionaryKey { + description: string + value: Value +} + +export interface ArrayValue { + kind: "array" + type: Type + typeString: string + count: number +} + +export interface PrimitiveValue { + kind: "primitive" + type: Type + typeString: string + value: any + description: string +} + +export interface FallbackValue { + kind: "fallback" + type: Type + typeString: string + description: string +} + +export type Value = CompositeValue | DictionaryValue | ArrayValue | PrimitiveValue | FallbackValue diff --git a/tools/storage-explorer/src/vite-env.d.ts b/tools/storage-explorer/src/vite-env.d.ts new file mode 100644 index 0000000000..11f02fe2a0 --- /dev/null +++ b/tools/storage-explorer/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tools/storage-explorer/storagemaps.go b/tools/storage-explorer/storagemaps.go new file mode 100644 index 0000000000..ba0ca4ed91 --- /dev/null +++ b/tools/storage-explorer/storagemaps.go @@ -0,0 +1,106 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package main + +import ( + "encoding/json" + "strconv" + + "github.com/onflow/atree" + + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/common" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/stdlib" +) + +type KnownStorageMap struct { + Domain string + KeyAsString func(key atree.Value) string + StringAsKey func(identifier string) (interpreter.StorageMapKey, error) +} + +var knownStorageMaps = map[string]KnownStorageMap{} + +func addKnownStorageMap(storageMap KnownStorageMap) { + knownStorageMaps[storageMap.Domain] = storageMap +} + +func StringAtreeValueAsString(key atree.Value) string { + return string(key.(interpreter.StringAtreeValue)) +} + +func StringAsStringAtreeValue(identifier string) (interpreter.StorageMapKey, error) { + return interpreter.StringStorageMapKey(identifier), nil +} + +func Uint64AtreeValueAsString(key atree.Value) string { + return strconv.FormatUint(uint64(key.(interpreter.Uint64AtreeValue)), 10) +} + +func StringAsUint64AtreeValue(identifier string) (interpreter.StorageMapKey, error) { + num, err := strconv.ParseUint(identifier, 10, 64) + if err != nil { + return nil, err + } + return interpreter.Uint64StorageMapKey(num), nil +} + +func init() { + for _, domain := range common.AllPathDomains { + addKnownStorageMap(KnownStorageMap{ + Domain: domain.Identifier(), + KeyAsString: StringAtreeValueAsString, + StringAsKey: StringAsStringAtreeValue, + }) + } + + addKnownStorageMap(KnownStorageMap{ + Domain: stdlib.InboxStorageDomain, + KeyAsString: StringAtreeValueAsString, + StringAsKey: StringAsStringAtreeValue, + }) + + addKnownStorageMap(KnownStorageMap{ + Domain: runtime.StorageDomainContract, + KeyAsString: StringAtreeValueAsString, + StringAsKey: StringAsStringAtreeValue, + }) + + addKnownStorageMap(KnownStorageMap{ + Domain: stdlib.CapabilityControllerStorageDomain, + KeyAsString: Uint64AtreeValueAsString, + StringAsKey: StringAsUint64AtreeValue, + }) +} + +func knownStorageMapsJSON() []byte { + knownStorageMapDomains := make([]string, 0, len(knownStorageMaps)) + for _, knownStorageMap := range knownStorageMaps { + knownStorageMapDomains = append( + knownStorageMapDomains, + knownStorageMap.Domain, + ) + } + encoded, err := json.Marshal(knownStorageMapDomains) + if err != nil { + panic(err) + } + return encoded +} diff --git a/tools/storage-explorer/tsconfig.json b/tools/storage-explorer/tsconfig.json new file mode 100644 index 0000000000..5266a6f25a --- /dev/null +++ b/tools/storage-explorer/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "jsx": "react" + }, + "include": [ + "src" + ] +} diff --git a/tools/storage-explorer/type.go b/tools/storage-explorer/type.go new file mode 100644 index 0000000000..24a7a93416 --- /dev/null +++ b/tools/storage-explorer/type.go @@ -0,0 +1,55 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package main + +import ( + "github.com/onflow/cadence" + jsoncdc "github.com/onflow/cadence/encoding/json" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +func prepareType(value interpreter.Value, inter *interpreter.Interpreter) (result any, description string) { + staticType := value.StaticType(inter) + + defer func() { + if recover() != nil { + typeID := staticType.ID() + result = typeID + description = string(typeID) + } + }() + + semaType, err := inter.ConvertStaticToSemaType(staticType) + if err != nil { + typeID := staticType.ID() + return typeID, string(typeID) + } + + cadenceType := runtime.ExportType( + semaType, + map[sema.TypeID]cadence.Type{}, + ) + + return jsoncdc.PrepareType( + cadenceType, + jsoncdc.TypePreparationResults{}, + ), semaType.QualifiedString() +} diff --git a/tools/storage-explorer/value.go b/tools/storage-explorer/value.go new file mode 100644 index 0000000000..5f3a5c3357 --- /dev/null +++ b/tools/storage-explorer/value.go @@ -0,0 +1,377 @@ +/* + * Cadence - The resource-oriented smart contract programming language + * + * Copyright Flow Foundation + * + * 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. + */ + +package main + +import ( + "encoding/json" + "sort" + + jsoncdc "github.com/onflow/cadence/encoding/json" + "github.com/onflow/cadence/runtime" + "github.com/onflow/cadence/runtime/interpreter" + "github.com/onflow/cadence/runtime/sema" +) + +type Value interface { + isValue() +} + +// TypeOnlyValue + +type FallbackValue struct { + Type any `json:"type"` + TypeString string `json:"typeString"` + Description string `json:"description"` +} + +var _ Value = FallbackValue{} + +func (FallbackValue) isValue() {} + +func (v FallbackValue) MarshalJSON() ([]byte, error) { + type Alias FallbackValue + return json.Marshal(&struct { + Kind string `json:"kind"` + Alias + }{ + Kind: "fallback", + Alias: (Alias)(v), + }) +} + +// PrimitiveValue + +type PrimitiveValue struct { + Type any `json:"type"` + TypeString string `json:"typeString"` + Value json.RawMessage `json:"value"` + Description string `json:"description"` +} + +var _ Value = PrimitiveValue{} + +func (PrimitiveValue) isValue() {} + +func (v PrimitiveValue) MarshalJSON() ([]byte, error) { + type Alias PrimitiveValue + return json.Marshal(&struct { + Kind string `json:"kind"` + Alias + }{ + Kind: "primitive", + Alias: (Alias)(v), + }) +} + +// DictionaryValue + +type DictionaryValue struct { + Type any `json:"type"` + TypeString string `json:"typeString"` + Keys []DictionaryKey `json:"keys"` +} + +var _ Value = DictionaryValue{} + +func (DictionaryValue) isValue() {} + +func (v DictionaryValue) MarshalJSON() ([]byte, error) { + type Alias DictionaryValue + return json.Marshal(&struct { + Kind string `json:"kind"` + Alias + }{ + Kind: "dictionary", + Alias: (Alias)(v), + }) +} + +type DictionaryKey struct { + Description string `json:"description"` + Value Value `json:"value"` +} + +// ArrayValue + +type ArrayValue struct { + Type any `json:"type"` + TypeString string `json:"typeString"` + Count int `json:"count"` +} + +var _ Value = ArrayValue{} + +func (ArrayValue) isValue() {} + +func (v ArrayValue) MarshalJSON() ([]byte, error) { + type Alias ArrayValue + return json.Marshal(&struct { + Kind string `json:"kind"` + Alias + }{ + Kind: "array", + Alias: (Alias)(v), + }) +} + +// CompositeValue + +type CompositeValue struct { + Type any `json:"type"` + TypeString string `json:"typeString"` + Fields []string `json:"fields"` +} + +var _ Value = CompositeValue{} + +func (CompositeValue) isValue() {} + +func (v CompositeValue) MarshalJSON() ([]byte, error) { + type Alias CompositeValue + return json.Marshal(&struct { + Kind string `json:"kind"` + Alias + }{ + Kind: "composite", + Alias: (Alias)(v), + }) +} + +// SomeValue + +type SomeValue struct { + Type any `json:"type"` + TypeString string `json:"typeString"` + Value Value `json:"value"` +} + +var _ Value = SomeValue{} + +func (SomeValue) isValue() {} + +func (v SomeValue) MarshalJSON() ([]byte, error) { + type Alias SomeValue + return json.Marshal(&struct { + Kind string `json:"kind"` + Alias + }{ + Kind: "some", + Alias: (Alias)(v), + }) +} + +// prepareValue + +var pathLinkValueFieldNames = []string{ + "targetPath", + "type", +} + +var publishedValueFieldNames = []string{ + "recipient", + "type", +} + +var pathCapabilityValueFieldNames = []string{ + "address", + "path", +} + +var idCapabilityValueFieldNames = []string{ + sema.CapabilityTypeAddressFieldName, + sema.CapabilityTypeIDFieldName, +} + +var accountCapabilityControllerValueFieldNames = []string{ + sema.AccountCapabilityControllerTypeCapabilityIDFieldName, + sema.AccountCapabilityControllerTypeBorrowTypeFieldName, +} + +var storageCapabilityControllerValueFieldNames = []string{ + sema.StorageCapabilityControllerTypeCapabilityIDFieldName, + sema.StorageCapabilityControllerTypeBorrowTypeFieldName, +} + +func prepareValue(value interpreter.Value, inter *interpreter.Interpreter) (Value, error) { + ty, typeString := prepareType(value, inter) + + switch value := value.(type) { + case interpreter.BoolValue, + interpreter.NumberValue, + *interpreter.StringValue, + interpreter.CharacterValue, + interpreter.AddressValue, + interpreter.PathValue, + interpreter.TypeValue: + + exported, err := runtime.ExportValue(value, inter, interpreter.EmptyLocationRange) + if err != nil { + return nil, err + } + + exportedJSON, err := jsoncdc.Encode(exported) + if err != nil { + return nil, err + } + + return PrimitiveValue{ + Type: ty, + TypeString: typeString, + Value: exportedJSON, + Description: value.String(), + }, nil + + case *interpreter.DictionaryValue: + keys := make([]DictionaryKey, 0, value.Count()) + + var err error + + value.IterateKeys(inter, func(key interpreter.Value) (resume bool) { + var preparedKey Value + preparedKey, err = prepareValue(key, inter) + if err != nil { + return false + } + + keys = append(keys, DictionaryKey{ + Description: key.String(), + Value: preparedKey, + }) + + return true + }) + + if err != nil { + return nil, err + } + + return DictionaryValue{ + Type: ty, + TypeString: typeString, + Keys: keys, + }, nil + + case *interpreter.CompositeValue: + fields := make([]string, 0, value.FieldCount()) + + value.ForEachFieldName(func(field string) (resume bool) { + fields = append(fields, field) + + return true + }) + + sort.Strings(fields) + + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: fields, + }, nil + + case *interpreter.SimpleCompositeValue: + fieldNames := value.FieldNames + + fields := make([]string, 0, len(fieldNames)) + copy(fields, fieldNames) + + sort.Strings(fields) + + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: fields, + }, nil + + case interpreter.PathLinkValue: //nolint:staticcheck + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: pathLinkValueFieldNames, + }, nil + + case interpreter.AccountLinkValue: //nolint:staticcheck + return CompositeValue{ + Type: ty, + TypeString: typeString, + }, nil + + case *interpreter.PathCapabilityValue: //nolint:staticcheck + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: pathCapabilityValueFieldNames, + }, nil + + case *interpreter.IDCapabilityValue: + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: idCapabilityValueFieldNames, + }, nil + + case *interpreter.AccountCapabilityControllerValue: + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: accountCapabilityControllerValueFieldNames, + }, nil + + case *interpreter.StorageCapabilityControllerValue: + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: storageCapabilityControllerValueFieldNames, + }, nil + + case *interpreter.PublishedValue: + return CompositeValue{ + Type: ty, + TypeString: typeString, + Fields: publishedValueFieldNames, + }, nil + + case *interpreter.ArrayValue: + return ArrayValue{ + Type: ty, + TypeString: typeString, + Count: value.Count(), + }, nil + + case *interpreter.SomeValue: + innerValue := value.InnerValue(inter, interpreter.EmptyLocationRange) + + preparedInnerValue, err := prepareValue(innerValue, inter) + if err != nil { + return nil, err + } + + return SomeValue{ + Type: ty, + TypeString: typeString, + Value: preparedInnerValue, + }, nil + + default: + return FallbackValue{ + Type: ty, + TypeString: typeString, + Description: value.String(), + }, nil + } +} diff --git a/tools/unkeyed/Makefile b/tools/unkeyed/Makefile index 240422e9be..5f566974d6 100644 --- a/tools/unkeyed/Makefile +++ b/tools/unkeyed/Makefile @@ -1,2 +1,2 @@ -unkeyed.so: go.mod +unkeyed.so: go.mod *.go go build -buildmode=plugin . diff --git a/tools/unkeyed/analyzer_test.go b/tools/unkeyed/analyzer_test.go index 7c16f78276..5b317917c0 100644 --- a/tools/unkeyed/analyzer_test.go +++ b/tools/unkeyed/analyzer_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/unkeyed/go.mod b/tools/unkeyed/go.mod index bb7edb9629..0042561a2f 100644 --- a/tools/unkeyed/go.mod +++ b/tools/unkeyed/go.mod @@ -1,13 +1,13 @@ module github.com/onflow/cadence/tools/unkeyed -go 1.20 +go 1.22 require ( - golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9 - golang.org/x/tools v0.6.0 + golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f + golang.org/x/tools v0.21.0 ) require ( - golang.org/x/mod v0.8.0 // indirect - golang.org/x/sys v0.5.0 // indirect + golang.org/x/mod v0.17.0 // indirect + golang.org/x/sync v0.7.0 // indirect ) diff --git a/tools/unkeyed/go.sum b/tools/unkeyed/go.sum index 381b6c01cf..5327c8597f 100644 --- a/tools/unkeyed/go.sum +++ b/tools/unkeyed/go.sum @@ -1,9 +1,8 @@ -golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9 h1:6WHiuFL9FNjg8RljAaT7FNUuKDbvMqS1i5cr2OE2sLQ= -golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= diff --git a/tools/unkeyed/main.go b/tools/unkeyed/main.go index c58204b26f..5d8fd711cb 100644 --- a/tools/unkeyed/main.go +++ b/tools/unkeyed/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,14 +27,10 @@ func main() { singlechecker.Main(Analyzer) } -type analyzerPlugin struct{} - -func (*analyzerPlugin) GetAnalyzers() []*analysis.Analyzer { +// This must be defined and named 'New' for golangci-lint, +// see https://golangci-lint.run/plugins/go-plugins/#create-a-plugin +func New(_ any) ([]*analysis.Analyzer, error) { return []*analysis.Analyzer{ Analyzer, - } + }, nil } - -// This must be defined and named 'AnalyzerPlugin' for golangci-lint, -// see https://golangci-lint.run/contributing/new-linters/#how-to-write-a-custom-linter -var AnalyzerPlugin analyzerPlugin diff --git a/tools/unkeyed/testdata/src/a/a.go b/tools/unkeyed/testdata/src/a/a.go index ce8336184a..05301dc339 100644 --- a/tools/unkeyed/testdata/src/a/a.go +++ b/tools/unkeyed/testdata/src/a/a.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/unkeyed/testdata/src/a/a.go.golden b/tools/unkeyed/testdata/src/a/a.go.golden index 017d578a77..aaab7bb8bd 100644 --- a/tools/unkeyed/testdata/src/a/a.go.golden +++ b/tools/unkeyed/testdata/src/a/a.go.golden @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/tools/update/README.md b/tools/update/README.md index 6f1e5ff1c7..048769aba9 100644 --- a/tools/update/README.md +++ b/tools/update/README.md @@ -34,7 +34,7 @@ These repos have to be manually released/tagged. #### Using existing versions -Suppose there are already released versions of certain downstream dependencies. +Suppose there are already released versions of certain downstream dependencies. For example suppose we want to update downstream dependencies to Cadence `v0.30.0`, and the `flow-go-sdk` is already updated with that Cadence version and is already tagged as `v0.31.0`. Similarly, suppose `flow-go` is also already updated with that Cadence version and is already tagged as `v0.26.0`. @@ -51,16 +51,250 @@ Above will update the rest of the dependencies to: - flow-go-sdk `v0.31.0` - flow-go `v0.26.0` -Instead of the version, it is also possible to provide a commit id. +Instead of the version, it is also possible to provide a commit, +in Go's expected format, i.e. the first 12 characters of the commit hash. ```sh -GH_TOKEN=`gh auth token` ts-node main.ts update --version v0.30.0 --versions onflow/flow-go@ +GH_TOKEN=`gh auth token` ts-node main.ts update --version v0.30.0 --versions onflow/flow-go@ ``` #### Configuring dependencies Dependencies are configured in `config.yaml`. +### Process + +The update process is basically a cycle of the following steps for each downstream dependency: + +1. Use the tool to open a PR that updates the dependencies +2. Review the PR for correctness +3. Get the PR reviewed, approved, and merged +3. Release a new version of the downstream dependency +4. Go to 1 + +### Example + +Let's walk through an example scenario. + +Cadence release `v1.0.0-M8` was just published. + +#### Updating the first downstream dependency + +Start the process of updating all downstream dependencies by invoking the `update` subcommand with the new Cadence version. + +The Cadence version needs to be provided using the `--version` flag. + +```shell +$ GH_TOKEN=`gh auth token` ts-node main.ts update \ + --version v1.0.0-M8 +``` + +
+ +Output: + + +``` +👋 Hello, turbolent +Updating all repos to onflow/cadence version v1.0.0-M8 + +Checking repo onflow/flow-go-sdk ... + > Latest release of repo onflow/flow-go-sdk: v0.41.20 + > Checking if all mods of repo onflow/flow-go-sdk at version v0.41.20 are updated ... + > Checking if mod onflow/flow-go-sdk at repo version v0.41.20 is updated ... + > Outdated dep onflow/cadence: expected v1.0.0-M8, got v0.42.6 + > Latest release of repo onflow/flow-go-sdk (v0.41.20) is not updated, checking default branch ... + > Default branch of repo onflow/flow-go-sdk: master + > Checking if all mods of repo onflow/flow-go-sdk at version 8bf96750a5e3c057cfe8fad52865c5fa9afd0fba are updated ... + > Checking if mod onflow/flow-go-sdk at repo version 8bf96750a5e3c057cfe8fad52865c5fa9afd0fba is updated ... + > Outdated dep onflow/cadence: expected v1.0.0-M8, got M7 + > Checking if an update PR exists ... + > Checking if PR 583 updates a dep of a mod ... + > Checking if PR 582 updates a dep of a mod ... + > Checking if PR 581 updates a dep of a mod ... + > Checking if PR 580 updates a dep of a mod ... + > Checking if PR 578 updates a dep of a mod ... + > Checking if PR 574 updates a dep of a mod ... + > Checking if PR 572 updates a dep of a mod ... + > Checking if PR 565 updates a dep of a mod ... + > Checking if PR 542 updates a dep of a mod ... + > Checking if PR 508 updates a dep of a mod ... + > Checking if PR 487 updates a dep of a mod ... + > Checking if PR 480 updates a dep of a mod ... + > Checking if PR 290 updates a dep of a mod ... + > No update PR found +✔ Would you like to update repo 'onflow/flow-go-sdk' and create a PR? … yes + Cloning onflow/flow-go-sdk ... +Cloning into '/var/folders/n6/04ql0mr94nq5qj61wz_lcsx40000gn/T/onflow-flow-go-sdkmD43jW'... + Creating branch auto-update-onflow-cadence-v1.0.0-M8 ... +Switched to a new branch 'auto-update-onflow-cadence-v1.0.0-M8' + Updating mod onflow/flow-go-sdk ... + Updating mod onflow/flow-go-sdk to github.com/onflow/cadence@v1.0.0-M8 ... +go: downloading github.com/onflow/cadence v1.0.0-M8 +go: upgraded github.com/onflow/cadence v1.0.0-M7 => v1.0.0-M8 + Cleaning up mod onflow/flow-go-sdk ... + Committing update ... +[auto-update-onflow-cadence-v1.0.0-M8 3a172b5] Update to Cadence v1.0.0-M8 + 2 files changed, 3 insertions(+), 3 deletions(-) + Pushing update ... +remote: +remote: Create a pull request for 'auto-update-onflow-cadence-v1.0.0-M8' on GitHub by visiting: +remote: https://github.com/onflow/flow-go-sdk/pull/new/auto-update-onflow-cadence-v1.0.0-M8 +remote: +remote: GitHub found 2 vulnerabilities on onflow/flow-go-sdk's default branch (2 moderate). To find out more, visit: +remote: https://github.com/onflow/flow-go-sdk/security/dependabot +remote: +To ssh://github.com/onflow/flow-go-sdk + * [new branch] auto-update-onflow-cadence-v1.0.0-M8 -> auto-update-onflow-cadence-v1.0.0-M8 +branch 'auto-update-onflow-cadence-v1.0.0-M8' set up to track 'origin/auto-update-onflow-cadence-v1.0.0-M8'. + Creating PR ... + Created PR https://github.com/onflow/flow-go-sdk/pull/584 + Cleaning up clone of onflow/flow-go-sdk ... +``` + +
+ + +The command will determine that the `flow-go-sdk` downstream dependency is outdated and will propose to open a PR for it. + +Agree to have a PR opened, get it reviewed, approved, and merged. + +Check the GitHub releases page and determine the next version, e.g. for `flow-go-sdk`, https://github.com/onflow/flow-go-sdk/releases. + +In this example, the next version is `v1.0.0-M5`. + +Use the `release` subcommand to create a new tag: + +```shell +$ GH_TOKEN=`gh auth token` ts-node main.ts release --repo onflow/flow-go-sdk --version v1.0.0-M5 +``` + +
+ +Output: + + +``` +👋 Hello, turbolent +Cloning onflow/flow-go-sdk ... +Cloning into '/var/folders/n6/04ql0mr94nq5qj61wz_lcsx40000gn/T/onflow-flow-go-sdk1Ptv5n'... +Tagging onflow/flow-go-sdk version v1.0.0-M5 ... +Pushing onflow/flow-go-sdk version v1.0.0-M5 ... +To ssh://github.com/onflow/flow-go-sdk + * [new tag] v1.0.0-M5 -> v1.0.0-M5 +Cleaning up clone of onflow/flow-go-sdk +Now create a GitHub release: https://github.com/onflow/flow-go-sdk/releases/new?tag=v1.0.0-M5 +``` +
+ +Go to the link that is shown at the end to create a new GitHub (pre-)release for this dependency, e.g. https://github.com/onflow/flow-go-sdk/releases/new?tag=v1.0.0-M5. + +> [!IMPORTANT] +> Cadence 1.0 is not released yet, so all releases MUST be PRE-RELEASES! + +#### Updating the next downstream dependency + +Once the GitHub release has been published, re-run the `update` subcommand. The tool will determine that the next dependency needs to be updated. + +Versions are specified using the `--versions` flag, comma-separated. + +```shell +GH_TOKEN=`gh auth token` ts-node main.ts update \ + --version v1.0.0-M8 +``` + +Again, the tool will determine the next downstream dependency that needs to get updated. +This time is the `lint` module in the `onflow/cadence-tools` repo. + +
+ +Output: + + +``` +👋 Hello, turbolent +Updating all repos to onflow/cadence version v1.0.0-M7 + +Checking repo onflow/flow-go-sdk ... + > Checking if all mods of repo onflow/flow-go-sdk at version v1.0.0-M5 are updated ... + ✓ All mods of mod onflow/flow-go-sdk at repo version v1.0.0-M5 are up-to-date + +Checking repo onflow/cadence-tools ... + > Latest release of repo onflow/cadence-tools: languageserver/v0.33.4 + > Checking if all mods of repo onflow/cadence-tools at version languageserver/v0.33.4 are updated ... + > Checking if mod onflow/cadence-tools/lint at repo version languageserver/v0.33.4 is updated ... + > Outdated dep onflow/cadence: expected v1.0.0-M7, got v0.42.5 + > Latest release of repo onflow/cadence-tools (languageserver/v0.33.4) is not updated, checking default branch ... + > Default branch of repo onflow/cadence-tools: master + > Checking if all mods of repo onflow/cadence-tools at version afa07708b24252156efdc9c9f1ae62b69d2c0d6a are updated ... + > Checking if mod onflow/cadence-tools/lint at repo version afa07708b24252156efdc9c9f1ae62b69d2c0d6a is updated ... + > Outdated dep onflow/flow-go-sdk: expected v1.0.0-M5, got M4 + > Checking if an update PR exists ... + > Checking if PR 297 updates a dep of a mod ... + > Checking if PR 297 updates dep onflow/cadence to v1.0.0-M7 ... + > Checking if PR 297 updates dep onflow/flow-go-sdk to v1.0.0-M5 ... + > PR https://github.com/onflow/cadence-tools/pull/297 is not an update PR + > Checking if PR 292 updates a dep of a mod ... + > Checking if PR 292 updates dep onflow/cadence to v1.0.0-M7 ... + > Checking if PR 292 updates dep onflow/flow-go-sdk to v1.0.0-M5 ... + > PR https://github.com/onflow/cadence-tools/pull/292 is not an update PR + > Checking if PR 286 updates a dep of a mod ... + > Checking if PR 279 updates a dep of a mod ... + > Checking if PR 279 updates dep onflow/cadence to v1.0.0-M7 ... + > Checking if PR 279 updates dep onflow/flow-go-sdk to v1.0.0-M5 ... + > PR https://github.com/onflow/cadence-tools/pull/279 is not an update PR + > Checking if PR 275 updates a dep of a mod ... + > Checking if PR 275 updates dep onflow/cadence to v1.0.0-M7 ... + > Checking if PR 275 updates dep onflow/flow-go-sdk to v1.0.0-M5 ... + > PR https://github.com/onflow/cadence-tools/pull/275 is not an update PR + > Checking if PR 271 updates a dep of a mod ... + > Checking if PR 176 updates a dep of a mod ... + > No update PR found +✖ Would you like to update repo 'onflow/cadence-tools' and create a PR? … +``` + +
+ +#### Caveats to be aware of + +> [!IMPORTANT] +> For some downstream dependencies, + +- Some downstream dependencies, like `flow-go`, are not tagged/released. + + Use the latest commit instead, in Go's expected format, i.e. the first 12 characters of the commit hash. + + For example, to `flow-emulator` depends on `flow-go`, and it can be updated using: + + ```shell + $ GH_TOKEN=`gh auth token` ts-node main.ts update \ + --version v1.0.0-M8 \ + --versions onflow/flow-go@3677206d445c + ``` + +- Some downstream dependencies are modules in the same repo. + + When releasing, specify the `--mod` flag. + + For example, to release module `lint` in repo `cadence-tools`: + + ```shell + $ GH_TOKEN=`gh auth token` ts-node main.ts release \ + -r onflow/cadence-tools \ + --mod lint \ + --version v1.0.0-M5 + ``` + +- Some downstream dependencies's main branch (e.g. `master`) has not been updated to Cadence 1.0 yet, and the changes for Cadence 1.0 are still on a feature branch. + + For example, the update to Cadence 1.0 in `flow-go` is in the feature branch `feature/stable-cadence`. + +- `flowkit` is at `v2`, which Go handles specially, and the update tool does not quite support out-of-the-box yet. + + Specify the version both for `onflow/flowkit` and for `onflow/flowkit/v2`. + + For example, to update a downstream dependency of `flowkit` to `v2.0.0-stable-cadence-alpha.5`, use `onflow/flowkit@v2.0.0-stable-cadence-alpha.5,onflow/flowkit/v2@v2.0.0-stable-cadence-alpha.5`. + ## Development When updating the JSON Schema, regenerate the TypeScript definition: diff --git a/tools/update/config.schema.json b/tools/update/config.schema.json index dbab327830..1defab67a0 100644 --- a/tools/update/config.schema.json +++ b/tools/update/config.schema.json @@ -28,6 +28,10 @@ "type": "string", "description": "The repository name" }, + "branch": { + "type": "string", + "description": "The branch name" + }, "mods": { "type": "array", "items": { @@ -44,6 +48,10 @@ "items": { "type": "string" } + }, + "prefixPRTitle": { + "type": "boolean", + "description": "Prefix the PR title with the mod(s)" } }, "additionalProperties": false, diff --git a/tools/update/config.schema.ts b/tools/update/config.schema.ts index 1cfccb9afd..f0e6d33a27 100644 --- a/tools/update/config.schema.ts +++ b/tools/update/config.schema.ts @@ -17,6 +17,10 @@ export interface Repo { * The repository name */ repo: string; + /** + * The branch name + */ + branch?: string; /** * The modules of the repository */ @@ -26,6 +30,10 @@ export interface Repo { */ needsRelease: boolean; updateLabels?: string[]; + /** + * Prefix the PR title with the mod(s) + */ + prefixPRTitle?: boolean; } export interface Mod { /** diff --git a/tools/update/config.yaml b/tools/update/config.yaml index 42d1ed12e5..cdfb2f68e5 100644 --- a/tools/update/config.yaml +++ b/tools/update/config.yaml @@ -7,14 +7,6 @@ repos: deps: - onflow/cadence -- repo: onflow/cadence-tools - needsRelease: true - mods: - - path: lint - deps: - - onflow/cadence - - onflow/flow-go-sdk - - repo: onflow/flow-go needsRelease: false mods: @@ -31,6 +23,15 @@ repos: - onflow/flow-go-sdk - onflow/cadence +- repo: onflow/cadence-tools + needsRelease: true + prefixPRTitle: true + mods: + - path: lint + deps: + - onflow/cadence + - onflow/flow-go-sdk + - repo: onflow/flow-emulator needsRelease: true mods: @@ -42,6 +43,7 @@ repos: - repo: onflow/cadence-tools needsRelease: true + prefixPRTitle: true mods: - path: test deps: @@ -50,10 +52,10 @@ repos: - onflow/flow-go - onflow/flow-emulator -- repo: onflow/flow-cli - needsRelease: false +- repo: onflow/flowkit + needsRelease: true mods: - - path: flowkit + - path: "" deps: - onflow/cadence - onflow/flow-go-sdk @@ -62,6 +64,7 @@ repos: - repo: onflow/cadence-tools needsRelease: true + prefixPRTitle: true mods: - path: languageserver deps: @@ -71,7 +74,33 @@ repos: - onflow/flow-emulator - onflow/cadence-tools/lint - onflow/cadence-tools/test - - onflow/flow-cli/flowkit + - onflow/flowkit/v2 + +- repo: onflow/flixkit-go + needsRelease: true + mods: + - path: "" + deps: + - onflow/cadence + - onflow/flow-go-sdk + - onflow/flow-go + - onflow/flowkit/v2 + +- repo: onflow/flow-evm-gateway + needsRelease: false + branch: main + mods: + - path: "" + deps: + - onflow/cadence + - onflow/flow-go-sdk + - onflow/flow-go + - path: tests + deps: + - onflow/cadence + - onflow/flow-go-sdk + - onflow/flow-go + - onflow/flow-emulator - repo: onflow/flow-cli needsRelease: true @@ -85,3 +114,6 @@ repos: - onflow/cadence-tools/test - onflow/cadence-tools/lint - onflow/cadence-tools/languageserver + - onflow/flixkit-go + - onflow/flowkit/v2 + - onflow/flow-evm-gateway diff --git a/tools/update/main.ts b/tools/update/main.ts index 5000e3fcd5..10fb6e2945 100644 --- a/tools/update/main.ts +++ b/tools/update/main.ts @@ -30,11 +30,17 @@ function semVerAtLeast(actualVersion: string, expectedVersion: string): boolean } function extractVersionCommit(version: string): string | null { - const parts = version.split('-') - if (parts.length <= 1) { - return null - } - return parts[parts.length-1] + // Parse commit from Go's generated pseudo-version. + // They end with '-'. + // See https://go.dev/ref/mod#glos-pseudo-version + const match = version.match(/\d{14}-([0-9a-f]{12})$/) + if (!match) + return null; + return match[1] +} + +function capitalizeFirstLetter(string: string): string { + return string.charAt(0).toUpperCase() + string.slice(1); } class Updater { @@ -92,8 +98,8 @@ class Updater { const [owner, repoName] = fullRepoName.split('/') - const repoResponse = await this.octokit.rest.repos.get({owner, repo: repoName}) - const defaultBranch = repoResponse.data.default_branch + const defaultBranch = repo.branch || + (await this.octokit.rest.repos.get({owner, repo: repoName})).data.default_branch console.log(`> Default branch of repo ${fullRepoName}: ${defaultBranch}`) const defaultRefResponse = await this.octokit.rest.git.getRef({ @@ -161,7 +167,7 @@ class Updater { const version = versionAnswer.version.trim() - await new Releaser(fullRepoName, mod.path, version, this.octokit, this.protocol).release() + await new Releaser(fullRepoName, defaultBranch, mod.path, version, this.octokit, this.protocol).release() } } } @@ -228,11 +234,20 @@ class Updater { async fetchLatestReleaseTagName(fullRepoName: string): Promise { try { const [owner, repoName] = fullRepoName.split('/') - const release = await this.octokit.rest.repos.getLatestRelease({ + // Heuristic: Fetch as many releases on the first page as possible, + // and find the latest release by sorting the releases by semver + const releases = await this.octokit.rest.repos.listReleases({ owner, repo: repoName, + per_page: 100 }) - return release.data.tag_name + const release = releases.data.sort((a, b) => { + return a.created_at.localeCompare(b.created_at) + }).pop() + if (release === undefined) { + return null + } + return release.tag_name } catch (e) { if (e instanceof RequestError) { if (e.status === 404) { @@ -341,8 +356,8 @@ class Updater { const [owner, repoName] = fullRepoName.split('/') const dir = await mkdtemp(path.join(os.tmpdir(), `${owner}-${repoName}`)) - console.log(`Cloning ${fullRepoName} ...`) - await gitClone(this.protocol, fullRepoName, dir) + console.log(`Cloning ${fullRepoName} ${repo.branch ? `(branch ${repo.branch}) `: ""}...`) + await gitClone(this.protocol, fullRepoName, dir, repo.branch) process.chdir(dir) const rootFullRepoName = this.config.repo @@ -360,19 +375,25 @@ class Updater { console.log(`Updating mod ${fullModName} ...`) process.chdir(path.join(dir, mod.path)) - for (const dep of mod.deps) { + const deps = mod.deps.map((dep) => { const newVersion = this.getExpectedVersion(dep) - console.log(`Updating mod ${fullModName} dep ${dep} to version ${newVersion} ...`) - await exec(`go get github.com/${dep}@${newVersion}`) updates.set(dep, newVersion) - } + return `github.com/${dep}@${newVersion}` + }) + + console.log(`Updating mod ${fullModName} to ${deps.join(', ')} ...`) + + await exec(`go get ${deps.join(' ')}`) console.log(`Cleaning up mod ${fullModName} ...`) await exec(`go mod tidy`) } console.log(`Committing update ...`) - await exec(`git commit -a -m "auto update to ${rootFullRepoName} ${rootRepoVersion}"`) + + const message = `Update to ${capitalizeFirstLetter(rootRepoName)} ${rootRepoVersion}` + + await exec(`git commit -a -m "${message}"`) console.log(`Pushing update ...`) await exec(`git push -u origin ${branch}"`) @@ -381,15 +402,25 @@ class Updater { let updateList = '' for (const [dep, version] of updates.entries()) { - updateList += `- [${dep} ${version}](https://github.com/${dep}/releases/tag/${version})\n` + const releaseURL = isValidSemVer(version) + ? `https://github.com/${dep}/releases/tag/${version}` + : `https://github.com/${dep}/commit/${version}` + + updateList += `- [${dep} ${version}](${releaseURL})\n` + } + + let prTitle = message + if (repo.prefixPRTitle) { + const modList = repo.mods.map((mod) => mod.path).join(', ') + prTitle = `[${modList}] ${prTitle}` } const pull = await this.octokit.rest.pulls.create({ owner, repo: repoName, head: branch, - base: 'master', - title: `Auto update to ${rootFullRepoName} ${rootRepoVersion}`, + base: repo.branch || "master", + title: prTitle, body: ` ## Description @@ -445,6 +476,7 @@ class Releaser { constructor( public repo: string, + public branch: string | undefined, public modPath: string, public version: string, public octokit: Octokit, @@ -474,7 +506,7 @@ class Releaser { const dir = await mkdtemp(path.join(os.tmpdir(), `${owner}-${repoName}`)) console.log(`Cloning ${this.repo} ...`) - await gitClone(this.protocol, this.repo, dir) + await gitClone(this.protocol, this.repo, dir, this.branch || 'master') process.chdir(dir) console.log(`Tagging ${this.repo} version ${this.version} ...`) @@ -532,8 +564,7 @@ class Releaser { } }, async (args) => { - const configData = await readFile(args.config, 'utf8') - const config = YAML.load(configData) as CadenceUpdateToolConfigSchema + const config = await loadConfig(args.config) const versions = new Map([ [config.repo, args.version], @@ -566,6 +597,11 @@ class Releaser { describe: 'The repo name', demandOption: true }, + 'branch': { + alias: 'b', + type: 'string', + describe: 'The branch name', + }, 'mod': { alias: 'm', type: 'string', @@ -579,27 +615,59 @@ class Releaser { }, async (args) => { const protocol = args.useSSH ? Protocol.SSH : Protocol.HTTPS - await new Releaser(args.repo, args.mod || '', args.version, octokit, protocol).release() + await new Releaser(args.repo, args.branch, args.mod || '', args.version, octokit, protocol).release() + } + ) + .command( + "mermaid", + "render the dependency graph as a Mermaid", + { + config: { + alias: 'c', + type: 'string', + describe: 'The path of the config', + default: 'config.yaml' + }, + }, + async (args) => { + const config = await loadConfig(args.config) + + for (const repo of config.repos) { + for (const mod of repo.mods) { + let source = repo.repo + if (mod.path) { + source += `/${mod.path}` + } + for (const dep of mod.deps) { + console.log(`${source} ---> ${dep}`) + } + } + } } ) .parse() })() -async function gitClone(protocol: Protocol, fullRepoName: string, dir: string) { - let command: string +async function loadConfig(config: string): Promise { + const configData = await readFile(config, 'utf8') + return YAML.load(configData) as CadenceUpdateToolConfigSchema +} + +async function gitClone(protocol: Protocol, fullRepoName: string, dir: string, branch?: string) { + let prefix: string switch (protocol) { case Protocol.HTTPS: - command = `git clone https://github.com/${fullRepoName} ${dir}` + prefix = "https://github.com/" break case Protocol.SSH: - command = `git clone git@github.com:${fullRepoName} ${dir}` + prefix = 'git@github.com:' break default: console.error(`unsupported protocol: ${protocol}`) return } - await exec(command) + await exec(`git clone ${branch ? `-b ${branch} ` : ""}${prefix}${fullRepoName} ${dir}`) } async function runWithConsoleGroup(func: () => Promise): Promise { diff --git a/types.go b/types.go index febf7e6ad9..c3cee3c263 100644 --- a/types.go +++ b/types.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ package cadence import ( "fmt" "reflect" + "strings" "sync" "github.com/onflow/cadence/runtime/common" @@ -123,6 +124,7 @@ var AnyStructType = PrimitiveType(interpreter.PrimitiveStaticTypeAnyStruct) var AnyResourceType = PrimitiveType(interpreter.PrimitiveStaticTypeAnyResource) var AnyStructAttachmentType = PrimitiveType(interpreter.PrimitiveStaticTypeAnyStructAttachment) var AnyResourceAttachmentType = PrimitiveType(interpreter.PrimitiveStaticTypeAnyResourceAttachment) +var HashableStructType = PrimitiveType(interpreter.PrimitiveStaticTypeHashableStruct) var BoolType = PrimitiveType(interpreter.PrimitiveStaticTypeBool) var AddressType = PrimitiveType(interpreter.PrimitiveStaticTypeAddress) @@ -136,6 +138,7 @@ var SignedNumberType = PrimitiveType(interpreter.PrimitiveStaticTypeSignedNumber var IntegerType = PrimitiveType(interpreter.PrimitiveStaticTypeInteger) var SignedIntegerType = PrimitiveType(interpreter.PrimitiveStaticTypeSignedInteger) +var FixedSizeUnsignedIntegerType = PrimitiveType(interpreter.PrimitiveStaticTypeFixedSizeUnsignedInteger) var FixedPointType = PrimitiveType(interpreter.PrimitiveStaticTypeFixedPoint) var SignedFixedPointType = PrimitiveType(interpreter.PrimitiveStaticTypeSignedFixedPoint) @@ -361,6 +364,52 @@ func (t *DictionaryType) Equal(other Type) bool { t.ElementType.Equal(otherType.ElementType) } +// InclusiveRangeType + +type InclusiveRangeType struct { + ElementType Type + typeID string +} + +var _ Type = &InclusiveRangeType{} + +func NewInclusiveRangeType( + elementType Type, +) *InclusiveRangeType { + return &InclusiveRangeType{ + ElementType: elementType, + } +} + +func NewMeteredInclusiveRangeType( + gauge common.MemoryGauge, + elementType Type, +) *InclusiveRangeType { + common.UseMemory(gauge, common.CadenceInclusiveRangeTypeMemoryUsage) + return NewInclusiveRangeType(elementType) +} + +func (*InclusiveRangeType) isType() {} + +func (t *InclusiveRangeType) ID() string { + if t.typeID == "" { + t.typeID = fmt.Sprintf( + "InclusiveRange<%s>", + t.ElementType.ID(), + ) + } + return t.typeID +} + +func (t *InclusiveRangeType) Equal(other Type) bool { + otherType, ok := other.(*InclusiveRangeType) + if !ok { + return false + } + + return t.ElementType.Equal(otherType.ElementType) +} + // Field type Field struct { @@ -377,44 +426,78 @@ func NewField(identifier string, typ Type) Field { } } -type HasFields interface { - GetFields() []Field - GetFieldValues() []Value +// SearchCompositeFieldTypeByName searches for the field with the given name in the composite type, +// and returns the type of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using CompositeFieldTypesMappedByName if you need to access multiple fields. +func SearchCompositeFieldTypeByName(compositeType CompositeType, fieldName string) Type { + fields := compositeType.compositeFields() + + if fields == nil { + return nil + } + + for _, field := range fields { + if field.Identifier == fieldName { + return field.Type + } + } + return nil } -func GetFieldByName(v HasFields, fieldName string) Value { - fieldValues := v.GetFieldValues() - fields := v.GetFields() +func CompositeFieldTypesMappedByName(compositeType CompositeType) map[string]Type { + fields := compositeType.compositeFields() - if fieldValues == nil || fields == nil { + if fields == nil { return nil } - for i, field := range v.GetFields() { + fieldsMap := make(map[string]Type, len(fields)) + for _, field := range fields { + fieldsMap[field.Identifier] = field.Type + } + + return fieldsMap +} + +// SearchInterfaceFieldTypeByName searches for the field with the given name in the interface type, +// and returns the type of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using InterfaceFieldTypesMappedByName if you need to access multiple fields. +func SearchInterfaceFieldTypeByName(interfaceType InterfaceType, fieldName string) Type { + fields := interfaceType.interfaceFields() + + if fields == nil { + return nil + } + + for _, field := range fields { if field.Identifier == fieldName { - return v.GetFieldValues()[i] + return field.Type } } return nil } -func GetFieldsMappedByName(v HasFields) map[string]Value { - fieldValues := v.GetFieldValues() - fields := v.GetFields() +func InterfaceFieldTypesMappedByName(interfaceType InterfaceType) map[string]Type { + fields := interfaceType.interfaceFields() - if fieldValues == nil || fields == nil { + if fields == nil { return nil } - fieldsMap := make(map[string]Value, len(fields)) - for i, field := range fields { - fieldsMap[field.Identifier] = fieldValues[i] + fieldsMap := make(map[string]Type, len(fields)) + for _, field := range fields { + fieldsMap[field.Identifier] = field.Type } + return fieldsMap } // DecodeFields decodes a HasFields into a struct -func DecodeFields(hasFields HasFields, s interface{}) error { +func DecodeFields(composite Composite, s interface{}) error { v := reflect.ValueOf(s) if !v.IsValid() || v.Kind() != reflect.Ptr || v.Elem().Kind() != reflect.Struct { return fmt.Errorf("s must be a pointer to a struct") @@ -423,7 +506,7 @@ func DecodeFields(hasFields HasFields, s interface{}) error { v = v.Elem() t := v.Type() - fieldsMap := GetFieldsMappedByName(hasFields) + fieldsMap := FieldsMappedByName(composite) for i := 0; i < v.NumField(); i++ { structField := t.Field(i) @@ -488,7 +571,7 @@ func decodeOptional(valueType reflect.Type, cadenceField Value) (*reflect.Value, } // if optional is nil, skip and default the field to nil - if optional.ToGoValue() == nil { + if optional.Value == nil { zeroValue := reflect.Zero(valueType) return &zeroValue, nil } @@ -643,12 +726,28 @@ func NewTypeParameter( type CompositeType interface { Type + isCompositeType() + compositeFields() []Field + setCompositeFields([]Field) + CompositeTypeLocation() common.Location CompositeTypeQualifiedIdentifier() string - CompositeFields() []Field - SetCompositeFields([]Field) CompositeInitializers() [][]Parameter + SearchFieldByName(fieldName string) Type + FieldsMappedByName() map[string]Type +} + +// linked in by packages that need access to CompositeType.setCompositeFields, +// e.g. JSON and CCF codecs +func setCompositeTypeFields(compositeType CompositeType, fields []Field) { //nolint:unused + compositeType.setCompositeFields(fields) +} + +// linked in by packages that need access to CompositeType.compositeFields, +// e.g. JSON and CCF codecs +func getCompositeTypeFields(compositeType CompositeType) []Field { //nolint:unused + return compositeType.compositeFields() } // StructType @@ -656,7 +755,7 @@ type CompositeType interface { type StructType struct { Location common.Location QualifiedIdentifier string - Fields []Field + fields []Field Initializers [][]Parameter } @@ -669,7 +768,7 @@ func NewStructType( return &StructType{ Location: location, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -701,12 +800,12 @@ func (t *StructType) CompositeTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *StructType) CompositeFields() []Field { - return t.Fields +func (t *StructType) compositeFields() []Field { + return t.fields } -func (t *StructType) SetCompositeFields(fields []Field) { - t.Fields = fields +func (t *StructType) setCompositeFields(fields []Field) { + t.fields = fields } func (t *StructType) CompositeInitializers() [][]Parameter { @@ -723,12 +822,20 @@ func (t *StructType) Equal(other Type) bool { t.QualifiedIdentifier == otherType.QualifiedIdentifier } +func (t *StructType) SearchFieldByName(fieldName string) Type { + return SearchCompositeFieldTypeByName(t, fieldName) +} + +func (t *StructType) FieldsMappedByName() map[string]Type { + return CompositeFieldTypesMappedByName(t) +} + // ResourceType type ResourceType struct { Location common.Location QualifiedIdentifier string - Fields []Field + fields []Field Initializers [][]Parameter } @@ -741,7 +848,7 @@ func NewResourceType( return &ResourceType{ Location: location, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -773,12 +880,12 @@ func (t *ResourceType) CompositeTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *ResourceType) CompositeFields() []Field { - return t.Fields +func (t *ResourceType) compositeFields() []Field { + return t.fields } -func (t *ResourceType) SetCompositeFields(fields []Field) { - t.Fields = fields +func (t *ResourceType) setCompositeFields(fields []Field) { + t.fields = fields } func (t *ResourceType) CompositeInitializers() [][]Parameter { @@ -795,20 +902,28 @@ func (t *ResourceType) Equal(other Type) bool { t.QualifiedIdentifier == otherType.QualifiedIdentifier } +func (t *ResourceType) SearchFieldByName(fieldName string) Type { + return SearchCompositeFieldTypeByName(t, fieldName) +} + +func (t *ResourceType) FieldsMappedByName() map[string]Type { + return CompositeFieldTypesMappedByName(t) +} + // AttachmentType type AttachmentType struct { Location common.Location BaseType Type QualifiedIdentifier string - Fields []Field + fields []Field Initializers [][]Parameter } func NewAttachmentType( location common.Location, - baseType Type, qualifiedIdentifier string, + baseType Type, fields []Field, initializers [][]Parameter, ) *AttachmentType { @@ -816,7 +931,7 @@ func NewAttachmentType( Location: location, BaseType: baseType, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -824,16 +939,16 @@ func NewAttachmentType( func NewMeteredAttachmentType( gauge common.MemoryGauge, location common.Location, - baseType Type, qualifiedIdentifier string, + baseType Type, fields []Field, initializers [][]Parameter, ) *AttachmentType { common.UseMemory(gauge, common.CadenceAttachmentTypeMemoryUsage) return NewAttachmentType( location, - baseType, qualifiedIdentifier, + baseType, fields, initializers, ) @@ -855,12 +970,12 @@ func (t *AttachmentType) CompositeTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *AttachmentType) CompositeFields() []Field { - return t.Fields +func (t *AttachmentType) compositeFields() []Field { + return t.fields } -func (t *AttachmentType) SetCompositeFields(fields []Field) { - t.Fields = fields +func (t *AttachmentType) setCompositeFields(fields []Field) { + t.fields = fields } func (t *AttachmentType) CompositeInitializers() [][]Parameter { @@ -881,12 +996,20 @@ func (t *AttachmentType) Equal(other Type) bool { t.QualifiedIdentifier == otherType.QualifiedIdentifier } +func (t *AttachmentType) SearchFieldByName(fieldName string) Type { + return SearchCompositeFieldTypeByName(t, fieldName) +} + +func (t *AttachmentType) FieldsMappedByName() map[string]Type { + return CompositeFieldTypesMappedByName(t) +} + // EventType type EventType struct { Location common.Location QualifiedIdentifier string - Fields []Field + fields []Field Initializer []Parameter } @@ -899,7 +1022,7 @@ func NewEventType( return &EventType{ Location: location, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializer: initializer, } } @@ -931,12 +1054,12 @@ func (t *EventType) CompositeTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *EventType) CompositeFields() []Field { - return t.Fields +func (t *EventType) compositeFields() []Field { + return t.fields } -func (t *EventType) SetCompositeFields(fields []Field) { - t.Fields = fields +func (t *EventType) setCompositeFields(fields []Field) { + t.fields = fields } func (t *EventType) CompositeInitializers() [][]Parameter { @@ -953,12 +1076,20 @@ func (t *EventType) Equal(other Type) bool { t.QualifiedIdentifier == otherType.QualifiedIdentifier } +func (t *EventType) SearchFieldByName(fieldName string) Type { + return SearchCompositeFieldTypeByName(t, fieldName) +} + +func (t *EventType) FieldsMappedByName() map[string]Type { + return CompositeFieldTypesMappedByName(t) +} + // ContractType type ContractType struct { Location common.Location QualifiedIdentifier string - Fields []Field + fields []Field Initializers [][]Parameter } @@ -971,7 +1102,7 @@ func NewContractType( return &ContractType{ Location: location, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -1003,12 +1134,12 @@ func (t *ContractType) CompositeTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *ContractType) CompositeFields() []Field { - return t.Fields +func (t *ContractType) compositeFields() []Field { + return t.fields } -func (t *ContractType) SetCompositeFields(fields []Field) { - t.Fields = fields +func (t *ContractType) setCompositeFields(fields []Field) { + t.fields = fields } func (t *ContractType) CompositeInitializers() [][]Parameter { @@ -1025,24 +1156,46 @@ func (t *ContractType) Equal(other Type) bool { t.QualifiedIdentifier == otherType.QualifiedIdentifier } +func (t *ContractType) SearchFieldByName(fieldName string) Type { + return SearchCompositeFieldTypeByName(t, fieldName) +} + +func (t *ContractType) FieldsMappedByName() map[string]Type { + return CompositeFieldTypesMappedByName(t) +} + // InterfaceType type InterfaceType interface { Type + isInterfaceType() + interfaceFields() []Field + setInterfaceFields(fields []Field) + InterfaceTypeLocation() common.Location InterfaceTypeQualifiedIdentifier() string - InterfaceFields() []Field - SetInterfaceFields(fields []Field) InterfaceInitializers() [][]Parameter } +// linked in by packages that need access to InterfaceType.interfaceFields, +// e.g. JSON and CCF codecs +func getInterfaceTypeFields(interfaceType InterfaceType) []Field { //nolint:unused + return interfaceType.interfaceFields() +} + +// linked in by packages that need access to InterfaceType.setInterfaceFields, +// e.g. JSON and CCF codecs +func setInterfaceTypeFields(interfaceType InterfaceType, fields []Field) { //nolint:unused + interfaceType.setInterfaceFields(fields) +} + // StructInterfaceType type StructInterfaceType struct { Location common.Location QualifiedIdentifier string - Fields []Field + fields []Field Initializers [][]Parameter } @@ -1055,7 +1208,7 @@ func NewStructInterfaceType( return &StructInterfaceType{ Location: location, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -1087,12 +1240,12 @@ func (t *StructInterfaceType) InterfaceTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *StructInterfaceType) InterfaceFields() []Field { - return t.Fields +func (t *StructInterfaceType) interfaceFields() []Field { + return t.fields } -func (t *StructInterfaceType) SetInterfaceFields(fields []Field) { - t.Fields = fields +func (t *StructInterfaceType) setInterfaceFields(fields []Field) { + t.fields = fields } func (t *StructInterfaceType) InterfaceInitializers() [][]Parameter { @@ -1114,7 +1267,7 @@ func (t *StructInterfaceType) Equal(other Type) bool { type ResourceInterfaceType struct { Location common.Location QualifiedIdentifier string - Fields []Field + fields []Field Initializers [][]Parameter } @@ -1127,7 +1280,7 @@ func NewResourceInterfaceType( return &ResourceInterfaceType{ Location: location, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -1159,12 +1312,12 @@ func (t *ResourceInterfaceType) InterfaceTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *ResourceInterfaceType) InterfaceFields() []Field { - return t.Fields +func (t *ResourceInterfaceType) interfaceFields() []Field { + return t.fields } -func (t *ResourceInterfaceType) SetInterfaceFields(fields []Field) { - t.Fields = fields +func (t *ResourceInterfaceType) setInterfaceFields(fields []Field) { + t.fields = fields } func (t *ResourceInterfaceType) InterfaceInitializers() [][]Parameter { @@ -1186,7 +1339,7 @@ func (t *ResourceInterfaceType) Equal(other Type) bool { type ContractInterfaceType struct { Location common.Location QualifiedIdentifier string - Fields []Field + fields []Field Initializers [][]Parameter } @@ -1199,7 +1352,7 @@ func NewContractInterfaceType( return &ContractInterfaceType{ Location: location, QualifiedIdentifier: qualifiedIdentifier, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -1231,12 +1384,12 @@ func (t *ContractInterfaceType) InterfaceTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *ContractInterfaceType) InterfaceFields() []Field { - return t.Fields +func (t *ContractInterfaceType) interfaceFields() []Field { + return t.fields } -func (t *ContractInterfaceType) SetInterfaceFields(fields []Field) { - t.Fields = fields +func (t *ContractInterfaceType) setInterfaceFields(fields []Field) { + t.fields = fields } func (t *ContractInterfaceType) InterfaceInitializers() [][]Parameter { @@ -1260,8 +1413,18 @@ type FunctionPurity int const ( FunctionPurityUnspecified FunctionPurity = iota FunctionPurityView + + // DO NOT add item after maxFunctionPurity + maxFunctionPurity ) +func NewFunctionaryPurity(rawPurity int) (FunctionPurity, error) { + if rawPurity < 0 || rawPurity >= int(maxFunctionPurity) { + return FunctionPurityUnspecified, fmt.Errorf("failed to convert %d to FunctionPurity", rawPurity) + } + return FunctionPurity(rawPurity), nil +} + type FunctionType struct { TypeParameters []TypeParameter Parameters []Parameter @@ -1370,6 +1533,12 @@ func (t *FunctionType) Equal(other Type) bool { } } + // Purity + + if t.Purity != otherType.Purity { + return false + } + return t.ReturnType.Equal(otherType.ReturnType) } @@ -1402,30 +1571,32 @@ const Conjunction = sema.Conjunction const Disjunction = sema.Disjunction type EntitlementSetAuthorization struct { - Entitlements []common.TypeID - Kind EntitlementSetKind + Entitlements []common.TypeID + Kind EntitlementSetKind + entitlementSet map[common.TypeID]struct{} + entitlementSetOnce sync.Once } -var _ Authorization = EntitlementSetAuthorization{} +var _ Authorization = &EntitlementSetAuthorization{} func NewEntitlementSetAuthorization( gauge common.MemoryGauge, entitlements []common.TypeID, kind EntitlementSetKind, -) EntitlementSetAuthorization { +) *EntitlementSetAuthorization { common.UseMemory(gauge, common.MemoryUsage{ Kind: common.MemoryKindCadenceEntitlementSetAccess, Amount: uint64(len(entitlements)), }) - return EntitlementSetAuthorization{ + return &EntitlementSetAuthorization{ Entitlements: entitlements, Kind: kind, } } -func (EntitlementSetAuthorization) isAuthorization() {} +func (*EntitlementSetAuthorization) isAuthorization() {} -func (e EntitlementSetAuthorization) ID() string { +func (e *EntitlementSetAuthorization) ID() string { entitlementTypeIDs := make([]string, 0, len(e.Entitlements)) for _, typeID := range e.Entitlements { entitlementTypeIDs = append( @@ -1438,15 +1609,18 @@ func (e EntitlementSetAuthorization) ID() string { return sema.FormatEntitlementSetTypeID(entitlementTypeIDs, e.Kind) } -func (e EntitlementSetAuthorization) Equal(auth Authorization) bool { +func (e *EntitlementSetAuthorization) Equal(auth Authorization) bool { switch auth := auth.(type) { - case EntitlementSetAuthorization: + case *EntitlementSetAuthorization: if len(e.Entitlements) != len(auth.Entitlements) { return false } - for i, entitlement := range e.Entitlements { - if auth.Entitlements[i] != entitlement { + // sets are equivalent if they contain the same elements, regardless of order + otherEntitlementSet := auth.getEntitlementSet() + + for _, entitlement := range e.Entitlements { + if _, exist := otherEntitlementSet[entitlement]; !exist { return false } } @@ -1455,6 +1629,20 @@ func (e EntitlementSetAuthorization) Equal(auth Authorization) bool { return false } +func (t *EntitlementSetAuthorization) initializeEntitlementSet() { + t.entitlementSetOnce.Do(func() { + t.entitlementSet = make(map[common.TypeID]struct{}, len(t.Entitlements)) + for _, e := range t.Entitlements { + t.entitlementSet[e] = struct{}{} + } + }) +} + +func (t *EntitlementSetAuthorization) getEntitlementSet() map[common.TypeID]struct{} { + t.initializeEntitlementSet() + return t.entitlementSet +} + type EntitlementMapAuthorization struct { TypeID common.TypeID } @@ -1533,6 +1721,193 @@ func (t *ReferenceType) Equal(other Type) bool { t.Type.Equal(otherType.Type) } +// DeprecatedReferenceType +// Deprecated: removed in v1.0.0 +type DeprecatedReferenceType struct { + Type Type + Authorized bool + typeID string +} + +var _ Type = &DeprecatedReferenceType{} + +func NewDeprecatedReferenceType( + authorized bool, + typ Type, +) *DeprecatedReferenceType { + return &DeprecatedReferenceType{ + Authorized: authorized, + Type: typ, + } +} + +func NewDeprecatedMeteredReferenceType( + gauge common.MemoryGauge, + authorized bool, + typ Type, +) *DeprecatedReferenceType { + common.UseMemory(gauge, common.CadenceReferenceTypeMemoryUsage) + return NewDeprecatedReferenceType(authorized, typ) +} + +func (*DeprecatedReferenceType) isType() {} + +func (t *DeprecatedReferenceType) ID() string { + if t.typeID == "" { + t.typeID = formatDeprecatedReferenceTypeID(t.Authorized, t.Type.ID()) //nolint:staticcheck + } + return t.typeID +} + +func (t *DeprecatedReferenceType) Equal(other Type) bool { + otherType, ok := other.(*DeprecatedReferenceType) + if !ok { + return false + } + + return t.Authorized == otherType.Authorized && + t.Type.Equal(otherType.Type) +} + +// Deprecated: use FormatReferenceTypeID +func formatDeprecatedReferenceTypeID(authorized bool, typeString string) string { + return formatDeprecatedReferenceType("", authorized, typeString) +} + +// Deprecated: use FormatReferenceTypeID +func formatDeprecatedReferenceType( + separator string, + authorized bool, + typeString string, +) string { + var builder strings.Builder + if authorized { + builder.WriteString("auth") + builder.WriteString(separator) + } + builder.WriteByte('&') + builder.WriteString(typeString) + return builder.String() +} + +// DeprecatedRestrictedType +// Deprecated: removed in v1.0.0 +type DeprecatedRestrictedType struct { + typeID string + Type Type + Restrictions []Type + restrictionSet DeprecatedRestrictionSet + restrictionSetOnce sync.Once +} + +// Deprecated: removed in v1.0.0 +type DeprecatedRestrictionSet = map[Type]struct{} + +func NewDeprecatedRestrictedType( + typ Type, + restrictions []Type, +) *DeprecatedRestrictedType { + return &DeprecatedRestrictedType{ + Type: typ, + Restrictions: restrictions, + } +} + +func NewDeprecatedMeteredRestrictedType( + gauge common.MemoryGauge, + typ Type, + restrictions []Type, +) *DeprecatedRestrictedType { + common.UseMemory(gauge, common.CadenceDeprecatedRestrictedTypeMemoryUsage) + return NewDeprecatedRestrictedType(typ, restrictions) +} + +func (*DeprecatedRestrictedType) isType() {} + +func (t *DeprecatedRestrictedType) ID() string { + if t.typeID == "" { + var restrictionStrings []string + restrictionCount := len(t.Restrictions) + if restrictionCount > 0 { + restrictionStrings = make([]string, 0, restrictionCount) + for _, restriction := range t.Restrictions { + restrictionStrings = append(restrictionStrings, restriction.ID()) + } + } + var typeString string + if t.Type != nil { + typeString = t.Type.ID() + } + t.typeID = formatDeprecatedRestrictedTypeID(typeString, restrictionStrings) + } + return t.typeID +} + +func (t *DeprecatedRestrictedType) Equal(other Type) bool { + otherType, ok := other.(*DeprecatedRestrictedType) + if !ok { + return false + } + + if t.Type == nil && otherType.Type != nil { + return false + } + if t.Type != nil && otherType.Type == nil { + return false + } + if t.Type != nil && !t.Type.Equal(otherType.Type) { + return false + } + + restrictionSet := t.RestrictionSet() + otherRestrictionSet := otherType.RestrictionSet() + + if len(restrictionSet) != len(otherRestrictionSet) { + return false + } + + for restriction := range restrictionSet { //nolint:maprange + _, ok := otherRestrictionSet[restriction] + if !ok { + return false + } + } + + return true +} + +func (t *DeprecatedRestrictedType) initializeRestrictionSet() { + t.restrictionSetOnce.Do(func() { + t.restrictionSet = make(DeprecatedRestrictionSet, len(t.Restrictions)) + for _, restriction := range t.Restrictions { + t.restrictionSet[restriction] = struct{}{} + } + }) +} + +func (t *DeprecatedRestrictedType) RestrictionSet() DeprecatedRestrictionSet { + t.initializeRestrictionSet() + return t.restrictionSet +} + +func formatDeprecatedRestrictedType(typeString string, restrictionStrings []string) string { + var result strings.Builder + result.WriteString(typeString) + result.WriteByte('{') + for i, restrictionString := range restrictionStrings { + if i > 0 { + result.WriteByte(',') + } + result.WriteString(restrictionString) + } + result.WriteByte('}') + return result.String() +} + +func formatDeprecatedRestrictedTypeID(typeString string, restrictionStrings []string) string { + return formatDeprecatedRestrictedType(typeString, restrictionStrings) +} + // IntersectionType type IntersectionSet = map[Type]struct{} @@ -1661,7 +2036,7 @@ type EnumType struct { Location common.Location QualifiedIdentifier string RawType Type - Fields []Field + fields []Field Initializers [][]Parameter } @@ -1676,7 +2051,7 @@ func NewEnumType( Location: location, QualifiedIdentifier: qualifiedIdentifier, RawType: rawType, - Fields: fields, + fields: fields, Initializers: initializers, } } @@ -1709,12 +2084,12 @@ func (t *EnumType) CompositeTypeQualifiedIdentifier() string { return t.QualifiedIdentifier } -func (t *EnumType) CompositeFields() []Field { - return t.Fields +func (t *EnumType) compositeFields() []Field { + return t.fields } -func (t *EnumType) SetCompositeFields(fields []Field) { - t.Fields = fields +func (t *EnumType) setCompositeFields(fields []Field) { + t.fields = fields } func (t *EnumType) CompositeInitializers() [][]Parameter { @@ -1730,3 +2105,11 @@ func (t *EnumType) Equal(other Type) bool { return t.Location == otherType.Location && t.QualifiedIdentifier == otherType.QualifiedIdentifier } + +func (t *EnumType) SearchFieldByName(fieldName string) Type { + return SearchCompositeFieldTypeByName(t, fieldName) +} + +func (t *EnumType) FieldsMappedByName() map[string]Type { + return CompositeFieldTypesMappedByName(t) +} diff --git a/types_test.go b/types_test.go index d8ab110629..f13bb96b7a 100644 --- a/types_test.go +++ b/types_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,7 +55,7 @@ func TestType_ID(t *testing.T) { &OptionalType{ Type: StringType, }, - "String?", + "(String)?", }, { &VariableSizedArrayType{ @@ -149,6 +149,16 @@ func TestType_ID(t *testing.T) { }, "fun(Int):String", }, + { + &FunctionType{ + Parameters: []Parameter{ + {Type: IntType}, + }, + ReturnType: StringType, + Purity: FunctionPurityView, + }, + "view fun(Int):String", + }, { &EventType{ QualifiedIdentifier: "Event", @@ -1526,6 +1536,36 @@ func TestTypeEquality(t *testing.T) { target := AnyType assert.False(t, source.Equal(target)) }) + + t.Run("different purity", func(t *testing.T) { + t.Parallel() + + source := &FunctionType{ + Purity: FunctionPurityView, + ReturnType: StringType, + Parameters: []Parameter{ + { + Type: IntType, + }, + { + Type: BoolType, + }, + }, + } + target := &FunctionType{ + Purity: FunctionPurityUnspecified, // default + ReturnType: StringType, + Parameters: []Parameter{ + { + Type: IntType, + }, + { + Type: BoolType, + }, + }, + } + assert.False(t, source.Equal(target)) + }) }) t.Run("reference type", func(t *testing.T) { @@ -1559,6 +1599,158 @@ func TestTypeEquality(t *testing.T) { assert.False(t, source.Equal(target)) }) + t.Run("different auth conjunction set", func(t *testing.T) { + t.Parallel() + + source := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Conjunction, + Entitlements: []common.TypeID{ + "foo", + }, + }, + } + target := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Conjunction, + Entitlements: []common.TypeID{ + "bar", + }, + }, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different auth disjunction set", func(t *testing.T) { + t.Parallel() + + source := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Disjunction, + Entitlements: []common.TypeID{ + "foo", + }, + }, + } + target := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Disjunction, + Entitlements: []common.TypeID{ + "bar", + }, + }, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different auth conjunction set", func(t *testing.T) { + t.Parallel() + + source := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Conjunction, + Entitlements: []common.TypeID{ + "foo", + "bar", + }, + }, + } + target := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Conjunction, + Entitlements: []common.TypeID{ + "bar", + "baz", + }, + }, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different auth disjunction set", func(t *testing.T) { + t.Parallel() + + source := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Disjunction, + Entitlements: []common.TypeID{ + "foo", + "bar", + }, + }, + } + target := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Disjunction, + Entitlements: []common.TypeID{ + "bar", + "baz", + }, + }, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different auth conjunction set order", func(t *testing.T) { + t.Parallel() + + source := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Conjunction, + Entitlements: []common.TypeID{ + "foo", + "bar", + }, + }, + } + target := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Conjunction, + Entitlements: []common.TypeID{ + "bar", + "foo", + }, + }, + } + assert.True(t, source.Equal(target)) + }) + + t.Run("different auth disjunction set order", func(t *testing.T) { + t.Parallel() + + source := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Disjunction, + Entitlements: []common.TypeID{ + "foo", + "bar", + }, + }, + } + target := &ReferenceType{ + Type: IntType, + Authorization: &EntitlementSetAuthorization{ + Kind: Disjunction, + Entitlements: []common.TypeID{ + "bar", + "foo", + }, + }, + } + assert.True(t, source.Equal(target)) + }) + t.Run("auth vs non-auth", func(t *testing.T) { t.Parallel() @@ -1705,6 +1897,214 @@ func TestTypeEquality(t *testing.T) { }) }) + t.Run("deprecated reference type", func(t *testing.T) { + t.Parallel() + + t.Run("equal", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedReferenceType{ + Type: IntType, + Authorized: false, + } + target := &DeprecatedReferenceType{ + Type: IntType, + Authorized: false, + } + assert.True(t, source.Equal(target)) + }) + + t.Run("different referenced type", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedReferenceType{ + Type: IntType, + Authorized: false, + } + target := &DeprecatedReferenceType{ + Type: StringType, + Authorized: false, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("auth vs non-auth", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedReferenceType{ + Type: IntType, + Authorized: false, + } + target := &DeprecatedReferenceType{ + Type: IntType, + Authorized: true, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("non-auth vs auth", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedReferenceType{ + Type: IntType, + Authorized: true, + } + target := &DeprecatedReferenceType{ + Type: IntType, + Authorized: false, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different type", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedReferenceType{ + Type: IntType, + Authorized: true, + } + target := AnyType + assert.False(t, source.Equal(target)) + }) + }) + + t.Run("deprecated restricted type", func(t *testing.T) { + t.Parallel() + + t.Run("equal", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + IntType, + }, + } + target := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + IntType, + }, + } + assert.True(t, source.Equal(target)) + }) + + t.Run("different restrictions order", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + IntType, + }, + } + target := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + IntType, + AnyType, + }, + } + assert.True(t, source.Equal(target)) + }) + + t.Run("duplicate restrictions", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + IntType, + AnyType, + IntType, + }, + } + target := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + IntType, + AnyType, + }, + } + assert.True(t, source.Equal(target)) + }) + + t.Run("different inner type", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + IntType, + }, + } + target := &DeprecatedRestrictedType{ + Type: StringType, + Restrictions: []Type{ + AnyType, + IntType, + }, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different restrictions", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + IntType, + }, + } + target := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + StringType, + }, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different restrictions length", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + }, + } + target := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + StringType, + }, + } + assert.False(t, source.Equal(target)) + }) + + t.Run("different type", func(t *testing.T) { + t.Parallel() + + source := &DeprecatedRestrictedType{ + Type: IntType, + Restrictions: []Type{ + AnyType, + }, + } + target := AnyType + assert.False(t, source.Equal(target)) + }) + }) + t.Run("enum type", func(t *testing.T) { t.Parallel() @@ -1872,10 +2272,10 @@ func TestDecodeFields(t *testing.T) { }, }, }, - ).WithType(&EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "SimpleEvent", - Fields: []Field{ + ).WithType(NewEventType( + utils.TestLocation, + "SimpleEvent", + []Field{ { Identifier: "intField", Type: IntType, @@ -1969,7 +2369,8 @@ func TestDecodeFields(t *testing.T) { ), }, }, - }) + nil, + )) type eventStruct struct { Int Int `cadence:"intField"` @@ -2091,7 +2492,7 @@ func TestDecodeFields(t *testing.T) { Description: "should err when mapping to invalid type", }, {Value: &struct { - a Int `cadence:"intField"` // nolint: unused + a Int `cadence:"intField"` }{}, ExpectedErr: "cannot set field a", Description: "should err when mapping to private field", diff --git a/utils/version/main.go b/utils/version/main.go index 849afe4fd2..9214d188fe 100644 --- a/utils/version/main.go +++ b/utils/version/main.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,7 +39,7 @@ const template string = `// Code generated by utils/version. DO NOT EDIT. /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * 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/values.go b/values.go index b3bcc0aed4..085507b326 100644 --- a/values.go +++ b/values.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,7 +39,6 @@ type Value interface { isValue() Type() Type MeteredType(gauge common.MemoryGauge) Type - ToGoValue() any fmt.Stringer } @@ -75,10 +74,6 @@ func (v Void) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (Void) ToGoValue() any { - return nil -} - func (Void) String() string { return format.Void } @@ -129,16 +124,6 @@ func (o Optional) MeteredType(gauge common.MemoryGauge) Type { ) } -func (o Optional) ToGoValue() any { - if o.Value == nil { - return nil - } - - value := o.Value.ToGoValue() - - return value -} - func (o Optional) String() string { if o.Value == nil { return format.Nil @@ -171,10 +156,6 @@ func (v Bool) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Bool) ToGoValue() any { - return bool(v) -} - func (v Bool) String() string { return format.Bool(bool(v)) } @@ -213,10 +194,6 @@ func (v String) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v String) ToGoValue() any { - return string(v) -} - func (v String) String() string { return format.String(string(v)) } @@ -242,10 +219,6 @@ func (v Bytes) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Bytes) ToGoValue() any { - return []byte(v) -} - func (v Bytes) String() string { return format.Bytes(v) } @@ -286,10 +259,6 @@ func (v Character) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Character) ToGoValue() any { - return string(v) -} - func (v Character) String() string { return format.String(string(v)) } @@ -332,10 +301,6 @@ func (Address) MeteredType(common.MemoryGauge) Type { return AddressType } -func (v Address) ToGoValue() any { - return [AddressLength]byte(v) -} - func (v Address) Bytes() []byte { return v[:] } @@ -388,10 +353,6 @@ func (v Int) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Int) ToGoValue() any { - return v.Big() -} - func (v Int) Int() int { return int(v.Value.Int64()) } @@ -427,10 +388,6 @@ func NewMeteredInt8(memoryGauge common.MemoryGauge, v int8) Int8 { func (Int8) isValue() {} -func (v Int8) ToGoValue() any { - return int8(v) -} - func (Int8) Type() Type { return Int8Type } @@ -474,10 +431,6 @@ func (v Int16) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Int16) ToGoValue() any { - return int16(v) -} - func (v Int16) ToBigEndianBytes() []byte { b := make([]byte, 2) binary.BigEndian.PutUint16(b, uint16(v)) @@ -515,10 +468,6 @@ func (v Int32) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Int32) ToGoValue() any { - return int32(v) -} - func (v Int32) ToBigEndianBytes() []byte { b := make([]byte, 4) binary.BigEndian.PutUint32(b, uint32(v)) @@ -556,10 +505,6 @@ func (v Int64) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Int64) ToGoValue() any { - return int64(v) -} - func (v Int64) ToBigEndianBytes() []byte { b := make([]byte, 8) binary.BigEndian.PutUint64(b, uint64(v)) @@ -618,10 +563,6 @@ func (v Int128) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Int128) ToGoValue() any { - return v.Big() -} - func (v Int128) Int() int { return int(v.Value.Int64()) } @@ -686,10 +627,6 @@ func (v Int256) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Int256) ToGoValue() any { - return v.Big() -} - func (v Int256) Int() int { return int(v.Value.Int64()) } @@ -749,10 +686,6 @@ func (v UInt) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UInt) ToGoValue() any { - return v.Big() -} - func (v UInt) Int() int { return int(v.Value.Uint64()) } @@ -796,10 +729,6 @@ func (v UInt8) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UInt8) ToGoValue() any { - return uint8(v) -} - func (v UInt8) ToBigEndianBytes() []byte { return []byte{byte(v)} } @@ -835,10 +764,6 @@ func (v UInt16) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UInt16) ToGoValue() any { - return uint16(v) -} - func (v UInt16) ToBigEndianBytes() []byte { b := make([]byte, 2) binary.BigEndian.PutUint16(b, uint16(v)) @@ -876,10 +801,6 @@ func (v UInt32) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UInt32) ToGoValue() any { - return uint32(v) -} - func (v UInt32) ToBigEndianBytes() []byte { b := make([]byte, 4) binary.BigEndian.PutUint32(b, uint32(v)) @@ -917,10 +838,6 @@ func (v UInt64) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UInt64) ToGoValue() any { - return uint64(v) -} - func (v UInt64) ToBigEndianBytes() []byte { b := make([]byte, 8) binary.BigEndian.PutUint64(b, uint64(v)) @@ -979,10 +896,6 @@ func (v UInt128) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UInt128) ToGoValue() any { - return v.Big() -} - func (v UInt128) Int() int { return int(v.Value.Uint64()) } @@ -1047,10 +960,6 @@ func (v UInt256) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UInt256) ToGoValue() any { - return v.Big() -} - func (v UInt256) Int() int { return int(v.Value.Uint64()) } @@ -1094,10 +1003,6 @@ func (v Word8) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Word8) ToGoValue() any { - return uint8(v) -} - func (v Word8) ToBigEndianBytes() []byte { return []byte{byte(v)} } @@ -1133,10 +1038,6 @@ func (v Word16) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Word16) ToGoValue() any { - return uint16(v) -} - func (v Word16) ToBigEndianBytes() []byte { b := make([]byte, 2) binary.BigEndian.PutUint16(b, uint16(v)) @@ -1174,10 +1075,6 @@ func (v Word32) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Word32) ToGoValue() any { - return uint32(v) -} - func (v Word32) ToBigEndianBytes() []byte { b := make([]byte, 4) binary.BigEndian.PutUint32(b, uint32(v)) @@ -1215,10 +1112,6 @@ func (v Word64) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Word64) ToGoValue() any { - return uint64(v) -} - func (v Word64) ToBigEndianBytes() []byte { b := make([]byte, 8) binary.BigEndian.PutUint64(b, uint64(v)) @@ -1277,10 +1170,6 @@ func (v Word128) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Word128) ToGoValue() any { - return v.Big() -} - func (v Word128) Int() int { return int(v.Value.Uint64()) } @@ -1345,10 +1234,6 @@ func (v Word256) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Word256) ToGoValue() any { - return v.Big() -} - func (v Word256) Int() int { return int(v.Value.Uint64()) } @@ -1418,10 +1303,6 @@ func (v Fix64) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v Fix64) ToGoValue() any { - return int64(v) -} - func (v Fix64) ToBigEndianBytes() []byte { b := make([]byte, 8) binary.BigEndian.PutUint64(b, uint64(v)) @@ -1492,10 +1373,6 @@ func (v UFix64) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (v UFix64) ToGoValue() any { - return uint64(v) -} - func (v UFix64) ToBigEndianBytes() []byte { b := make([]byte, 8) binary.BigEndian.PutUint64(b, uint64(v)) @@ -1551,16 +1428,6 @@ func (v Array) WithType(arrayType ArrayType) Array { return v } -func (v Array) ToGoValue() any { - ret := make([]any, len(v.Values)) - - for i, e := range v.Values { - ret[i] = e.ToGoValue() - } - - return ret -} - func (v Array) String() string { values := make([]string, len(v.Values)) for i, value := range v.Values { @@ -1616,16 +1483,6 @@ func (v Dictionary) WithType(dictionaryType *DictionaryType) Dictionary { return v } -func (v Dictionary) ToGoValue() any { - ret := map[any]any{} - - for _, p := range v.Pairs { - ret[p.Key.ToGoValue()] = p.Value.ToGoValue() - } - - return ret -} - func (v Dictionary) String() string { pairs := make([]struct { Key string @@ -1660,17 +1517,82 @@ func NewMeteredKeyValuePair(gauge common.MemoryGauge, key, value Value) KeyValue } } +// Composite + +type Composite interface { + Value + + isComposite() + getFields() []Field + getFieldValues() []Value + + SearchFieldByName(fieldName string) Value + FieldsMappedByName() map[string]Value +} + +// linked in by packages that need access to Composite.getFieldValues, +// e.g. JSON and CCF codecs +func getCompositeFieldValues(composite Composite) []Value { //nolint:unused + return composite.getFieldValues() +} + +// SearchFieldByName searches for the field with the given name in the composite type, +// and returns the value of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using FieldsMappedByName if you need to access multiple fields. +func SearchFieldByName(v Composite, fieldName string) Value { + fieldValues := v.getFieldValues() + fields := v.getFields() + + if fieldValues == nil || fields == nil { + return nil + } + + for i, field := range fields { + if field.Identifier == fieldName { + return fieldValues[i] + } + } + return nil +} + +func FieldsMappedByName(v Composite) map[string]Value { + fieldValues := v.getFieldValues() + fields := v.getFields() + + if fieldValues == nil || fields == nil { + return nil + } + + fieldsMap := make(map[string]Value, len(fields)) + for i, fieldValue := range fieldValues { + var fieldName string + if i < len(fields) { + fieldName = fields[i].Identifier + } else if attachment, ok := fieldValue.(Attachment); ok { + fieldName = interpreter.AttachmentMemberName(attachment.Type().ID()) + } else { + panic(errors.NewUnreachableError()) + } + fieldsMap[fieldName] = fieldValue + } + + return fieldsMap +} + // Struct type Struct struct { StructType *StructType - Fields []Value + fields []Value } var _ Value = Struct{} +var _ Composite = Struct{} func NewStruct(fields []Value) Struct { - return Struct{Fields: fields} + return Struct{fields: fields} } func NewMeteredStruct( @@ -1691,6 +1613,8 @@ func NewMeteredStruct( func (Struct) isValue() {} +func (Struct) isComposite() {} + func (v Struct) Type() Type { if v.StructType == nil { // Return nil Type instead of Type referencing nil *StructType, @@ -1709,34 +1633,37 @@ func (v Struct) WithType(typ *StructType) Struct { return v } -func (v Struct) ToGoValue() any { - ret := make([]any, len(v.Fields)) - - for i, field := range v.Fields { - ret[i] = field.ToGoValue() - } - - return ret -} - func (v Struct) String() string { return formatComposite( v.StructType.ID(), - v.StructType.Fields, - v.Fields, + v.StructType.fields, + v.fields, ) } -func (v Struct) GetFields() []Field { +func (v Struct) getFields() []Field { if v.StructType == nil { return nil } - return v.StructType.Fields + return v.StructType.fields +} + +func (v Struct) getFieldValues() []Value { + return v.fields } -func (v Struct) GetFieldValues() []Value { - return v.Fields +// SearchFieldByName searches for the field with the given name in the struct, +// and returns the value of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using FieldsMappedByName if you need to access multiple fields. +func (v Struct) SearchFieldByName(fieldName string) Value { + return SearchFieldByName(v, fieldName) +} + +func (v Struct) FieldsMappedByName() map[string]Value { + return FieldsMappedByName(v) } func formatComposite(typeID string, fields []Field, values []Value) string { @@ -1764,13 +1691,14 @@ func formatComposite(typeID string, fields []Field, values []Value) string { type Resource struct { ResourceType *ResourceType - Fields []Value + fields []Value } var _ Value = Resource{} +var _ Composite = Resource{} func NewResource(fields []Value) Resource { - return Resource{Fields: fields} + return Resource{fields: fields} } func NewMeteredResource( @@ -1790,6 +1718,8 @@ func NewMeteredResource( func (Resource) isValue() {} +func (Resource) isComposite() {} + func (v Resource) Type() Type { if v.ResourceType == nil { // Return nil Type instead of Type referencing nil *ResourceType, @@ -1808,47 +1738,51 @@ func (v Resource) WithType(typ *ResourceType) Resource { return v } -func (v Resource) ToGoValue() any { - ret := make([]any, len(v.Fields)) - - for i, field := range v.Fields { - ret[i] = field.ToGoValue() - } - - return ret -} - func (v Resource) String() string { return formatComposite( v.ResourceType.ID(), - v.ResourceType.Fields, - v.Fields, + v.ResourceType.fields, + v.fields, ) } -func (v Resource) GetFields() []Field { +func (v Resource) getFields() []Field { if v.ResourceType == nil { return nil } - return v.ResourceType.Fields + return v.ResourceType.fields +} + +func (v Resource) getFieldValues() []Value { + return v.fields +} + +// SearchFieldByName searches for the field with the given name in the resource, +// and returns the value of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using FieldsMappedByName if you need to access multiple fields. +func (v Resource) SearchFieldByName(fieldName string) Value { + return SearchFieldByName(v, fieldName) } -func (v Resource) GetFieldValues() []Value { - return v.Fields +func (v Resource) FieldsMappedByName() map[string]Value { + return FieldsMappedByName(v) } // Attachment type Attachment struct { AttachmentType *AttachmentType - Fields []Value + fields []Value } var _ Value = Attachment{} +var _ Composite = Attachment{} func NewAttachment(fields []Value) Attachment { - return Attachment{Fields: fields} + return Attachment{fields: fields} } func NewMeteredAttachment( @@ -1868,6 +1802,8 @@ func NewMeteredAttachment( func (Attachment) isValue() {} +func (Attachment) isComposite() {} + func (v Attachment) Type() Type { if v.AttachmentType == nil { // Return nil Type instead of Type referencing nil *AttachmentType, @@ -1886,47 +1822,51 @@ func (v Attachment) WithType(typ *AttachmentType) Attachment { return v } -func (v Attachment) ToGoValue() any { - ret := make([]any, len(v.Fields)) - - for i, field := range v.Fields { - ret[i] = field.ToGoValue() - } - - return ret -} - func (v Attachment) String() string { return formatComposite( v.AttachmentType.ID(), - v.AttachmentType.Fields, - v.Fields, + v.AttachmentType.fields, + v.fields, ) } -func (v Attachment) GetFields() []Field { +func (v Attachment) getFields() []Field { if v.AttachmentType == nil { return nil } - return v.AttachmentType.Fields + return v.AttachmentType.fields } -func (v Attachment) GetFieldValues() []Value { - return v.Fields +func (v Attachment) getFieldValues() []Value { + return v.fields +} + +// SearchFieldByName searches for the field with the given name in the attachment, +// and returns the value of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using FieldsMappedByName if you need to access multiple fields. +func (v Attachment) SearchFieldByName(fieldName string) Value { + return SearchFieldByName(v, fieldName) +} + +func (v Attachment) FieldsMappedByName() map[string]Value { + return FieldsMappedByName(v) } // Event type Event struct { EventType *EventType - Fields []Value + fields []Value } var _ Value = Event{} +var _ Composite = Event{} func NewEvent(fields []Value) Event { - return Event{Fields: fields} + return Event{fields: fields} } func NewMeteredEvent( @@ -1946,6 +1886,8 @@ func NewMeteredEvent( func (Event) isValue() {} +func (Event) isComposite() {} + func (v Event) Type() Type { if v.EventType == nil { // Return nil Type instead of Type referencing nil *EventType, @@ -1964,46 +1906,51 @@ func (v Event) WithType(typ *EventType) Event { return v } -func (v Event) ToGoValue() any { - ret := make([]any, len(v.Fields)) - - for i, field := range v.Fields { - ret[i] = field.ToGoValue() - } - - return ret -} func (v Event) String() string { return formatComposite( v.EventType.ID(), - v.EventType.Fields, - v.Fields, + v.EventType.fields, + v.fields, ) } -func (v Event) GetFields() []Field { +func (v Event) getFields() []Field { if v.EventType == nil { return nil } - return v.EventType.Fields + return v.EventType.fields +} + +func (v Event) getFieldValues() []Value { + return v.fields } -func (v Event) GetFieldValues() []Value { - return v.Fields +// SearchFieldByName searches for the field with the given name in the event, +// and returns the value of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using FieldsMappedByName if you need to access multiple fields. +func (v Event) SearchFieldByName(fieldName string) Value { + return SearchFieldByName(v, fieldName) +} + +func (v Event) FieldsMappedByName() map[string]Value { + return FieldsMappedByName(v) } // Contract type Contract struct { ContractType *ContractType - Fields []Value + fields []Value } var _ Value = Contract{} +var _ Composite = Contract{} func NewContract(fields []Value) Contract { - return Contract{Fields: fields} + return Contract{fields: fields} } func NewMeteredContract( @@ -2023,6 +1970,8 @@ func NewMeteredContract( func (Contract) isValue() {} +func (Contract) isComposite() {} + func (v Contract) Type() Type { if v.ContractType == nil { // Return nil Type instead of Type referencing nil *ContractType, @@ -2041,34 +1990,115 @@ func (v Contract) WithType(typ *ContractType) Contract { return v } -func (v Contract) ToGoValue() any { - ret := make([]any, len(v.Fields)) - - for i, field := range v.Fields { - ret[i] = field.ToGoValue() - } - - return ret -} - func (v Contract) String() string { return formatComposite( v.ContractType.ID(), - v.ContractType.Fields, - v.Fields, + v.ContractType.fields, + v.fields, ) } -func (v Contract) GetFields() []Field { +func (v Contract) getFields() []Field { if v.ContractType == nil { return nil } - return v.ContractType.Fields + return v.ContractType.fields +} + +func (v Contract) getFieldValues() []Value { + return v.fields +} + +// SearchFieldByName searches for the field with the given name in the contract, +// and returns the value of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using FieldsMappedByName if you need to access multiple fields. +func (v Contract) SearchFieldByName(fieldName string) Value { + return SearchFieldByName(v, fieldName) +} + +func (v Contract) FieldsMappedByName() map[string]Value { + return FieldsMappedByName(v) +} + +// InclusiveRange + +type InclusiveRange struct { + InclusiveRangeType *InclusiveRangeType + Start Value + End Value + Step Value + fields []Field +} + +var _ Value = &InclusiveRange{} + +func NewInclusiveRange(start, end, step Value) *InclusiveRange { + return &InclusiveRange{ + Start: start, + End: end, + Step: step, + } +} + +func NewMeteredInclusiveRange( + gauge common.MemoryGauge, + start, end, step Value, +) *InclusiveRange { + common.UseMemory(gauge, common.CadenceInclusiveRangeValueMemoryUsage) + return NewInclusiveRange(start, end, step) +} + +func (*InclusiveRange) isValue() {} + +func (v *InclusiveRange) Type() Type { + if v.InclusiveRangeType == nil { + // Return nil Type instead of Type referencing nil *InclusiveRangeType, + // so caller can check if v's type is nil and also prevent nil pointer dereference. + return nil + } + return v.InclusiveRangeType +} + +func (v *InclusiveRange) MeteredType(common.MemoryGauge) Type { + return v.Type() } -func (v Contract) GetFieldValues() []Value { - return v.Fields +func (v *InclusiveRange) WithType(typ *InclusiveRangeType) *InclusiveRange { + v.InclusiveRangeType = typ + return v +} + +func (v *InclusiveRange) String() string { + if v.InclusiveRangeType == nil { + return "" + } + + if v.fields == nil { + elementType := v.InclusiveRangeType.ElementType + v.fields = []Field{ + { + Identifier: sema.InclusiveRangeTypeStartFieldName, + Type: elementType, + }, + { + Identifier: sema.InclusiveRangeTypeEndFieldName, + Type: elementType, + }, + { + Identifier: sema.InclusiveRangeTypeStepFieldName, + Type: elementType, + }, + } + } + + return formatComposite( + v.InclusiveRangeType.ID(), + v.fields, + []Value{v.Start, v.End, v.Step}, + ) } // Path @@ -2123,10 +2153,6 @@ func (v Path) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (Path) ToGoValue() any { - return nil -} - func (v Path) String() string { return format.Path( v.Domain.Identifier(), @@ -2163,10 +2189,6 @@ func (v TypeValue) MeteredType(common.MemoryGauge) Type { return v.Type() } -func (TypeValue) ToGoValue() any { - return nil -} - func (v TypeValue) String() string { return format.TypeValue(v.StaticType.ID()) } @@ -2174,9 +2196,10 @@ func (v TypeValue) String() string { // Capability type Capability struct { - BorrowType Type - Address Address - ID UInt64 + BorrowType Type + Address Address + DeprecatedPath *Path // Deprecated: removed in v1.0.0 + ID UInt64 } var _ Value = Capability{} @@ -2217,28 +2240,65 @@ func (v Capability) MeteredType(gauge common.MemoryGauge) Type { return NewMeteredCapabilityType(gauge, v.BorrowType) } -func (Capability) ToGoValue() any { - return nil +func (v Capability) String() string { + if v.DeprecatedPath != nil && v.DeprecatedPath.String() != "" { + var borrowType string + if v.BorrowType != nil { + borrowType = v.BorrowType.ID() + } + + return format.DeprecatedPathCapability( + borrowType, + v.Address.String(), + v.DeprecatedPath.String(), + ) + } else { + return format.Capability( + v.BorrowType.ID(), + v.Address.String(), + v.ID.String(), + ) + } } -func (v Capability) String() string { - return format.Capability( - v.BorrowType.ID(), - v.Address.String(), - v.ID.String(), +// Deprecated: removed in v1.0.0 +func NewDeprecatedPathCapability( + address Address, + path Path, + borrowType Type, +) Capability { + return Capability{ + DeprecatedPath: &path, + Address: address, + BorrowType: borrowType, + } +} + +func NewDeprecatedMeteredPathCapability( + gauge common.MemoryGauge, + address Address, + path Path, + borrowType Type, +) Capability { + common.UseMemory(gauge, common.CadenceDeprecatedPathCapabilityValueMemoryUsage) + return NewDeprecatedPathCapability( + address, + path, + borrowType, ) } // Enum type Enum struct { EnumType *EnumType - Fields []Value + fields []Value } var _ Value = Enum{} +var _ Composite = Enum{} func NewEnum(fields []Value) Enum { - return Enum{Fields: fields} + return Enum{fields: fields} } func NewMeteredEnum( @@ -2258,6 +2318,8 @@ func NewMeteredEnum( func (Enum) isValue() {} +func (Enum) isComposite() {} + func (v Enum) Type() Type { if v.EnumType == nil { // Return nil Type instead of Type referencing nil *EnumType, @@ -2276,34 +2338,37 @@ func (v Enum) WithType(typ *EnumType) Enum { return v } -func (v Enum) ToGoValue() any { - ret := make([]any, len(v.Fields)) - - for i, field := range v.Fields { - ret[i] = field.ToGoValue() - } - - return ret -} - func (v Enum) String() string { return formatComposite( v.EnumType.ID(), - v.EnumType.Fields, - v.Fields, + v.EnumType.fields, + v.fields, ) } -func (v Enum) GetFields() []Field { +func (v Enum) getFields() []Field { if v.EnumType == nil { return nil } - return v.EnumType.Fields + return v.EnumType.fields } -func (v Enum) GetFieldValues() []Value { - return v.Fields +func (v Enum) getFieldValues() []Value { + return v.fields +} + +// SearchFieldByName searches for the field with the given name in the enum, +// and returns the value of the field, or nil if the field is not found. +// +// WARNING: This function performs a linear search, so is not efficient for accessing multiple fields. +// Prefer using FieldsMappedByName if you need to access multiple fields. +func (v Enum) SearchFieldByName(fieldName string) Value { + return SearchFieldByName(v, fieldName) +} + +func (v Enum) FieldsMappedByName() map[string]Value { + return FieldsMappedByName(v) } // Function @@ -2339,10 +2404,6 @@ func (v Function) MeteredType(common.MemoryGauge) Type { return v.FunctionType } -func (Function) ToGoValue() any { - return nil -} - func (v Function) String() string { // TODO: include function type return "fun ..." diff --git a/values_test.go b/values_test.go index a86ab1e740..35437dd51c 100644 --- a/values_test.go +++ b/values_test.go @@ -1,7 +1,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -221,6 +221,14 @@ func newValueTestCases() map[string]valueTestCase { }, string: "{\"key\": \"value\"}", }, + "InclusiveRange": { + value: NewInclusiveRange(NewInt(85), NewInt(-85), NewInt(-2)), + exampleType: NewInclusiveRangeType(IntType), + withType: func(value Value, ty Type) Value { + return value.(*InclusiveRange).WithType(ty.(*InclusiveRangeType)) + }, + string: "InclusiveRange(start: 85, end: -85, step: -2)", + }, "Bytes": { value: NewBytes([]byte{0x1, 0x2}), string: "[0x1, 0x2]", @@ -233,16 +241,17 @@ func newValueTestCases() map[string]valueTestCase { }, "struct": { value: NewStruct([]Value{String("bar")}), - exampleType: &StructType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooStruct", - Fields: []Field{ + exampleType: NewStructType( + utils.TestLocation, + "FooStruct", + []Field{ { Identifier: "y", Type: StringType, }, }, - }, + nil, + ), withType: func(value Value, ty Type) Value { return value.(Struct).WithType(ty.(*StructType)) }, @@ -250,16 +259,17 @@ func newValueTestCases() map[string]valueTestCase { }, "resource": { value: NewResource([]Value{NewInt(1)}), - exampleType: &ResourceType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooResource", - Fields: []Field{ + exampleType: NewResourceType( + utils.TestLocation, + "FooResource", + []Field{ { Identifier: "bar", Type: IntType, }, }, - }, + nil, + ), withType: func(value Value, ty Type) Value { return value.(Resource).WithType(ty.(*ResourceType)) }, @@ -272,10 +282,10 @@ func newValueTestCases() map[string]valueTestCase { String("foo"), }, ), - exampleType: &EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooEvent", - Fields: []Field{ + exampleType: NewEventType( + utils.TestLocation, + "FooEvent", + []Field{ { Identifier: "a", Type: IntType, @@ -285,7 +295,8 @@ func newValueTestCases() map[string]valueTestCase { Type: StringType, }, }, - }, + nil, + ), withType: func(value Value, ty Type) Value { return value.(Event).WithType(ty.(*EventType)) }, @@ -293,16 +304,17 @@ func newValueTestCases() map[string]valueTestCase { }, "contract": { value: NewContract([]Value{String("bar")}), - exampleType: &ContractType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooContract", - Fields: []Field{ + exampleType: NewContractType( + utils.TestLocation, + "FooContract", + []Field{ { Identifier: "y", Type: StringType, }, }, - }, + nil, + ), withType: func(value Value, ty Type) Value { return value.(Contract).WithType(ty.(*ContractType)) }, @@ -310,16 +322,18 @@ func newValueTestCases() map[string]valueTestCase { }, "enum": { value: NewEnum([]Value{UInt8(1)}), - exampleType: &EnumType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooEnum", - Fields: []Field{ + exampleType: NewEnumType( + utils.TestLocation, + "FooEnum", + nil, + []Field{ { Identifier: sema.EnumRawValueFieldName, Type: UInt8Type, }, }, - }, + nil, + ), withType: func(value Value, ty Type) Value { return value.(Enum).WithType(ty.(*EnumType)) }, @@ -327,16 +341,18 @@ func newValueTestCases() map[string]valueTestCase { }, "attachment": { value: NewAttachment([]Value{NewInt(1)}), - exampleType: &AttachmentType{ - Location: utils.TestLocation, - QualifiedIdentifier: "FooAttachment", - Fields: []Field{ + exampleType: NewAttachmentType( + utils.TestLocation, + "FooAttachment", + nil, + []Field{ { Identifier: "bar", Type: IntType, }, }, - }, + nil, + ), withType: func(value Value, ty Type) Value { return value.(Attachment).WithType(ty.(*AttachmentType)) }, @@ -371,6 +387,30 @@ func newValueTestCases() map[string]valueTestCase { expectedType: MetaType, string: "Type()", }, + "Capability (Path)": { + value: NewDeprecatedPathCapability( + BytesToAddress([]byte{1, 2, 3, 4, 5}), + Path{ + Domain: common.PathDomainPublic, + Identifier: "foo", + }, + StringType, + ), + expectedType: NewCapabilityType(StringType), + string: "Capability(address: 0x0000000102030405, path: /public/foo)", + }, + "Capability (Path, no borrow type)": { + value: NewDeprecatedPathCapability( + BytesToAddress([]byte{1, 2, 3, 4, 5}), + Path{ + Domain: common.PathDomainPublic, + Identifier: "foo", + }, + nil, + ), + expectedType: NewCapabilityType(nil), + string: "Capability(address: 0x0000000102030405, path: /public/foo)", + }, "Capability (ID)": { value: NewCapability( 3, @@ -634,7 +674,7 @@ func TestNumberValue_ToBigEndianBytes(t *testing.T) { for _, integerType := range sema.AllNumberTypes { switch integerType { case sema.NumberType, sema.SignedNumberType, - sema.IntegerType, sema.SignedIntegerType, + sema.IntegerType, sema.SignedIntegerType, sema.FixedSizeUnsignedIntegerType, sema.FixedPointType, sema.SignedFixedPointType: continue } @@ -879,7 +919,7 @@ func TestValue_Type(t *testing.T) { } } -func TestValue_HasFields(t *testing.T) { +func TestComposite(t *testing.T) { t.Parallel() test := func(name string, testCase valueTestCase) { @@ -889,14 +929,14 @@ func TestValue_HasFields(t *testing.T) { switch value.(type) { case Event, Struct, Contract, Enum, Resource, Attachment: valueWithType := testCase.withType(value, testCase.exampleType) - assert.Implements(t, (*HasFields)(nil), valueWithType) - fieldedValueWithType := valueWithType.(HasFields) - assert.NotNil(t, fieldedValueWithType.GetFieldValues()) - assert.NotNil(t, fieldedValueWithType.GetFields()) + require.Implements(t, (*Composite)(nil), valueWithType) + fieldedValueWithType := valueWithType.(Composite) + assert.NotNil(t, fieldedValueWithType.getFieldValues()) + assert.NotNil(t, fieldedValueWithType.getFields()) - fieldedValue := value.(HasFields) + fieldedValue := value.(Composite) - assert.Nil(t, fieldedValue.GetFields()) + assert.Nil(t, fieldedValue.getFields()) } }) @@ -916,13 +956,13 @@ func TestEvent_GetFieldByName(t *testing.T) { String("foo"), }, ) - assert.Nil(t, GetFieldsMappedByName(simpleEvent)) - assert.Nil(t, GetFieldByName(simpleEvent, "a")) + assert.Nil(t, FieldsMappedByName(simpleEvent)) + assert.Nil(t, SearchFieldByName(simpleEvent, "a")) - simpleEventWithType := simpleEvent.WithType(&EventType{ - Location: utils.TestLocation, - QualifiedIdentifier: "SimpleEvent", - Fields: []Field{ + simpleEventWithType := simpleEvent.WithType(NewEventType( + utils.TestLocation, + "SimpleEvent", + []Field{ { Identifier: "a", Type: IntType, @@ -932,14 +972,18 @@ func TestEvent_GetFieldByName(t *testing.T) { Type: StringType, }, }, - }) + nil, + )) - assert.Equal(t, NewInt(1), GetFieldByName(simpleEventWithType, "a").(Int)) - assert.Equal(t, String("foo"), GetFieldByName(simpleEventWithType, "b").(String)) - assert.Nil(t, GetFieldByName(simpleEventWithType, "c")) + assert.Equal(t, NewInt(1), SearchFieldByName(simpleEventWithType, "a")) + assert.Equal(t, String("foo"), SearchFieldByName(simpleEventWithType, "b")) + assert.Nil(t, SearchFieldByName(simpleEventWithType, "c")) - assert.Equal(t, map[string]Value{ - "a": NewInt(1), - "b": String("foo"), - }, GetFieldsMappedByName(simpleEventWithType)) + assert.Equal(t, + map[string]Value{ + "a": NewInt(1), + "b": String("foo"), + }, + FieldsMappedByName(simpleEventWithType), + ) } diff --git a/version.go b/version.go index df4564bfcd..8e5e7e2a08 100644 --- a/version.go +++ b/version.go @@ -2,7 +2,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,4 +21,4 @@ package cadence -const Version = "v1.0.0-preview.1" +const Version = "v1.0.0-preview.35" diff --git a/vm/vm.go b/vm/vm.go index 8ed9f63340..ecdc31519e 100644 --- a/vm/vm.go +++ b/vm/vm.go @@ -4,7 +4,7 @@ /* * Cadence - The resource-oriented smart contract programming language * - * Copyright Dapper Labs, Inc. + * Copyright Flow Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.